Repository navigation
[Refactor] Unify the LTX-2 and LTX-2.3 pipeline runtime - #5147
Merged
Merged
Conversation
mglyn
marked this pull request as ready for review
July 16, 2026 11:07
mglyn
requested review from
Gaohan123,
Isotr0py,
RuixiangMa,
SamitHuang,
ZJY0516,
david6666666,
hsliuustc0106,
princepride,
wtomin,
xuechendi,
yenuo26 and
ywang96
as code owners
July 16, 2026 11:07
|
Codex usage limits have been reached for code reviews. Please check with the admins of this repo to increase the limits by adding credits. |
Contributor
Author
|
@TaffyOfficial @lishunyang12 please take a look. And also take a look at this #5148 |
Collaborator
|
LGTM now |
david6666666
approved these changes
Jul 20, 2026
Signed-off-by: mglyn <1203789601@qq.com>
Signed-off-by: mglyn <1203789601@qq.com>
Signed-off-by: mglyn <1203789601@qq.com>
Signed-off-by: mglyn <1203789601@qq.com>
Signed-off-by: mglyn <1203789601@qq.com>
Signed-off-by: mglyn <1203789601@qq.com>
Signed-off-by: mglyn <1203789601@qq.com>
Signed-off-by: mglyn <1203789601@qq.com>
Signed-off-by: mglyn <1203789601@qq.com>
Signed-off-by: mglyn <1203789601@qq.com>
Signed-off-by: mglyn <1203789601@qq.com>
Signed-off-by: mglyn <1203789601@qq.com>
Signed-off-by: mglyn <1203789601@qq.com>
y-null
pushed a commit
to y-null/vllm-omni
that referenced
this pull request
Jul 21, 2026
…#5147) Signed-off-by: mglyn <1203789601@qq.com> Signed-off-by: y_null <y_null@qq.com>
bowieshi
pushed a commit
to bowieshi/vllm-omni
that referenced
this pull request
Jul 22, 2026
…#5147) Signed-off-by: mglyn <1203789601@qq.com>
BruceLoveDecimal
added a commit
to BruceLoveDecimal/vllm-omni
that referenced
this pull request
Jul 26, 2026
Two main-side refactors broke SANA-WM serving after the rebase: * vllm-project#4922 removed ``DiffusionOutput.custom_output``; pipeline-specific payloads now travel in the ``{"payload": ..., "metadata": ...}`` envelope that ``normalize_diffusion_postprocess_output`` splits. Passing ``custom_output=`` raised ``TypeError`` on every request. Move the Stage-1 and refiner diagnostics into a ``sana_wm`` metadata group and read the Stage-1 latents back out of the envelope before handing them to the in-process refiner. * vllm-project#5147 moved ``create_transformer_from_config`` out of ``pipeline_ltx2`` into ``ltx2_components``. Because the two-stage pipeline builds its refiner in ``__init__``, the stale import path raised ``ImportError`` at server startup, before any request arrived. Verified on H20 (96 GB) against the converted diffusers checkpoint: server starts (65.7 GiB model load), ``POST /v1/videos/sync`` returns 200 with a valid MP4 for both a 9-frame/2-step smoke request (23.7 s) and the production 161-frame/60-step/CFG-5.0 request (236.4 s, 161 frames @ 1280x704, 16 fps, 83.3 GB peak). Signed-off-by: BruceLoveDecimal <liuqihao970610@gmail.com>
BruceLoveDecimal
added a commit
to BruceLoveDecimal/vllm-omni
that referenced
this pull request
Jul 28, 2026
Two main-side refactors broke SANA-WM serving after the rebase: * vllm-project#4922 removed ``DiffusionOutput.custom_output``; pipeline-specific payloads now travel in the ``{"payload": ..., "metadata": ...}`` envelope that ``normalize_diffusion_postprocess_output`` splits. Passing ``custom_output=`` raised ``TypeError`` on every request. Move the Stage-1 and refiner diagnostics into a ``sana_wm`` metadata group and read the Stage-1 latents back out of the envelope before handing them to the in-process refiner. * vllm-project#5147 moved ``create_transformer_from_config`` out of ``pipeline_ltx2`` into ``ltx2_components``. Because the two-stage pipeline builds its refiner in ``__init__``, the stale import path raised ``ImportError`` at server startup, before any request arrived. Verified on H20 (96 GB) against the converted diffusers checkpoint: server starts (65.7 GiB model load), ``POST /v1/videos/sync`` returns 200 with a valid MP4 for both a 9-frame/2-step smoke request (23.7 s) and the production 161-frame/60-step/CFG-5.0 request (236.4 s, 161 frames @ 1280x704, 16 fps, 83.3 GB peak). Signed-off-by: BruceLoveDecimal <liuqihao970610@gmail.com>
nagisa-kunhah
pushed a commit
to nagisa-kunhah/vllm-omni
that referenced
this pull request
Jul 30, 2026
…#5147) Signed-off-by: mglyn <1203789601@qq.com>
4 tasks done
khairulkabir1661
pushed a commit
to khairulkabir1661/vllm-omni
that referenced
this pull request
Sep 25, 2026
…#5147) Signed-off-by: mglyn <1203789601@qq.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Purpose
This PR consolidates the duplicated LTX-2 and LTX-2.3 implementations into a shared runtime while preserving each version's existing numerical behavior and public registry keys and package-level exports.
User-facing invocation is unchanged:
LTX2Pipeline,LTX2ImageToVideoPipeline,LTX23Pipeline, andLTX23ImageToVideoPipelineremain the--model-class-nameand registry entry names. The refactor only consolidates their internal module ownership under the shared LTX runtime; Python callers should use package-level imports such asfrom vllm_omni.diffusion.models.ltx2 import LTX23Pipelinerather than import the former implementation modules directly.Follow-up guidance, official-precision alignment, two-stage/HQ support, and subsequent LTX runtime work are tracked continuously in #4985.
The previous implementation maintained separate T2V/I2V pipelines for each model version, including duplicated request parsing, prompt conditioning, latent preparation, denoising, decoding, and output handling. That made fixes and runtime features easy to apply to one variant but miss on another.
The new structure provides:
diffusers/LTX-2.3-Diffuserscheckpoint.Test Plan
vLLM Version:
0.24.0vLLM-Omni Commit:
807e006c55d40d87f323c4930723f0ab4a1fa8f7Test Result
Unit-test consolidation
Tests now follow shared LTX responsibilities rather than duplicating a test
tree for each model version.
The consolidation removed 10 import/inheritance/layout assertions and one duplicate latent-padding case. Current HEAD then added 14 collected cases for shared request batching, every public post-process entry, distributed decode, LTX-2/LTX-2.3 parity, and two-stage phase compatibility.
test_ltx2_shared_pipeline.pytest_ltx2_pipeline.pytest_ltx2_3_pipeline.pytest_ltx2_pipeline.py,test_ltx2_latents.pytest_ltx2_3_image2video_pipeline.pytest_ltx2_conditioning.pytest_ltx2_3_forward_parallel.pytest_ltx2_parallel.py,test_ltx2_transformer.pytest_ltx2_cfg_parallel_adaptation.pytest_ltx2_latents.pytest_ltx2_3_vae_tiling.pytest_ltx2_vae.pytest_ltx2_hsdp.pytest_ltx2_transformer.pytest_ltx2_transformer.pytest_ltx2_transformer.pyCommands:
4x A100 80GB family feature sweep
Configuration:
512x384,25frames;3denoise steps and3saved requests per cell;HSDP4+Ulysses4, and TP4+VAE-patch4;
branches only.
Mean
stage_0_gen_msper request:torch.compileEvery cell completed all three requests and saved three videos. Compile cells
include first-request compilation because this smoke intentionally uses no
benchmark warmup.
Legacy LTX-2 distilled two-stage compatibility smoke
This PR preserves the pre-existing LTX-2 two-stage behavior: it accepts only a componentized distilled checkpoint and runs the existing latent-upsample flow. It does not claim general dev+LoRA, LTX-2.3, HQ, or two-stage feature-backend support. Those capabilities and their full feature matrix are deferred to the dedicated two-stage implementation.
Completed on one NVIDIA L20 with eager execution and layerwise offload. Both entries use the componentized distilled checkpoint,
256x192input,25frames, and x2 spatial latent upsample to512x384.ltx23_i2v_cfg_only512x768.mp4