Image-Text-to-Text
Transformers
Safetensors
qwen3_vl
qwen3-vl
viss
streaming-video
visual-question-answering
causal-video
conversational
Instructions to use mis2/ViSS-8B with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use mis2/ViSS-8B with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("image-text-to-text", model="mis2/ViSS-8B") 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)# pip install -U transformers accelerate # Load model directly from transformers import AutoProcessor, AutoModelForMultimodalLM processor = AutoProcessor.from_pretrained("mis2/ViSS-8B") model = AutoModelForMultimodalLM.from_pretrained("mis2/ViSS-8B", 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=256) print(processor.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use mis2/ViSS-8B with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "mis2/ViSS-8B" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "mis2/ViSS-8B", "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/mis2/ViSS-8B
- SGLang
How to use mis2/ViSS-8B 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 "mis2/ViSS-8B" \ --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": "mis2/ViSS-8B", "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 "mis2/ViSS-8B" \ --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": "mis2/ViSS-8B", "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 mis2/ViSS-8B with Docker Model Runner:
docker model run hf.co/mis2/ViSS-8B
File size: 5,693 Bytes
78ac017 | 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 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 | <div align="center">
# ViSS
### Supervising the Visible State: Separating Representation from View Selection in Streaming Video
Yihao Hu*, Pan Wang*, Yitong Lin*, Zhihao Wen†, Deyuan Liu, Hang Wang,
Mingda WAN, Yiwen Zhao, Yutong Li, Yuchen Mao, Tao Lin†
<sup>* Equal contribution. † Corresponding author.</sup>
[Overview](#overview) · [Codebase](#codebase) · [Quick start](#quick-start) ·
[Models and data](#models-and-data) · [Training](docs/TRAINING.md) ·
[Evaluation](docs/EVALUATION.md) · [Citation](#citation)
</div>
## Overview
**Visible-State Supervision (ViSS)** trains a vision–language model on
source-grounded questions about event identity, order, accumulation,
relation changes, and whether the visible evidence is sufficient.
**Test-Time Causal View Search (TVS)** keeps the trained model fixed and
acquires complementary causal views. It starts with recent frames, requests
an event view when needed, and consults compact history on disagreement.
Acquisition and answer commitment use separately calibrated thresholds.
This release provides data construction, training, inference, policy replay,
and scoring code. It contains no saved benchmark scores, prediction outputs,
or training logs. Scoring utilities and synthetic unit tests are included.
## Codebase
| Directory | Purpose | Guide |
| --- | --- | --- |
| `data_pipeline/` | Build source-grounded probes and matched generic controls | [Training](docs/TRAINING.md) |
| `experiments/` | Train the model, generate causal-view proposals, and apply TVS | [Evaluation](docs/EVALUATION.md) |
| `viss_core/` | Record validation, media handling, and benchmark adapters | [Data preparation](docs/DATA.md) |
| `scripts/` | Evaluation launchers, shard merging, and official scoring | [Evaluation](docs/EVALUATION.md) |
| `configs/` | Evaluation protocol and DeepSpeed configuration | [Installation](docs/INSTALL.md) |
| `tests/` | CPU checks of data contracts, sampling, loss masks, and view policies | [Quick start](#quick-start) |
The repository contains no internal training manifests, run records, data
inventories, calibration outputs, or file identities from company experiments.
The evaluation configuration is a public template; each user binds it to
their own inputs. See [Data preparation](docs/DATA.md).
## Quick start
Run these commands from the extracted repository root.
### Install and check the source
```bash
python -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -e ".[test]"
python -m pytest -q tests
```
The unit tests use synthetic inputs and do not download model weights or
benchmark media. GPU inference and training require the additional setup in
[Installation](docs/INSTALL.md).
### Generate predictions and score separately
After preparing your model, annotations, query exports, media, and
[local evaluation protocol](docs/EVALUATION.md#1-generate-recent-view-proposals):
```bash
python -m experiments.evaluate_qwen3vl_recent4_full \
--benchmark streamingbench \
--annotation data/streamingbench/annotations.json \
--samples data/streamingbench/queries.jsonl \
--video-root data/streamingbench/videos \
--model checkpoints/viss \
--processor checkpoints/viss/locked_processor \
--protocol configs/evaluation/recent4_full_v1.json \
--frame-policy recent4 \
--visual-input-mode image-list \
--record-choice-confidence \
--output outputs/streamingbench_recent.json
```
The paths above are placeholders for separately prepared assets. Bind the
processor and query exports used in your evaluation before running inference.
The [evaluation guide](docs/EVALUATION.md) explains model
identity, TVS inputs, official scorers, and full-population checks.
## Models and data
| Resource | Included in this archive? | Preparation |
| --- | --- | --- |
| Source code, tests, and protocol | Yes | This repository |
| Qwen3-VL-8B-Instruct initialization | No | Obtain the official model |
| Trained ViSS weights and locked processor | No | Obtain separately or train ViSS |
| Accepted training records and media | No | Follow [data preparation](docs/DATA.md) |
| Benchmark annotations, videos, and official scorers | No | Obtain from the benchmark owners |
| TVS calibration and model-identity artifacts | No | Supply artifacts matching your evaluation |
No public download endpoint for ViSS-specific weights or training records is
asserted by this source package.
## Training
The paper recipe is a fresh one-epoch run from Qwen3-VL-8B-Instruct.
It freezes the vision tower and updates the language model and multimodal
projector. [Training](docs/TRAINING.md) gives the two-GPU command and explains
the required sealed training release.
Some serialized records retain `streameva.*` schema identifiers. These are
record-format identifiers; the corresponding implementation in this release
is under `viss_core/`.
## License and acknowledgements
The project code uses the repository's [Apache-2.0 license](LICENSE).
Third-party software, media, models, and benchmark assets retain their
respective terms; see [NOTICE](NOTICE).
We acknowledge Qwen3-VL, StreamingBench, OVO-Bench, and SimpleStream.
The documentation organization follows the separation of setup, inference,
and evaluation used in [OneStreamer](https://github.com/MCG-NJU/OneStreamer).
## Citation
```bibtex
@misc{hu2026viss,
title={Supervising the Visible State: Separating Representation from View Selection in Streaming Video},
author={Yihao Hu and Pan Wang and Yitong Lin and Zhihao Wen and Deyuan Liu and Hang Wang and Mingda Wan and Yiwen Zhao and Yutong Li and Yuchen Mao and Tao Lin},
year={2026},
note={Manuscript}
}
```
|