diff --git a/examples/inference/basic/V2_PORTING_STATUS.md b/examples/inference/basic/V2_PORTING_STATUS.md index e58eecee6..266c180c2 100644 --- a/examples/inference/basic/V2_PORTING_STATUS.md +++ b/examples/inference/basic/V2_PORTING_STATUS.md @@ -55,7 +55,10 @@ Wan2.1 model — covered by wan21; those runtime modes are out of scope. | `basic_ltx2_3_distilled_i2v*.py` | LTX-2.3-Distilled I2V | Image conditioning on the ltx2 single-stage program (encode the input image + condition the denoise). | ## Backlog — goal: port ALL fastvideo models (63 total: 8 ported · 21 reuse-arch · 34 new-arch) -Ported (8): the 7 above + **Wan2.1-T2V-14B** (bucket B — reuses the Wan recipe/adapter; 720p defaults). +Ported (11): the 7 above + **Wan2.1-T2V-14B** + the **Wan2.1 i2v cluster** — Wan2.1-Fun-1.3B-InP +(GPU-verified: CLIP encoder + first-frame [mask|cond] -> 36ch DiT) and Wan2.1-I2V-14B-480P/720P (reuse the +same i2v card; 14B weights GPU-pending). i2v required a real sub-system: the image-encoder adapter, the +loop's i2v conditioning hooks, and the Wan adapter's 36ch concat (all landed + T2V-unregressed). ⚠️ Not as trivial as the bucket split implies: the `FastVideo/*` distilled checkpoints (FastWan DMD, VSA, Turbo) carry **gated-attention params** (`to_gate_compress`) the generic `WanTransformer3DModel` loader diff --git a/v2/registry.py b/v2/registry.py index a05c7a96b..298325d35 100644 --- a/v2/registry.py +++ b/v2/registry.py @@ -55,9 +55,16 @@ def _entries() -> list[ModelEntry]: return [ ModelEntry(("Wan-AI/Wan2.1-T2V-1.3B-Diffusers",), build_wan21_card, build_wan_t2v_program), ModelEntry(("Wan-AI/Wan2.1-T2V-14B-Diffusers",), build_wan_t2v_14b_card, build_wan_t2v_program), - # Wan2.1 i2v (Fun-InP): CLIP image encoder + first-frame VAE conditioning ([mask|cond] -> 36ch DiT). + # Wan2.1 i2v cluster: CLIP image encoder + first-frame VAE conditioning ([mask|cond] -> 36ch DiT). + # Fun-1.3B-InP is GPU-verified; the 14B variants reuse the same i2v card/path (weights GPU-pending). ModelEntry(("weizhou03/Wan2.1-Fun-1.3B-InP-Diffusers",), build_wan21_i2v_card, build_wan21_i2v_program), + ModelEntry(("Wan-AI/Wan2.1-I2V-14B-480P-Diffusers",), + lambda: build_wan21_i2v_card("wan2.1-i2v-14b-480p", flow_shift=3.0, height=480, width=832), + build_wan21_i2v_program), + ModelEntry(("Wan-AI/Wan2.1-I2V-14B-720P-Diffusers",), + lambda: build_wan21_i2v_card("wan2.1-i2v-14b-720p", flow_shift=5.0, height=720, width=1280), + build_wan21_i2v_program), ModelEntry(("Wan-AI/Wan2.2-TI2V-5B-Diffusers",), build_wan22_ti2v_card, build_wan_t2v_program), ModelEntry(("Wan-AI/Wan2.2-T2V-A14B-Diffusers",), build_wan22_a14b_card, build_wan_t2v_program), ModelEntry(("wlsaidhi/SFWan2.1-T2V-1.3B-Diffusers",), build_wan_causal_card, build_wan_causal_program),