Contents: Overview · Results · Usage · Agent Setup · Citation
VisionWeave learns where to preserve visual detail and where to compress, weaving fine- and coarse-grained representations according to visual content.
Watch a quick walkthrough video. https://drive.google.com/file/d/1AFFi4HKOdg-0gPdd8-i2s1lzJJh23Uyp/view
Fine detail where it matters, compact representations elsewhere. Figure 1 from the paper.
43.0% visual token savings · 98.9% native performance retained · Qwen3.8-27B averages across eight benchmarks
Consistently favorable efficiency–quality trade-offs across tasks and input resolutions.
Qwen3.8-27B on LongVideoBench, 2 × A100-80GB (BF16, TP=2).
| Metric | Native | VisionWeave | Improvement |
|---|---|---|---|
| Throughput (requests/min) ↑ | 0.90 | 2.07 | 2.30× |
| Mean TTFT (s) ↓ | 169.90 | 77.54 | 54.4% lower |
| P95 TTFT (s) ↓ | 281.41 | 120.59 | 57.1% lower |
| Mean TPOT (ms) ↓ | 355.64 | 140.29 | 60.6% lower |
| P95 TPOT (ms) ↓ | 715.58 | 289.19 | 59.6% lower |
This release provides image/video inference for dense Qwen3.5. Trained checkpoints are supplied separately.
git clone https://github.com/FFY0/VisionWeave.git
cd VisionWeaveOpen this checkout in your coding agent and use the bundled VisionWeave skill:
Read .agents/skills/visionweave-setup/SKILL.md and configure this repository's
Python environment in .venv. Preserve the pinned SGLang revision and
requirements-lock.txt, verify the installed source, and run the environment
checks. Report the environment path, any local adaptations, and check results.
For end-to-end inference, also provide your local checkpoint path and image/video inputs and ask the agent to verify both responses.
Install the project environment using the reference configuration:
python3.12 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
bash scripts/install.shIf starting from native Qwen3.5 weights, initialize the VisionWeave router/pooler first. Skip this step if your checkpoint already contains those modules:
python scripts/init_visionweave_checkpoint.py \
--source /path/to/Qwen3.5-4B \
--destination ./models/visionweave-init \
--seed 0The added modules are untrained and default to retaining all visual tokens. The initializer writes the VisionWeave model configuration, so you can serve its output directly.
Launch on two GPUs. The default attention backend is FlashAttention-3 (fa3); select a supported alternative with --attention-backend if needed.
python -m visionweave.serve \
--model-path ./models/visionweave-init \
--encoder-gpus 0 --gpus 1 \
--host 127.0.0.1 --port 30000After LANGUAGE SERVICE READY, check the service from another terminal:
curl --fail http://127.0.0.1:30000/healthRun the image/video request examples. Detailed setup and troubleshooting and development/baseline instructions live alongside the skill and can also be followed manually.
Due to internal policies, model weights are currently unavailable but will be released pending future compliance approval. In the meantime, we are also collaborating with the open-source community toward an independently reproducible version of VisionWeave and will share updates as this effort progresses. Stay tuned.
If VisionWeave is useful for your research, please cite our paper.
BibTeX
@misc{feng2026visionweaveweavingelasticvisual,
title={VisionWeave: Weaving Elastic Visual Representations as a Native Capability of MLLMs},
author={Yuan Feng and Qize Yang and Ruizhe Chen and Sibo Song and Haolin He and Muzhi Zhu and Zihan Liu and Yunfei Chu and Xize Cheng and Yuxuan Wang and Jin Xu and Xike Xie},
year={2026},
eprint={2610.07987},
archivePrefix={arXiv},
primaryClass={cs.CV},
url={https://arxiv.org/abs/2610.07987},
}