Views
No views yet
REA (prepend to every caption at inference time).1import torch
2from diffusers import WanImageToVideoPipeline
3from diffusers.utils import export_to_video, load_image
4
5pipe = WanImageToVideoPipeline.from_pretrained(
6 "Wan-AI/Wan2.1-I2V-14B-480P-Diffusers",
7 torch_dtype=torch.bfloat16,
8).to("cuda")
9
10pipe.load_lora_weights("whp-rea/rea-wan-i2v-lora-v1", adapter_name="rea")
11pipe.set_adapters(["rea"], [0.85])
12
13image = load_image("your_first_frame.png") # 832×480
14
15video = pipe(
16 prompt="REA A vast desert badlands at dawn, soft cool sky over rolling eroded sand-and-clay ridges...",
17 image=image,
18 num_frames=49,
19 height=480, width=832,
20 num_inference_steps=30,
21).frames[0]
22export_to_video(video, "rea_output.mp4", fps=16)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 |
6a19fe2a3a4b8cae6044e206) on 2026-05-29. Dataset, training
script, and recipe details in the parent
REA Splat project.