Version: v1.4
Precision: FP16 (16-bit floating point)
Model Family: WAN (Video Generation)
Task: Image-to-Video Generation
Model Description
WAN 2.5 Image-to-Video (I2V) is a state-of-the-art diffusion model capable of generating high-quality video sequences from static images. This FP16 version provides a balance between model quality and computational efficiency, making it suitable for systems with moderate GPU resources.
Key Capabilities
Image-to-Video Generation: Animate static images into coherent video sequences
Temporal Coherence: Produces smooth, temporally consistent video frames
Motion Control: Advanced control over motion dynamics and camera movements
Lighting Preservation: Maintains lighting consistency from source image
Quality Enhancement: Support for LoRA adapters for improved output quality
Efficient Inference: FP16 precision reduces memory footprint while maintaining quality
Model Architecture
Diffusion Framework: Latent diffusion-based video generation
Conditioning: Image-conditioned video synthesis
Precision: FP16 (half-precision floating point)
Format: SafeTensors (secure, efficient format)
VAE: Variational Autoencoder for latent space encoding/decoding
Repository Contents
Status: Repository structure prepared for model files (currently empty).
Current Directory Structure
wan25-fp16-i2v/
├── diffusion_models/
│ └── wan/ # Empty - awaiting model download
├── README.md # This file (15 KB)
└── (model files to be added)
Expected Model Files (After Download)
The repository is organized to store WAN 2.5 FP16 I2V model files once downloaded from Hugging Face:
Core Model Files (to be placed in diffusion_models/wan/):
wan_2.5_i2v_fp16.safetensors - Main UNet diffusion model for video generation (~8-12 GB)
wan_vae_fp16.safetensors - VAE for encoding/decoding video frames (~1-2 GB)
image_encoder.safetensors - CLIP/VAE image encoder for conditioning (~1-2 GB)
config.json - Model architecture configuration and hyperparameters (~5-10 KB)
Optional LoRA Adapters (to be placed in loras/ directory if downloaded):
motion_control_lora.safetensors - Fine-grained motion dynamics control (~100-500 MB)
camera_control_lora.safetensors - Camera movement and perspective control (~100-500 MB)
1import torch
2from diffusers import DiffusionPipeline
3from PIL import Image
45# Load the model6pipeline = DiffusionPipeline.from_pretrained(7"E:/huggingface/wan25-fp16-i2v/diffusion_models/wan",8 torch_dtype=torch.float16,9 variant="fp16"10)11pipeline.to("cuda")1213# Enable memory optimizations14pipeline.enable_attention_slicing()15pipeline.enable_vae_slicing()1617# Load source image18image = Image.open("input_image.jpg")1920# Generate video from image21prompt ="Add gentle camera pan and natural motion"22video = pipeline(23 image=image,# Source image24 prompt=prompt,# Optional motion guidance25 num_frames=64,# Number of frames to generate26 height=512,# Video height27 width=512,# Video width28 num_inference_steps=50,# Sampling steps (higher = better quality)29 guidance_scale=7.5,# Prompt adherence (higher = closer to prompt)30 image_guidance_scale=1.0# Image fidelity (higher = closer to source)31).frames
3233# Save video34from diffusers.utils import export_to_video
35export_to_video(video,"output.mp4", fps=8)
Advanced Generation with Motion Control
python
1import torch
2from diffusers import DiffusionPipeline
3from PIL import Image
45# Load model with LoRA support6pipeline = DiffusionPipeline.from_pretrained(7"E:/huggingface/wan25-fp16-i2v/diffusion_models/wan",8 torch_dtype=torch.float16
9)10pipeline.to("cuda")1112# Load LoRA adapters for enhanced control13pipeline.load_lora_weights("E:/huggingface/wan25-fp16-i2v/loras", adapter_name="motion_control")14pipeline.load_lora_weights("E:/huggingface/wan25-fp16-i2v/loras", adapter_name="camera_control")1516# Enable adapters with specific weights17pipeline.set_adapters(["motion_control","camera_control"], adapter_weights=[0.8,0.7])1819# Load source image20image = Image.open("landscape.jpg")2122# Generate with enhanced control23prompt ="Smooth dolly forward, subtle parallax, cinematic motion"24video = pipeline(25 image=image,26 prompt=prompt,27 num_frames=96,# More frames for longer video28 height=768,# Higher resolution29 width=768,30 num_inference_steps=75,# More steps for quality31 guidance_scale=8.0,32 image_guidance_scale=1.2# Strong image fidelity33).frames
3435export_to_video(video,"enhanced_output.mp4", fps=12)
Memory-Efficient Generation
python
1import torch
2from diffusers import DiffusionPipeline
3from PIL import Image
45pipeline = DiffusionPipeline.from_pretrained(6"E:/huggingface/wan25-fp16-i2v/diffusion_models/wan",7 torch_dtype=torch.float16
8)9pipeline.to("cuda")1011# Enable all memory optimizations12pipeline.enable_attention_slicing()13pipeline.enable_vae_slicing()14pipeline.enable_sequential_cpu_offload()# Offload to CPU when not in use1516# Load and resize image for efficiency17image = Image.open("photo.jpg")18image = image.resize((512,512))1920# Generate with reduced memory footprint21prompt ="Subtle natural motion and breathing life into the scene"22video = pipeline(23 image=image,24 prompt=prompt,25 num_frames=48,# Fewer frames for memory efficiency26 height=512,27 width=512,28 num_inference_steps=30,# Fewer steps for faster generation29 guidance_scale=7.030).frames
3132export_to_video(video,"memory_efficient_output.mp4", fps=8)
Batch Processing Multiple Images
python
1import torch
2from diffusers import DiffusionPipeline
3from PIL import Image
4import os
56pipeline = DiffusionPipeline.from_pretrained(7"E:/huggingface/wan25-fp16-i2v/diffusion_models/wan",8 torch_dtype=torch.float16
9)10pipeline.to("cuda")11pipeline.enable_attention_slicing()12pipeline.enable_vae_slicing()1314# Process multiple images15input_dir ="E:/input_images"16output_dir ="E:/output_videos"17os.makedirs(output_dir, exist_ok=True)1819for img_file in os.listdir(input_dir):20if img_file.endswith(('.jpg','.png','.jpeg')):21# Load image22 image = Image.open(os.path.join(input_dir, img_file))2324# Generate video25 video = pipeline(26 image=image,27 prompt="Cinematic motion, natural dynamics",28 num_frames=64,29 height=512,30 width=512,31 num_inference_steps=4032).frames
3334# Save with matching name35 output_path = os.path.join(output_dir,f"{os.path.splitext(img_file)[0]}.mp4")36 export_to_video(video, output_path, fps=8)37print(f"Generated: {output_path}")
Model Specifications
Technical Details
Specification
Value
Model Type
Latent Diffusion (Image-to-Video)
Precision
FP16 (16-bit)
Format
SafeTensors
Max Frames
96-128 frames
Resolution
512x512 to 1024x1024
Image Encoder
CLIP/VAE-based
VAE Channels
4 (latent)
Sampling
DDPM, DDIM, DPM-Solver++
Supported Features
✅ Image-to-video generation
✅ Motion dynamics control
✅ Camera movement control
✅ Prompt-guided motion
✅ Image fidelity preservation
✅ LoRA adapter support
✅ Memory optimization techniques
✅ Batch processing
✅ Custom sampling schedulers
✅ Frame interpolation support
Limitations
⚠️ Video length limited by VRAM (typically 2-15 seconds)