Commit graph

6,851 commits

Author SHA1 Message Date
pre-commit-ci[bot]
f6cdcd3f12 [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2026-07-06 15:00:27 +00:00
Daniel Han
c6f21a11fd Do not advertise a video GGUF arch that has no registered family
_arch_to_task mapped every arch in _VIDEO_GGUF_ARCHS to text-to-video, so a cached wan GGUF was
surfaced in the Video picker even though no Wan VideoFamily is registered in this build, and
selecting it 400s on load. Gate the video task on detect_video_family actually resolving the
arch: an unregistered video arch (wan here) falls to the unsupported bucket (hidden from chat and
the Video/Images pickers) until its family lands, so the picker never offers a GGUF that cannot
load. Correct in both stacked video PRs (ltxv resolves; wan resolves only once its family exists).
2026-07-06 14:59:51 +00:00
pre-commit-ci[bot]
092dae8f58 [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2026-07-06 14:41:49 +00:00
Daniel Han
26aeaf52ff Resolve picked GGUFs from every cache root; hide the dead Reapply button on refresh
Two follow-ups to the video-tab review fixes:
- the cached-hub arch fallback only probed the active HF cache, but the cached-gguf picker
  scans the active, legacy, and default cache roots; a GGUF cached in a non-active root was
  offered yet 400d on load. Probe all three roots.
- on a mount/refresh with a model already resident, status.loaded made the Reapply button render
  but lastLoad (set only by our own loads) was null, so clicking it silently did nothing. Track a
  session reapply descriptor and hide the button when it is absent rather than offer a dead control.
2026-07-06 14:41:11 +00:00
Daniel Han
bb937296e7 Guard in-flight video loads from deletion, resolve cached hub GGUFs by arch, seed gen controls
Three video-tab fixes:
- delete-cached refused a loaded video repo but not one a background load is still downloading
  (status().loaded is False in that window); add VideoBackend.loading_repo_ids() mirroring the
  image backend and check it in the route so deleting mid-download can no longer yank blobs.
- the cached-gguf picker tags a cached HUB GGUF by its general.architecture, but the loader's
  arch fallback only read a LOCAL file, so an opaquely-named cached hub LTX GGUF the picker
  offered 400d on load; read the arch from the cached blob (network-free) too.
- on a mount with a model already loaded (refresh / load from another client) steps and guidance
  stuck at the pre-load default, so a base checkpoint silently generated a degraded clip; seed
  them from the backend-authoritative status.defaults once per newly-loaded model.
2026-07-06 14:14:51 +00:00
pre-commit-ci[bot]
37ed4efaa6 [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2026-07-06 11:59:39 +00:00
Daniel Han
5e9b90f19c Guard loaded video GGUFs from deletion; resolve local GGUF family by arch
- delete_cached_model guarded chat (llama.cpp/transformers) and Images but not the
  Video backend, so a loaded video GGUF (which shares the On-Device GGUF delete UI)
  could be removed from under a live pipeline. Add the mirror guard on
  get_video_backend().status().
- The Video picker admits a local GGUF by its general.architecture, but the loader
  detected the family only from path/name tokens, so a renamed ltxv file (e.g.
  model.gguf) was offered yet failed validate_load_request with a 400. _detect_load_family
  now falls back to reading the arch (its string is a family alias) when name detection
  misses, so the loader accepts exactly what the picker offered; an unsupported video arch
  (wan) still resolves to None and 400s as before.
2026-07-06 11:59:03 +00:00
Daniel Han
35c1bc2135 Merge remote-tracking branch 'origin/video-inference' into video-tab 2026-07-05 12:11:31 +00:00
Daniel Han
609e0f48ae Merge remote-tracking branch 'origin/diffusion-more-families' into video-inference 2026-07-05 12:11:30 +00:00
Daniel Han
f307131819 Studio: reject transformer-only loads for Ideogram 4 and size local fp8 mirrors
Ideogram 4 assembles two DiTs per-component (a conditional transformer plus a
separate unconditional_transformer), so there is no transformer-only single-file
or GGUF artifact that could supply both. Add a pipeline_only family flag and
reject the gguf/single_file kinds in validate_load_request, before a load evicts
the current model, instead of assembling a pipeline missing its second DiT.

Extend the fp8 bf16-resident size override to a LOCAL directory mirror of the
ideogram-4-fp8 base: such a path never string-matches base_repo, so detect the
fp8 layout from the transformer shard headers (a *.weight_scale marker) and
reserve the bf16 footprint, matching the remote-base behaviour. A local nf4
mirror has no fp8 scales and correctly stays planned against its compressed bytes.
2026-07-05 12:08:45 +00:00
Daniel Han
3d19b0f137 Merge remote-tracking branch 'origin/video-inference' into video-tab 2026-07-05 11:52:47 +00:00
Daniel Han
9862ccc85a Merge remote-tracking branch 'origin/diffusion-more-families' into video-inference 2026-07-05 11:52:46 +00:00
Daniel Han
e741935626 Merge remote-tracking branch 'origin/diffusion-auto-badges' into diffusion-more-families 2026-07-05 11:52:45 +00:00
Daniel Han
cc23062077 Merge remote-tracking branch 'origin/diffusion-auto-install' into diffusion-auto-badges 2026-07-05 11:52:43 +00:00
Daniel Han
4373ebc13b Merge remote-tracking branch 'origin/diffusion-fp16-accum' into diffusion-auto-install 2026-07-05 11:52:34 +00:00
Daniel Han
6154ecb618 Merge remote-tracking branch 'origin/diffusion-auto-policy' into diffusion-fp16-accum 2026-07-05 11:52:33 +00:00
Daniel Han
23ade68c51 Merge remote-tracking branch 'origin/diffusion-train-perf2' into diffusion-auto-policy 2026-07-05 11:52:32 +00:00
Daniel Han
d6ce610324 Merge remote-tracking branch 'origin/diffusion-krea2' into diffusion-train-perf2 2026-07-05 11:52:30 +00:00
Daniel Han
099357cf40 Merge remote-tracking branch 'origin/diffusion-train-tab-2' into diffusion-krea2 2026-07-05 11:52:29 +00:00
Daniel Han
303d38cf98 Merge remote-tracking branch 'origin/diffusion-train-precision' into diffusion-train-tab-2 2026-07-05 11:52:28 +00:00
Daniel Han
78a6ad3fff Merge remote-tracking branch 'origin/diffusion-train-perf' into diffusion-train-precision 2026-07-05 11:52:27 +00:00
Daniel Han
59bf54e975 Merge remote-tracking branch 'origin/image-generation' into diffusion-train-perf 2026-07-05 11:52:25 +00:00
Daniel Han
e2e10c4ee9 Merge branch 'diffusion-auto-install' of https://github.com/unslothai/unsloth into diffusion-auto-install 2026-07-05 11:48:48 +00:00
Daniel Han
9d3a1d3ff7 Invalidate import caches after a wheel install so the new kernel is importable
A successful on-demand wheel install writes into site-packages after the
import system already cached that directory's listing, so the very next
find_spec / import in the same process can miss the freshly installed
package when the install lands within the directory mtime's resolution.
That silently falls set_attention_backend back to native on first use.
Call importlib.invalidate_caches() after a successful install so the
kernel is picked up immediately, and cover both the success and failure
paths in the attention installer tests.
2026-07-05 11:48:34 +00:00
pre-commit-ci[bot]
715a18824b [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2026-07-05 11:47:57 +00:00
pre-commit-ci[bot]
225b899587 [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2026-07-05 11:47:22 +00:00
pre-commit-ci[bot]
31f04c026e [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2026-07-05 11:46:48 +00:00
pre-commit-ci[bot]
995ce8ac5f [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2026-07-05 11:46:16 +00:00
pre-commit-ci[bot]
d398978349 [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2026-07-05 11:45:40 +00:00
pre-commit-ci[bot]
1d4cf1d6aa [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2026-07-05 11:45:05 +00:00
pre-commit-ci[bot]
a45b4b2ec3 [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2026-07-05 11:44:30 +00:00
pre-commit-ci[bot]
83bc33d04a [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2026-07-05 11:43:58 +00:00
pre-commit-ci[bot]
293b770c78 [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2026-07-05 11:43:23 +00:00
pre-commit-ci[bot]
9caab52bfd [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2026-07-05 11:42:50 +00:00
pre-commit-ci[bot]
1a72a06b1d [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2026-07-05 11:42:17 +00:00
pre-commit-ci[bot]
d6703962d3 [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2026-07-05 11:41:43 +00:00
pre-commit-ci[bot]
e800675128 [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2026-07-05 11:40:35 +00:00
Daniel Han
cbfb1388f7 Merge branch 'video-inference' into video-tab 2026-07-05 11:39:47 +00:00
Daniel Han
84bbc9d5a5 Merge branch 'diffusion-more-families' into video-inference 2026-07-05 11:39:46 +00:00
Daniel Han
2e3bd9b393 Merge branch 'diffusion-auto-badges' into diffusion-more-families 2026-07-05 11:39:35 +00:00
Daniel Han
af76745353 Merge branch 'diffusion-auto-install' into diffusion-auto-badges 2026-07-05 11:39:34 +00:00
Daniel Han
3c4dd8d118 Merge branch 'diffusion-fp16-accum' into diffusion-auto-install 2026-07-05 11:39:32 +00:00
Daniel Han
ac90e6cdab Merge branch 'diffusion-auto-policy' into diffusion-fp16-accum 2026-07-05 11:39:31 +00:00
Daniel Han
a20049bfc0 Merge branch 'diffusion-train-perf2' into diffusion-auto-policy 2026-07-05 11:39:30 +00:00
Daniel Han
66387c1533 Merge branch 'diffusion-krea2' into diffusion-train-perf2 2026-07-05 11:39:16 +00:00
Daniel Han
f543af6d27 Merge branch 'diffusion-train-tab-2' into diffusion-krea2 2026-07-05 11:39:15 +00:00
Daniel Han
5979d68a03 Merge branch 'diffusion-train-precision' into diffusion-train-tab-2 2026-07-05 11:39:14 +00:00
Daniel Han
2d466df322 Merge branch 'diffusion-train-perf' into diffusion-train-precision 2026-07-05 11:39:12 +00:00
Daniel Han
b88d0d49b8 Merge branch 'image-generation' into diffusion-train-perf 2026-07-05 11:39:11 +00:00
Daniel Han
fc1e099124 Harden ControlNet loads, thumbnail cache keys, API training guard, and picker roving keys
Review follow-ups on the image-generation PR:

- ControlNet: resolve_controlnet accepts a bare owner/name repo without the
  non-GGUF base trust gate, and _controlnet_pipe hands it straight to
  from_pretrained. A malicious pickle .bin would deserialize on load, so run
  the same Hugging Face malware preflight (evaluate_file_security) the chat and
  export loaders use before any remote ControlNet load; local dirs are exempt.
- Dataset thumbnails: key the cache on the full filename instead of the stem so
  sample.png and sample.jpg no longer collide on one .thumbs file (which could
  serve or delete the wrong image); the delete cleanup globs the same key.
- Diffusion training start: mirror start_training's API-key guard so an API
  client cannot start training (which frees VRAM by unloading chat) while an
  inference request is streaming; it now returns 409 before any GPU is freed.
- Model picker: include the curated safetensors row keys in the recommended
  roving key list so arrow-key navigation reaches those rows instead of hitting
  the duplicate option-missing id.

Tests: ControlNet malware gate (remote blocked before from_pretrained, local
skipped), thumbnail same-stem cache separation, API-key diffusion-start 409
before GPU free. Full diffusion suites green.
2026-07-05 11:36:58 +00:00