Image-Text-to-Text
Transformers
Safetensors
qwen3_vl_moe
robotics
embodied-ai
video-understanding
progress-estimation
reward-modeling
qwen3-vl
conversational
Instructions to use InternRobotics/VLAC-Cut with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use InternRobotics/VLAC-Cut with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("image-text-to-text", model="InternRobotics/VLAC-Cut") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] pipe(text=messages)# Load model directly from transformers import AutoProcessor, AutoModelForMultimodalLM processor = AutoProcessor.from_pretrained("InternRobotics/VLAC-Cut") model = AutoModelForMultimodalLM.from_pretrained("InternRobotics/VLAC-Cut", device_map="auto") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] inputs = processor.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=40) print(processor.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use InternRobotics/VLAC-Cut with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "InternRobotics/VLAC-Cut" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "InternRobotics/VLAC-Cut", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }'Use Docker
docker model run hf.co/InternRobotics/VLAC-Cut
- SGLang
How to use InternRobotics/VLAC-Cut with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "InternRobotics/VLAC-Cut" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "InternRobotics/VLAC-Cut", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "InternRobotics/VLAC-Cut" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "InternRobotics/VLAC-Cut", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }' - Docker Model Runner
How to use InternRobotics/VLAC-Cut with Docker Model Runner:
docker model run hf.co/InternRobotics/VLAC-Cut
File size: 4,124 Bytes
cdc48c3 87894ff cdc48c3 87894ff cdc48c3 87894ff cdc48c3 2a809cb e801016 cdc48c3 acc95d9 87894ff e801016 acc95d9 e801016 acc95d9 87894ff e801016 cdc48c3 4d790be cdc48c3 e801016 87894ff e801016 87894ff e801016 87894ff cdc48c3 4bde30c cdc48c3 87894ff cdc48c3 87894ff cdc48c3 4d790be cdc48c3 87894ff cdc48c3 81cb25c 87894ff 81cb25c adc84f9 81cb25c 87894ff e801016 87894ff 81cb25c cdc48c3 87894ff e801016 87894ff 2a809cb 986931d 4d790be cdc48c3 87894ff 3b3fcfd e801016 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 | ---
library_name: transformers
pipeline_tag: image-text-to-text
base_model: Qwen/Qwen3-VL-30B-A3B-Instruct
tags:
- robotics
- embodied-ai
- video-understanding
- progress-estimation
- reward-modeling
- qwen3-vl
license: other
---
# VLAC-Cut: Video Progress Estimation for Process-Level Robot Rollout Segmentation
<div align="center">
[Paper](https://arxiv.org/abs/2607.09776) 路
[Code](https://github.com/InternRobotics/VLAC-cut) 路
[Model](https://huggingface.co/InternRobotics/VLAC-Cut) 路
[Benchmark](https://huggingface.co/datasets/InternRobotics/VLAC-Cut-Benchmark)
</div>
## Overview
**VLAC-Cut** is a process-level multimodal trajectory critic for robot post-training data curation. Given a natural-language task instruction, an optional task plan, and a robot rollout video, VLAC-Cut estimates signed task progress over time and identifies temporal segments associated with task advancement or degradation.
Unlike methods that assume task progress increases monotonically over time, VLAC-Cut models non-monotonic execution dynamics, including advancement, stagnation, regression, and recovery. This formulation supports process-level analysis of partial completion, temporary failure, subsequent recovery, and rollout segmentation for post-training data selection.
This Hugging Face repository contains the VLAC-Cut model weights and loading assets. The official inference examples and evaluation code are maintained in the GitHub repository.
## Highlights
* **Video-level temporal reasoning:** Analyzes robot execution videos rather than isolated images or image pairs and identifies temporal segments associated with task advancement or degradation.
* **Non-monotonic progress estimation:** Captures advancement, stagnation, regression, and recovery without imposing a monotonically increasing progress assumption.
* **Zero-shot generalization:** Generalizes across manipulation tasks, scenes, object configurations, and camera viewpoints.
* **Flexible temporal resolution:** Supports configurable video sampling frequencies for both coarse- and fine-grained progress estimation.
## Model Overview
| Property | Description |
|---|---|
| Base model | `Qwen/Qwen3-VL-30B-A3B-Instruct` |
| Input | Task instruction, optional task plan, and sampled video frames |
| Output | Timestamped task-progress estimates |
| Sampling rate | `2 Hz`-`20 Hz` |
| Default sampling rate | `2.0 Hz` |
## Load with Transformers
```python
from transformers import AutoModelForImageTextToText, AutoProcessor
model_id = "InternRobotics/VLAC-Cut"
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForImageTextToText.from_pretrained(
model_id,
dtype="auto",
device_map="auto",
)
model.eval()
```
## Quick Start
Run progress inference on a local video using the GitHub code:
```bash
git clone https://github.com/InternRobotics/VLAC-cut
cd VLAC-cut
python scripts/run_example.py \
--model-path InternRobotics/VLAC-Cut \
--video-path <path-to-video.mp4> \
--task-instruction "<natural-language task instruction>" \
--task-plan $'<optional step-by-step task plan>' \
--output-jsonl <path-to-output.jsonl>
```
Render a prediction JSONL file as an annotated video:
```bash
python scripts/utils/render_prediction_video.py \
--input-jsonl <path-to-output.jsonl> \
--output-video <path-to-preview.mp4>
```
## Citation
Please cite the following paper when using VLAC-Cut, the released model, or the Video Progress Benchmark:
```bibtex
@misc{zhai2026helphumanefficientlargescalerobot,
title={HELP: Human-Efficient Large-Scale Robot Post-Training with Rollout Segmentation},
author={Shaopeng Zhai and Qi Zhang and Tianyi Zhang and Haoran Zhang and Fuxian Huang and Zhanhui Lin and Zijun Xu and Weinan Zhang},
year={2026},
eprint={2607.09776},
archivePrefix={arXiv},
primaryClass={cs.RO},
url={https://arxiv.org/abs/2607.09776},
}
```
## License
The model weights and third-party training data may be subject to additional licenses or terms of use. The source code in the GitHub repository is released under the MIT License.
|