Commit Graph

13129 Commits (dev)

Author SHA1 Message Date
Vladimir Mandic 1b5378eec6 history dont append video frames
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-04-24 09:38:11 +02:00
Vladimir Mandic b39f8c2a60
Merge pull request #4792 from awsr/minifixes
Typing, import, and UI file setup updates
2026-04-24 08:12:36 +02:00
awsr e9d74cea72
Fix typing 2026-04-23 16:49:50 -07:00
awsr 09f5fc6e03
Update `concurrent.futures` imports
Python 3.14 adds `concurrent.interpreters` and we don't need to import that here.
2026-04-23 16:49:31 -07:00
awsr e9781dac96
Import cleanup
- Remove unused import.
- Organize imports.
2026-04-23 16:27:36 -07:00
awsr bea726b5b3
Slightly improve console trace readability
- Shorten cache busting string to take up less room in the browser console.
2026-04-23 16:25:11 -07:00
awsr 6bb003126f
Cleanup
- Use correct module access names.
- Remove old commented-out line.
2026-04-23 16:21:40 -07:00
awsr f39f48ce13
Don't send `None` to `html_css` function 2026-04-23 16:13:20 -07:00
Vladimir Mandic b472433a1d
Merge pull request #4790 from awsr/ts2utc-fix
Fix invalid ts2utc behavior
2026-04-23 23:10:53 +02:00
awsr b99083425a
Fix invalid ts2utc behavior 2026-04-23 12:50:14 -07:00
Vladimir Mandic f3bfa4d92c
Merge pull request #4789 from awsr/fix-counter
Fix token estimate counter
2026-04-23 13:25:23 +02:00
vladmandic 40e550f1c3 add timer info
Signed-off-by: vladmandic <mandic00@live.com>
2026-04-23 12:49:41 +02:00
awsr 1d5154e125
Don't display empty groups 2026-04-22 15:26:13 -07:00
awsr b18de2e9b5
Fix display typo 2026-04-22 15:25:56 -07:00
vladmandic 21b34a6fa7 update todo/changelog and submodules
Signed-off-by: vladmandic <mandic00@live.com>
2026-04-21 22:24:59 +02:00
vladmandic ab7fd5b5e6 cleanup
Signed-off-by: vladmandic <mandic00@live.com>
2026-04-21 19:45:51 +02:00
vladmandic db670b8bca fix sdnq-lora
Signed-off-by: vladmandic <mandic00@live.com>
2026-04-21 19:44:18 +02:00
vladmandic 27a5c92b41 update packages
Signed-off-by: vladmandic <mandic00@live.com>
2026-04-21 19:28:03 +02:00
vladmandic ba1f207cc6 update changelog and submodules
Signed-off-by: vladmandic <mandic00@live.com>
2026-04-21 19:24:24 +02:00
Vladimir Mandic a4fc69133a
Merge pull request #4783 from vladmandic/feat/ltx-tab-unification
Feat/ltx tab unification
2026-04-21 19:16:28 +02:00
Vladimir Mandic 4bed3af6e7
Merge branch 'dev' into feat/ltx-tab-unification 2026-04-21 18:54:50 +02:00
vladmandic 2f4fe4afe2 update logging
Co-authored-by: Copilot <copilot@github.com>
Signed-off-by: vladmandic <mandic00@live.com>
2026-04-21 18:31:58 +02:00
vladmandic e70e559dce sync kanvas branch on startup
Signed-off-by: vladmandic <mandic00@live.com>
2026-04-21 17:14:11 +02:00
vladmandic ab145c4a1c update kanvas
Signed-off-by: vladmandic <mandic00@live.com>
2026-04-21 17:07:37 +02:00
Vladimir Mandic 0ad6582170
Merge pull request #4786 from awsr/json-helper-typing
JSON helper update
2026-04-21 15:09:50 +02:00
awsr 45bdda9fb7
Simplify code and run formatting 2026-04-21 04:24:29 -07:00
CalamitousFelicitousness 67c77f7c4f feat(ltx): default Refine on for Dev 2.x T2V/I2V
Lightricks' production recipe for Dev is Stage 1 + 2x upsample + Stage 2
refine. Until now the UI reset Refine to False on every model change, so
users picking Dev got a single-pass generation that does not match the
recommended flow. Default Refine to on for variants that support the
canonical Stage 2 recipe; multi-condition variants stay off.
2026-04-21 02:46:40 +01:00
CalamitousFelicitousness f72f89c993 chore(ltx): silent=True on run-internal offload walks
Modules already inventoried at load time; repeating the six-line dump at
each upsample or refine boundary is redundant. silent=True suppresses
the per-module DEBUG lines; op=init and Model class= INFO stay intact.
2026-04-21 02:14:52 +01:00
CalamitousFelicitousness b58f0ae282 fix(ltx): exclude shared VAE from upsample pipe balanced_offload
The upsample pipes receive shared.sd_model.vae as a constructor formality;
the forward pass is pure latent to latent. Main pipe already owns that
VAE's accelerate hook lifecycle, so walking it again from the upsample
pipe raises "Cannot copy out of meta tensor" when the main pipe has
offloaded params to meta. Skip it in the walk.
2026-04-21 02:13:58 +01:00
CalamitousFelicitousness f79e466183 refactor(ltx): rename temp_scheduler_opts to ltx_scheduler_opts
Per PR #4783 review; namespace the helper with the module.
2026-04-21 02:13:09 +01:00
awsr 35aab83ee0
Improve compatibility and add relevant typing 2026-04-20 14:45:34 -07:00
Vladimir Mandic de0af224ab
Merge pull request #4785 from awsr/callback-guard
Implement callback guards
2026-04-20 10:41:48 +02:00
vladmandic 9193391030 update splash logger
Signed-off-by: vladmandic <mandic00@live.com>
2026-04-20 09:18:46 +02:00
vladmandic 72b44f50fa fix typo and update kanvas
Signed-off-by: vladmandic <mandic00@live.com>
2026-04-20 08:12:21 +02:00
CalamitousFelicitousness 7be6250b7a refactor(ltx): extract temp_scheduler_opts context manager
Collapses the scheduler + shared.opts snapshot/mutate/restore block in
run_ltx into a single `with temp_scheduler_opts(...)` statement. Same
five pieces of state are snapshotted and restored as before; the
mechanism is unchanged per PR #4783 thread 2 feedback, only readability.
2026-04-20 00:28:30 +01:00
CalamitousFelicitousness 7e5d040c4c refactor(ltx): address PR #4783 review threads 1, 3-6
LTXCaps gains a `variant` field ('0.9', '2.0', '2.3') replacing
`is_ltx_2_3`; variant-specific branches check `caps.variant == '2.3'`
instead of grepping the model name.

ltx_util.load_upsample_2x mirrors load_upsample's contract so the 2.x
path owns a module-level cache and stops reloading ~2.3 GB every run.
The cached pipe is stamped with a synthetic
`CheckpointInfo('ltx-upsampler-2.x')` so it gets its own OffloadHook
slot and can go through apply_balanced_offload without invalidating
the main pipe's module map. The hardcoded `.to('cpu')` and post-pass
torch_gc are gone; the second apply_balanced_offload handles spill.

video_overrides comment on OzzyGT LTX-2.3 connectors states plainly
that mirrors pack weights twice by design; ignore_patterns is the
surgical workaround, not an hf_hub bug.

Drive-by: load_upsample log line used `__class__.__name__` (always
'type'); switched to `__name__`.
2026-04-20 00:26:15 +01:00
awsr 31a7d19766
Implement callback guards 2026-04-19 15:13:22 -07:00
Vladimir Mandic 4c2f49d9ef
Merge pull request #4784 from liutyi/dev
re-creating ERNIE covers. again.
2026-04-19 17:17:07 +02:00
vladmandic 9b940d09df update changelog
Co-authored-by: Copilot <copilot@github.com>
Signed-off-by: vladmandic <mandic00@live.com>
2026-04-19 16:17:04 +02:00
vladmandic 6128e0f84b ui performance optimizations
Co-authored-by: Copilot <copilot@github.com>
Signed-off-by: vladmandic <mandic00@live.com>
2026-04-19 16:14:19 +02:00
vladmandic 271a3421d6 ui init error handler
Co-authored-by: Copilot <copilot@github.com>
Signed-off-by: vladmandic <mandic00@live.com>
2026-04-19 12:01:16 +02:00
Oleksandr Liutyi 61874da85a re-creating ERNIE covers. again. 2026-04-19 08:58:36 +00:00
vladmandic 7b96a2ca69 update changelog
Signed-off-by: vladmandic <mandic00@live.com>
2026-04-19 10:18:48 +02:00
Vladimir Mandic 54785eeb9f
Merge pull request #4782 from awsr/scripts-js-update
Minor update to `script.js`
2026-04-19 09:15:28 +02:00
CalamitousFelicitousness ef00f93570 fix(video): drop empty Model URL accordion on generic tab 2026-04-19 04:52:15 +01:00
CalamitousFelicitousness 44759f5f92 refactor(video): per-engine self-contained tab layout
Each engine tab (Generic, FramePack, LTX) now owns its own size, seed,
frame count, and init imagery. The previously shared Size and Inputs
subtabs are removed; persistent encoding settings move to a single
Output subtab constructed first so engine tabs can consume its widgets.
FramePack drops its local fps/interpolate sliders and consumes the
shared Output widgets; LTX drops the redundant shared init_image
parameter and keeps only its own ltx_init_image, with run_ltx's
condition_image fallback removed in turn.
2026-04-19 04:38:47 +01:00
CalamitousFelicitousness 19b930a221 feat(video): hide LTX engine from general video tab dropdown
The LTX tab owns LTX generation; keep the general video engine dropdown
from listing LTX so users have a single entry point per engine.
2026-04-19 03:42:51 +01:00
CalamitousFelicitousness 318a5397dc feat(ltx): dynamic_shift checkbox and refine_strength gate
Wire the dynamic_shift checkbox into _model_change so its value resets
to caps.default_dynamic_shift on model swap, and narrow the
refine_strength interactive gate to the 0.9.x family. On 2.x refine_strength
is unused: Distilled runs a pre-baked sigma schedule, Dev runs the
canonical Stage 2 distilled-LoRA schedule, neither consumes the slider.
2026-04-19 03:37:59 +01:00
CalamitousFelicitousness 5cf46d2f81 feat(ltx): canonical LTX-2.x Stage 2 recipe (LoRA + guidance + connectors)
Implement the Lightricks two-stage recipe (diffusers PR #13217) for the
LTX-2.x Dev family: Stage 1 at half-res with full four-way guidance,
2x latent upsample, Stage 2 with distilled LoRA + scheduler swap + identity
guidance on STAGE_2_DISTILLED_SIGMA_VALUES.

Extends to both LTX-2.0 and LTX-2.3 Dev via per-family distilled-LoRA
repos carried on the caps; Distilled variants take the same flow minus
the LoRA swap. Auto-couples Refine with a fixed 2x upsample on any Dev
variant with a known LoRA when the user enables Refine without Upsample.

- caps: is_ltx_2_3, use_cross_timestep, default_dynamic_shift,
  stage2_dev_lora_repo, supports_canonical_stage2, modality_default_scale,
  guidance_rescale_default; LTX-2.x defaults realigned to canonical
  cfg=3.0 / steps=30; per-variant STG block and four-way guidance wired
  for non-distilled 2.x
- process: canonical Stage 1/Stage 2 helpers, scheduler + opts snapshot
  under try/finally, per-family upsampler repo, audio latents threaded
  from Stage 1 into Stage 2, use_cross_timestep gated per caps
- overrides: skip the redundant unsharded LTX-2.3 connectors blob and
  share LTX2TextConnectors weights across 2.3 variants when te_shared_t5
- load: Gemma3 shared-TE path for LTX-2.3; gate use_dynamic_shifting=False
  override to 0.9.x only so LTX-2.x stays on its canonical token-count
  dynamic shift
2026-04-19 03:37:25 +01:00
CalamitousFelicitousness 05abd99285 fix(video): invalidate ltx cache on pipe-class mismatch
Move cache tracking from ltx_util into video_load where shared.sd_model
lives, and invalidate the name-based hit when the cached class no longer
matches the current pipeline (e.g. after Unload Models triggers an
auto-reload of the default checkpoint).

- Drop the duplicate module-level loaded_model cache in ltx_util
- Add a pipe-class isinstance check around the cache hit in video_load
2026-04-19 03:36:16 +01:00