- Wan2.2-TI2V-5B reuses the Wan adapters (WanTransformer3DModel / AutoencoderKLWan / UMT5); deltas are the higher-compression VAE geometry (z_dim=48, 16x spatial, 4x temporal) and 480p flow-shift 5.0. The DiT forward accepts a scalar timestep (1D path), so no per-frame expand_timesteps for pure t2v. - WanDenoiseLoop / build_wan21_card gain optional geometry params (latent_channels/spatial_ratio/ temporal_ratio) defaulting to Wan2.1 (16/8/4) -> wan21 path unchanged; build_wan22_ti2v_card sets 48/16/4. Registered as family 'wan2.2-ti2v' in VideoGenerator; v2_basic_wan2_2_ti2v.py added (T2V). - Verified: 25x448x768 mp4, std 62.3, inter-frame motion 4.89 (coherent). CPU suite green (202+2skip). - Corrected the now-disproven FastWan='wan21 reuse' mapping (its DMD checkpoint to_gate_compress param mapping differs); roadmap updated (TI2V-5B working; A14B MoE + I2V remain).
39 lines
1.7 KiB
Python
39 lines
1.7 KiB
Python
"""v2 port of basic_wan2_2_ti2v.py — Wan2.2-TI2V-5B (T2V mode) through the v2 VideoGenerator.
|
|
|
|
Same convenience API as upstream (from_pretrained + generate_video); only delta is importing
|
|
VideoGenerator from v2. Wan2.2-TI2V-5B reuses the Wan adapter classes (WanTransformer3DModel /
|
|
AutoencoderKLWan / UMT5) with the higher-compression VAE geometry (z_dim=48, 16x spatial, 4x temporal).
|
|
|
|
NOTE: upstream also runs I2V (image_path=...). The v2 program here is T2V-only (image conditioning is
|
|
not yet ported), so this mirrors the upstream *T2V* branch (prompt2). Modest res/frames for a quick run.
|
|
"""
|
|
from v2 import VideoGenerator
|
|
|
|
OUTPUT_PATH = "v2_video_samples_wan2_2_5B_ti2v"
|
|
|
|
|
|
def main() -> None:
|
|
model_name = "Wan-AI/Wan2.2-TI2V-5B-Diffusers"
|
|
generator = VideoGenerator.from_pretrained(
|
|
model_name,
|
|
num_gpus=1,
|
|
use_fsdp_inference=False,
|
|
dit_cpu_offload=False,
|
|
vae_cpu_offload=False,
|
|
text_encoder_cpu_offload=False,
|
|
pin_cpu_memory=False,
|
|
)
|
|
|
|
# T2V mode (the v2 program is text-to-video; upstream's image_path I2V branch is not ported yet).
|
|
prompt = ("A majestic lion strides across the golden savanna, its powerful frame glistening under "
|
|
"the warm afternoon sun. The tall grass ripples gently in the breeze, enhancing the lion's "
|
|
"commanding presence. Low angle, steady tracking shot, cinematic.")
|
|
video = generator.generate_video(prompt, output_path=OUTPUT_PATH, output_video_name="wan22_ti2v_lion",
|
|
save_video=True, num_frames=25, height=448, width=768,
|
|
num_inference_steps=20, guidance_scale=5.0)
|
|
print(f"Output: {video.video_path}")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|