unsloth/studio/backend
Daniel Han b6ab866c46 Studio: defer chat GPU handoff, unload video before training, stage example imports, name-aware Wan GGUF video tag, and diffusion upload body passthrough
- Chat load defers the CHAT arbiter handoff until after identifier / gpu_ids /
  training-memory validation, so a doomed chat load (bad id, unsupported gpu_ids on
  GGUF, or a training 409) no longer evicts a resident Images/Video pipeline and then
  errors. The already-loaded fast paths re-assert CHAT ownership themselves. Mirrors
  the image and video loaders, which validate before acquire_for.
- Both training-start GPU cleanups now unload a resident Video pipeline and release the
  VIDEO arbiter owner, not just Images/DIFFUSION, so starting LLM or diffusion training
  after a video generation session no longer competes with the still-resident video
  model and OOMs the run.
- Example dataset import materializes into a private staging dir and promotes into the
  dataset folder only after the whole import succeeds. A materialize that fails partway
  no longer leaves a partial dataset that a retry would treat as complete (imported=0),
  stranding the user with a truncated dataset. Hidden dirs are skipped by the dataset
  scan so the staging dir never surfaces as a dataset.
- Cached/local Wan GGUFs are now classified name-aware: arch "wan" alone is ambiguous
  between the loadable single-DiT TI2V-5B and the dual-expert A14B MoE the loader
  refuses, so _arch_to_task falls back to the repo/file name (as the loader's own
  detect_video_family does) and tags only a non-MoE match text-to-video, surfacing
  loadable Wan GGUFs in the Video picker without surfacing unloadable A14B files.
- The diffusion dataset upload route is added to the MaxBodyMiddleware upload
  passthrough, so its own get_upload_limit_bytes() cap (plus multipart overhead, and a
  raised max_upload_size_mb) applies instead of the default body limit rejecting
  near-limit batches with 413 before the handler runs.

Adds regression tests for each: the chat handoff not evicting on a doomed load, the
video unload on diffusion-training start, the atomic import leaving no partial dataset,
the name-aware Wan GGUF classification (TI2V-5B video, A14B unsupported, bare arch
unsupported), and the diffusion upload passthrough cap.
2026-07-07 04:08:41 +00:00
..
assets Studio: require signed capability tokens for /p preview links (#6666) 2026-06-25 21:40:48 -07:00
auth Studio: opt-in OpenAI /v1 model auto-switch and idle keep-warm (#6392) 2026-07-01 06:42:23 -07:00
core Studio: classify local video pipelines, harden video preflight, and gate custom-root sd.cpp removal on ownership 2026-07-07 03:15:07 +00:00
hub Fix Studio custom folders on Linux external drives (#6799) 2026-07-03 19:10:04 +01:00
loggers Studio: trim serving-log noise and surface llama-server engine stats (#6377) 2026-06-17 05:37:57 -07:00
models Merge remote-tracking branch 'origin/video-hunyuan-gate' into fold-integration 2026-07-07 01:15:20 +00:00
plugins Reduce and tighten code comments and docstrings repo-wide (#6095) 2026-06-08 23:09:51 -07:00
requirements Video inference engine: LTX-2 family registry, VideoBackend, MP4 gallery 2026-07-04 13:08:43 +00:00
routes Studio: defer chat GPU handoff, unload video before training, stage example imports, name-aware Wan GGUF video tag, and diffusion upload body passthrough 2026-07-07 04:08:41 +00:00
state Studio: shareable per-checkpoint preview links (#6486) 2026-06-24 06:31:53 -07:00
storage Fix Studio custom folders on Linux external drives (#6799) 2026-07-03 19:10:04 +01:00
tests Studio: defer chat GPU handoff, unload video before training, stage example imports, name-aware Wan GGUF video tag, and diffusion upload body passthrough 2026-07-07 04:08:41 +00:00
utils Auto Xet to HTTP download fallback in from_pretrained; share Studio's fallback via unsloth_zoo (#6638) 2026-07-06 05:13:25 -07:00
__init__.py Final cleanup 2026-03-12 18:28:04 +00:00
_platform_compat.py Reduce and tighten code comments and docstrings repo-wide (#6095) 2026-06-08 23:09:51 -07:00
cloudflare_tunnel.py Reap Studio child processes when the parent dies abnormally (#6425) 2026-06-18 05:51:22 -07:00
colab.py Studio Colab: opt-in shareable Cloudflare tunnel link (#6684) 2026-06-26 00:56:23 -07:00
main.py Studio: defer chat GPU handoff, unload video before training, stage example imports, name-aware Wan GGUF video tag, and diffusion upload body passthrough 2026-07-07 04:08:41 +00:00
run.py studio: explicit Cloudflare tunnel notice and public-exposure warning at startup (#6515) 2026-06-30 17:47:48 +02:00
startup_banner.py Fix Windows Studio UTF-8 startup handling (#6614) 2026-07-01 13:47:33 +01:00