diff --git a/examples/offline_inference/image_to_video/README.md b/examples/offline_inference/image_to_video/README.md new file mode 100644 index 000000000..b2c141683 --- /dev/null +++ b/examples/offline_inference/image_to_video/README.md @@ -0,0 +1,56 @@ +# Image-To-Video + +This example demonstrates how to generate videos from images using Wan2.2 Image-to-Video models with vLLM-Omni's offline inference API. + +## Local CLI Usage + +### Wan2.2-I2V-A14B-Diffusers (MoE) +```bash +python image_to_video.py \ + --model Wan-AI/Wan2.2-I2V-A14B-Diffusers \ + --image input.png \ + --prompt "A cat playing with yarn, smooth motion" \ + --negative_prompt "" \ + --height 480 \ + --width 832 \ + --num_frames 48 \ + --guidance_scale 5.0 \ + --guidance_scale_high 6.0 \ + --num_inference_steps 40 \ + --boundary_ratio 0.875 \ + --flow_shift 12.0 \ + --fps 16 \ + --output i2v_output.mp4 +``` + +### Wan2.2-TI2V-5B-Diffusers (Unified) +```bash +python image_to_video.py \ + --model Wan-AI/Wan2.2-TI2V-5B-Diffusers \ + --image input.png \ + --prompt "A cat playing with yarn, smooth motion" \ + --negative_prompt "" \ + --height 480 \ + --width 832 \ + --num_frames 48 \ + --guidance_scale 4.0 \ + --num_inference_steps 40 \ + --flow_shift 12.0 \ + --fps 16 \ + --output i2v_output.mp4 +``` + +Key arguments: + +- `--model`: Model ID (I2V-A14B for MoE, TI2V-5B for unified T2V+I2V). +- `--image`: Path to input image (required). +- `--prompt`: Text description of desired motion/animation. +- `--height/--width`: Output resolution (auto-calculated from image if not set). Dimensions should be multiples of 16. +- `--num_frames`: Number of frames (default 81). +- `--guidance_scale` and `--guidance_scale_high`: CFG scale (applied to low/high-noise stages for MoE). +- `--negative_prompt`: Optional list of artifacts to suppress. +- `--boundary_ratio`: Boundary split ratio for two-stage MoE models. +- `--flow_shift`: Scheduler flow shift (5.0 for 720p, 12.0 for 480p). +- `--num_inference_steps`: Number of denoising steps (default 50). +- `--fps`: Frames per second for the saved MP4 (requires `diffusers` export_to_video). +- `--output`: Path to save the generated video.