yujiepan commited on
Commit
e2e5f8f
·
verified ·
1 Parent(s): e3b64ef

Upload folder using huggingface_hub

Browse files
.gitattributes CHANGED
@@ -33,3 +33,4 @@ saved_model/**/* 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
 
 
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
+ tokenizer/tokenizer.json filter=lfs diff=lfs merge=lfs -text
README.md ADDED
@@ -0,0 +1,183 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ library_name: Diffusers
3
+ pipeline_tag: text-to-image
4
+ inference: true
5
+ base_model:
6
+ - Qwen/Qwen-Image
7
+ ---
8
+
9
+ This tiny model is for debugging. It is randomly initialized with the config adapted from [Qwen/Qwen-Image](https://huggingface.co/Qwen/Qwen-Image).
10
+
11
+ File size:
12
+ - ~10MB text_encoder/model.safetensors
13
+ - ~200KB transformer/diffusion_pytorch_model.safetensors
14
+ - ~5MB vae/diffusion_pytorch_model.safetensors
15
+
16
+ ### Example usage:
17
+
18
+ ```python
19
+ import torch
20
+ from diffusers import DiffusionPipeline
21
+
22
+ model_id = "tiny-random/Qwen-Image"
23
+ torch_dtype = torch.bfloat16
24
+ device = "cuda"
25
+ pipe = DiffusionPipeline.from_pretrained(model_id, torch_dtype=torch_dtype)
26
+ pipe = pipe.to(device)
27
+
28
+ positive_magic = {
29
+ "en": "Ultra HD, 4K, cinematic composition.", # for english prompt,
30
+ "zh": "超清,4K,电影级构图" # for chinese prompt,
31
+ }
32
+ prompt = '''A coffee shop entrance features a chalkboard sign reading "Qwen Coffee 😊 $2 per cup," with a neon light beside it displaying "通义千问". Next to it hangs a poster showing a beautiful Chinese woman, and beneath the poster is written "π≈3.1415926-53589793-23846264-33832795-02384197". Ultra HD, 4K, cinematic composition.'''
33
+ prompt += 'Some dummy random texts to make prompt long enough ' * 10
34
+ negative_prompt = " "
35
+
36
+ # Generate with different aspect ratios
37
+ aspect_ratios = {
38
+ "1:1": (1328, 1328),
39
+ "16:9": (1664, 928),
40
+ "9:16": (928, 1664),
41
+ "4:3": (1472, 1140),
42
+ "3:4": (1140, 1472)
43
+ }
44
+
45
+ for width, height in aspect_ratios.values():
46
+ image = pipe(
47
+ prompt=prompt + positive_magic["en"],
48
+ negative_prompt=negative_prompt,
49
+ width=width,
50
+ height=height,
51
+ num_inference_steps=4,
52
+ true_cfg_scale=4.0,
53
+ generator=torch.Generator(device="cuda").manual_seed(42)
54
+ ).images[0]
55
+ print(image)
56
+ ```
57
+
58
+ ### Codes to create this repo:
59
+
60
+ ```python
61
+ import json
62
+
63
+ import torch
64
+ from diffusers import (
65
+ AutoencoderKLQwenImage,
66
+ DiffusionPipeline,
67
+ FlowMatchEulerDiscreteScheduler,
68
+ QwenImagePipeline,
69
+ QwenImageTransformer2DModel,
70
+ )
71
+ from huggingface_hub import hf_hub_download
72
+ from transformers import AutoConfig, AutoTokenizer, Qwen2_5_VLForConditionalGeneration
73
+ from transformers.generation import GenerationConfig
74
+
75
+ source_model_id = "Qwen/Qwen-Image"
76
+ save_folder = "/tmp/tiny-random/Qwen-Image"
77
+
78
+ torch.set_default_dtype(torch.bfloat16)
79
+ scheduler = FlowMatchEulerDiscreteScheduler.from_pretrained(source_model_id, subfolder='scheduler')
80
+ tokenizer = AutoTokenizer.from_pretrained(source_model_id, subfolder='tokenizer')
81
+
82
+ def save_json(path, obj):
83
+ import json
84
+ from pathlib import Path
85
+ Path(path).parent.mkdir(parents=True, exist_ok=True)
86
+ with open(path, 'w', encoding='utf-8') as f:
87
+ json.dump(obj, f, indent=2, ensure_ascii=False)
88
+
89
+ def init_weights(model):
90
+ import torch
91
+ torch.manual_seed(42)
92
+ with torch.no_grad():
93
+ for name, p in sorted(model.named_parameters()):
94
+ torch.nn.init.normal_(p, 0, 0.3)
95
+ print(name, p.shape, p.dtype, p.device)
96
+
97
+ with open(hf_hub_download(source_model_id, filename='text_encoder/config.json', repo_type='model'), 'r', encoding='utf - 8') as f:
98
+ config = json.load(f)
99
+ config.update({
100
+ 'hidden_size': 32,
101
+ 'intermediate_size': 64,
102
+ 'max_window_layers': 1,
103
+ 'num_attention_heads': 2,
104
+ 'num_hidden_layers': 2,
105
+ 'num_key_value_heads': 1,
106
+ 'sliding_window': 64,
107
+ 'tie_word_embeddings': True,
108
+ 'use_sliding_window': True,
109
+ })
110
+ del config['torch_dtype']
111
+ config['rope_scaling']['mrope_section'] = [4, 2, 2]
112
+ config['text_config'].update({
113
+ 'hidden_size': 32,
114
+ 'intermediate_size': 64,
115
+ 'num_attention_heads': 2,
116
+ 'num_hidden_layers': 2,
117
+ 'num_key_value_heads': 1,
118
+ 'sliding_window': 64,
119
+ 'tie_word_embeddings': True,
120
+ 'use_sliding_window': True,
121
+ 'layer_types': ['full_attention', 'sliding_attention']
122
+ })
123
+ del config['text_config']['torch_dtype']
124
+ config['text_config']['rope_scaling']['mrope_section'] = [4, 2, 2]
125
+ config['vision_config'].update(
126
+ {
127
+ 'depth': 2,
128
+ 'fullatt_block_indexes': [0],
129
+ 'hidden_size': 32,
130
+ 'intermediate_size': 64,
131
+ 'num_heads': 2,
132
+ 'out_hidden_size': 32,
133
+ }
134
+ )
135
+ del config['vision_config']['torch_dtype']
136
+ save_json(f'{save_folder}/text_encoder/config.json', config)
137
+ text_encoder_config = AutoConfig.from_pretrained(f'{save_folder}/text_encoder')
138
+ text_encoder = Qwen2_5_VLForConditionalGeneration(text_encoder_config).to(torch.bfloat16)
139
+ generation_config = GenerationConfig.from_pretrained(source_model_id, subfolder='text_encoder')
140
+ # text_encoder.config.generation_config = generation_config
141
+ text_encoder.generation_config = generation_config
142
+ init_weights(text_encoder)
143
+
144
+ with open(hf_hub_download(source_model_id, filename='transformer/config.json', repo_type='model'), 'r', encoding='utf-8') as f:
145
+ config = json.load(f)
146
+ config.update({
147
+ 'attention_head_dim': 32,
148
+ 'axes_dims_rope': [8, 12, 12],
149
+ 'joint_attention_dim': 32,
150
+ 'num_attention_heads': 1,
151
+ 'num_layers': 2,
152
+ })
153
+ del config['pooled_projection_dim'] # not used
154
+ save_json(f'{save_folder}/transformer/config.json', config)
155
+ transformer_config = QwenImageTransformer2DModel.load_config(f'{save_folder}/transformer')
156
+ transformer = QwenImageTransformer2DModel.from_config(transformer_config)
157
+ init_weights(transformer)
158
+
159
+ with open(hf_hub_download(source_model_id, filename='vae/config.json', repo_type='model'), 'r', encoding='utf-8') as f:
160
+ config = json.load(f)
161
+ config.update({
162
+ 'num_res_blocks': 1,
163
+ 'base_dim': 16,
164
+ 'dim_mult': [1, 2, 4, 4],
165
+ })
166
+ del config['latents_mean'] # not used
167
+ del config['latents_std'] # not used
168
+ save_json(f'{save_folder}/vae/config.json', config)
169
+ vae_config = AutoencoderKLQwenImage.load_config(f'{save_folder}/vae')
170
+ vae = AutoencoderKLQwenImage.from_config(vae_config)
171
+ init_weights(vae)
172
+
173
+ pipeline = QwenImagePipeline(
174
+ scheduler=scheduler,
175
+ text_encoder=text_encoder,
176
+ tokenizer=tokenizer,
177
+ transformer=transformer,
178
+ vae=vae,
179
+ )
180
+ pipeline = pipeline.to(torch.bfloat16)
181
+ pipeline.save_pretrained(save_folder, safe_serialization=True)
182
+ print(pipeline)
183
+ ```
model_index.json ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "_class_name": "QwenImagePipeline",
3
+ "_diffusers_version": "0.35.0.dev0",
4
+ "scheduler": [
5
+ "diffusers",
6
+ "FlowMatchEulerDiscreteScheduler"
7
+ ],
8
+ "text_encoder": [
9
+ "transformers",
10
+ "Qwen2_5_VLForConditionalGeneration"
11
+ ],
12
+ "tokenizer": [
13
+ "transformers",
14
+ "Qwen2TokenizerFast"
15
+ ],
16
+ "transformer": [
17
+ "diffusers",
18
+ "QwenImageTransformer2DModel"
19
+ ],
20
+ "vae": [
21
+ "diffusers",
22
+ "AutoencoderKLQwenImage"
23
+ ]
24
+ }
scheduler/scheduler_config.json ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "_class_name": "FlowMatchEulerDiscreteScheduler",
3
+ "_diffusers_version": "0.35.0.dev0",
4
+ "base_image_seq_len": 256,
5
+ "base_shift": 0.5,
6
+ "invert_sigmas": false,
7
+ "max_image_seq_len": 8192,
8
+ "max_shift": 0.9,
9
+ "num_train_timesteps": 1000,
10
+ "shift": 1.0,
11
+ "shift_terminal": 0.02,
12
+ "stochastic_sampling": false,
13
+ "time_shift_type": "exponential",
14
+ "use_beta_sigmas": false,
15
+ "use_dynamic_shifting": true,
16
+ "use_exponential_sigmas": false,
17
+ "use_karras_sigmas": false
18
+ }
text_encoder/config.json ADDED
@@ -0,0 +1,104 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "architectures": [
3
+ "Qwen2_5_VLForConditionalGeneration"
4
+ ],
5
+ "attention_dropout": 0.0,
6
+ "bos_token_id": 151643,
7
+ "eos_token_id": 151645,
8
+ "hidden_act": "silu",
9
+ "hidden_size": 32,
10
+ "image_token_id": 151655,
11
+ "initializer_range": 0.02,
12
+ "intermediate_size": 64,
13
+ "max_position_embeddings": 128000,
14
+ "max_window_layers": 1,
15
+ "model_type": "qwen2_5_vl",
16
+ "num_attention_heads": 2,
17
+ "num_hidden_layers": 2,
18
+ "num_key_value_heads": 1,
19
+ "rms_norm_eps": 1e-06,
20
+ "rope_scaling": {
21
+ "mrope_section": [
22
+ 4,
23
+ 2,
24
+ 2
25
+ ],
26
+ "rope_type": "default",
27
+ "type": "default"
28
+ },
29
+ "rope_theta": 1000000.0,
30
+ "sliding_window": 64,
31
+ "text_config": {
32
+ "architectures": [
33
+ "Qwen2_5_VLForConditionalGeneration"
34
+ ],
35
+ "attention_dropout": 0.0,
36
+ "bos_token_id": 151643,
37
+ "eos_token_id": 151645,
38
+ "hidden_act": "silu",
39
+ "hidden_size": 32,
40
+ "image_token_id": null,
41
+ "initializer_range": 0.02,
42
+ "intermediate_size": 64,
43
+ "layer_types": [
44
+ "full_attention",
45
+ "sliding_attention"
46
+ ],
47
+ "max_position_embeddings": 128000,
48
+ "max_window_layers": 28,
49
+ "model_type": "qwen2_5_vl_text",
50
+ "num_attention_heads": 2,
51
+ "num_hidden_layers": 2,
52
+ "num_key_value_heads": 1,
53
+ "rms_norm_eps": 1e-06,
54
+ "rope_scaling": {
55
+ "mrope_section": [
56
+ 4,
57
+ 2,
58
+ 2
59
+ ],
60
+ "rope_type": "default",
61
+ "type": "default"
62
+ },
63
+ "rope_theta": 1000000.0,
64
+ "sliding_window": 64,
65
+ "tie_word_embeddings": true,
66
+ "use_cache": true,
67
+ "use_sliding_window": true,
68
+ "video_token_id": null,
69
+ "vision_end_token_id": 151653,
70
+ "vision_start_token_id": 151652,
71
+ "vision_token_id": 151654,
72
+ "vocab_size": 152064
73
+ },
74
+ "torch_dtype": "bfloat16",
75
+ "transformers_version": "4.55.0.dev0",
76
+ "use_cache": true,
77
+ "use_sliding_window": true,
78
+ "video_token_id": 151656,
79
+ "vision_config": {
80
+ "depth": 2,
81
+ "fullatt_block_indexes": [
82
+ 0
83
+ ],
84
+ "hidden_act": "silu",
85
+ "hidden_size": 32,
86
+ "in_channels": 3,
87
+ "in_chans": 3,
88
+ "initializer_range": 0.02,
89
+ "intermediate_size": 64,
90
+ "model_type": "qwen2_5_vl",
91
+ "num_heads": 2,
92
+ "out_hidden_size": 32,
93
+ "patch_size": 14,
94
+ "spatial_merge_size": 2,
95
+ "spatial_patch_size": 14,
96
+ "temporal_patch_size": 2,
97
+ "tokens_per_second": 2,
98
+ "window_size": 112
99
+ },
100
+ "vision_end_token_id": 151653,
101
+ "vision_start_token_id": 151652,
102
+ "vision_token_id": 151654,
103
+ "vocab_size": 152064
104
+ }
text_encoder/generation_config.json ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "bos_token_id": 151643,
3
+ "do_sample": true,
4
+ "eos_token_id": [
5
+ 151645,
6
+ 151643
7
+ ],
8
+ "pad_token_id": 151643,
9
+ "repetition_penalty": 1.05,
10
+ "temperature": 0.1,
11
+ "top_k": 1,
12
+ "top_p": 0.001,
13
+ "transformers_version": "4.55.0.dev0"
14
+ }
text_encoder/model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c2e3ebc942572273af5e8c8f17a785d002c39f6bb474877509a23f9e3c539372
3
+ size 9934200
tokenizer/added_tokens.json ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "</tool_call>": 151658,
3
+ "<tool_call>": 151657,
4
+ "<|box_end|>": 151649,
5
+ "<|box_start|>": 151648,
6
+ "<|endoftext|>": 151643,
7
+ "<|file_sep|>": 151664,
8
+ "<|fim_middle|>": 151660,
9
+ "<|fim_pad|>": 151662,
10
+ "<|fim_prefix|>": 151659,
11
+ "<|fim_suffix|>": 151661,
12
+ "<|im_end|>": 151645,
13
+ "<|im_start|>": 151644,
14
+ "<|image_pad|>": 151655,
15
+ "<|object_ref_end|>": 151647,
16
+ "<|object_ref_start|>": 151646,
17
+ "<|quad_end|>": 151651,
18
+ "<|quad_start|>": 151650,
19
+ "<|repo_name|>": 151663,
20
+ "<|video_pad|>": 151656,
21
+ "<|vision_end|>": 151653,
22
+ "<|vision_pad|>": 151654,
23
+ "<|vision_start|>": 151652
24
+ }
tokenizer/chat_template.jinja ADDED
@@ -0,0 +1,54 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {%- if tools %}
2
+ {{- '<|im_start|>system\n' }}
3
+ {%- if messages[0]['role'] == 'system' %}
4
+ {{- messages[0]['content'] }}
5
+ {%- else %}
6
+ {{- 'You are a helpful assistant.' }}
7
+ {%- endif %}
8
+ {{- "\n\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>" }}
9
+ {%- for tool in tools %}
10
+ {{- "\n" }}
11
+ {{- tool | tojson }}
12
+ {%- endfor %}
13
+ {{- "\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" }}
14
+ {%- else %}
15
+ {%- if messages[0]['role'] == 'system' %}
16
+ {{- '<|im_start|>system\n' + messages[0]['content'] + '<|im_end|>\n' }}
17
+ {%- else %}
18
+ {{- '<|im_start|>system\nYou are a helpful assistant.<|im_end|>\n' }}
19
+ {%- endif %}
20
+ {%- endif %}
21
+ {%- for message in messages %}
22
+ {%- if (message.role == "user") or (message.role == "system" and not loop.first) or (message.role == "assistant" and not message.tool_calls) %}
23
+ {{- '<|im_start|>' + message.role + '\n' + message.content + '<|im_end|>' + '\n' }}
24
+ {%- elif message.role == "assistant" %}
25
+ {{- '<|im_start|>' + message.role }}
26
+ {%- if message.content %}
27
+ {{- '\n' + message.content }}
28
+ {%- endif %}
29
+ {%- for tool_call in message.tool_calls %}
30
+ {%- if tool_call.function is defined %}
31
+ {%- set tool_call = tool_call.function %}
32
+ {%- endif %}
33
+ {{- '\n<tool_call>\n{"name": "' }}
34
+ {{- tool_call.name }}
35
+ {{- '", "arguments": ' }}
36
+ {{- tool_call.arguments | tojson }}
37
+ {{- '}\n</tool_call>' }}
38
+ {%- endfor %}
39
+ {{- '<|im_end|>\n' }}
40
+ {%- elif message.role == "tool" %}
41
+ {%- if (loop.index0 == 0) or (messages[loop.index0 - 1].role != "tool") %}
42
+ {{- '<|im_start|>user' }}
43
+ {%- endif %}
44
+ {{- '\n<tool_response>\n' }}
45
+ {{- message.content }}
46
+ {{- '\n</tool_response>' }}
47
+ {%- if loop.last or (messages[loop.index0 + 1].role != "tool") %}
48
+ {{- '<|im_end|>\n' }}
49
+ {%- endif %}
50
+ {%- endif %}
51
+ {%- endfor %}
52
+ {%- if add_generation_prompt %}
53
+ {{- '<|im_start|>assistant\n' }}
54
+ {%- endif %}
tokenizer/merges.txt ADDED
The diff for this file is too large to render. See raw diff
 
tokenizer/special_tokens_map.json ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "additional_special_tokens": [
3
+ "<|im_start|>",
4
+ "<|im_end|>",
5
+ "<|object_ref_start|>",
6
+ "<|object_ref_end|>",
7
+ "<|box_start|>",
8
+ "<|box_end|>",
9
+ "<|quad_start|>",
10
+ "<|quad_end|>",
11
+ "<|vision_start|>",
12
+ "<|vision_end|>",
13
+ "<|vision_pad|>",
14
+ "<|image_pad|>",
15
+ "<|video_pad|>"
16
+ ],
17
+ "eos_token": {
18
+ "content": "<|im_end|>",
19
+ "lstrip": false,
20
+ "normalized": false,
21
+ "rstrip": false,
22
+ "single_word": false
23
+ },
24
+ "pad_token": {
25
+ "content": "<|endoftext|>",
26
+ "lstrip": false,
27
+ "normalized": false,
28
+ "rstrip": false,
29
+ "single_word": false
30
+ }
31
+ }
tokenizer/tokenizer.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:6ae8594f633daa21dc0e04606279856d0ccb8abb64bb7a5a93e72531fb12b9d9
3
+ size 11421890
tokenizer/tokenizer_config.json ADDED
@@ -0,0 +1,207 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
+ },
182
+ "additional_special_tokens": [
183
+ "<|im_start|>",
184
+ "<|im_end|>",
185
+ "<|object_ref_start|>",
186
+ "<|object_ref_end|>",
187
+ "<|box_start|>",
188
+ "<|box_end|>",
189
+ "<|quad_start|>",
190
+ "<|quad_end|>",
191
+ "<|vision_start|>",
192
+ "<|vision_end|>",
193
+ "<|vision_pad|>",
194
+ "<|image_pad|>",
195
+ "<|video_pad|>"
196
+ ],
197
+ "bos_token": null,
198
+ "clean_up_tokenization_spaces": false,
199
+ "eos_token": "<|im_end|>",
200
+ "errors": "replace",
201
+ "extra_special_tokens": {},
202
+ "model_max_length": 131072,
203
+ "pad_token": "<|endoftext|>",
204
+ "split_special_tokens": false,
205
+ "tokenizer_class": "Qwen2Tokenizer",
206
+ "unk_token": null
207
+ }
tokenizer/vocab.json ADDED
The diff for this file is too large to render. See raw diff
 
transformer/config.json ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "_class_name": "QwenImageTransformer2DModel",
3
+ "_diffusers_version": "0.35.0.dev0",
4
+ "attention_head_dim": 32,
5
+ "axes_dims_rope": [
6
+ 8,
7
+ 12,
8
+ 12
9
+ ],
10
+ "guidance_embeds": false,
11
+ "in_channels": 64,
12
+ "joint_attention_dim": 32,
13
+ "num_attention_heads": 1,
14
+ "num_layers": 2,
15
+ "out_channels": 16,
16
+ "patch_size": 2
17
+ }
transformer/diffusion_pytorch_model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:9d395479784afe4b1ad9674bb414a48772e5f7c4469cb70a46b1dce2c10d00aa
3
+ size 193040
vae/config.json ADDED
@@ -0,0 +1,56 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "_class_name": "AutoencoderKLQwenImage",
3
+ "_diffusers_version": "0.35.0.dev0",
4
+ "attn_scales": [],
5
+ "base_dim": 16,
6
+ "dim_mult": [
7
+ 1,
8
+ 2,
9
+ 4,
10
+ 4
11
+ ],
12
+ "dropout": 0.0,
13
+ "latents_mean": [
14
+ -0.7571,
15
+ -0.7089,
16
+ -0.9113,
17
+ 0.1075,
18
+ -0.1745,
19
+ 0.9653,
20
+ -0.1517,
21
+ 1.5508,
22
+ 0.4134,
23
+ -0.0715,
24
+ 0.5517,
25
+ -0.3632,
26
+ -0.1922,
27
+ -0.9497,
28
+ 0.2503,
29
+ -0.2921
30
+ ],
31
+ "latents_std": [
32
+ 2.8184,
33
+ 1.4541,
34
+ 2.3275,
35
+ 2.6558,
36
+ 1.2196,
37
+ 1.7708,
38
+ 2.6052,
39
+ 2.0743,
40
+ 3.2687,
41
+ 2.1526,
42
+ 2.8652,
43
+ 1.5579,
44
+ 1.6382,
45
+ 1.1253,
46
+ 2.8251,
47
+ 1.916
48
+ ],
49
+ "num_res_blocks": 1,
50
+ "temperal_downsample": [
51
+ false,
52
+ true,
53
+ true
54
+ ],
55
+ "z_dim": 16
56
+ }
vae/diffusion_pytorch_model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:60f741a6bb83745a07da3d0793fd21b99146baa0519cd777f35da947d3eb0032
3
+ size 5171798