Downloads · 30 days
0
wangkanai/wan21-fp16-loras
wan21-fp16-loras is a text-to-video model from wangkanai. Use it when you need video from a text prompt. It is set up for diffusers. The card lists the license as other.
Advanced camera motion control LoRA adapters for WAN (World Animation Network) video generation models. These rank-16 LoRAs enable precise control over camera movements including rotation, arc shots, and drone-style c…
Downloads · 30 days
0
Access
Public
Updated Oct 27, 2025
Repo size
1.1 GB
Likes
2
Public
Click a slice to open those files.
.safetensors1.1 GB · 100%
From the Hugging Face model README
Advanced camera motion control LoRA adapters for WAN (World Animation Network) video generation models. These rank-16 LoRAs enable precise control over camera movements including rotation, arc shots, and drone-style cinematography.
This repository contains three specialized LoRA adapters designed to enhance video generation with professional camera movement patterns:
These LoRAs are trained at rank-16 for optimal balance between parameter efficiency and motion quality control. All models are stored in FP16 precision for maximum compatibility with standard diffusion pipelines.
wan21-fp16-loras/
└── loras/
└── wan/
├── wan21-camera-rotation-rank16-v1.safetensors (343 MB)
├── wan21-camera-arcshot-rank16-v1.safetensors (343 MB)
└── wan21-camera-drone-rank16-v1.safetensors (343 MB)
Total Repository Size: ~1.1 GB
import torch
from diffusers import DiffusionPipeline
# Load base WAN model
pipe = DiffusionPipeline.from_pretrained(
"HunyuanVideo/HunyuanVideo",
torch_dtype=torch.float16,
variant="fp16"
)
pipe.to("cuda")
# Load camera rotation LoRA
pipe.load_lora_weights(
"E:\\huggingface\\wan21-fp16-loras\\loras\\wan",
weight_name="wan21-camera-rotation-rank16-v1.safetensors"
)
# Generate video with camera rotation
prompt = "A majestic lion sitting on a rock, cinematic lighting, 4k"
video = pipe(
prompt=prompt,
num_frames=48,
height=512,
width=512,
num_inference_steps=50,
guidance_scale=7.5,
cross_attention_kwargs={"scale": 0.8} # LoRA strength
).frames
# Save video
from diffusers.utils import export_to_video
export_to_video(video, "output_rotation.mp4", fps=8)
# Unload current LoRA
pipe.unload_lora_weights()
# Load arc shot LoRA
pipe.load_lora_weights(
"E:\\huggingface\\wan21-fp16-loras\\loras\\wan",
weight_name="wan21-camera-arcshot-rank16-v1.safetensors"
)
# Generate with arc shot movement
video = pipe(
prompt="A bustling city street at sunset, cinematic arc shot",
num_frames=48,
cross_attention_kwargs={"scale": 0.7}
).frames
# Subtle camera movement (scale: 0.3-0.5)
video = pipe(
prompt="Static scene with subtle camera drift",
cross_attention_kwargs={"scale": 0.4}
).frames
# Standard camera movement (scale: 0.6-0.8)
video = pipe(
prompt="Dynamic scene with smooth camera motion",
cross_attention_kwargs={"scale": 0.7}
).frames
# Dramatic camera movement (scale: 0.9-1.0)
video = pipe(
prompt="Action scene with aggressive camera work",
cross_attention_kwargs={"scale": 1.0}
).frames
pipe.unload_lora_weights()
pipe.load_lora_weights(
"E:\\huggingface\\wan21-fp16-loras\\loras\\wan",
weight_name="wan21-camera-drone-rank16-v1.safetensors"
)
# Generate aerial drone footage
video = pipe(
prompt="Aerial view of a mountain valley, rising drone shot, golden hour",
num_frames=64,
height=768,
width=1344,
cross_attention_kwargs={"scale": 0.8}
).frames
export_to_video(video, "drone_shot.mp4", fps=12)
Rotation LoRA:
Arc Shot LoRA:
Drone Shot LoRA:
scale=0.7 as baseline for most scenes0.3-0.5 for subtle, naturalistic camera work0.9-1.0 for dramatic, stylized movementsnum_inference_steps to 60-80 for better qualityguidance_scale 7-9 for balanced prompt adherencetorch.float16 precision for inferencepipe.enable_attention_slicing()pipe.enable_vae_tiling()# Process multiple prompts efficiently
prompts = [
"Mountain landscape, drone rising shot",
"City street, rotating camera view",
"Forest scene, cinematic arc shot"
]
for i, prompt in enumerate(prompts):
video = pipe(prompt=prompt, cross_attention_kwargs={"scale": 0.7}).frames
export_to_video(video, f"output_{i}.mp4")
# Load multiple LoRAs (if supported by pipeline)
pipe.load_lora_weights("path/to/style_lora.safetensors", adapter_name="style")
pipe.load_lora_weights(
"E:\\huggingface\\wan21-fp16-loras\\loras\\wan\\wan21-camera-rotation-rank16-v1.safetensors",
adapter_name="camera"
)
# Set adapter weights
pipe.set_adapters(["style", "camera"], adapter_weights=[0.5, 0.7])
These LoRA models are subject to the WAN license terms. Please review the license agreement before commercial use:
For commercial licensing inquiries, please contact the original model creators or refer to the base model repository.
If you use these LoRAs in your research or projects, please cite:
@misc{wan21-camera-loras,
title={WAN 2.1 Camera Control LoRAs},
author={WAN Development Team},
year={2024},
publisher={Hugging Face},
howpublished={\url{https://huggingface.co/HunyuanVideo/WAN-LoRAs}}
}
Issue: "Out of memory" error during inference
Issue: Camera movement too subtle or not visible
scale parameter (try 0.9-1.0)Issue: Unrealistic or jerky camera motion
Issue: LoRA not loading correctly
For technical issues, bug reports, or feature requests:
Model Version: v1.0 Last Updated: October 2024 Repository Maintained By: WAN Development Team