unsloth/studio/backend/core/training
Daniel Han 7d15f202a4 Close the load-versus-training-start race, and two picker fixes
- The image and video load guards read is_active() and only then selected an
  engine, acquired the arbiter and registered the load. A /train/diffusion/start
  reserving inside that window freed residents the load had not registered yet,
  so the trainer came up beside a brand-new pipeline. The service already had
  exactly the right pattern for this in dataset_mutation, so gpu_load_admission
  mirrors it: reserve() refuses while an admission is open, an admission refuses
  once a start is reserved, both decided under the one lock. The span is only the
  registration, since begin_load returns as soon as the load is registered and
  _free_gpu_for_diffusion_training preempts an in-flight load from that point.
  Chat is deliberately not covered: its load spans an eviction plus a multi-minute
  GGUF load, and it admits models that fit beside training by design, which is a
  different contract from the diffusion pipeline's all-or-nothing one.

- Hugging Face gives the LTX-2 family the image-to-video pipeline_tag (both
  Lightricks/LTX-2 and unsloth/LTX-2.3-GGUF report it), so a text-to-video-only
  filter dropped the flagship audio family out of Video Hub search while the rest
  of the app routed it to Video.

- Task-scoped quant fit sized picks against the LARGEST visible device while
  resolve_diffusion_device_target returns a bare "cuda" and torch places on the
  current one. On a heterogeneous host that recommended a checkpoint sized for the
  bigger card and then loaded it onto the smaller one. Fit now uses the device the
  load actually lands on; identical on a homogeneous host.
2026-07-27 05:44:41 +00:00
..
__init__.py Reduce and tighten code comments and docstrings repo-wide (#6095) 2026-06-08 23:09:51 -07:00
diffusion_dit_trainer.py Invalidate latents on a VAE swap, keep a cut-off generation, surface the EMA adapter 2026-07-26 20:47:46 +00:00
diffusion_lora_trainer.py Trim the comments across the diffusion backend 2026-07-26 20:31:19 +00:00
diffusion_train_common.py Hide unloadable cached rows, hold the dataset interlock, bound a GIF export 2026-07-26 21:37:01 +00:00
diffusion_train_extras.py [pre-commit.ci] auto fixes from pre-commit.com hooks 2026-07-27 03:40:17 +00:00
diffusion_training_service.py Close the load-versus-training-start race, and two picker fixes 2026-07-27 05:44:41 +00:00
fsdp2_design_notes.md Tighten torchao configs and note the FSDP2 design for the DiT trainer 2026-07-20 07:22:49 +00:00
resume.py Fix resume training crash recovery and MLX checkpoints (#6796) 2026-07-21 02:34:58 -07:00
s3_dataset.py feat(studio): implement S3 dataset loading (completes #5951) (#6222) 2026-06-12 14:52:04 +02:00
trainer.py feat(studio): add DoRA support to studio (#7315) 2026-07-24 03:24:16 -07:00
training.py Trim the comments across the diffusion backend 2026-07-26 20:31:19 +00:00
worker.py AMD: CI coverage for recent fixes, plus three wrong gfx ids (#7431) 2026-07-25 18:58:02 -05:00