Commit Graph

14321 Commits

Author SHA1 Message Date
Vladimir Mandic 6b499b7d17 cleanup
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-08-16 19:00:55 +02:00
Vladimir Mandic 7172fd3eb2 api auth for ws and api validate allowed paths
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-08-16 18:57:26 +02:00
Vladimir Mandic 290a620df3 update changelog
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-08-16 18:21:23 +02:00
Vladimir Mandic 8be5be487f Merge pull request #5028 from cjmcgee/fix/rocm-disable-mmap
fix(rocm): add option to load models without mmap
2026-08-16 18:19:38 +02:00
Vladimir Mandic ae8d559b50 swtich to igwn-segments
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-08-16 18:15:59 +02:00
Christopher McGee a9b9de63ab fix(rocm): add option to load models without mmap
On ROCm, host-to-device DMA from mmap'd safetensors pages stalls ~1s per
copy, so weights move to the GPU at ~27 MB/s instead of ~28 GB/s. With
offload enabled this re-copies weights every forward, so generation
appears to hang.

Adds `diffusers_disable_mmap` (Settings > Model Loading), off by default,
which makes diffusers read shards into anonymous memory instead. Costs
peak RAM equal to the model size, so it is opt-in.

SD3.5-large on RX 9070 (gfx1201), same prompt and steps:
  off: no image after 120s
  on:  image in 20s

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-16 11:46:07 -04:00
Vladimir Mandic 5b0a732db3 update codec presets
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-08-16 15:08:26 +02:00
Vladimir Mandic 0963bf54ac reduce group offload logging
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-08-16 12:45:50 +02:00
Vladimir Mandic ce418265e2 add lint full script
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-08-16 12:45:50 +02:00
Vladimir Mandic e3c57af560 pipeline init reordering
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-08-16 12:45:50 +02:00
Vladimir Mandic 76941efc7e strict typechecking
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-08-16 12:45:50 +02:00
Vladimir Mandic f30e6baa67 codespell
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-08-16 12:45:50 +02:00
Vladimir Mandic fbd0020ad4 refactor offloading
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-08-16 12:45:50 +02:00
Dity0 51a598bfc3 Enable smooth_k by default 2026-08-16 12:42:13 +03:00
Vladimir Mandic fd24630061 Merge pull request #5025 from vladmandic/fix/group-offload-roles
fix(offload): derive group offload roles structurally and unify dispatch
2026-08-16 09:06:13 +02:00
Vladimir Mandic 84eda5b9cf Merge branch 'dev' into fix/group-offload-roles 2026-08-16 09:06:01 +02:00
Vladimir Mandic cd25a5296a video loader use generic methods and auth
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-08-16 09:02:40 +02:00
CalamitousFelicitousness 79ea00257d fix(framepack): route placement through the offload dispatcher
The loader applied balanced offload directly, which places nothing when the
offload mode is not balanced, leaving every component on cpu where the load
parked it. The dispatcher places them under whichever mode is configured, and
the vae seams pair the balanced call with an on-demand sweep so the vae returns
to cpu once its outputs are materialized.
2026-08-15 21:30:52 +01:00
Vladimir Mandic 12bf006b00 improve state management
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-08-15 19:21:51 +02:00
Vladimir Mandic a6a6fb2aaa add minimax interpolation, video shift, audio shift
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-08-15 18:35:17 +02:00
Vladimir Mandic 87824ad0a3 update video codecs
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-08-15 14:23:18 +02:00
CalamitousFelicitousness 4a2d9c9720 test(offload): audit placement roles across the registered pipelines
Static inventory of every registered pipeline: component classes come from
the init type annotations, the component specs on modular pipelines, and
the video model definitions, so the real role function runs against real
classes with no weights loaded. The audit prints the role of every
component, lists which components turn resident under the shipped 22 GB
never-offload default, names the custom pipelines it cannot see, and
asserts that no component carries an undecorated entry point, that
opted-out classes route on-demand, and that every pipeline places a
per-step component.
2026-08-15 01:06:25 +01:00
CalamitousFelicitousness 09eeff30c7 refactor(settings): reorganize the offload settings by mode
The offload section interleaved shared and mode-specific options. The
page now reads top down: general options, an Offload Overrides section
holding the exclusions shared by balanced and group offload, then one
tuning section per mode. Use torch streams becomes Prefetch with streams
and Record torch streams becomes Overlap stream transfers, the section
headers carry hints, and the hints reflect live behavior, including
dropping the model-reload badge from options that apply on change.
2026-08-14 23:59:55 +01:00
CalamitousFelicitousness 3a17992060 test(offload): cover the group offload placement roles
Offline suite for the placement roles: the role table over the component
names sdnext loads, one dispatch arm per component with hooks landing on
text encoder wrappers, force sweeps scoped to stamped modules, a settings
change re-placing a resident component, on-demand contracts, enumeration
on both pipeline kinds, and the upstream markers the roles read.
2026-08-14 23:59:41 +01:00
CalamitousFelicitousness c95189bdda fix(mageflow): decorate the vae entry points for offload hooks
The mage vae defined plain encode and decode methods, leaving offload
hooks nothing to fire on when the pipeline enters through them. The
diffusers entry decorator routes both through the hook path, the same as
every stock autoencoder.
2026-08-14 23:59:35 +01:00
CalamitousFelicitousness 0d18bd9abe fix(offload): drive group offload from the offload settings
Group offload ignored the offload exclusion settings and its options took
effect only at the next model load. Components named by the never-offload
list or the model-type exclusion now stay resident on the accelerator,
with matching shared between the balanced hook and the group roles. The
offload options re-place loaded components when changed: group modes
re-run the placement pass, and balanced mode rebuilds its hook, which
snapshots the exclusion lists at construction.
2026-08-14 23:59:27 +01:00
CalamitousFelicitousness 15393b85ff fix(offload): scope force offload to managed components
The force sweep enumerated pipeline components and moved every module to
cpu, including components with no hook to bring them back. It now moves
only modules stamped for on-demand placement, walks the pipe variants
through the shared enumeration instead of the components property that can
raise, keeps going past a component that fails to move, and collects
garbage once per sweep rather than per module.
2026-08-14 23:58:57 +01:00
CalamitousFelicitousness 1cbc313fa5 fix(offload): derive group offload roles structurally and unify the dispatch
Group offload placed components by name matching, which sent every modular
text encoder through a second apply with the denoiser profile and missed
vae-class components not named vae. Placement now derives from the component:
an encode or decode entry bridge and an upstream group-offload opt-out both
take whole-module on-demand placement, an undecorated encode or decode entry
stays resident with a warning, denoiser slot names take the per-step profile,
and everything else takes the leaf profile. One pass serves classic and
modular pipelines, enumerating modular components from their specs, with
hooks landing on text encoder wrappers rather than their inner models. A
signature sentinel marks a component mid-apply; a failed apply is torn down
on the next pass. The pass logs the placement of every component.
2026-08-14 23:58:24 +01:00
Vladimir Mandic 807a9be6b5 del audio after processing
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-08-14 16:03:45 +02:00
Vladimir Mandic b0649e0ec1 group offloading changes
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-08-14 15:59:51 +02:00
Vladimir Mandic ba62df4851 cleanup
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-08-14 13:13:09 +02:00
Vladimir Mandic f8c86d0d57 change video defaults
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-08-14 12:16:22 +02:00
Vladimir Mandic 1b0bb95b25 update changelog
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-08-14 11:04:26 +02:00
Vladimir Mandic d677533a81 Merge pull request #5020 from vladmandic/feat/ltx-2.5
Feat/ltx 2.5
2026-08-14 10:51:57 +02:00
Vladimir Mandic 80b072c426 Merge branch 'dev' into feat/ltx-2.5 2026-08-14 10:51:44 +02:00
Vladimir Mandic 85d6bcd8f5 Merge pull request #5024 from liutyi/dev
MiniMax H3 pruned (20B) reference image
2026-08-14 10:46:05 +02:00
Vladimir Mandic ce69dd4f17 image metadata handle correct image index
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-08-14 10:44:56 +02:00
Oleksandr Liutyi f9ecd2287f MiniMax H3 pruned (20B) reference image 2026-08-14 08:25:44 +00:00
Vladimir Mandic 0ac89385a0 timers reporting
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-08-14 09:18:24 +02:00
CalamitousFelicitousness f6607e8922 fix(hub): install the token header hijack at startup
Implicit tokens are disabled process-wide, so the hijack that re-attaches the
token explicitly is what keeps gated repos reachable. It was installed by the
checkpoint loader and the caption paths, so loading a video model into a fresh
session sent unauthenticated requests and gated repos answered 401.
2026-08-14 03:39:01 +01:00
CalamitousFelicitousness 5cb6efea34 fix(ltx): apply the 2.5 stage-2 lora to the text connectors
The stage 2 LoRA stores its connector deltas as
diffusion_model.{video,audio}_embeddings_connector, but
LTX2LoraLoaderMixin.lora_state_dict recognizes connectors only under the 2.3
text_embedding_projection prefix. All 3544 keys are routed into the transformer
namespace and peft drops the 224 that land nowhere, leaving refine with a
transformer-only adapter.

Wrapping lora_state_dict moves those keys onto the connectors component using
the rename table from the convert_ltx2_to_diffusers script. The wrapper is inert
once no misrouted keys appear, so it needs no version check.
2026-08-14 03:39:01 +01:00
CalamitousFelicitousness 5814d5c4b3 feat(ltx): add the ltx-2.5 model family
2.5 reuses the LTX-2 pipeline classes, so it is described through the
capability table: Gemma 4 text encoder, cross-timestep conditioning, and the
upsampler and stage 2 LoRA that now ship inside the model repo. The repo
carries the distilled scheduler config, so Dev rows restore the terminal
shift, and the Dev transformer sits in transformer_full.

Distilled rows stop forcing dynamic shifting on, which remapped their sigma
schedule. Auto duration hands the clip length to the duration head.
2026-08-14 03:39:01 +01:00
CalamitousFelicitousness 0d1882eca4 fix(video): keep text encoder dedup out of the registry rows
The shared repo was written back onto the registry row, a module-level
singleton, so turning the setting off left the row pointing at the shared copy
for the rest of the session. It is chosen into locals instead.
2026-08-14 03:39:01 +01:00
CalamitousFelicitousness f01e752b06 fix(video): take the audio rate from the loaded vocoder
Pipelines rarely report a sample rate, so the save path fell back to 24000.
LTX-2.3 and 2.5 run at 48k, and muxing at half the rate drops the track an
octave. The rate now comes from the vocoder, as the LTX tab already did.
2026-08-14 03:39:01 +01:00
CalamitousFelicitousness 780495ff2e feat(video): allow a transformer folder to load into another argument
The subfolder name doubles as the pipeline argument, so a repo shipping a
second transformer beside the default one had no way to load it: the argument
was dropped and the default weights stayed. dit_kwarg names the argument when
it differs from the folder.
2026-08-14 03:39:01 +01:00
CalamitousFelicitousness 45fc1a0243 fix(ltx): scope cached upsamplers and scheduler overrides to the run
The sampler shift override looked for flow_shift, which only UniPC-style
schedulers declare, so it never reached the flow-match schedulers 2.x uses.
Config keys are now restored only when the run wrote them, and a cached
upsampler is rebuilt once its repo or the model's VAE changes.
2026-08-14 03:39:01 +01:00
CalamitousFelicitousness 935c275d50 chore(deps): bump diffusers for ltx-2.5
Adds the Gemma 4 text encoder, the duration head and the diffusion decoder.
Pipeline classes are unchanged, so 2.0 and 2.3 load as before.

Image conditioning is now re-compressed to match training, at CRF 18 for 2.5
and 33 for earlier versions.
2026-08-14 03:39:01 +01:00
CalamitousFelicitousness 5735b8f47d fix(ltx): pin guidance and cross-timestep on every 2.x call path
Some paths left both to pipeline defaults, which track the current upstream
model: distilled picked up guidance it already bakes in, and 2.0 could land on
2.3's joint-sigma path.
2026-08-14 03:39:00 +01:00
CalamitousFelicitousness 5c495c29cd fix(video): assign the loaded modular pipeline to the model slot
The modular branch returned the pipe instead of assigning it, so the video
tab and the API failed with "model not loaded" and the whole post-load tail
was skipped along with it.
2026-08-14 01:27:53 +01:00
CalamitousFelicitousness ca7f2cc01f fix(video): hide minimax from the generic engine dropdown 2026-08-14 01:15:40 +01:00