vladmandic iitolstykh commited on
Commit
7c8053f
·
0 Parent(s):

Duplicate from iitolstykh/VIBE-Image-Edit

Browse files

Co-authored-by: Irina Tolstykh <iitolstykh@users.noreply.huggingface.co>

This view is limited to 50 files because it contains too many changes.   See raw diff
.gitattributes ADDED
@@ -0,0 +1,72 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ *.7z filter=lfs diff=lfs merge=lfs -text
2
+ *.arrow filter=lfs diff=lfs merge=lfs -text
3
+ *.bin filter=lfs diff=lfs merge=lfs -text
4
+ *.bz2 filter=lfs diff=lfs merge=lfs -text
5
+ *.ckpt filter=lfs diff=lfs merge=lfs -text
6
+ *.ftz filter=lfs diff=lfs merge=lfs -text
7
+ *.gz filter=lfs diff=lfs merge=lfs -text
8
+ *.h5 filter=lfs diff=lfs merge=lfs -text
9
+ *.joblib filter=lfs diff=lfs merge=lfs -text
10
+ *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
+ *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
+ *.model filter=lfs diff=lfs merge=lfs -text
13
+ *.msgpack filter=lfs diff=lfs merge=lfs -text
14
+ *.npy filter=lfs diff=lfs merge=lfs -text
15
+ *.npz filter=lfs diff=lfs merge=lfs -text
16
+ *.onnx filter=lfs diff=lfs merge=lfs -text
17
+ *.ot filter=lfs diff=lfs merge=lfs -text
18
+ *.parquet filter=lfs diff=lfs merge=lfs -text
19
+ *.pb filter=lfs diff=lfs merge=lfs -text
20
+ *.pickle filter=lfs diff=lfs merge=lfs -text
21
+ *.pkl filter=lfs diff=lfs merge=lfs -text
22
+ *.pt filter=lfs diff=lfs merge=lfs -text
23
+ *.pth filter=lfs diff=lfs merge=lfs -text
24
+ *.rar filter=lfs diff=lfs merge=lfs -text
25
+ *.safetensors filter=lfs diff=lfs merge=lfs -text
26
+ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
+ *.tar.* filter=lfs diff=lfs merge=lfs -text
28
+ *.tar filter=lfs diff=lfs merge=lfs -text
29
+ *.tflite filter=lfs diff=lfs merge=lfs -text
30
+ *.tgz filter=lfs diff=lfs merge=lfs -text
31
+ *.wasm filter=lfs diff=lfs merge=lfs -text
32
+ *.xz filter=lfs diff=lfs merge=lfs -text
33
+ *.zip filter=lfs diff=lfs merge=lfs -text
34
+ *.zst filter=lfs diff=lfs merge=lfs -text
35
+ *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ VIBE.png filter=lfs diff=lfs merge=lfs -text
37
+ images/1.png filter=lfs diff=lfs merge=lfs -text
38
+ images/11.png filter=lfs diff=lfs merge=lfs -text
39
+ images/12.png filter=lfs diff=lfs merge=lfs -text
40
+ images/13.png filter=lfs diff=lfs merge=lfs -text
41
+ images/2.png filter=lfs diff=lfs merge=lfs -text
42
+ images/3.png filter=lfs diff=lfs merge=lfs -text
43
+ images/4.png filter=lfs diff=lfs merge=lfs -text
44
+ images/5.png filter=lfs diff=lfs merge=lfs -text
45
+ images/6.png filter=lfs diff=lfs merge=lfs -text
46
+ images/7.png filter=lfs diff=lfs merge=lfs -text
47
+ images/8.png filter=lfs diff=lfs merge=lfs -text
48
+ images/9.png filter=lfs diff=lfs merge=lfs -text
49
+ images/other/1.png filter=lfs diff=lfs merge=lfs -text
50
+ images/other/10.png filter=lfs diff=lfs merge=lfs -text
51
+ images/other/2.png filter=lfs diff=lfs merge=lfs -text
52
+ images/other/3.png filter=lfs diff=lfs merge=lfs -text
53
+ images/other/4.png filter=lfs diff=lfs merge=lfs -text
54
+ images/other/5.png filter=lfs diff=lfs merge=lfs -text
55
+ images/other/6.png filter=lfs diff=lfs merge=lfs -text
56
+ images/other/7.png filter=lfs diff=lfs merge=lfs -text
57
+ images/other/8.png filter=lfs diff=lfs merge=lfs -text
58
+ images/other/9.png filter=lfs diff=lfs merge=lfs -text
59
+ images/sana/image_1.png filter=lfs diff=lfs merge=lfs -text
60
+ images/sana/image_2.png filter=lfs diff=lfs merge=lfs -text
61
+ images/sana/image_3.png filter=lfs diff=lfs merge=lfs -text
62
+ images/sana/image_4.png filter=lfs diff=lfs merge=lfs -text
63
+ images/sana/image_5.png filter=lfs diff=lfs merge=lfs -text
64
+ images/sana/image_6.png filter=lfs diff=lfs merge=lfs -text
65
+ images/vibe/image_1.png filter=lfs diff=lfs merge=lfs -text
66
+ images/vibe/image_2.png filter=lfs diff=lfs merge=lfs -text
67
+ images/vibe/image_3.png filter=lfs diff=lfs merge=lfs -text
68
+ images/vibe/image_4.png filter=lfs diff=lfs merge=lfs -text
69
+ images/vibe/image_5.png filter=lfs diff=lfs merge=lfs -text
70
+ images/vibe/image_6.png filter=lfs diff=lfs merge=lfs -text
71
+ images/sana/image_7.png filter=lfs diff=lfs merge=lfs -text
72
+ images/vibe/image_7.png filter=lfs diff=lfs merge=lfs -text
README.md ADDED
@@ -0,0 +1,302 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ language:
3
+ - en
4
+ pipeline_tag: image-to-image
5
+ tags:
6
+ - image-editing
7
+ - text-guided-editing
8
+ - diffusion
9
+ - sana
10
+ - qwen-vl
11
+ - multimodal
12
+ base_model:
13
+ - Efficient-Large-Model/SANA1.5_1.6B_1024px
14
+ - Qwen/Qwen3-VL-2B-Instruct
15
+ library_name: diffusers
16
+ ---
17
+
18
+ # VIBE: Visual Instruction Based Editor
19
+
20
+ <div align="center">
21
+ <img src="VIBE.png" width="800" alt="VIBE"/>
22
+ </div>
23
+
24
+ <p style="text-align: center;">
25
+ <div align="center">
26
+ </div>
27
+ <p align="center">
28
+ <a href="https://riko0.github.io/VIBE"> 🌐 Project Page </a> |
29
+ <a href="https://arxiv.org/abs/2601.02242"> 📜 Paper on arXiv </a> |
30
+ <a href="https://github.com/ai-forever/vibe"> Github </a> |
31
+ <a href="https://huggingface.co/spaces/iitolstykh/VIBE-Image-Edit-DEMO">🤗 Space | </a>
32
+ <a href="https://huggingface.co/iitolstykh/VIBE-Image-Edit-DistilledCFG">🤗 VIBE-Image-Edit-DistilledCFG | </a>
33
+ </p>
34
+
35
+ **VIBE** is a powerful open-source framework for text-guided image editing. It leverages the efficiency of the [Sana1.5-1.6B](https://github.com/NVlabs/Sana) diffusion model and the visual understanding capabilities of [Qwen3-VL-2B-Instruct](https://github.com/QwenLM/Qwen3-VL) to provide **exceptionally fast** and high-quality, instruction-based image manipulation.
36
+
37
+ We also provide a faster, **CFG-distilled** version of this model available at [VIBE-Image-Edit-DistilledCFG](https://huggingface.co/iitolstykh/VIBE-Image-Edit-DistilledCFG).
38
+
39
+ ## Model Details
40
+
41
+ - **Name:** VIBE
42
+ - **Task:** Text-Guided Image Editing
43
+ - **Architecture:**
44
+ - **Diffusion Backbone:** Sana1.5 (1.6B parameters) with Linear Attention.
45
+ - **Condition Encoder:** Qwen3-VL (2B parameters) for multimodal understanding.
46
+ - **Framework:** Built on `diffusers` and `transformers`.
47
+ - **Model precision**: torch.bfloat16 (BF16)
48
+ - **Model resolution**: This model is developed to edit up to 2048px images with multi-scale heigh and width.
49
+
50
+ ## Features
51
+
52
+ - **Text-Guided Editing:** Edit images using natural language instructions (e.g., "Add a cat on the sofa").
53
+ - **Compact & Efficient:** Combines a 1.6B parameter diffusion model with a 2B parameter encoder for a lightweight footprint.
54
+ - **High-Speed Inference:** Utilizes Sana1.5's linear attention mechanism for rapid generation.
55
+ - **Multimodal Understanding:** Qwen3-VL ensures strong alignment between visual content and text instructions.
56
+ - **Text-to-Image** support.
57
+
58
+
59
+ # Inference Requirements
60
+
61
+ - `vibe` library
62
+ ```bash
63
+ pip install git+https://github.com/ai-forever/VIBE
64
+ ```
65
+ - requirements for `vibe` library:
66
+ ```bash
67
+ pip install transformers==4.57.1 torchvision==0.21.0 torch==2.6.0 diffusers==0.33.1 loguru==0.7.3
68
+ ```
69
+
70
+ # Quick start
71
+
72
+ ```python
73
+ from PIL import Image
74
+ import requests
75
+ from io import BytesIO
76
+ from huggingface_hub import snapshot_download
77
+
78
+ from vibe.editor import ImageEditor
79
+
80
+ # Download model
81
+ model_path = snapshot_download(
82
+ repo_id="iitolstykh/VIBE-Image-Edit",
83
+ repo_type="model",
84
+ )
85
+
86
+ # Load model
87
+ editor = ImageEditor(
88
+ checkpoint_path=model_path,
89
+ image_guidance_scale=1.2,
90
+ guidance_scale=4.5,
91
+ num_inference_steps=20,
92
+ device="cuda:0",
93
+ )
94
+
95
+ # Download test image
96
+ resp = requests.get('https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/3f58a82a-b4b4-40c3-a318-43f9350fcd02/original=true,quality=90/115610275.jpeg')
97
+ image = Image.open(BytesIO(resp.content))
98
+
99
+ # Generate edited image
100
+ edited_image = editor.generate_edited_image(
101
+ instruction="let this case swim in the river",
102
+ conditioning_image=image,
103
+ num_images_per_prompt=1,
104
+ )[0]
105
+
106
+ edited_image.save(f"edited_image.jpg", quality=100)
107
+ ```
108
+
109
+ ## T2I Examples
110
+
111
+ <details open>
112
+ <summary>(<b>Seed:</b> 234) <b>Prompt:</b> View through the clouds at Earth from a plane</summary>
113
+
114
+ ![Image 1](images/other/1.png)
115
+
116
+ </details>
117
+
118
+ <details open>
119
+ <summary>(<b>Seed:</b> 2) <b>Prompt:</b> Medieval castle at sunset surrounded by dense forest and mist</summary>
120
+
121
+ ![Image 7](images/other/4.png)
122
+
123
+ </details>
124
+
125
+ <details open>
126
+ <summary>(<b>Seed:</b> 666) <b>Prompt:</b> Portrait of an old wise man with a long white beard surrounded by books and candles</summary>
127
+
128
+ ![Image 4](images/other/8.png)
129
+
130
+ </details>
131
+
132
+ <details>
133
+ <summary>(<b>Seed:</b> 9513) <b>Prompt:</b> Night urban street with wet asphalt reflections and neon signs</summary>
134
+
135
+ ![Image 5](images/other/9.png)
136
+
137
+ </details>
138
+
139
+ <details>
140
+ <summary>(<b>Seed:</b> 142) <b>Prompt:</b> Futuristic sports car racing in the desert</summary>
141
+
142
+ ![Image 2](images/other/10.png)
143
+
144
+ </details>
145
+
146
+ <details>
147
+ <summary>(<b>Seed:</b> 1325) <b>Prompt:</b> Pirate boat in ocean</summary>
148
+
149
+ ![Image 3](images/other/2.png)
150
+
151
+ </details>
152
+
153
+ <details>
154
+ <summary>(<b>Seed:</b> 4241) <b>Prompt:</b> Davy Jones portrait</summary>
155
+
156
+ ![Image 6](images/other/3.png)
157
+
158
+ </details>
159
+
160
+ <details>
161
+ <summary>(<b>Seed:</b> 142) <b>Prompt:</b> Epic cosmic scene with a huge space station and distant stars</summary>
162
+
163
+ ![Image 8](images/other/5.png)
164
+
165
+ </details>
166
+
167
+ <details>
168
+ <summary>(<b>Seed:</b> 42) <b>Prompt:</b> Cherry blossom park in spring with petals falling to the ground</summary>
169
+
170
+ ![Image 9](images/other/6.png)
171
+
172
+ </details>
173
+
174
+
175
+ ## Comparison with SANA1.5_1.6B_1024px
176
+
177
+ **Prompt:** Generate an interior of a rustic cabin workshop during winter evening. The viewpoint is from the doorway, showing a workbench with tools, wood shavings on the floor, and a cast-iron stove glowing softly. Place shelves with jars of nails, coils of rope, and folded blankets. Through a small window, show snow falling and pine trees in the twilight. Add warm lamplight creating soft gradients and a gentle vignette. Include a person in a thick sweater sanding a wooden object at the bench, but keep the person small in frame
178
+
179
+ <div style="display: flex; gap: 24px; justify-content: center; align-items: flex-start;">
180
+ <div style="text-align: center; flex: 1; min-width: 0;">
181
+ <img src="images/vibe/image_3.png" alt="VIBE" style="width: 100%; max-width: 500px; height: auto; display: block; margin: 0 auto 8px auto;">
182
+ <div>VIBE (Seed: 4411)</div>
183
+ </div>
184
+ <div style="text-align: center; flex: 1; min-width: 0;">
185
+ <img src="images/sana/image_3.png" alt="SANA1.5_1.6B_1024px" style="width: 100%; max-width: 500px; height: auto; display: block; margin: 0 auto 8px auto;">
186
+ <div>SANA1.5_1.6B_1024px (Seed: 1521)</div>
187
+ </div>
188
+ </div>
189
+
190
+
191
+ ---
192
+
193
+ **Prompt:** Generate an ancient jungle temple ruin partially covered in moss and vines, with a waterfall cascading nearby into a shallow pool. Show broken stone steps, carved patterns that are abstract, and damp surfaces with realistic moss detail. Add mist, shafts of sunlight through leaves, and small floating insects. Include a human explorer in the mid-ground, small in frame, wearing a backpack. Lush, cinematic realism.
194
+
195
+ <div style="display: flex; gap: 24px; justify-content: center; align-items: flex-start;">
196
+ <div style="text-align: center; flex: 1; min-width: 0;">
197
+ <img src="images/vibe/image_4.png" alt="VIBE" style="width: 100%; max-width: 500px; height: auto; display: block; margin: 0 auto 8px auto;">
198
+ <div>VIBE (Seed: 1995)</div>
199
+ </div>
200
+ <div style="text-align: center; flex: 1; min-width: 0;">
201
+ <img src="images/sana/image_4.png" alt="SANA1.5_1.6B_1024px" style="width: 100%; max-width: 500px; height: auto; display: block; margin: 0 auto 8px auto;">
202
+ <div>SANA1.5_1.6B_1024px (Seed: 9842)</div>
203
+ </div>
204
+ </div>
205
+
206
+ ---
207
+
208
+ **Prompt:** Create a science-fiction interior of a space greenhouse module with hydroponic racks, glowing grow lights, and condensation on transparent walls. Plants include leafy greens and flowering specimens. Tools and tablets have UI elements. Add soft floating dust or microgravity droplets. Clean, detailed, plausible sci-fi aesthetic.
209
+
210
+ <div style="display: flex; gap: 24px; justify-content: center; align-items: flex-start;">
211
+ <div style="text-align: center; flex: 1; min-width: 0;">
212
+ <img src="images/vibe/image_5.png" alt="VIBE" style="width: 100%; max-width: 500px; height: auto; display: block; margin: 0 auto 8px auto;">
213
+ <div>VIBE (Seed: 2203)</div>
214
+ </div>
215
+ <div style="text-align: center; flex: 1; min-width: 0;">
216
+ <img src="images/sana/image_5.png" alt="SANA1.5_1.6B_1024px" style="width: 100%; max-width: 500px; height: auto; display: block; margin: 0 auto 8px auto;">
217
+ <div>SANA1.5_1.6B_1024px (Seed: 143)</div>
218
+ </div>
219
+ </div>
220
+
221
+ ---
222
+
223
+ **Prompt:** Beautiful tropical beach with guinea pig swimming in the water and human drinking wine
224
+
225
+ <div style="display: flex; gap: 24px; justify-content: center; align-items: flex-start;">
226
+ <div style="text-align: center; flex: 1; min-width: 0;">
227
+ <img src="images/vibe/image_6.png" alt="VIBE" style="width: 100%; max-width: 500px; height: auto; display: block; margin: 0 auto 8px auto;">
228
+ <div>VIBE (Seed: 132142)</div>
229
+ </div>
230
+ <div style="text-align: center; flex: 1; min-width: 0;">
231
+ <img src="images/sana/image_6.png" alt="SANA1.5_1.6B_1024px" style="width: 100%; max-width: 500px; height: auto; display: block; margin: 0 auto 8px auto;">
232
+ <div>SANA1.5_1.6B_1024px (Seed: 132142)</div>
233
+ </div>
234
+ </div>
235
+
236
+ ---
237
+
238
+ **Prompt:** Create a cinematic, rainy night scene in a narrow backstreet of an old downtown area. The camera is at street level, slightly tilted upward, emphasizing wet cobblestones reflecting neon-like colored lights without readable text. Show a small ramen stall with steam rising from pots, hanging paper lanterns that are blank or patterned (no letters), and acouple of stools under a simple awning. Add puddles, scattered trash like crumpled paper, and subtle mist. Include a passerby in the mid-ground seen from behind wearing a hooded jacket and carrying an umbrella, face not visible. Use a moody color palette of deep blues and warm oranges, with soft bokeh highlights and realistic rain streaks
239
+
240
+ <div style="display: flex; gap: 24px; justify-content: center; align-items: flex-start;">
241
+ <div style="text-align: center; flex: 1; min-width: 0;">
242
+ <img src="images/vibe/image_2.png" alt="VIBE" style="width: 100%; max-width: 500px; height: auto; display: block; margin: 0 auto 8px auto;">
243
+ <div>VIBE (Seed: 1003)</div>
244
+ </div>
245
+ <div style="text-align: center; flex: 1; min-width: 0;">
246
+ <img src="images/sana/image_2.png" alt="SANA1.5_1.6B_1024px" style="width: 100%; max-width: 500px; height: auto; display: block; margin: 0 auto 8px auto;">
247
+ <div>SANA1.5_1.6B_1024px (Seed: 3114)</div>
248
+ </div>
249
+ </div>
250
+
251
+ ---
252
+
253
+ **Prompt:** Depict a volcanic lava field at twilight with cooled black rock, glowing cracks of magma in the distance, and heat shimmer. The sky is darkening with faint stars emerging. Add thin smoke plumes and red-orange reflections on nearby rocks. Cinematic realism, dramatic contrast
254
+
255
+ <div style="display: flex; gap: 24px; justify-content: center; align-items: flex-start;">
256
+ <div style="text-align: center; flex: 1; min-width: 0;">
257
+ <img src="images/vibe/image_7.png" alt="VIBE" style="width: 100%; max-width: 500px; height: auto; display: block; margin: 0 auto 8px auto;">
258
+ <div>VIBE (Seed: 1520)</div>
259
+ </div>
260
+ <div style="text-align: center; flex: 1; min-width: 0;">
261
+ <img src="images/sana/image_7.png" alt="SANA1.5_1.6B_1024px" style="width: 100%; max-width: 500px; height: auto; display: block; margin: 0 auto 8px auto;">
262
+ <div>SANA1.5_1.6B_1024px (Seed: 1267)</div>
263
+ </div>
264
+ </div>
265
+
266
+ ---
267
+
268
+ **Prompt:** Portrait from back of a young woman dressed in Victorian attire standing in an ancient library filled with mirrors and stained glass windows, softly illuminated by sunlight streaming through
269
+
270
+ <div style="display: flex; gap: 24px; justify-content: center; align-items: flex-start;">
271
+ <div style="text-align: center; flex: 1; min-width: 0;">
272
+ <img src="images/vibe/image_1.png" alt="VIBE" style="width: 100%; max-width: 500px; height: auto; display: block; margin: 0 auto 8px auto;">
273
+ <div>VIBE (Seed: 4152)</div>
274
+ </div>
275
+ <div style="text-align: center; flex: 1; min-width: 0;">
276
+ <img src="images/sana/image_1.png" alt="SANA1.5_1.6B_1024px" style="width: 100%; max-width: 500px; height: auto; display: block; margin: 0 auto 8px auto;">
277
+ <div>SANA1.5_1.6B_1024px (Seed: 6742)</div>
278
+ </div>
279
+ </div>
280
+
281
+
282
+
283
+ ## License
284
+
285
+ This project is built upon the SANA. Please refer to the original SANA license for usage terms:
286
+ [SANA License](https://huggingface.co/Efficient-Large-Model/SANA1.5_4.8B_1024px_diffusers/blob/main/LICENSE.txt)
287
+
288
+ ## Citation
289
+
290
+ If you use this model in your research or applications, please acknowledge the original projects:
291
+
292
+ - [SANA 1.5: Efficient Scaling of Training-Time and Inference-Time Compute in Linear Diffusion Transformer](https://github.com/NVlabs/Sana)
293
+ - [Qwen3-VL](https://github.com/QwenLM/Qwen3-VL)
294
+
295
+ ```bibtex
296
+ @misc{vibe2026,
297
+ Author = {Grigorii Alekseenko and Aleksandr Gordeev and Irina Tolstykh and Bulat Suleimanov and Vladimir Dokholyan and Georgii Fedorov and Sergey Yakubson and Aleksandra Tsybina and Mikhail Chernyshov and Maksim Kuprashevich},
298
+ Title = {VIBE: Visual Instruction Based Editor},
299
+ Year = {2026},
300
+ Eprint = {arXiv:2601.02242},
301
+ }
302
+ ```
VIBE.png ADDED

Git LFS Details

  • SHA256: a043ff5c10ae3258150e362494dfd6deb374724147adebe592d9cefa71acddee
  • Pointer size: 132 Bytes
  • Size of remote file: 6.01 MB
images/1.png ADDED

Git LFS Details

  • SHA256: c70f9e0f81cb26a699dd6cff27c389ee42e075c6ffa178202df9ae556e830447
  • Pointer size: 131 Bytes
  • Size of remote file: 809 kB
images/11.png ADDED

Git LFS Details

  • SHA256: 34995b9749935862cfd516364a8864d1237044d9fe8752d58fe68a1712da73eb
  • Pointer size: 132 Bytes
  • Size of remote file: 1.09 MB
images/12.png ADDED

Git LFS Details

  • SHA256: 536125b77a207ca56d4a6be8e902f5abd6a4416c09cd60c2277361426d1b1a51
  • Pointer size: 132 Bytes
  • Size of remote file: 2.12 MB
images/13.png ADDED

Git LFS Details

  • SHA256: 109d0dedc348815c1d42e66abcfadd0aa03fa0c7f400158893fca36f1e1704f1
  • Pointer size: 132 Bytes
  • Size of remote file: 1.97 MB
images/2.png ADDED

Git LFS Details

  • SHA256: 991e477198c5acbe887945aaed143f766124c1047777ca475174200685ccf673
  • Pointer size: 132 Bytes
  • Size of remote file: 2.43 MB
images/3.png ADDED

Git LFS Details

  • SHA256: f4cce30a7a49943c8009dd7954f8ead7ee119ecedf1da03182af57136d0db08b
  • Pointer size: 132 Bytes
  • Size of remote file: 1.47 MB
images/4.png ADDED

Git LFS Details

  • SHA256: 3042323eb2f89ae368814db40ea0f08116d9bc72ca6132a69d13e69e107cc4b0
  • Pointer size: 132 Bytes
  • Size of remote file: 2.72 MB
images/5.png ADDED

Git LFS Details

  • SHA256: e1fca8bcd5deed7b483c0310876db4dd4b540027f08454d9f08fbe8ec61ec212
  • Pointer size: 132 Bytes
  • Size of remote file: 2.03 MB
images/6.png ADDED

Git LFS Details

  • SHA256: 89422df2d106b8b22aa41b2589b077eb5d657e2e34e1c05ce31ff595eef7fe13
  • Pointer size: 132 Bytes
  • Size of remote file: 2.1 MB
images/7.png ADDED

Git LFS Details

  • SHA256: 5767d632a726363a273fb624cecc67e6d55103c06f4efd9f7f10578666f1b90e
  • Pointer size: 132 Bytes
  • Size of remote file: 1.53 MB
images/8.png ADDED

Git LFS Details

  • SHA256: f4c208a5ae3f330633b44123f1f8350cc249df0b3c783bcecc191917e75f7381
  • Pointer size: 132 Bytes
  • Size of remote file: 2 MB
images/9.png ADDED

Git LFS Details

  • SHA256: 3ceef5a019ee7682426514cd86378efc69f794a97440746faa5d25b00f04e091
  • Pointer size: 132 Bytes
  • Size of remote file: 1.3 MB
images/other/1.png ADDED

Git LFS Details

  • SHA256: c70f9e0f81cb26a699dd6cff27c389ee42e075c6ffa178202df9ae556e830447
  • Pointer size: 131 Bytes
  • Size of remote file: 809 kB
images/other/10.png ADDED

Git LFS Details

  • SHA256: bc041681dd90413582d4270c2aeea7d30621c2ac0b33344250bd6e73bde1660b
  • Pointer size: 132 Bytes
  • Size of remote file: 1.91 MB
images/other/2.png ADDED

Git LFS Details

  • SHA256: f4cce30a7a49943c8009dd7954f8ead7ee119ecedf1da03182af57136d0db08b
  • Pointer size: 132 Bytes
  • Size of remote file: 1.47 MB
images/other/3.png ADDED

Git LFS Details

  • SHA256: 3042323eb2f89ae368814db40ea0f08116d9bc72ca6132a69d13e69e107cc4b0
  • Pointer size: 132 Bytes
  • Size of remote file: 2.72 MB
images/other/4.png ADDED

Git LFS Details

  • SHA256: e1fca8bcd5deed7b483c0310876db4dd4b540027f08454d9f08fbe8ec61ec212
  • Pointer size: 132 Bytes
  • Size of remote file: 2.03 MB
images/other/5.png ADDED

Git LFS Details

  • SHA256: 5767d632a726363a273fb624cecc67e6d55103c06f4efd9f7f10578666f1b90e
  • Pointer size: 132 Bytes
  • Size of remote file: 1.53 MB
images/other/6.png ADDED

Git LFS Details

  • SHA256: f4c208a5ae3f330633b44123f1f8350cc249df0b3c783bcecc191917e75f7381
  • Pointer size: 132 Bytes
  • Size of remote file: 2 MB
images/other/8.png ADDED

Git LFS Details

  • SHA256: 89422df2d106b8b22aa41b2589b077eb5d657e2e34e1c05ce31ff595eef7fe13
  • Pointer size: 132 Bytes
  • Size of remote file: 2.1 MB
images/other/9.png ADDED

Git LFS Details

  • SHA256: 550e4809a5bcdf4e0c4693222d1edfb1e81cf47735f439d34bbb4e2a314d42dd
  • Pointer size: 132 Bytes
  • Size of remote file: 2.27 MB
images/sana/image_1.png ADDED

Git LFS Details

  • SHA256: fcd5d9c1aca436ea9727e0b373d5ce346bb691c32506cf1eac54749197f2c5a5
  • Pointer size: 132 Bytes
  • Size of remote file: 1.21 MB
images/sana/image_2.png ADDED

Git LFS Details

  • SHA256: 7dabe29d37ccfe448e643f31c5faa09688b1b6740dc299a5a044d15880f74c58
  • Pointer size: 132 Bytes
  • Size of remote file: 1.07 MB
images/sana/image_3.png ADDED

Git LFS Details

  • SHA256: 3607f3399f0dca8c28e4d3bb3687ffd7d09f5e0b8f61982e2317c79605cab89e
  • Pointer size: 132 Bytes
  • Size of remote file: 1.37 MB
images/sana/image_4.png ADDED

Git LFS Details

  • SHA256: 43e3ef66547746c3aa2f8c2a6bec18cce2f2c36fa27f1bb63304eb07e7cd1487
  • Pointer size: 132 Bytes
  • Size of remote file: 1.12 MB
images/sana/image_5.png ADDED

Git LFS Details

  • SHA256: 14114dfeef801a22027e7f8b9a2c2e23af0495466a8d46532bc2e67f9c61f991
  • Pointer size: 132 Bytes
  • Size of remote file: 1.28 MB
images/sana/image_6.png ADDED

Git LFS Details

  • SHA256: 47d34e211f941968ad77a3183497ff94b5a6012bff2e5a76a09ae90133f624e0
  • Pointer size: 132 Bytes
  • Size of remote file: 1.09 MB
images/sana/image_7.png ADDED

Git LFS Details

  • SHA256: c27a27c0221760f5f6bd16c404ca1a1aa1a9081dee3a431907589ba84c6adb5d
  • Pointer size: 131 Bytes
  • Size of remote file: 780 kB
images/vibe/image_1.png ADDED

Git LFS Details

  • SHA256: 352b079d5af4b19b4f3f7eac22cac5c598186cf927223f503c33d7fe6791b24a
  • Pointer size: 132 Bytes
  • Size of remote file: 1.26 MB
images/vibe/image_2.png ADDED

Git LFS Details

  • SHA256: 304781fdd2f8b5168af8e1362cf12ef274a65a08ed863eb94842f579c9b2ceb0
  • Pointer size: 132 Bytes
  • Size of remote file: 1.38 MB
images/vibe/image_3.png ADDED

Git LFS Details

  • SHA256: 71f50014281a5a09e11067461d49810fe43ff730b6cd9b26ef200ace5e9b7be0
  • Pointer size: 131 Bytes
  • Size of remote file: 905 kB
images/vibe/image_4.png ADDED

Git LFS Details

  • SHA256: 7cca82a35891598c92c1b5b1ce391e7767af9930d65ea6ca2d8b68ac8349776c
  • Pointer size: 132 Bytes
  • Size of remote file: 1.55 MB
images/vibe/image_5.png ADDED

Git LFS Details

  • SHA256: 5f0978025252765467fe6127747196631efd2d8a4faad5c83b60d9a603fe88e1
  • Pointer size: 132 Bytes
  • Size of remote file: 1.51 MB
images/vibe/image_6.png ADDED

Git LFS Details

  • SHA256: 991e477198c5acbe887945aaed143f766124c1047777ca475174200685ccf673
  • Pointer size: 132 Bytes
  • Size of remote file: 2.43 MB
images/vibe/image_7.png ADDED

Git LFS Details

  • SHA256: 6d87c1c786e7260055442c103568bc217a51bc8dd41b9450840884d40404e14a
  • Pointer size: 132 Bytes
  • Size of remote file: 1.23 MB
model_index.json ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "_class_name": "VIBESanaEditingPipeline",
3
+ "_diffusers_version": "0.33.1",
4
+ "scheduler": [
5
+ "diffusers",
6
+ "DPMSolverMultistepScheduler"
7
+ ],
8
+ "text_encoder": [
9
+ "transformers",
10
+ "Qwen3VLForConditionalGeneration"
11
+ ],
12
+ "tokenizer": [
13
+ "transformers",
14
+ "Qwen3VLProcessor"
15
+ ],
16
+ "transformer": [
17
+ "vibe.transformer.vibe_sana_editing",
18
+ "VIBESanaEditingModel"
19
+ ],
20
+ "vae": [
21
+ "diffusers",
22
+ "AutoencoderDC"
23
+ ]
24
+ }
scheduler/scheduler_config.json ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "_class_name": "DPMSolverMultistepScheduler",
3
+ "_diffusers_version": "0.33.1",
4
+ "algorithm_type": "dpmsolver++",
5
+ "beta_end": 0.02,
6
+ "beta_schedule": "linear",
7
+ "beta_start": 0.0001,
8
+ "dynamic_thresholding_ratio": 0.995,
9
+ "euler_at_final": false,
10
+ "final_sigmas_type": "zero",
11
+ "flow_shift": 3.0,
12
+ "lambda_min_clipped": -Infinity,
13
+ "lower_order_final": true,
14
+ "num_train_timesteps": 1000,
15
+ "prediction_type": "flow_prediction",
16
+ "rescale_betas_zero_snr": false,
17
+ "sample_max_value": 1.0,
18
+ "solver_order": 2,
19
+ "solver_type": "midpoint",
20
+ "steps_offset": 0,
21
+ "thresholding": false,
22
+ "timestep_spacing": "linspace",
23
+ "trained_betas": null,
24
+ "use_beta_sigmas": false,
25
+ "use_exponential_sigmas": false,
26
+ "use_flow_sigmas": true,
27
+ "use_karras_sigmas": false,
28
+ "use_lu_lambdas": false,
29
+ "variance_type": null
30
+ }
text_encoder/config.json ADDED
@@ -0,0 +1,63 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "architectures": [
3
+ "Qwen3VLForConditionalGeneration"
4
+ ],
5
+ "image_token_id": 151655,
6
+ "model_type": "qwen3_vl",
7
+ "text_config": {
8
+ "attention_bias": false,
9
+ "attention_dropout": 0.0,
10
+ "bos_token_id": 151643,
11
+ "dtype": "bfloat16",
12
+ "eos_token_id": 151645,
13
+ "head_dim": 128,
14
+ "hidden_act": "silu",
15
+ "hidden_size": 2048,
16
+ "initializer_range": 0.02,
17
+ "intermediate_size": 6144,
18
+ "max_position_embeddings": 262144,
19
+ "model_type": "qwen3_vl_text",
20
+ "num_attention_heads": 16,
21
+ "num_hidden_layers": 28,
22
+ "num_key_value_heads": 8,
23
+ "rms_norm_eps": 1e-06,
24
+ "rope_scaling": {
25
+ "mrope_interleaved": true,
26
+ "mrope_section": [
27
+ 24,
28
+ 20,
29
+ 20
30
+ ],
31
+ "rope_type": "default"
32
+ },
33
+ "rope_theta": 5000000,
34
+ "tie_word_embeddings": true,
35
+ "use_cache": true,
36
+ "vocab_size": 151936
37
+ },
38
+ "tie_word_embeddings": true,
39
+ "transformers_version": "4.57.1",
40
+ "video_token_id": 151656,
41
+ "vision_config": {
42
+ "deepstack_visual_indexes": [
43
+ 5,
44
+ 11,
45
+ 17
46
+ ],
47
+ "depth": 24,
48
+ "hidden_act": "gelu_pytorch_tanh",
49
+ "hidden_size": 1024,
50
+ "in_channels": 3,
51
+ "initializer_range": 0.02,
52
+ "intermediate_size": 4096,
53
+ "model_type": "qwen3_vl",
54
+ "num_heads": 16,
55
+ "num_position_embeddings": 2304,
56
+ "out_hidden_size": 2048,
57
+ "patch_size": 16,
58
+ "spatial_merge_size": 2,
59
+ "temporal_patch_size": 2
60
+ },
61
+ "vision_end_token_id": 151653,
62
+ "vision_start_token_id": 151652
63
+ }
text_encoder/generation_config.json ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "bos_token_id": 151643,
3
+ "pad_token_id": 151643,
4
+ "do_sample": true,
5
+ "eos_token_id": [
6
+ 151645,
7
+ 151643
8
+ ],
9
+ "top_p": 0.8,
10
+ "top_k": 20,
11
+ "temperature": 0.7,
12
+ "repetition_penalty": 1.0,
13
+ "transformers_version": "4.56.0"
14
+ }
text_encoder/model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:7de1838c87a5349b016c26a1c3f7d2bc400a3d485f95ef39a7059ffd734977a0
3
+ size 4255140312
tokenizer/chat_template.json ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ {
2
+ "chat_template": "{%- if tools %}\n {{- '<|im_start|>system\\n' }}\n {%- if messages[0].role == 'system' %}\n {%- if messages[0].content is string %}\n {{- messages[0].content }}\n {%- else %}\n {%- for content in messages[0].content %}\n {%- if 'text' in content %}\n {{- content.text }}\n {%- endif %}\n {%- endfor %}\n {%- endif %}\n {{- '\\n\\n' }}\n {%- endif %}\n {{- \"# Tools\\n\\nYou may call one or more functions to assist with the user query.\\n\\nYou are provided with function signatures within <tools></tools> XML tags:\\n<tools>\" }}\n {%- for tool in tools %}\n {{- \"\\n\" }}\n {{- tool | tojson }}\n {%- endfor %}\n {{- \"\\n</tools>\\n\\nFor each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:\\n<tool_call>\\n{\\\"name\\\": <function-name>, \\\"arguments\\\": <args-json-object>}\\n</tool_call><|im_end|>\\n\" }}\n{%- else %}\n {%- if messages[0].role == 'system' %}\n {{- '<|im_start|>system\\n' }}\n {%- if messages[0].content is string %}\n {{- messages[0].content }}\n {%- else %}\n {%- for content in messages[0].content %}\n {%- if 'text' in content %}\n {{- content.text }}\n {%- endif %}\n {%- endfor %}\n {%- endif %}\n {{- '<|im_end|>\\n' }}\n {%- endif %}\n{%- endif %}\n{%- set image_count = namespace(value=0) %}\n{%- set video_count = namespace(value=0) %}\n{%- for message in messages %}\n {%- if message.role == \"user\" %}\n {{- '<|im_start|>' + message.role + '\\n' }}\n {%- if message.content is string %}\n {{- message.content }}\n {%- else %}\n {%- for content in message.content %}\n {%- if content.type == 'image' or 'image' in content or 'image_url' in content %}\n {%- set image_count.value = image_count.value + 1 %}\n {%- if add_vision_id %}Picture {{ image_count.value }}: {% endif -%}\n <|vision_start|><|image_pad|><|vision_end|>\n {%- elif content.type == 'video' or 'video' in content %}\n {%- set video_count.value = video_count.value + 1 %}\n {%- if add_vision_id %}Video {{ video_count.value }}: {% endif -%}\n <|vision_start|><|video_pad|><|vision_end|>\n {%- elif 'text' in content %}\n {{- content.text }}\n {%- endif %}\n {%- endfor %}\n {%- endif %}\n {{- '<|im_end|>\\n' }}\n {%- elif message.role == \"assistant\" %}\n {{- '<|im_start|>' + message.role + '\\n' }}\n {%- if message.content is string %}\n {{- message.content }}\n {%- else %}\n {%- for content_item in message.content %}\n {%- if 'text' in content_item %}\n {{- content_item.text }}\n {%- endif %}\n {%- endfor %}\n {%- endif %}\n {%- if message.tool_calls %}\n {%- for tool_call in message.tool_calls %}\n {%- if (loop.first and message.content) or (not loop.first) %}\n {{- '\\n' }}\n {%- endif %}\n {%- if tool_call.function %}\n {%- set tool_call = tool_call.function %}\n {%- endif %}\n {{- '<tool_call>\\n{\"name\": \"' }}\n {{- tool_call.name }}\n {{- '\", \"arguments\": ' }}\n {%- if tool_call.arguments is string %}\n {{- tool_call.arguments }}\n {%- else %}\n {{- tool_call.arguments | tojson }}\n {%- endif %}\n {{- '}\\n</tool_call>' }}\n {%- endfor %}\n {%- endif %}\n {{- '<|im_end|>\\n' }}\n {%- elif message.role == \"tool\" %}\n {%- if loop.first or (messages[loop.index0 - 1].role != \"tool\") %}\n {{- '<|im_start|>user' }}\n {%- endif %}\n {{- '\\n<tool_response>\\n' }}\n {%- if message.content is string %}\n {{- message.content }}\n {%- else %}\n {%- for content in message.content %}\n {%- if content.type == 'image' or 'image' in content or 'image_url' in content %}\n {%- set image_count.value = image_count.value + 1 %}\n {%- if add_vision_id %}Picture {{ image_count.value }}: {% endif -%}\n <|vision_start|><|image_pad|><|vision_end|>\n {%- elif content.type == 'video' or 'video' in content %}\n {%- set video_count.value = video_count.value + 1 %}\n {%- if add_vision_id %}Video {{ video_count.value }}: {% endif -%}\n <|vision_start|><|video_pad|><|vision_end|>\n {%- elif 'text' in content %}\n {{- content.text }}\n {%- endif %}\n {%- endfor %}\n {%- endif %}\n {{- '\\n</tool_response>' }}\n {%- if loop.last or (messages[loop.index0 + 1].role != \"tool\") %}\n {{- '<|im_end|>\\n' }}\n {%- endif %}\n {%- endif %}\n{%- endfor %}\n{%- if add_generation_prompt %}\n {{- '<|im_start|>assistant\\n' }}\n{%- endif %}\n"
3
+ }
4
+
tokenizer/merges.txt ADDED
The diff for this file is too large to render. See raw diff
 
tokenizer/preprocessor_config.json ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "size": {
3
+ "longest_edge": 16777216,
4
+ "shortest_edge": 65536
5
+ },
6
+ "patch_size": 16,
7
+ "temporal_patch_size": 2,
8
+ "merge_size": 2,
9
+ "image_mean": [
10
+ 0.5,
11
+ 0.5,
12
+ 0.5
13
+ ],
14
+ "image_std": [
15
+ 0.5,
16
+ 0.5,
17
+ 0.5
18
+ ],
19
+ "processor_class": "Qwen3VLProcessor",
20
+ "image_processor_type": "Qwen2VLImageProcessorFast"
21
+ }
tokenizer/tokenizer.json ADDED
The diff for this file is too large to render. See raw diff
 
tokenizer/tokenizer_config.json ADDED
@@ -0,0 +1,239 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "add_bos_token": false,
3
+ "add_prefix_space": false,
4
+ "added_tokens_decoder": {
5
+ "151643": {
6
+ "content": "<|endoftext|>",
7
+ "lstrip": false,
8
+ "normalized": false,
9
+ "rstrip": false,
10
+ "single_word": false,
11
+ "special": true
12
+ },
13
+ "151644": {
14
+ "content": "<|im_start|>",
15
+ "lstrip": false,
16
+ "normalized": false,
17
+ "rstrip": false,
18
+ "single_word": false,
19
+ "special": true
20
+ },
21
+ "151645": {
22
+ "content": "<|im_end|>",
23
+ "lstrip": false,
24
+ "normalized": false,
25
+ "rstrip": false,
26
+ "single_word": false,
27
+ "special": true
28
+ },
29
+ "151646": {
30
+ "content": "<|object_ref_start|>",
31
+ "lstrip": false,
32
+ "normalized": false,
33
+ "rstrip": false,
34
+ "single_word": false,
35
+ "special": true
36
+ },
37
+ "151647": {
38
+ "content": "<|object_ref_end|>",
39
+ "lstrip": false,
40
+ "normalized": false,
41
+ "rstrip": false,
42
+ "single_word": false,
43
+ "special": true
44
+ },
45
+ "151648": {
46
+ "content": "<|box_start|>",
47
+ "lstrip": false,
48
+ "normalized": false,
49
+ "rstrip": false,
50
+ "single_word": false,
51
+ "special": true
52
+ },
53
+ "151649": {
54
+ "content": "<|box_end|>",
55
+ "lstrip": false,
56
+ "normalized": false,
57
+ "rstrip": false,
58
+ "single_word": false,
59
+ "special": true
60
+ },
61
+ "151650": {
62
+ "content": "<|quad_start|>",
63
+ "lstrip": false,
64
+ "normalized": false,
65
+ "rstrip": false,
66
+ "single_word": false,
67
+ "special": true
68
+ },
69
+ "151651": {
70
+ "content": "<|quad_end|>",
71
+ "lstrip": false,
72
+ "normalized": false,
73
+ "rstrip": false,
74
+ "single_word": false,
75
+ "special": true
76
+ },
77
+ "151652": {
78
+ "content": "<|vision_start|>",
79
+ "lstrip": false,
80
+ "normalized": false,
81
+ "rstrip": false,
82
+ "single_word": false,
83
+ "special": true
84
+ },
85
+ "151653": {
86
+ "content": "<|vision_end|>",
87
+ "lstrip": false,
88
+ "normalized": false,
89
+ "rstrip": false,
90
+ "single_word": false,
91
+ "special": true
92
+ },
93
+ "151654": {
94
+ "content": "<|vision_pad|>",
95
+ "lstrip": false,
96
+ "normalized": false,
97
+ "rstrip": false,
98
+ "single_word": false,
99
+ "special": true
100
+ },
101
+ "151655": {
102
+ "content": "<|image_pad|>",
103
+ "lstrip": false,
104
+ "normalized": false,
105
+ "rstrip": false,
106
+ "single_word": false,
107
+ "special": true
108
+ },
109
+ "151656": {
110
+ "content": "<|video_pad|>",
111
+ "lstrip": false,
112
+ "normalized": false,
113
+ "rstrip": false,
114
+ "single_word": false,
115
+ "special": true
116
+ },
117
+ "151657": {
118
+ "content": "<tool_call>",
119
+ "lstrip": false,
120
+ "normalized": false,
121
+ "rstrip": false,
122
+ "single_word": false,
123
+ "special": false
124
+ },
125
+ "151658": {
126
+ "content": "</tool_call>",
127
+ "lstrip": false,
128
+ "normalized": false,
129
+ "rstrip": false,
130
+ "single_word": false,
131
+ "special": false
132
+ },
133
+ "151659": {
134
+ "content": "<|fim_prefix|>",
135
+ "lstrip": false,
136
+ "normalized": false,
137
+ "rstrip": false,
138
+ "single_word": false,
139
+ "special": false
140
+ },
141
+ "151660": {
142
+ "content": "<|fim_middle|>",
143
+ "lstrip": false,
144
+ "normalized": false,
145
+ "rstrip": false,
146
+ "single_word": false,
147
+ "special": false
148
+ },
149
+ "151661": {
150
+ "content": "<|fim_suffix|>",
151
+ "lstrip": false,
152
+ "normalized": false,
153
+ "rstrip": false,
154
+ "single_word": false,
155
+ "special": false
156
+ },
157
+ "151662": {
158
+ "content": "<|fim_pad|>",
159
+ "lstrip": false,
160
+ "normalized": false,
161
+ "rstrip": false,
162
+ "single_word": false,
163
+ "special": false
164
+ },
165
+ "151663": {
166
+ "content": "<|repo_name|>",
167
+ "lstrip": false,
168
+ "normalized": false,
169
+ "rstrip": false,
170
+ "single_word": false,
171
+ "special": false
172
+ },
173
+ "151664": {
174
+ "content": "<|file_sep|>",
175
+ "lstrip": false,
176
+ "normalized": false,
177
+ "rstrip": false,
178
+ "single_word": false,
179
+ "special": false
180
+ },
181
+ "151665": {
182
+ "content": "<tool_response>",
183
+ "lstrip": false,
184
+ "normalized": false,
185
+ "rstrip": false,
186
+ "single_word": false,
187
+ "special": false
188
+ },
189
+ "151666": {
190
+ "content": "</tool_response>",
191
+ "lstrip": false,
192
+ "normalized": false,
193
+ "rstrip": false,
194
+ "single_word": false,
195
+ "special": false
196
+ },
197
+ "151667": {
198
+ "content": "<think>",
199
+ "lstrip": false,
200
+ "normalized": false,
201
+ "rstrip": false,
202
+ "single_word": false,
203
+ "special": false
204
+ },
205
+ "151668": {
206
+ "content": "</think>",
207
+ "lstrip": false,
208
+ "normalized": false,
209
+ "rstrip": false,
210
+ "single_word": false,
211
+ "special": false
212
+ }
213
+ },
214
+ "additional_special_tokens": [
215
+ "<|im_start|>",
216
+ "<|im_end|>",
217
+ "<|object_ref_start|>",
218
+ "<|object_ref_end|>",
219
+ "<|box_start|>",
220
+ "<|box_end|>",
221
+ "<|quad_start|>",
222
+ "<|quad_end|>",
223
+ "<|vision_start|>",
224
+ "<|vision_end|>",
225
+ "<|vision_pad|>",
226
+ "<|image_pad|>",
227
+ "<|video_pad|>"
228
+ ],
229
+ "bos_token": null,
230
+ "chat_template": "{%- if tools %}\n {{- '<|im_start|>system\\n' }}\n {%- if messages[0].role == 'system' %}\n {%- if messages[0].content is string %}\n {{- messages[0].content }}\n {%- else %}\n {%- for content in messages[0].content %}\n {%- if 'text' in content %}\n {{- content.text }}\n {%- endif %}\n {%- endfor %}\n {%- endif %}\n {{- '\\n\\n' }}\n {%- endif %}\n {{- \"# Tools\\n\\nYou may call one or more functions to assist with the user query.\\n\\nYou are provided with function signatures within <tools></tools> XML tags:\\n<tools>\" }}\n {%- for tool in tools %}\n {{- \"\\n\" }}\n {{- tool | tojson }}\n {%- endfor %}\n {{- \"\\n</tools>\\n\\nFor each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:\\n<tool_call>\\n{\\\"name\\\": <function-name>, \\\"arguments\\\": <args-json-object>}\\n</tool_call><|im_end|>\\n\" }}\n{%- else %}\n {%- if messages[0].role == 'system' %}\n {{- '<|im_start|>system\\n' }}\n {%- if messages[0].content is string %}\n {{- messages[0].content }}\n {%- else %}\n {%- for content in messages[0].content %}\n {%- if 'text' in content %}\n {{- content.text }}\n {%- endif %}\n {%- endfor %}\n {%- endif %}\n {{- '<|im_end|>\\n' }}\n {%- endif %}\n{%- endif %}\n{%- set image_count = namespace(value=0) %}\n{%- set video_count = namespace(value=0) %}\n{%- for message in messages %}\n {%- if message.role == \"user\" %}\n {{- '<|im_start|>' + message.role + '\\n' }}\n {%- if message.content is string %}\n {{- message.content }}\n {%- else %}\n {%- for content in message.content %}\n {%- if content.type == 'image' or 'image' in content or 'image_url' in content %}\n {%- set image_count.value = image_count.value + 1 %}\n {%- if add_vision_id %}Picture {{ image_count.value }}: {% endif -%}\n <|vision_start|><|image_pad|><|vision_end|>\n {%- elif content.type == 'video' or 'video' in content %}\n {%- set video_count.value = video_count.value + 1 %}\n {%- if add_vision_id %}Video {{ video_count.value }}: {% endif -%}\n <|vision_start|><|video_pad|><|vision_end|>\n {%- elif 'text' in content %}\n {{- content.text }}\n {%- endif %}\n {%- endfor %}\n {%- endif %}\n {{- '<|im_end|>\\n' }}\n {%- elif message.role == \"assistant\" %}\n {{- '<|im_start|>' + message.role + '\\n' }}\n {%- if message.content is string %}\n {{- message.content }}\n {%- else %}\n {%- for content_item in message.content %}\n {%- if 'text' in content_item %}\n {{- content_item.text }}\n {%- endif %}\n {%- endfor %}\n {%- endif %}\n {%- if message.tool_calls %}\n {%- for tool_call in message.tool_calls %}\n {%- if (loop.first and message.content) or (not loop.first) %}\n {{- '\\n' }}\n {%- endif %}\n {%- if tool_call.function %}\n {%- set tool_call = tool_call.function %}\n {%- endif %}\n {{- '<tool_call>\\n{\"name\": \"' }}\n {{- tool_call.name }}\n {{- '\", \"arguments\": ' }}\n {%- if tool_call.arguments is string %}\n {{- tool_call.arguments }}\n {%- else %}\n {{- tool_call.arguments | tojson }}\n {%- endif %}\n {{- '}\\n</tool_call>' }}\n {%- endfor %}\n {%- endif %}\n {{- '<|im_end|>\\n' }}\n {%- elif message.role == \"tool\" %}\n {%- if loop.first or (messages[loop.index0 - 1].role != \"tool\") %}\n {{- '<|im_start|>user' }}\n {%- endif %}\n {{- '\\n<tool_response>\\n' }}\n {%- if message.content is string %}\n {{- message.content }}\n {%- else %}\n {%- for content in message.content %}\n {%- if content.type == 'image' or 'image' in content or 'image_url' in content %}\n {%- set image_count.value = image_count.value + 1 %}\n {%- if add_vision_id %}Picture {{ image_count.value }}: {% endif -%}\n <|vision_start|><|image_pad|><|vision_end|>\n {%- elif content.type == 'video' or 'video' in content %}\n {%- set video_count.value = video_count.value + 1 %}\n {%- if add_vision_id %}Video {{ video_count.value }}: {% endif -%}\n <|vision_start|><|video_pad|><|vision_end|>\n {%- elif 'text' in content %}\n {{- content.text }}\n {%- endif %}\n {%- endfor %}\n {%- endif %}\n {{- '\\n</tool_response>' }}\n {%- if loop.last or (messages[loop.index0 + 1].role != \"tool\") %}\n {{- '<|im_end|>\\n' }}\n {%- endif %}\n {%- endif %}\n{%- endfor %}\n{%- if add_generation_prompt %}\n {{- '<|im_start|>assistant\\n' }}\n{%- endif %}\n",
231
+ "clean_up_tokenization_spaces": false,
232
+ "eos_token": "<|im_end|>",
233
+ "errors": "replace",
234
+ "model_max_length": 262144,
235
+ "pad_token": "<|endoftext|>",
236
+ "split_special_tokens": false,
237
+ "tokenizer_class": "Qwen2Tokenizer",
238
+ "unk_token": null
239
+ }
tokenizer/video_preprocessor_config.json ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "size": {
3
+ "longest_edge": 25165824,
4
+ "shortest_edge": 4096
5
+ },
6
+ "patch_size": 16,
7
+ "temporal_patch_size": 2,
8
+ "merge_size": 2,
9
+ "image_mean": [
10
+ 0.5,
11
+ 0.5,
12
+ 0.5
13
+ ],
14
+ "image_std": [
15
+ 0.5,
16
+ 0.5,
17
+ 0.5
18
+ ],
19
+ "processor_class": "Qwen3VLProcessor",
20
+ "video_processor_type": "Qwen3VLVideoProcessor"
21
+ }
tokenizer/vocab.json ADDED
The diff for this file is too large to render. See raw diff