LTX2Pipeline: dynamic timestep shift `mu` is constant, ignores the actual sequence length
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 68/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Tranquilla
- Stack tecnologico
- python
- Ambito
- machine-learning
Direzione di ricerca
Inizia in src/diffusers/pipelines/ltx2/pipeline_ltx2.py, all’interno di LTX2Pipeline.call, e leggi i calcoli delle dimensioni latenti nelle vicinanze e la chiamata a calculate_shift. Conferma come viene derivata la lunghezza della sequenza impacchettata e confronta la logica analoga della pipeline Flux/SD3. È completato quando lo shifting dinamico utilizza la lunghezza effettiva della sequenza latente e varia in base alla risoluzione o al numero di frame.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
In LTX2Pipeline.__call__ (src/diffusers/pipelines/ltx2/pipeline_ltx2.py), mu is computed with max_image_seq_len passed as the first argument of calculate_shift — the image_seq_len parameter:
mu = calculate_shift(
self.scheduler.config.get("max_image_seq_len", 4096), # <-- this is image_seq_len; should be the sample's real sequence length
self.scheduler.config.get("base_image_seq_len", 1024),
self.scheduler.config.get("max_image_seq_len", 4096),
self.scheduler.config.get("base_shift", 0.95),
self.scheduler.config.get("max_shift", 2.05),
)
calculate_shift(image_seq_len, base, max, base_shift, max_shift) returns image_seq_len * m + b. With image_seq_len == max_seq_len, that reduces to max_shift, so mu is constant regardless of resolution or frame count — use_dynamic_shifting=True has no effect.
image_seq_len should be the sample's packed sequence length, latent_num_frames * latent_height * latent_width — which is already computed a few lines above (and even present as the commented line # video_sequence_length = latent_num_frames * latent_height * latent_width). This matches the Flux/SD3 pipelines and the LTX reference (math.prod(latent.shape[2:])).
Fix: pass latent_num_frames * latent_height * latent_width as the first argument.
- Lingua principale
- Python
- Stelle
- 34.6k
- Fork
- 7.4k
- Merge medio
- 3g 7h
- PR unite (30g)
- 73
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di huggingface/diffusers
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
huggingface/diffusers#14864 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
huggingface/diffusers#14837 ·
-
bug needs-env-info pipelines
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
huggingface/diffusers#14794 ·
-
bug needs-code-example needs-env-info pipelines
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 86/100
huggingface/diffusers#14780 · 1 commento ·
-
bug pipelines
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
huggingface/diffusers#14769 · 1 commento ·
Tutte le issue di huggingface/diffusers
Issue simili
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
stephrobert/dsoxlab#238 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
sublimehq/package_control#1780 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
nwg-piotr/nwg-displays#145 ·