Video-Text-to-Text
Transformers
Safetensors
qwen3_vl
image-text-to-text
camera-movement
video-understanding
qwen3-vl
distillation
Instructions to use ddz16/CamDistill-8B with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use ddz16/CamDistill-8B with Transformers:
# Load model directly from transformers import AutoProcessor, AutoModelForMultimodalLM processor = AutoProcessor.from_pretrained("ddz16/CamDistill-8B") model = AutoModelForMultimodalLM.from_pretrained("ddz16/CamDistill-8B", device_map="auto") - Notebooks
- Google Colab
- Kaggle
Fix usage instructions: correct model class / plugin guidance, English-only
Browse files
README.md
CHANGED
|
@@ -1,32 +1,41 @@
|
|
| 1 |
---
|
| 2 |
base_model: Qwen/Qwen3-VL-8B-Instruct
|
| 3 |
license: apache-2.0
|
|
|
|
|
|
|
| 4 |
tags:
|
| 5 |
- camera-movement
|
| 6 |
- video-understanding
|
| 7 |
- qwen3-vl
|
| 8 |
-
- sft
|
| 9 |
- distillation
|
| 10 |
-
library_name: transformers
|
| 11 |
-
pipeline_tag: video-text-to-text
|
| 12 |
---
|
| 13 |
|
| 14 |
# CamDistill-8B
|
| 15 |
|
| 16 |
-
Camera-movement
|
|
|
|
|
|
|
|
|
|
| 17 |
|
| 18 |
-
-
|
| 19 |
-
-
|
| 20 |
-
-
|
| 21 |
|
| 22 |
-
This model
|
| 23 |
-
|
| 24 |
-
|
|
|
|
| 25 |
|
| 26 |
## Usage
|
| 27 |
|
| 28 |
-
|
| 29 |
-
|
| 30 |
-
|
| 31 |
-
|
| 32 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
---
|
| 2 |
base_model: Qwen/Qwen3-VL-8B-Instruct
|
| 3 |
license: apache-2.0
|
| 4 |
+
library_name: transformers
|
| 5 |
+
pipeline_tag: video-text-to-text
|
| 6 |
tags:
|
| 7 |
- camera-movement
|
| 8 |
- video-understanding
|
| 9 |
- qwen3-vl
|
|
|
|
| 10 |
- distillation
|
|
|
|
|
|
|
| 11 |
---
|
| 12 |
|
| 13 |
# CamDistill-8B
|
| 14 |
|
| 15 |
+
Camera-movement understanding model trained with **Camera Token Distillation** on top of
|
| 16 |
+
`Qwen/Qwen3-VL-8B-Instruct`. A lightweight Camera Token Module learns geometry-aware camera
|
| 17 |
+
tokens (distilled from VGGT) and injects them into the language model. Given a video, it outputs
|
| 18 |
+
structured JSON describing every camera-movement segment.
|
| 19 |
|
| 20 |
+
- **Paper**: [Temporally Grounded Compositional Camera Motion Understanding via Geometric Knowledge Distillation](https://huggingface.co/papers/2608.10932)
|
| 21 |
+
- **Project page**: https://ddz16.github.io/cammotion.github.io
|
| 22 |
+
- **Code**: https://github.com/ddz16/CamDistill
|
| 23 |
|
| 24 |
+
> ⚠️ **This model cannot be loaded with plain 🤗 Transformers.** It contains an extra Camera Token
|
| 25 |
+
> Module and a patched forward pass. Loading it as a standard `Qwen3VLForConditionalGeneration`
|
| 26 |
+
> would silently drop those weights and produce incorrect results. Use the CamDistill repo, which
|
| 27 |
+
> registers the required custom model type through a plugin.
|
| 28 |
|
| 29 |
## Usage
|
| 30 |
|
| 31 |
+
Clone the [CamDistill repo](https://github.com/ddz16/CamDistill), then run (camera tokens are generated internally — **no online
|
| 32 |
+
VGGT required**):
|
| 33 |
+
|
| 34 |
+
```bash
|
| 35 |
+
python camera_movement_sft/infer_single.py \
|
| 36 |
+
--model ddz16/CamDistill-8B \
|
| 37 |
+
--video /path/to/video.mp4 \
|
| 38 |
+
--variant camdistill
|
| 39 |
+
```
|
| 40 |
+
|
| 41 |
+
See the repo's README for environment setup and batch evaluation.
|