Downloads · 30 days
0
wangkanai/wan25-fp16-i2v
wan25-fp16-i2v is a image-to-video model from wangkanai. Use it for the image-to-video task on the model card, and read the license before you ship it in a product. It is set up for diffusers. The card lists the license as other.
Version: v1.4 Precision: FP16 (16-bit floating point) Model Family: WAN (Video Generation) Task: Image-to-Video Generation
Downloads · 30 days
0
Access
Public
Updated Oct 28, 2025
Repo size
—
Likes
10
Public
Click a slice to open those files.
.md16.1 KB · 91%
From the Hugging Face model README
Version: v1.4 Precision: FP16 (16-bit floating point) Model Family: WAN (Video Generation) Task: Image-to-Video Generation
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.
Status: Repository structure prepared for model files (currently empty).
wan25-fp16-i2v/
├── diffusion_models/
│ └── wan/ # Empty - awaiting model download
├── README.md # This file (15 KB)
└── (model files to be added)
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)quality_enhancement_lora.safetensors - Output quality improvements (~100-500 MB)Total Repository Size:
To populate this repository with model files:
# Install Hugging Face CLI
pip install huggingface-hub
# Download WAN 2.5 FP16 I2V model (requires HF authentication)
huggingface-cli login
huggingface-cli download Wan/WAN-2.5-I2V --revision fp16 --local-dir "E:/huggingface/wan25-fp16-i2v/diffusion_models/wan"
Generation times vary based on resolution, frame rate, and sampling steps
# Install dependencies
pip install diffusers transformers accelerate safetensors torch torchvision pillow
import torch
from diffusers import DiffusionPipeline
from PIL import Image
# Load the model
pipeline = DiffusionPipeline.from_pretrained(
"E:/huggingface/wan25-fp16-i2v/diffusion_models/wan",
torch_dtype=torch.float16,
variant="fp16"
)
pipeline.to("cuda")
# Enable memory optimizations
pipeline.enable_attention_slicing()
pipeline.enable_vae_slicing()
# Load source image
image = Image.open("input_image.jpg")
# Generate video from image
prompt = "Add gentle camera pan and natural motion"
video = pipeline(
image=image, # Source image
prompt=prompt, # Optional motion guidance
num_frames=64, # Number of frames to generate
height=512, # Video height
width=512, # Video width
num_inference_steps=50, # Sampling steps (higher = better quality)
guidance_scale=7.5, # Prompt adherence (higher = closer to prompt)
image_guidance_scale=1.0 # Image fidelity (higher = closer to source)
).frames
# Save video
from diffusers.utils import export_to_video
export_to_video(video, "output.mp4", fps=8)
import torch
from diffusers import DiffusionPipeline
from PIL import Image
# Load model with LoRA support
pipeline = DiffusionPipeline.from_pretrained(
"E:/huggingface/wan25-fp16-i2v/diffusion_models/wan",
torch_dtype=torch.float16
)
pipeline.to("cuda")
# Load LoRA adapters for enhanced control
pipeline.load_lora_weights("E:/huggingface/wan25-fp16-i2v/loras", adapter_name="motion_control")
pipeline.load_lora_weights("E:/huggingface/wan25-fp16-i2v/loras", adapter_name="camera_control")
# Enable adapters with specific weights
pipeline.set_adapters(["motion_control", "camera_control"], adapter_weights=[0.8, 0.7])
# Load source image
image = Image.open("landscape.jpg")
# Generate with enhanced control
prompt = "Smooth dolly forward, subtle parallax, cinematic motion"
video = pipeline(
image=image,
prompt=prompt,
num_frames=96, # More frames for longer video
height=768, # Higher resolution
width=768,
num_inference_steps=75, # More steps for quality
guidance_scale=8.0,
image_guidance_scale=1.2 # Strong image fidelity
).frames
export_to_video(video, "enhanced_output.mp4", fps=12)
import torch
from diffusers import DiffusionPipeline
from PIL import Image
pipeline = DiffusionPipeline.from_pretrained(
"E:/huggingface/wan25-fp16-i2v/diffusion_models/wan",
torch_dtype=torch.float16
)
pipeline.to("cuda")
# Enable all memory optimizations
pipeline.enable_attention_slicing()
pipeline.enable_vae_slicing()
pipeline.enable_sequential_cpu_offload() # Offload to CPU when not in use
# Load and resize image for efficiency
image = Image.open("photo.jpg")
image = image.resize((512, 512))
# Generate with reduced memory footprint
prompt = "Subtle natural motion and breathing life into the scene"
video = pipeline(
image=image,
prompt=prompt,
num_frames=48, # Fewer frames for memory efficiency
height=512,
width=512,
num_inference_steps=30, # Fewer steps for faster generation
guidance_scale=7.0
).frames
export_to_video(video, "memory_efficient_output.mp4", fps=8)
import torch
from diffusers import DiffusionPipeline
from PIL import Image
import os
pipeline = DiffusionPipeline.from_pretrained(
"E:/huggingface/wan25-fp16-i2v/diffusion_models/wan",
torch_dtype=torch.float16
)
pipeline.to("cuda")
pipeline.enable_attention_slicing()
pipeline.enable_vae_slicing()
# Process multiple images
input_dir = "E:/input_images"
output_dir = "E:/output_videos"
os.makedirs(output_dir, exist_ok=True)
for img_file in os.listdir(input_dir):
if img_file.endswith(('.jpg', '.png', '.jpeg')):
# Load image
image = Image.open(os.path.join(input_dir, img_file))
# Generate video
video = pipeline(
image=image,
prompt="Cinematic motion, natural dynamics",
num_frames=64,
height=512,
width=512,
num_inference_steps=40
).frames
# Save with matching name
output_path = os.path.join(output_dir, f"{os.path.splitext(img_file)[0]}.mp4")
export_to_video(video, output_path, fps=8)
print(f"Generated: {output_path}")
| 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++ |
Enable Attention Slicing: Reduces VRAM usage at slight speed cost
pipeline.enable_attention_slicing()
Enable VAE Slicing: Processes VAE in smaller chunks
pipeline.enable_vae_slicing()
CPU Offloading: Move model components to CPU when not in use
pipeline.enable_sequential_cpu_offload()
Reduce Resolution: Start with 512x512 for testing, upscale later
Resize Source Images: Preprocess images to target resolution
image = image.resize((512, 512), Image.LANCZOS)
guidance_scale: 7.0-9.0 for prompt adherenceimage_guidance_scale: 1.0-1.5 for image fidelityfrom diffusers import DPMSolverMultistepScheduler
pipeline.scheduler = DPMSolverMultistepScheduler.from_config(pipeline.scheduler.config)
This model is released under a custom WAN license. Please review the license terms before use.
Please refer to the official WAN model documentation for complete license terms.
If you use this model in your research or projects, please cite:
@misc{wan25-i2v-fp16,
title={WAN 2.5: Image-to-Video Diffusion Model},
author={WAN Team},
year={2025},
publisher={Hugging Face},
howpublished={\url{https://huggingface.co/Wan/WAN-2.5-I2V}},
note={FP16 variant}
}
text-to-video to image-to-videoimage_guidance_scale parameter documentationimage-to-videoFor questions, issues, or contributions related to this repository organization:
Repository Maintained By: Local User Last Updated: 2025-10-28 README Version: v1.4