aryan5v commited on
Commit
ea422e7
·
verified ·
1 Parent(s): c4dcad2

Add files using upload-large-folder tool

Browse files
Files changed (50) hide show
  1. README.md +95 -0
  2. adaln_table.pt +3 -0
  3. audio_scheduler/scheduler_config.json +5 -0
  4. audio_vae/config.json +125 -0
  5. audio_vae/diffusion_pytorch_model.safetensors +3 -0
  6. fastvideo_inference.json +31 -0
  7. modular_model_index.json +131 -0
  8. processor/chat_template.json +3 -0
  9. processor/merges.txt +0 -0
  10. processor/preprocessor_config.json +21 -0
  11. processor/tokenizer.json +0 -0
  12. processor/tokenizer_config.json +246 -0
  13. processor/video_preprocessor_config.json +21 -0
  14. processor/vocab.json +0 -0
  15. scheduler/scheduler_config.json +5 -0
  16. text_encoder/chat_template.json +3 -0
  17. text_encoder/config.json +80 -0
  18. text_encoder/merges.txt +0 -0
  19. text_encoder/model-00001-of-00004.safetensors +3 -0
  20. text_encoder/model-00002-of-00004.safetensors +3 -0
  21. text_encoder/model-00003-of-00004.safetensors +3 -0
  22. text_encoder/model-00004-of-00004.safetensors +3 -0
  23. text_encoder/model.safetensors.index.json +0 -0
  24. text_encoder/preprocessor_config.json +21 -0
  25. text_encoder/tokenizer.json +0 -0
  26. text_encoder/tokenizer_config.json +246 -0
  27. text_encoder/video_preprocessor_config.json +21 -0
  28. text_encoder/vocab.json +0 -0
  29. tokenizer/merges.txt +0 -0
  30. tokenizer/tokenizer.json +0 -0
  31. tokenizer/tokenizer_config.json +246 -0
  32. tokenizer/vocab.json +0 -0
  33. transformer/config.json +34 -0
  34. transformer/diffusion_pytorch_model-00001-of-00014.safetensors +3 -0
  35. transformer/diffusion_pytorch_model-00003-of-00014.safetensors +3 -0
  36. transformer/diffusion_pytorch_model-00011-of-00014.safetensors +3 -0
  37. transformer/diffusion_pytorch_model-00012-of-00014.safetensors +3 -0
  38. transformer/diffusion_pytorch_model-00013-of-00014.safetensors +3 -0
  39. transformer/diffusion_pytorch_model-00014-of-00014.safetensors +3 -0
  40. transformer/diffusion_pytorch_model.safetensors.index.json +0 -0
  41. transformer_ref/config.json +34 -0
  42. transformer_ref/diffusion_pytorch_model-00001-of-00014.safetensors +3 -0
  43. transformer_ref/diffusion_pytorch_model-00002-of-00014.safetensors +3 -0
  44. transformer_ref/diffusion_pytorch_model-00003-of-00014.safetensors +3 -0
  45. transformer_ref/diffusion_pytorch_model-00004-of-00014.safetensors +3 -0
  46. transformer_ref/diffusion_pytorch_model-00009-of-00014.safetensors +3 -0
  47. transformer_ref/diffusion_pytorch_model-00013-of-00014.safetensors +3 -0
  48. transformer_ref/diffusion_pytorch_model.safetensors.index.json +0 -0
  49. vae/config.json +97 -0
  50. vae/diffusion_pytorch_model.safetensors +3 -0
README.md ADDED
@@ -0,0 +1,95 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: other
3
+ tags: [video-generation, text-to-audio-video, reference-to-video, minimax-h3, fastvideo, fp8]
4
+ ---
5
+
6
+ # FastH3-Omni-FP8 (OmniRef, FP8 W8A8 DiT, for GPUs without FP4)
7
+
8
+ FastH3 OmniRef (reference-to-video with audio, 8-forward PDD) as an FP8 stack for GPUs that have no FP4 tensor cores:
9
+ RTX 4090 / L40S / RTX 6000 Ada (sm_89), H100 / H200 (sm_90), and any Blackwell part when you prefer FP8.
10
+ It is the original distilled OmniRef student (step 3500) quantized to FP8; nothing is retrained.
11
+
12
+ ## Which weights, and why
13
+
14
+ Two bf16 sources were quantized the same way (FP8 e4m3, one scale per output channel, activations per token at run time)
15
+ and scored against the bf16 OmniRef teacher with the QAD harness metric: teacher-forced x0 relative L2 per forward on the
16
+ 15 held-out OmniRef rows (480p and 768p), averaged over the 8 forwards; `score` is the mean of the video and audio
17
+ columns. Lower is better.
18
+
19
+ | Row | Video | Audio | Score |
20
+ |---|---|---|---|
21
+ | bf16 OmniRef step 3500 (the teacher, unquantized) | 0.000 | 0.000 | 0.000 |
22
+ | **(a) step 3500, FP8 W8A8 dynamic (this release)** | **0.094** | **0.168** | **0.131** |
23
+ | (b) NVFP4 QAD v2 masters (step 120), FP8 W8A8 dynamic | 0.131 | 0.268 | 0.200 |
24
+ | (b) NVFP4 QAD v2 masters, unquantized bf16 (drift from the teacher) | 0.119 | 0.249 | 0.184 |
25
+ | (a) FP8 weights only, bf16 activations | 0.084 | 0.136 | 0.110 |
26
+ | (c) (a) with static per-tensor activation scales, 1000-row max calibration | 0.098 | 0.171 | 0.134 |
27
+ | (c) (a) with static scales, MSE-clipped on 24 rows | 0.096 | 0.172 | 0.134 |
28
+ | for context: NVFP4 initialization (step 0 of the QAD runs) | 0.225 | 0.499 | 0.362 |
29
+ | for context: NVFP4 QAD v2, step 120 | 0.198 | 0.409 | 0.303 |
30
+
31
+ Findings:
32
+
33
+ - **The original student quantizes better to FP8 than the QAD v2 masters.** QAD moved the weights 0.18 away from the
34
+ teacher in bf16 (it tuned them to absorb 4-bit rounding and FP4 attention); FP8's much finer rounding gets nothing back
35
+ from that, so (b) stays 0.18 off the teacher before any FP8 rounding. (a) is used.
36
+ - FP8 error is mostly in the weights (0.110 of the 0.131); activation rounding adds the rest.
37
+ - **Static activation scales do not buy accuracy and FastVideo's FP8 loader does not support them.** With e4m3 the
38
+ rounding error is relative, so the per-tensor scale hardly matters unless values overflow or underflow: MSE clipping chose
39
+ the full calibrated amax for almost every layer, and static scales score 0.134 against 0.131 for dynamic per-token. They
40
+ are not exported. Using them would need a small kernel and loader change (a stored per-layer activation scale, and a
41
+ quantize step that takes it instead of reducing each row), which would also drop the per-token amax pass.
42
+ - The NVFP4 rows use FP4 sparse attention; every FP8 row uses bf16 attention, as the FP8 profile does. Scores are
43
+ therefore not an isolated linear-layer comparison, but they are what each stack delivers.
44
+
45
+ ## Contents
46
+
47
+ | Component | Format |
48
+ |---|---|
49
+ | `transformer` / `transformer_ref` | Identical. 300 linears (q, k, v, out, fc_in, fc_out of all 50 blocks) as `float8_e4m3fn` with a float32 `weight_scale` per output channel (the `FastVideo-FastH3-8-Step-V2-FP8` format); everything else bf16: AdaLN/timestep projections, embeddings, norms, the VSA compression gates, the token refiner |
50
+ | `text_encoder` | NVFP4 Qwen3-VL text encoder (unchanged from the NVFP4 releases; on an RTX 4090 it streams per layer and expands to bf16) |
51
+ | `vae` | Dense light VAE (26-layer decoder), from the V2 Consumer release. Used for reference encoding and decoding; the NVFP4 decoder needs FP4 hardware, so there is none here |
52
+ | `audio_vae`, `scheduler`, `audio_scheduler`, `processor`, `tokenizer`, `fastvideo_inference.json` | Unchanged |
53
+ | `adaln_table.pt` | Precomputed AdaLN modulation for the contract's fixed timestep ladder, image references with and without a reference audio. Lets the loader skip the 24 GiB of `adaln_proj` weights |
54
+
55
+ Size: DiT 47.4 GiB (24.2 GiB of it is the AdaLN projections the table replaces, 18.0 GiB FP8 linears, 5.2 GiB other),
56
+ encoder 16 GiB, VAE 4 GiB, audio VAE 0.6 GiB, table 0.5 GiB: about 68 GiB on disk with the duplicate `transformer`
57
+ stored once.
58
+
59
+ ## Running with FastVideo
60
+
61
+ Needs the FastVideo branch with the OmniRef consumer profiles. `--base-model-path` points at this folder so the encoder
62
+ and the light VAE come from it rather than from base MiniMax-H3.
63
+
64
+ ```bash
65
+ python examples/inference/basic/basic_fasth3_omniref_pdd.py \
66
+ --model-path ./FastH3-Omni-FP8 --base-model-path ./FastH3-Omni-FP8 \
67
+ --composed-dir ./FastH3-Omni-FP8-composed \
68
+ --adaln-table ./FastH3-Omni-FP8/adaln_table.pt \
69
+ --image reference.png --prompt "a person on a sofa, lit by a warm lamp, speaking to camera" \
70
+ --profile rtx-4090
71
+ ```
72
+
73
+ `--profile rtx-4090` selects FP8 linears (`transformer_quant: FP8`, per-channel weights, per-token activations),
74
+ bf16 VSA attention on the contract's 128-token tiles (`FASTVIDEO_H3_VSA_FINE_ATTENTION=emulator-bf16`), the dense VAE
75
+ decoder, and a non-resident encoder. On Hopper or Blackwell data-center GPUs the same command works with the `rtx-4090`
76
+ profile, or without a profile and with `FASTVIDEO_H3_VSA_FP4=0`.
77
+
78
+ The AdaLN table was checked with one image reference, an image plus a reference audio, and a reference video plus an
79
+ image. A layout whose row timesteps differ raises "No precomputed AdaLN modulation"; drop `--adaln-table` then (the
80
+ projection weights are in the DiT).
81
+
82
+ ## Checks
83
+
84
+ - Clips rendered on a GB200 through this folder and `--profile rtx-4090` (480p, 5.2 s, 124 frames, two prompts,
85
+ one with a reference audio) are clean: no ghosting, tile seams, flicker or audio dropouts, with the same composition
86
+ as the bf16 student at the same seed.
87
+ - The export loads through the existing pre-quantized FP8 loader ("Loaded 300 pre-quantized FP8 linears").
88
+ - The scoring harness rounds weights and activations with the same math as the export and the deployed kernels, in a
89
+ bf16 GEMM on dequantized operands; the real `_scaled_mm` path was not scored separately.
90
+ - Not tested on a 4090. Peak GPU memory allocated on the GB200 at 480p with the AdaLN table was 37.9 GiB (one image),
91
+ 38.3 GiB (image plus audio), 48.6 GiB (video plus image reference). The DiT weights alone are about 23 GiB without the
92
+ AdaLN projections, so a 24 GB card will probably need layerwise block streaming (`offload.dit_layerwise: true` in a YAML
93
+ recipe; the example script does not expose it).
94
+
95
+ Internal release candidate. Private; not for redistribution.
adaln_table.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:61bd6dabdac6567e4dece2d169e28bc39724da1da307a0cd967c8247980a1755
3
+ size 522858145
audio_scheduler/scheduler_config.json ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ {
2
+ "_class_name": "MiniMaxH3Scheduler",
3
+ "_diffusers_version": "0.36.0.dev0",
4
+ "shift": 3.0
5
+ }
audio_vae/config.json ADDED
@@ -0,0 +1,125 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "_class_name": "AutoencoderKLMiniMaxH3Audio",
3
+ "_diffusers_version": "0.36.0.dev0",
4
+ "encoder_dim": 64,
5
+ "encoder_rates": [
6
+ 2,
7
+ 4,
8
+ 4,
9
+ 5,
10
+ 5
11
+ ],
12
+ "latent_dim": 2048,
13
+ "latent_channels": 32,
14
+ "decoder_dim": 1024,
15
+ "decoder_rates": [
16
+ 5,
17
+ 5,
18
+ 2,
19
+ 2,
20
+ 2,
21
+ 2,
22
+ 2
23
+ ],
24
+ "decoder_kernel_sizes": [
25
+ 9,
26
+ 9,
27
+ 4,
28
+ 4,
29
+ 4,
30
+ 4,
31
+ 4
32
+ ],
33
+ "num_attention_heads": 8,
34
+ "resblock_kernel_sizes": [
35
+ 3,
36
+ 7,
37
+ 11
38
+ ],
39
+ "resblock_dilation_sizes": [
40
+ [
41
+ 1,
42
+ 3,
43
+ 5
44
+ ],
45
+ [
46
+ 1,
47
+ 3,
48
+ 5
49
+ ],
50
+ [
51
+ 1,
52
+ 3,
53
+ 5
54
+ ]
55
+ ],
56
+ "sampling_rate": 32000,
57
+ "latents_mean": [
58
+ -0.020211687488382354,
59
+ 0.3876466479950502,
60
+ -0.04398279799186767,
61
+ -0.28591514936373,
62
+ 0.08179686214561671,
63
+ -0.35782641352446604,
64
+ 0.040623809960919084,
65
+ -0.01552534501956604,
66
+ -0.223362481667332,
67
+ 0.1821006842509091,
68
+ 0.2941778783780663,
69
+ -0.07901167601970885,
70
+ -0.056815072777201,
71
+ -0.3699028221860095,
72
+ -0.31616315591624855,
73
+ 0.5905951377425391,
74
+ -0.052139568068853864,
75
+ 0.013673160263486295,
76
+ -0.03691647864630577,
77
+ 0.09732660653298163,
78
+ -0.3394662328788498,
79
+ -0.30685677538541667,
80
+ -0.24504598907458763,
81
+ -0.034698524462007344,
82
+ 0.02868032184767538,
83
+ -0.21217779266454084,
84
+ -0.1678263169941987,
85
+ 0.3221287889040614,
86
+ -0.1223055851554907,
87
+ 0.4356604928128464,
88
+ -0.0502599202236253,
89
+ 0.3979258376211797
90
+ ],
91
+ "latents_std": [
92
+ 1.6895524230479284,
93
+ 2.76263727217653,
94
+ 1.7945344281264435,
95
+ 1.6801681847309828,
96
+ 1.6390226546605453,
97
+ 2.7788298348882177,
98
+ 1.7659090095747236,
99
+ 1.6199757612137327,
100
+ 2.6336525640336896,
101
+ 1.8539356672817833,
102
+ 2.5056497896915633,
103
+ 1.811019237886178,
104
+ 1.9579657790720237,
105
+ 1.6685498243529284,
106
+ 1.4922469314453364,
107
+ 3.298670198067373,
108
+ 1.9491804496832168,
109
+ 1.8720003270431442,
110
+ 1.8334080103291832,
111
+ 1.6488070416529093,
112
+ 1.6176957696319716,
113
+ 1.9131449234774398,
114
+ 1.5695245398428617,
115
+ 1.6943659940415912,
116
+ 1.8318420762504692,
117
+ 1.5540637421583379,
118
+ 1.9344930328968526,
119
+ 1.599198216109855,
120
+ 1.718045989838149,
121
+ 1.6307219190837705,
122
+ 1.8661226051202384,
123
+ 1.5613768203168363
124
+ ]
125
+ }
audio_vae/diffusion_pytorch_model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:52c59e67ba8de5477c81bfbced0327aabf500f1bfdeefd5ee754529241cb26cb
3
+ size 605429340
fastvideo_inference.json ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "attention_backend": "VIDEO_SPARSE_ATTN_H3",
3
+ "audio_scheduler_shift": 3.0,
4
+ "base_model_revision": "hf://MiniMaxAI/MiniMax-H3@9bfb6693f2cf6de171db46d1aa586f67d773a1da",
5
+ "conditioning": "fixed_ordered_references_target_only_flow",
6
+ "grid_max_t": 0.999,
7
+ "guidance_scale": 1.0,
8
+ "model_type": "ref2va",
9
+ "num_inference_steps": 8,
10
+ "pdd_step_indices": [
11
+ 0,
12
+ 4,
13
+ 8,
14
+ 12,
15
+ 16,
16
+ 20,
17
+ 24,
18
+ 28,
19
+ 32
20
+ ],
21
+ "pdd_steps": 32,
22
+ "schema": "fasth3-inference-contract-v1",
23
+ "schema_version": "fasth3-inference-contract-v1",
24
+ "transformer_component": "transformer_ref",
25
+ "transformer_forwards": 8,
26
+ "video_scheduler_shift": 12.0,
27
+ "vsa_ref_keep_rate": 0.1,
28
+ "vsa_ref_policy": "p2_multi_region",
29
+ "vsa_sparsity": 0.9,
30
+ "vsa_tile_size": 128
31
+ }
modular_model_index.json ADDED
@@ -0,0 +1,131 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "_class_name": "MiniMaxH3ModularPipeline",
3
+ "_diffusers_version": "0.36.0.dev0",
4
+ "_blocks_class_name": "MiniMaxH3Blocks",
5
+ "text_encoder": [
6
+ "transformers",
7
+ "Qwen3VLForConditionalGeneration",
8
+ {
9
+ "type_hint": [
10
+ "transformers",
11
+ "Qwen3VLForConditionalGeneration"
12
+ ],
13
+ "pretrained_model_name_or_path": "MiniMaxAI/MiniMax-H3",
14
+ "subfolder": "text_encoder",
15
+ "variant": null,
16
+ "revision": null
17
+ }
18
+ ],
19
+ "tokenizer": [
20
+ "transformers",
21
+ "Qwen2TokenizerFast",
22
+ {
23
+ "type_hint": [
24
+ "transformers",
25
+ "Qwen2TokenizerFast"
26
+ ],
27
+ "pretrained_model_name_or_path": "MiniMaxAI/MiniMax-H3",
28
+ "subfolder": "tokenizer",
29
+ "variant": null,
30
+ "revision": null
31
+ }
32
+ ],
33
+ "processor": [
34
+ "transformers",
35
+ "Qwen3VLProcessor",
36
+ {
37
+ "type_hint": [
38
+ "transformers",
39
+ "Qwen3VLProcessor"
40
+ ],
41
+ "pretrained_model_name_or_path": "MiniMaxAI/MiniMax-H3",
42
+ "subfolder": "processor",
43
+ "variant": null,
44
+ "revision": null
45
+ }
46
+ ],
47
+ "vae": [
48
+ "diffusers",
49
+ "AutoencoderKLMiniMaxH3",
50
+ {
51
+ "type_hint": [
52
+ "diffusers",
53
+ "AutoencoderKLMiniMaxH3"
54
+ ],
55
+ "pretrained_model_name_or_path": "MiniMaxAI/MiniMax-H3",
56
+ "subfolder": "vae",
57
+ "variant": null,
58
+ "revision": null
59
+ }
60
+ ],
61
+ "audio_vae": [
62
+ "diffusers",
63
+ "AutoencoderKLMiniMaxH3Audio",
64
+ {
65
+ "type_hint": [
66
+ "diffusers",
67
+ "AutoencoderKLMiniMaxH3Audio"
68
+ ],
69
+ "pretrained_model_name_or_path": "MiniMaxAI/MiniMax-H3",
70
+ "subfolder": "audio_vae",
71
+ "variant": null,
72
+ "revision": null
73
+ }
74
+ ],
75
+ "transformer": [
76
+ "diffusers",
77
+ "MiniMaxH3Transformer3DModel",
78
+ {
79
+ "type_hint": [
80
+ "diffusers",
81
+ "MiniMaxH3Transformer3DModel"
82
+ ],
83
+ "pretrained_model_name_or_path": "MiniMaxAI/MiniMax-H3",
84
+ "subfolder": "transformer",
85
+ "variant": null,
86
+ "revision": null
87
+ }
88
+ ],
89
+ "transformer_ref": [
90
+ "diffusers",
91
+ "MiniMaxH3Transformer3DModel",
92
+ {
93
+ "type_hint": [
94
+ "diffusers",
95
+ "MiniMaxH3Transformer3DModel"
96
+ ],
97
+ "pretrained_model_name_or_path": "MiniMaxAI/MiniMax-H3",
98
+ "subfolder": "transformer_ref",
99
+ "variant": null,
100
+ "revision": null
101
+ }
102
+ ],
103
+ "scheduler": [
104
+ "diffusers",
105
+ "MiniMaxH3Scheduler",
106
+ {
107
+ "type_hint": [
108
+ "diffusers",
109
+ "MiniMaxH3Scheduler"
110
+ ],
111
+ "pretrained_model_name_or_path": "MiniMaxAI/MiniMax-H3",
112
+ "subfolder": "scheduler",
113
+ "variant": null,
114
+ "revision": null
115
+ }
116
+ ],
117
+ "audio_scheduler": [
118
+ "diffusers",
119
+ "MiniMaxH3Scheduler",
120
+ {
121
+ "type_hint": [
122
+ "diffusers",
123
+ "MiniMaxH3Scheduler"
124
+ ],
125
+ "pretrained_model_name_or_path": "MiniMaxAI/MiniMax-H3",
126
+ "subfolder": "audio_scheduler",
127
+ "variant": null,
128
+ "revision": null
129
+ }
130
+ ]
131
+ }
processor/chat_template.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
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
+ }
processor/merges.txt ADDED
The diff for this file is too large to render. See raw diff
 
processor/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
+ }
processor/tokenizer.json ADDED
The diff for this file is too large to render. See raw diff
 
processor/tokenizer_config.json ADDED
@@ -0,0 +1,246 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
+ "<d>",
229
+ "</d>",
230
+ "<|cutoff|>",
231
+ "<|lyrics_start|>",
232
+ "<|lyrics_end|>",
233
+ "<|caption_start|>",
234
+ "<|caption_end|>"
235
+ ],
236
+ "bos_token": null,
237
+ "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",
238
+ "clean_up_tokenization_spaces": false,
239
+ "eos_token": "<|im_end|>",
240
+ "errors": "replace",
241
+ "model_max_length": 262144,
242
+ "pad_token": "<|endoftext|>",
243
+ "split_special_tokens": false,
244
+ "tokenizer_class": "Qwen2Tokenizer",
245
+ "unk_token": null
246
+ }
processor/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
+ }
processor/vocab.json ADDED
The diff for this file is too large to render. See raw diff
 
scheduler/scheduler_config.json ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ {
2
+ "_class_name": "MiniMaxH3Scheduler",
3
+ "_diffusers_version": "0.36.0.dev0",
4
+ "shift": 12.0
5
+ }
text_encoder/chat_template.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
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
+ }
text_encoder/config.json ADDED
@@ -0,0 +1,80 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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": 5120,
16
+ "initializer_range": 0.02,
17
+ "intermediate_size": 25600,
18
+ "max_position_embeddings": 262144,
19
+ "model_type": "qwen3_vl_text",
20
+ "num_attention_heads": 64,
21
+ "num_hidden_layers": 64,
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
+ "use_cache": true,
35
+ "vocab_size": 151936
36
+ },
37
+ "tie_word_embeddings": false,
38
+ "transformers_version": "4.57.0.dev0",
39
+ "video_token_id": 151656,
40
+ "vision_config": {
41
+ "deepstack_visual_indexes": [
42
+ 8,
43
+ 16,
44
+ 24
45
+ ],
46
+ "depth": 27,
47
+ "hidden_act": "gelu_pytorch_tanh",
48
+ "hidden_size": 1152,
49
+ "in_channels": 3,
50
+ "initializer_range": 0.02,
51
+ "intermediate_size": 4304,
52
+ "model_type": "qwen3_vl",
53
+ "num_heads": 16,
54
+ "num_position_embeddings": 2304,
55
+ "out_hidden_size": 5120,
56
+ "patch_size": 16,
57
+ "spatial_merge_size": 2,
58
+ "temporal_patch_size": 2
59
+ },
60
+ "vision_end_token_id": 151653,
61
+ "vision_start_token_id": 151652,
62
+ "num_hidden_layers_override": 50,
63
+ "quantization_config": {
64
+ "quant_method": "nvfp4",
65
+ "activation_scheme": "dynamic",
66
+ "fmt": "e2m1",
67
+ "group_size": 16,
68
+ "scale_fmt": "e4m3",
69
+ "scale_layout": "128x4",
70
+ "modules_to_not_convert": [
71
+ "model.visual",
72
+ "lm_head"
73
+ ],
74
+ "producer": {
75
+ "converter": "convert_minimax_h3_text_encoder_nvfp4.py",
76
+ "flashinfer": "0.7.1rc2",
77
+ "kept_language_layers": 50
78
+ }
79
+ }
80
+ }
text_encoder/merges.txt ADDED
The diff for this file is too large to render. See raw diff
 
text_encoder/model-00001-of-00004.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:969e7d251a873d16d3f487d9a5e82f8901132cfac9344530aa4e25ba9338e9e7
3
+ size 4290567132
text_encoder/model-00002-of-00004.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ff092cd64c489ce4609a08ba5d9f8548591bf835cd98fa4154a7eccd0ea16dfd
3
+ size 4270035088
text_encoder/model-00003-of-00004.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:3dab4af0342cfc9b31839458d059327c7cd1e5be1fe779ded253939cabb36a51
3
+ size 4241221712
text_encoder/model-00004-of-00004.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:628852eb94bd2e3c297d120683f900b49051f236e2cd9d1f26476c30cedc2add
3
+ size 3659204564
text_encoder/model.safetensors.index.json ADDED
The diff for this file is too large to render. See raw diff
 
text_encoder/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
+ }
text_encoder/tokenizer.json ADDED
The diff for this file is too large to render. See raw diff
 
text_encoder/tokenizer_config.json ADDED
@@ -0,0 +1,246 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
+ "<d>",
229
+ "</d>",
230
+ "<|cutoff|>",
231
+ "<|lyrics_start|>",
232
+ "<|lyrics_end|>",
233
+ "<|caption_start|>",
234
+ "<|caption_end|>"
235
+ ],
236
+ "bos_token": null,
237
+ "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",
238
+ "clean_up_tokenization_spaces": false,
239
+ "eos_token": "<|im_end|>",
240
+ "errors": "replace",
241
+ "model_max_length": 262144,
242
+ "pad_token": "<|endoftext|>",
243
+ "split_special_tokens": false,
244
+ "tokenizer_class": "Qwen2Tokenizer",
245
+ "unk_token": null
246
+ }
text_encoder/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
+ }
text_encoder/vocab.json ADDED
The diff for this file is too large to render. See raw diff
 
tokenizer/merges.txt ADDED
The diff for this file is too large to render. See raw diff
 
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,246 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
+ "<d>",
229
+ "</d>",
230
+ "<|cutoff|>",
231
+ "<|lyrics_start|>",
232
+ "<|lyrics_end|>",
233
+ "<|caption_start|>",
234
+ "<|caption_end|>"
235
+ ],
236
+ "bos_token": null,
237
+ "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",
238
+ "clean_up_tokenization_spaces": false,
239
+ "eos_token": "<|im_end|>",
240
+ "errors": "replace",
241
+ "model_max_length": 262144,
242
+ "pad_token": "<|endoftext|>",
243
+ "split_special_tokens": false,
244
+ "tokenizer_class": "Qwen2Tokenizer",
245
+ "unk_token": null
246
+ }
tokenizer/vocab.json ADDED
The diff for this file is too large to render. See raw diff
 
transformer/config.json ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "_class_name": "MiniMaxH3Transformer3DModel",
3
+ "_diffusers_version": "0.36.0.dev0",
4
+ "attention_head_dim": 128,
5
+ "audio_in_channels": 32,
6
+ "ffn_dim": 14336,
7
+ "final_norm_eps": 1e-05,
8
+ "freq_dim": 256,
9
+ "hidden_size": 5376,
10
+ "in_channels": 24,
11
+ "norm_eps": 1e-05,
12
+ "num_attention_heads": 56,
13
+ "num_layers": 50,
14
+ "num_refiner_layers": 2,
15
+ "patch_size": [
16
+ 1,
17
+ 2,
18
+ 2
19
+ ],
20
+ "pdd_steps": 32,
21
+ "qk_norm_eps": 1e-05,
22
+ "rope_freq_dim": 16,
23
+ "rope_theta": 10000.0,
24
+ "text_dim": 5120,
25
+ "time_embed_dim": 2688,
26
+ "time_embed_hidden_dim": 5376,
27
+ "quantization_config": {
28
+ "quant_method": "fp8",
29
+ "fmt": "e4m3",
30
+ "weight_scheme": "per_channel",
31
+ "activation_scheme": "dynamic_per_token",
32
+ "quantized_modules": "^transformer_blocks\\.\\d+\\.(attn\\.to_q|attn\\.to_k|attn\\.to_v|attn\\.to_out\\.0|ff\\.net\\.0\\.proj|ff\\.net\\.2)\\.weight$"
33
+ }
34
+ }
transformer/diffusion_pytorch_model-00001-of-00014.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:1397e48aceb4bb718206bc59d027d9c9beeb0c735da10aac4dcf148a92ceec20
3
+ size 4410869144
transformer/diffusion_pytorch_model-00003-of-00014.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c17296377b9c47992030422506993226dbb6058734b750f13ad82c6105a68c3c
3
+ size 3816798528
transformer/diffusion_pytorch_model-00011-of-00014.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:050d77a2079aa53c599860539e01c91e2d427e67cbc2133e1c488a49ce613811
3
+ size 3778177456
transformer/diffusion_pytorch_model-00012-of-00014.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:89979cc4642291bd40373460ca6edc0e34f0fd6271ac987433243a04a1950491
3
+ size 3855304928
transformer/diffusion_pytorch_model-00013-of-00014.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:50a47ea1aa7fcf585a7cc650fad12f4fd833cc648143fb666155b52a2cee6fb1
3
+ size 3855312016
transformer/diffusion_pytorch_model-00014-of-00014.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:9059e306265e4ddaa36ecde9c14f707d6ffd51f855ee8b2b628200c970eb6a57
3
+ size 1368726728
transformer/diffusion_pytorch_model.safetensors.index.json ADDED
The diff for this file is too large to render. See raw diff
 
transformer_ref/config.json ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "_class_name": "MiniMaxH3Transformer3DModel",
3
+ "_diffusers_version": "0.36.0.dev0",
4
+ "attention_head_dim": 128,
5
+ "audio_in_channels": 32,
6
+ "ffn_dim": 14336,
7
+ "final_norm_eps": 1e-05,
8
+ "freq_dim": 256,
9
+ "hidden_size": 5376,
10
+ "in_channels": 24,
11
+ "norm_eps": 1e-05,
12
+ "num_attention_heads": 56,
13
+ "num_layers": 50,
14
+ "num_refiner_layers": 2,
15
+ "patch_size": [
16
+ 1,
17
+ 2,
18
+ 2
19
+ ],
20
+ "pdd_steps": 32,
21
+ "qk_norm_eps": 1e-05,
22
+ "rope_freq_dim": 16,
23
+ "rope_theta": 10000.0,
24
+ "text_dim": 5120,
25
+ "time_embed_dim": 2688,
26
+ "time_embed_hidden_dim": 5376,
27
+ "quantization_config": {
28
+ "quant_method": "fp8",
29
+ "fmt": "e4m3",
30
+ "weight_scheme": "per_channel",
31
+ "activation_scheme": "dynamic_per_token",
32
+ "quantized_modules": "^transformer_blocks\\.\\d+\\.(attn\\.to_q|attn\\.to_k|attn\\.to_v|attn\\.to_out\\.0|ff\\.net\\.0\\.proj|ff\\.net\\.2)\\.weight$"
33
+ }
34
+ }
transformer_ref/diffusion_pytorch_model-00001-of-00014.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:1397e48aceb4bb718206bc59d027d9c9beeb0c735da10aac4dcf148a92ceec20
3
+ size 4410869144
transformer_ref/diffusion_pytorch_model-00002-of-00014.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:8c3a86c313e3eefc6fb69134cefa22c972fea75e04f11839396c1a7fd259d8db
3
+ size 3855312080
transformer_ref/diffusion_pytorch_model-00003-of-00014.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c17296377b9c47992030422506993226dbb6058734b750f13ad82c6105a68c3c
3
+ size 3816798528
transformer_ref/diffusion_pytorch_model-00004-of-00014.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:dc18e08f4fd564b61eda4d2783f185cdf8e7c7e34b1238e2bb4d3fc5d892e09b
3
+ size 3412207416
transformer_ref/diffusion_pytorch_model-00009-of-00014.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:5273bd68e3b280d4359d5beda17870936496419227c2bc12e56677b82ab9b706
3
+ size 3335136960
transformer_ref/diffusion_pytorch_model-00013-of-00014.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:50a47ea1aa7fcf585a7cc650fad12f4fd833cc648143fb666155b52a2cee6fb1
3
+ size 3855312016
transformer_ref/diffusion_pytorch_model.safetensors.index.json ADDED
The diff for this file is too large to render. See raw diff
 
vae/config.json ADDED
@@ -0,0 +1,97 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "_class_name": "AutoencoderKLMiniMaxH3",
3
+ "_diffusers_version": "0.36.0.dev0",
4
+ "in_channels": 3,
5
+ "out_channels": 3,
6
+ "latent_channels": 24,
7
+ "block_out_channels": [
8
+ 128,
9
+ 256,
10
+ 256,
11
+ 512,
12
+ 512,
13
+ 1024
14
+ ],
15
+ "layers_per_block": 2,
16
+ "spatial_downsample_factors": [
17
+ 2,
18
+ 2,
19
+ 2,
20
+ 2,
21
+ 1,
22
+ 1
23
+ ],
24
+ "temporal_downsample_factors": [
25
+ 1,
26
+ 2,
27
+ 2,
28
+ 1,
29
+ 1,
30
+ 1
31
+ ],
32
+ "norm_num_groups": 32,
33
+ "norm_eps": 1e-06,
34
+ "spatial_padding_mode": "reflect",
35
+ "decoder_num_layers": 26,
36
+ "decoder_num_attention_heads": 32,
37
+ "decoder_attention_head_dim": 64,
38
+ "decoder_num_register_tokens": 4,
39
+ "decoder_ffn_mult": 4,
40
+ "decoder_rope_theta": 100.0,
41
+ "decoder_rope_dim_ratio": 0.75,
42
+ "decoder_norm_eps": 1e-05,
43
+ "clip_length": 17,
44
+ "token_drop": 3,
45
+ "latents_mean": [
46
+ 0.858090341091156,
47
+ -0.9606591463088989,
48
+ 1.0661640167236328,
49
+ -0.5090325474739075,
50
+ -0.2727581858634949,
51
+ -1.3675414323806763,
52
+ -0.2553254961967468,
53
+ -0.26907554268836975,
54
+ -0.5376840829849243,
55
+ -0.0464097298681736,
56
+ 0.6657370328903198,
57
+ 0.19690127670764923,
58
+ -0.5460608005523682,
59
+ -0.4035342037677765,
60
+ -0.23683024942874908,
61
+ 0.25928452610969543,
62
+ -0.30133944749832153,
63
+ 0.211341992020607,
64
+ -1.1206848621368408,
65
+ 0.3581933379173279,
66
+ -0.04225143790245056,
67
+ 0.2604829967021942,
68
+ 0.22864092886447906,
69
+ 0.7056031823158264
70
+ ],
71
+ "latents_std": [
72
+ 1.2223774194717407,
73
+ 1.2767263650894165,
74
+ 1.6831774711608887,
75
+ 1.7549455165863037,
76
+ 1.5636216402053833,
77
+ 2.194143533706665,
78
+ 0.9653137922286987,
79
+ 1.0569885969161987,
80
+ 0.841948926448822,
81
+ 0.7729952931404114,
82
+ 1.8955937623977661,
83
+ 0.946841835975647,
84
+ 0.7996809482574463,
85
+ 0.44988900423049927,
86
+ 0.7197399735450745,
87
+ 0.6936293244361877,
88
+ 2.961095094680786,
89
+ 2.7694199085235596,
90
+ 3.0496184825897217,
91
+ 2.1088054180145264,
92
+ 3.276226282119751,
93
+ 3.1627357006073,
94
+ 2.2816812992095947,
95
+ 2.6127843856811523
96
+ ]
97
+ }
vae/diffusion_pytorch_model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:73fc5a61caeba438633eb8f8efd3a57f4915adfa46731a1c991312c724a3b5cc
3
+ size 4225603880