ReWatch R1 banner
alibaba alibaba

ReWatch R1

Data community

Description

[ICLR 2026] ReWatch-R1: Boosting Complex Video Reasoning in Large Vision-Language Models through Agentic Data Synthesis

Installation

This entry records only its repository, not the path inside it, so there is no exact command to give. Open the source below and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

README

ReWatch-R1

[![Paper](https://img.shields.io/badge/ArXiv-Paper-brown)](https://arxiv.org/abs/2509.23652) [![Project Page](https://img.shields.io/badge/GitHub-Project%20Page-blue)](https://rewatch-r1.github.io/) [![Model](https://img.shields.io/badge/HuggingFace-Model-yellow)](https://www.modelscope.cn/models/zcccccz/ReWatch-R1) [![Dataset](https://img.shields.io/badge/HuggingFace-Dataset-yellow)](https://www.modelscope.cn/datasets/zcccccz/ReWatch)

**ReWatch-R1: Boosting Complex Video Reasoning in Large Vision-Language Models through Agentic Data Synthesis**

This is the official code used to train ReWatch-R1. Note that the code only contains the reinforcement learning part.

🔥 News

[2026/01/26] ReWatch-R1 has been accepted by ICLR 2026.

Using ReWatch-R1 to Inference

Use our model for video reasoning! Please use transformers==4.56.0 and qwen_vl_utils. \ Please download our model [ReWatch-R1](https://www.modelscope.cn/models/zcccccz/ReWatch-R1).\ It is recommended to use the video parameters in the paper (up to 192 frames, with a resolution of 128\*28\*28 per frame). \ For the best results, you must provide the duration of the video in the prompt (for example, 00:00-10:00), and the timestamp should be in the MM\:SS format.

import torch
from transformers import Qwen2_5_VLForConditionalGeneration, AutoProcessor
from qwen_vl_utils import process_vision_info

model_path = "ReWatch-R1"

model = Qwen2_5_VLForConditionalGeneration.from_pretrained(
    model_path,
    torch_dtype=torch.bfloat16,
    trust_remote_code=True,
    attn_implementation="flash_attention_2",
)

processor = AutoProcessor.from_pretrained(
    model_path, 
    trust_remote_code=True,
    use_fast=True,
    padding_side="left",
    truncation_side="right",
)

video_path = "videos/example.mp4"
video_duration = 600
question = "What happened from [05:00] to [05:10]?"

total_pixels = 12288*28*28
min_pixels = 128*28*28
max_pixels = 128*28*28
fps = 2.0
max_frames = 192

video_config = {