Downloads · 30 days
28
22% of all-time downloads
whp-rea/rea-wan-i2v-lora-v1
rea-wan-i2v-lora-v1 is a image-to-video model from whp-rea. 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.
A LoRA fine-tune of Wan-AI/Wan2.1-I2V-14B-480P-Diffusers on the REA aesthetic — mysterious, otherworldly, far-out, uncivilized; earth-resembling but slightly alien; atmospheric environments with weathered architectura…
Downloads · 30 days
28
22% of all-time downloads
All-time downloads
126
Public
Repo size
817 MB
Likes
0
Public
Click a slice to open those files.
.safetensors629 MB · 100%
From the Hugging Face model README
A LoRA fine-tune of Wan-AI/Wan2.1-I2V-14B-480P-Diffusers on the REA aesthetic — mysterious, otherworldly, far-out, uncivilized; earth-resembling but slightly alien; atmospheric environments with weathered architectural form and a sense of isolation and vastness.
Generates 49-frame, 832×480, 16fps clips from a first-frame image + caption.
Trigger word: REA (prepend to every caption at inference time).
import torch
from diffusers import WanImageToVideoPipeline
from diffusers.utils import export_to_video, load_image
pipe = WanImageToVideoPipeline.from_pretrained(
"Wan-AI/Wan2.1-I2V-14B-480P-Diffusers",
torch_dtype=torch.bfloat16,
).to("cuda")
pipe.load_lora_weights("whp-rea/rea-wan-i2v-lora-v1", adapter_name="rea")
pipe.set_adapters(["rea"], [0.85])
image = load_image("your_first_frame.png") # 832×480
video = pipe(
prompt="REA A vast desert badlands at dawn, soft cool sky over rolling eroded sand-and-clay ridges...",
image=image,
num_frames=49,
height=480, width=832,
num_inference_steps=30,
).frames[0]
export_to_video(video, "rea_output.mp4", fps=16)
LoRA scale around 0.75–0.95 works well. Lower for subtler style transfer,
higher to lean fully into the aesthetic.
pytorch_lora_weights.safetensors — the final LoRA at step 300, ready to load
via WanImageToVideoPipeline.load_lora_weights() (~210 MB)lora_weights/000300/pytorch_lora_weights.safetensors — same file (finetrainers
output convention)lora_weights/000150/pytorch_lora_weights.safetensors — intermediate
checkpoint at step 150, for comparing transfer strengthwhp-rea/rea-world-clips-v1
— 25 deterministic camera traversals through 5 Gaussian-splat worlds generated
in World Labs Marble, each captioned in REA literary style. Five trajectory
primitives per world: walk_short, walk_turn_walk, look_around,
pitch_sweep, figure_8. Bundles include first frame, video, pose/action
arrays, and intrinsics (action conditioning unused for this Phase 1 LoRA — see
"Phase 1 scope").
| Base model | Wan-AI/Wan2.1-I2V-14B-480P-Diffusers |
| Method | LoRA, rank 16, alpha 16 |
| Target modules | blocks.*(to_q|to_k|to_v|to_out.0) (attention projections only) |
| Steps | 300 |
| LR | 1e-4, constant_with_warmup, 30 warmup steps |
| Optimizer | AdamW (β1=0.9, β2=0.99, wd=1e-4, ε=1e-8) |
| Batch size | 1 (no grad accumulation) |
| Resolution | 49 frames × 480 × 832 |
| Precision | bf16 + grad checkpointing + VAE slicing/tiling |
| Hardware | 1× NVIDIA A100-SXM4-80GB |
| Trainer | huggingface/finetrainers (with bypass patches for torchcodec/decord, --validation_dataset_file deliberately omitted to avoid imageio dependency in inference path) |
| Trigger token | REA (prepended to all training captions via id_token) |
| Final training loss | 0.036 (avg of last few steps, batch size 1 noise typical) |
| Wall-clock training time | 1h 45m |
This is a text+image → video LoRA. The camera poses, action arrays, and intrinsics that live in the source dataset are not consumed by this fine-tune; they sit colocated in the bundles for forward compatibility with a future pose-conditioned model (LingBot-style). Phase 1 proves that the REA aesthetic transfers cleanly through Wan-family I2V; Phase 2 will explore action conditioning.
Trained via ML Intern on Hugging
Face Jobs (job 6a19fe2a3a4b8cae6044e206) on 2026-05-29. Dataset, training
script, and recipe details in the parent
REA Splat project.