Instructions to use Video-Reason/VBVR-Pro-Wan2.2-TI2V-5B-SDE-RLVR with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Diffusers
How to use Video-Reason/VBVR-Pro-Wan2.2-TI2V-5B-SDE-RLVR with Diffusers:
pip install -U diffusers transformers accelerate
import torch from diffusers import DiffusionPipeline from diffusers.utils import load_image, export_to_video # switch to "mps" for apple devices pipe = DiffusionPipeline.from_pretrained("Video-Reason/VBVR-Pro-Wan2.2-TI2V-5B-SDE-RLVR", dtype=torch.bfloat16, device_map="cuda") pipe.to("cuda") prompt = "A man with short gray hair plays a red electric guitar." image = load_image( "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/guitar-man.png" ) output = pipe(image=image, prompt=prompt).frames[0] export_to_video(output, "output.mp4") - Wan2.2
How to use Video-Reason/VBVR-Pro-Wan2.2-TI2V-5B-SDE-RLVR with Wan2.2:
# No code snippets available yet for this library. # To use this model, check the repository files and the library's documentation. # Want to help? PRs adding snippets are welcome at: # https://github.com/huggingface/huggingface.js
- Notebooks
- Google Colab
- Kaggle
VBVR-Pro: A Scalable and Verifiable Suite for Native Visual Reasoning
Overview
VBVR-Pro is a closed-loop testbed for training, verifying, and comparing native visual reasoning through generation. It provides 300 procedurally generated tasks, task-specific verifiable reward scorers, and controlled comparisons across image, video, and interleaved generators. The benchmark is designed to study visual reasoning trajectories directly and includes both in-domain and out-of-domain evaluations.
The models and benchmark are presented in VBVR-Pro: A Scalable and Verifiable Suite for Native Visual Reasoning.
Models Zoo
| Model | Base Architecture | Other Remarks |
|---|---|---|
| Video Generation Models | ||
| VBVR-Pro-Wan2.2-TI2V-5B | Wan2.2-TI2V-5B | Complete model, supervised fine-tuning |
| VBVR-Pro-Wan2.2-TI2V-5B-RLVR | Wan2.2-TI2V-5B | Complete model, RL with verifiable rewards and Flow-CPS rollouts |
| VBVR-Pro-Wan2.2-TI2V-5B-RLVLM-Qwen3.6-27B-Reward | Wan2.2-TI2V-5B | Complete model, RL with Qwen3.6-27B VLM rewards |
| VBVR-Pro-Wan2.2-TI2V-5B-SDE-RL | Wan2.2-TI2V-5B | Complete model, verifiable-reward RL with DanceGRPO RF-SDE rollouts |
Release Information
VBVR-Pro-Wan2.2-TI2V-5B-SDE-RL
This repository contains a complete Diffusers checkpoint for the VBVR-Pro Wan2.2 TI2V-5B model optimized with reinforcement learning using task-specific verifiable rewards. Training used DanceGRPO rectified-flow SDE rollouts with noise coefficient $\eta=0.3$.
The model is derived from
Video-Reason/VBVR-Pro-Wan2.2-TI2V-5B
and is intended for research on image-conditioned video generation and native
visual reasoning.
The repository includes the transformer, text encoder, tokenizer, VAE, and
scheduler. It also includes pipeline.py, a custom
image-to-video pipeline providing deterministic Euler and UniPC inference as
well as Flow-CPS inference.
VBVR-Pro Benchmark Results
The same released model weights were evaluated under each inference setting below; no sampler-specific weights are used.
| Inference method | Coefficient | Overall | In-domain | Out-of-domain |
|---|---|---|---|---|
| DanceGRPO SDE | 0.1 | 0.5008 | 0.6576 | 0.3439 |
| DanceGRPO SDE | 0.3 | 0.4873 | 0.6432 | 0.3315 |
| DanceGRPO SDE | 0.5 | 0.4524 | 0.5977 | 0.3070 |
| FlowMatch Euler ODE | — | 0.5038 | 0.6677 | 0.3399 |
All rows use the matched VBVR-Pro evaluation contract: 500 samples, 512 × 512 resolution, 81 frames, 16 FPS, 30 inference steps, guidance scale 1.0, and seed 0. Reported scores are evaluation results, not guarantees for other prompts or runtime configurations.
Recommended evaluation settings
- Resolution: 512 × 512
- Frames: 81
- Output FPS: 16
- Inference steps: 30
- Guidance scale: 1.0
Quick Start
Custom sampler pipeline
Use Diffusers 0.37.1 or newer. Because this example loads Python code from the
model repository, review pipeline.py, pass trust_remote_code=True, and pin
a reviewed revision in production.
import torch
from diffusers import AutoencoderKLWan, DiffusionPipeline
from diffusers.utils import export_to_video, load_image
model_id = "pufanyi/VBVR-Pro-Wan2.2-TI2V-5B-SDE-RL"
# Wan's VAE is kept in float32 for stable decoding.
vae = AutoencoderKLWan.from_pretrained(
model_id,
subfolder="vae",
torch_dtype=torch.float32,
)
pipe = DiffusionPipeline.from_pretrained(
model_id,
custom_pipeline="pipeline",
trust_remote_code=True,
vae=vae,
torch_dtype=torch.bfloat16,
)
pipe.enable_model_cpu_offload()
image = load_image("input.png").convert("RGB")
frames = pipe(
image=image,
prompt="Move the marked object to the matching target.",
height=512,
width=512,
num_frames=81,
num_inference_steps=30,
guidance_scale=1.0,
sampler="euler",
generator=torch.Generator(device="cuda").manual_seed(0),
).frames[0]
export_to_video(frames, "output.mp4", fps=16)
The bundled custom pipeline accepts euler, unipc, and the Flow-CPS
settings cps-0.1, cps-0.3, cps-0.7, and cps-0.9. The generic form
sampler="cps", cps_eta=<value> accepts any finite coefficient from 0 to 1.
generator controls the initial latent and, by default, the fresh Flow-CPS
transition noise. Pass a separate cps_generator when the two random streams
must be controlled independently.
Loading the complete pipeline requires substantial CPU and accelerator memory. CPU offloading is recommended on smaller GPUs.
DanceGRPO SDE sampler
The custom Diffusers pipeline above does not implement the DanceGRPO RF-SDE
update. To exactly reproduce the SDE rows, download the checkpoint to a local
directory and use src.cli.eval_i2v_sde from the release training code:
hf download pufanyi/VBVR-Pro-Wan2.2-TI2V-5B-SDE-RL \
--local-dir models/VBVR-Pro-Wan2.2-TI2V-5B-SDE-RL
python -m src.cli.eval_i2v_sde \
--eval_json eval.json \
--model_path models/VBVR-Pro-Wan2.2-TI2V-5B-SDE-RL \
--output_dir outputs \
--eta 0.1 \
--height 512 \
--width 512 \
--num_frames 81 \
--num_inference_steps 30 \
--guidance_scale 1.0 \
--fps 16 \
--seed 0
For eight-GPU data-parallel generation, replace python with
torchrun --standalone --nproc_per_node=8.
Standard Diffusers pipeline
The bundled scheduler remains UniPC and model_index.json is unchanged. Users
who only need the standard deterministic path can load the checkpoint without
remote custom code:
import torch
from diffusers import AutoencoderKLWan, WanImageToVideoPipeline
model_id = "pufanyi/VBVR-Pro-Wan2.2-TI2V-5B-SDE-RL"
vae = AutoencoderKLWan.from_pretrained(
model_id,
subfolder="vae",
torch_dtype=torch.float32,
)
pipe = WanImageToVideoPipeline.from_pretrained(
model_id,
vae=vae,
torch_dtype=torch.bfloat16,
)
Use WanImageToVideoPipeline, not the text-to-video WanPipeline: the latter
does not accept the first-frame image argument in Diffusers 0.37.1.
Implementation and Reproducibility Notes
- Training uses the DanceGRPO rectified-flow SDE formula with $\eta=0.3$; this coefficient is not interchangeable with a Flow-CPS coefficient.
- Exact SDE inference uses the training-time shifted sigma schedule through
src.cli.eval_i2v_sde. The bundled custom Diffusers pipeline separately exposes Flow-CPS, Euler, and UniPC inference. - The custom pipeline subclasses
WanImageToVideoPipeline, preserving the official first-frame VAE conditioning and TI2V-5B expanded-timestep mask. - The release training/evaluation repository remains the source of truth for formal score provenance. Exact output bytes can vary with PyTorch, Diffusers, attention backend, dtype, and device.
Training Details
Summary
The model was optimized on VBVR-Pro image-to-video tasks using DanceGRPO SDE rollouts with $\eta=0.3$ and deterministic task-specific rule rewards. Training and evaluation targeted 512 × 512 videos with 81 frames.
Resources
- Release training and inference code:
pufanyi/vbvr-rl - Training dataset:
Video-Reason/VBVR-Pro-RL, revisionca0aaffea93b07d269c6fe2fbfe533f1fdab9aa1 - Evaluation code:
Video-Reason/VBVR-Pro-Bench
Limitations
- The model is a research artifact and may produce incorrect or visually inconsistent reasoning trajectories.
- Results are most directly comparable under the settings listed above.
- The model inherits limitations and potential biases from the Wan2.2 base model and its training data.
- Do not use generated outputs as the sole basis for high-stakes decisions.
License
The model is released under Apache License 2.0. See LICENSE. Please also
follow the terms and attribution guidance of the upstream Wan2.2 model.
Citation
@misc{xu2026vbvrproscalableverifiablesuite,
title={VBVR-Pro: A Scalable and Verifiable Suite for Native Visual Reasoning},
author={Junxiang Xu and Ruisi Wang and Fanyi Pu and Maijunxian Wang and Ran Ji and Tongxi Zhou and Chenyang Gu and Jing Zuo and Hongcan Xiao and Yimeng Geng and Wanqi Yin and Wei Chen and Oscar Qian and Zhengan Yan and Ziqi Huang and Haiwen Diao and Liang Pan and Bo Li and Xiangyu Fan and Dezhi Luo and Fengyuan Yu and Zehong Zhao and Qingying Gao and Tinghui Zhu and Yilan Zhang and Jingqi Tong and Pinyuan Feng and Zhengze Jiang and Letian Wang and Ziyu Guo and Renrui Zhang and Jieneng Chen and Sonia Joseph and Constantin Venhoff and Saman Motamed and Mengyue Yang and Chandra Sripada and Alan Yuille and Philip Torr and Lvmin Zhang and Vikash Kumar and Daniel Khashabi and Nikolaus Kriegeskorte and Raphaël Millière and Vincent C. Müller and Anyi Rao and Quan Wang and Ziwei Liu and Dahua Lin and Lei Yang and Hokin Deng and Zhongang Cai},
year={2026},
eprint={2608.26105},
archivePrefix={arXiv},
primaryClass={cs.CV},
url={https://arxiv.org/abs/2608.26105},
}
- Downloads last month
- -
Model tree for Video-Reason/VBVR-Pro-Wan2.2-TI2V-5B-SDE-RLVR
Base model
Wan-AI/Wan2.2-TI2V-5B-Diffusers