gatilin commited on
Commit
8a653bd
·
verified ·
1 Parent(s): c837a7d

Add files using upload-large-folder tool

Browse files
Files changed (10) hide show
  1. LICENSE +204 -0
  2. NOTICE +6 -0
  3. README.md +107 -0
  4. component.py +45 -0
  5. component_config.json +14 -0
  6. config.json +31 -0
  7. extraction.json +15 -0
  8. model.safetensors +3 -0
  9. tensor_mapping.json +648 -0
  10. validation.json +114 -0
LICENSE ADDED
@@ -0,0 +1,204 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Copyright 2026 The NitroFusion2 Authors.
2
+
3
+ Apache License
4
+ Version 2.0, January 2004
5
+ http://www.apache.org/licenses/
6
+
7
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
8
+
9
+ 1. Definitions.
10
+
11
+ "License" shall mean the terms and conditions for use, reproduction,
12
+ and distribution as defined by Sections 1 through 9 of this document.
13
+
14
+ "Licensor" shall mean the copyright owner or entity authorized by
15
+ the copyright owner that is granting the License.
16
+
17
+ "Legal Entity" shall mean the union of the acting entity and all
18
+ other entities that control, are controlled by, or are under common
19
+ control with that entity. For the purposes of this definition,
20
+ "control" means (i) the power, direct or indirect, to cause the
21
+ direction or management of such entity, whether by contract or
22
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
23
+ outstanding shares, or (iii) beneficial ownership of such entity.
24
+
25
+ "You" (or "Your") shall mean an individual or Legal Entity
26
+ exercising permissions granted by this License.
27
+
28
+ "Source" form shall mean the preferred form for making modifications,
29
+ including but not limited to software source code, documentation
30
+ source, and configuration files.
31
+
32
+ "Object" form shall mean any form resulting from mechanical
33
+ transformation or translation of a Source form, including but
34
+ not limited to compiled object code, generated documentation,
35
+ and conversions to other media types.
36
+
37
+ "Work" shall mean the work of authorship, whether in Source or
38
+ Object form, made available under the License, as indicated by a
39
+ copyright notice that is included in or attached to the work
40
+ (an example is provided in the Appendix below).
41
+
42
+ "Derivative Works" shall mean any work, whether in Source or Object
43
+ form, that is based on (or derived from) the Work and for which the
44
+ editorial revisions, annotations, elaborations, or other modifications
45
+ represent, as a whole, an original work of authorship. For the purposes
46
+ of this License, Derivative Works shall not include works that remain
47
+ separable from, or merely link (or bind by name) to the interfaces of,
48
+ the Work and Derivative Works thereof.
49
+
50
+ "Contribution" shall mean any work of authorship, including
51
+ the original version of the Work and any modifications or additions
52
+ to that Work or Derivative Works thereof, that is intentionally
53
+ submitted to Licensor for inclusion in the Work by the copyright owner
54
+ or by an individual or Legal Entity authorized to submit on behalf of
55
+ the copyright owner. For the purposes of this definition, "submitted"
56
+ means any form of electronic, verbal, or written communication sent
57
+ to the Licensor or its representatives, including but not limited to
58
+ communication on electronic mailing lists, source code control systems,
59
+ and issue tracking systems that are managed by, or on behalf of, the
60
+ Licensor for the purpose of discussing and improving the Work, but
61
+ excluding communication that is conspicuously marked or otherwise
62
+ designated in writing by the copyright owner as "Not a Contribution."
63
+
64
+ "Contributor" shall mean Licensor and any individual or Legal Entity
65
+ on behalf of whom a Contribution has been received by Licensor and
66
+ subsequently incorporated within the Work.
67
+
68
+ 2. Grant of Copyright License. Subject to the terms and conditions of
69
+ this License, each Contributor hereby grants to You a perpetual,
70
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
71
+ copyright license to reproduce, prepare Derivative Works of,
72
+ publicly display, publicly perform, sublicense, and distribute the
73
+ Work and such Derivative Works in Source or Object form.
74
+
75
+ 3. Grant of Patent License. Subject to the terms and conditions of
76
+ this License, each Contributor hereby grants to You a perpetual,
77
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
78
+ (except as stated in this section) patent license to make, have made,
79
+ use, offer to sell, sell, import, and otherwise transfer the Work,
80
+ where such license applies only to those patent claims licensable
81
+ by such Contributor that are necessarily infringed by their
82
+ Contribution(s) alone or by combination of their Contribution(s)
83
+ with the Work to which such Contribution(s) was submitted. If You
84
+ institute patent litigation against any entity (including a
85
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
86
+ or a Contribution incorporated within the Work constitutes direct
87
+ or contributory patent infringement, then any patent licenses
88
+ granted to You under this License for that Work shall terminate
89
+ as of the date such litigation is filed.
90
+
91
+ 4. Redistribution. You may reproduce and distribute copies of the
92
+ Work or Derivative Works thereof in any medium, with or without
93
+ modifications, and in Source or Object form, provided that You
94
+ meet the following conditions:
95
+
96
+ (a) You must give any other recipients of the Work or
97
+ Derivative Works a copy of this License; and
98
+
99
+ (b) You must cause any modified files to carry prominent notices
100
+ stating that You changed the files; and
101
+
102
+ (c) You must retain, in the Source form of any Derivative Works
103
+ that You distribute, all copyright, patent, trademark, and
104
+ attribution notices from the Source form of the Work,
105
+ excluding those notices that do not pertain to any part of
106
+ the Derivative Works; and
107
+
108
+ (d) If the Work includes a "NOTICE" text file as part of its
109
+ distribution, then any Derivative Works that You distribute must
110
+ include a readable copy of the attribution notices contained
111
+ within such NOTICE file, excluding those notices that do not
112
+ pertain to any part of the Derivative Works, in at least one
113
+ of the following places: within a NOTICE text file distributed
114
+ as part of the Derivative Works; within the Source form or
115
+ documentation, if provided along with the Derivative Works; or,
116
+ within a display generated by the Derivative Works, if and
117
+ wherever such third-party notices normally appear. The contents
118
+ of the NOTICE file are for informational purposes only and
119
+ do not modify the License. You may add Your own attribution
120
+ notices within Derivative Works that You distribute, alongside
121
+ or as an addendum to the NOTICE text from the Work, provided
122
+ that such additional attribution notices cannot be construed
123
+ as modifying the License.
124
+
125
+ You may add Your own copyright statement to Your modifications and
126
+ may provide additional or different license terms and conditions
127
+ for use, reproduction, or distribution of Your modifications, or
128
+ for any such Derivative Works as a whole, provided Your use,
129
+ reproduction, and distribution of the Work otherwise complies with
130
+ the conditions stated in this License.
131
+
132
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
133
+ any Contribution intentionally submitted for inclusion in the Work
134
+ by You to the Licensor shall be under the terms and conditions of
135
+ this License, without any additional terms or conditions.
136
+ Notwithstanding the above, nothing herein shall supersede or modify
137
+ the terms of any separate license agreement you may have executed
138
+ with Licensor regarding such Contributions.
139
+
140
+ 6. Trademarks. This License does not grant permission to use the trade
141
+ names, trademarks, service marks, or product names of the Licensor,
142
+ except as required for reasonable and customary use in describing the
143
+ origin of the Work and reproducing the content of the NOTICE file.
144
+
145
+ 7. Disclaimer of Warranty. Unless required by applicable law or
146
+ agreed to in writing, Licensor provides the Work (and each
147
+ Contributor provides its Contributions) on an "AS IS" BASIS,
148
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
149
+ implied, including, without limitation, any warranties or conditions
150
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
151
+ PARTICULAR PURPOSE. You are solely responsible for determining the
152
+ appropriateness of using or redistributing the Work and assume any
153
+ risks associated with Your exercise of permissions under this License.
154
+
155
+ 8. Limitation of Liability. In no event and under no legal theory,
156
+ whether in tort (including negligence), contract, or otherwise,
157
+ unless required by applicable law (such as deliberate and grossly
158
+ negligent acts) or agreed to in writing, shall any Contributor be
159
+ liable to You for damages, including any direct, indirect, special,
160
+ incidental, or consequential damages of any character arising as a
161
+ result of this License or out of the use or inability to use the
162
+ Work (including but not limited to damages for loss of goodwill,
163
+ work stoppage, computer failure or malfunction, or any and all
164
+ other commercial damages or losses), even if such Contributor
165
+ has been advised of the possibility of such damages.
166
+
167
+ 9. Accepting Warranty or Additional Liability. While redistributing
168
+ the Work or Derivative Works thereof, You may choose to offer,
169
+ and charge a fee for, acceptance of support, warranty, indemnity,
170
+ or other liability obligations and/or rights consistent with this
171
+ License. However, in accepting such obligations, You may act only
172
+ on Your own behalf and on Your sole responsibility, not on behalf
173
+ of any other Contributor, and only if You agree to indemnify,
174
+ defend, and hold each Contributor harmless for any liability
175
+ incurred by, or claims asserted against, such Contributor by reason
176
+ of your accepting any such warranty or additional liability.
177
+
178
+ END OF TERMS AND CONDITIONS
179
+
180
+ APPENDIX: How to apply the Apache License to your work.
181
+
182
+ To apply the Apache License to your work, attach the following
183
+ boilerplate notice, with the fields enclosed by brackets "[]"
184
+ replaced with your own identifying information. (Don't include
185
+ the brackets!) The text should be enclosed in the appropriate
186
+ comment syntax for the file format. We also recommend that a
187
+ file or class name and description of purpose be included on the
188
+ same "printed page" as the copyright notice for easier
189
+ identification within third-party archives.
190
+
191
+ Copyright 2026 The NitroFusion2 Authors.
192
+
193
+ Licensed under the Apache License, Version 2.0 (the "License");
194
+ you may not use this file except in compliance with the License.
195
+ You may obtain a copy of the License at
196
+
197
+ http://www.apache.org/licenses/LICENSE-2.0
198
+
199
+ Unless required by applicable law or agreed to in writing, software
200
+ distributed under the License is distributed on an "AS IS" BASIS,
201
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
202
+ See the License for the specific language governing permissions and
203
+ limitations under the License.
204
+
NOTICE ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ NitroFusion2
2
+ Copyright 2026 The NitroFusion2 Authors.
3
+ Licensed under the Apache License, Version 2.0.
4
+
5
+ This repository contains the noise_refiner and context_refiner tensors extracted
6
+ without modification from ChenDY/NitroFusion2 (transformer/ shards).
README.md ADDED
@@ -0,0 +1,107 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: apache-2.0
3
+ library_name: diffusers
4
+ pipeline_tag: text-to-image
5
+ tags:
6
+ - dit
7
+ - z-image
8
+ - mmdit
9
+ - refiner
10
+ base_model: ChenDY/NitroFusion2
11
+ ---
12
+
13
+ # NitroFusion2 DiT Refiners
14
+
15
+ Community extraction of the two refiner stacks from [NitroFusion2](https://huggingface.co/ChenDY/NitroFusion2), revision `62d1a7000af9c46a0c4348d936bd7670ff33c1b9`.
16
+
17
+ NitroFusion2 is a Z-Image-Turbo derived MMDiT. Before the 30-layer trunk runs, the model passes the noisy latent patches through a **noise refiner** and the caption features through a **context refiner**. This repository contains those two stacks and nothing else: **56 tensors, 715,746,304 parameters**, in the original `bfloat16`.
18
+
19
+ | Stack | Layers | Tensors | Parameters | Modulation |
20
+ | --- | --- | --- | --- | --- |
21
+ | `noise_refiner` | 2 | 30 | 361,820,672 | adaLN from the timestep embedding, `tanh` gates |
22
+ | `context_refiner` | 2 | 26 | 353,925,632 | none |
23
+
24
+ Each block is a single-stream transformer: RMSNorm-preceded attention with per-head RMSNorm on q/k (head dim 128), a SwiGLU feed-forward (3840 → 10240 → 3840), and post-norm on both residual branches. The noise refiner additionally carries `adaLN_modulation`, a `Linear(256 → 15360)` that produces shift and gate parameters for attention and MLP.
25
+
26
+ The 30-layer trunk (`layers.*`, 10.85 GB), the embedders, the final layer and the pad tokens are **not** included. This is a component, not a generation pipeline: it cannot produce images on its own.
27
+
28
+ ## Provenance
29
+
30
+ | Item | Value |
31
+ | --- | --- |
32
+ | Source repository | `ChenDY/NitroFusion2` |
33
+ | Source revision | `62d1a7000af9c46a0c4348d936bd7670ff33c1b9` |
34
+ | Source file | `transformer/diffusion_pytorch_model-00001-of-00003.safetensors` |
35
+ | Extracted scope | `noise_refiner.*` and `context_refiner.*` |
36
+ | Tensor count | 56 |
37
+ | Tensor bytes | 1,431,492,608 |
38
+ | Output `model.safetensors` SHA-256 | `c871ae336b02e763a4be2018231a1b616082fd4edb04a51189b2798dcfb62284` |
39
+ | Extraction method | HTTP range requests over two contiguous byte ranges; no full shard download |
40
+
41
+ Both stacks occupy a single contiguous byte range each in the first shard, so only 1.43 GB of the 12.31 GB transformer was transferred. Every assembled range was compared byte-for-byte with the cached source ranges before the output file was hashed. Tensor values, shapes and dtypes are unchanged: no training, quantization, dtype conversion or reordering.
42
+
43
+ Original checkpoint tensor names are preserved, so `load_state_dict(strict=True)` works with **no prefix stripping**. `tensor_mapping.json` records the source shard, dtype, shape and byte offsets of every tensor.
44
+
45
+ ## Loading
46
+
47
+ The source configuration declares `diffusers 0.36.0.dev0`. `ZImageTransformerBlock` is not present in 0.35.x. Install:
48
+
49
+ ```bash
50
+ pip install "diffusers==0.36.0" torch accelerate safetensors
51
+ ```
52
+
53
+ ```python
54
+ import sys, torch
55
+ from huggingface_hub import snapshot_download
56
+
57
+ root = snapshot_download('gatilin/nitrofusion2-dit-refiners')
58
+ sys.path.insert(0, root)
59
+ from component import load_model
60
+
61
+ model = load_model(root) # original bfloat16 weights
62
+
63
+ # x: [batch, seq, 3840] embedded noisy latent patches (seq must be a multiple of 32)
64
+ # attn_mask: [batch, seq] bool, True for real tokens
65
+ # position_ids: [seq, 3] int, from the upstream create_coordinate_grid layout
66
+ # adaln_input: [batch, 256] timestep embedding
67
+ with torch.inference_mode():
68
+ refined = model.forward_noise(x, attn_mask, position_ids, adaln_input)
69
+
70
+ # cap_feats: [batch, cap_seq, 3840] embedded caption features
71
+ with torch.inference_mode():
72
+ refined_cap = model.forward_context(cap_feats, attn_mask, position_ids)
73
+ ```
74
+
75
+ `load_model(root, dtype=torch.float32)` runs the same weights in float32.
76
+
77
+ **Input adapters are not included.** `forward_noise` expects features already passed through the source model's `all_x_embedder` (`Linear(64 → 3840)` on 2×2 patches of 16-channel latents) and adaLN conditioning from `t_embedder`; `forward_context` expects features from `cap_embedder` (`RMSNorm(2560)` then `Linear(2560 → 3840)`). Take those from the source repository. The RoPE helper is included as `model.rope_embedder`, configured with the source `axes_dims` `[32, 48, 48]`, `axes_lens` `[1536, 512, 512]` and `rope_theta` 256.
78
+
79
+ Position ids follow the upstream layout: caption tokens occupy `(1..cap_len, 0, 0)`, and image tokens start at `(cap_len + 1, 0, 0)` — the image grid is offset by the padded caption length.
80
+
81
+ ## Validation
82
+
83
+ Measured on CPU with `diffusers==0.36.0` and `torch==2.14.1`. Full results are in `validation.json`.
84
+
85
+ | Check | Result |
86
+ | --- | --- |
87
+ | Strict load | 56/56 tensors, no missing or unexpected keys, no prefix stripping |
88
+ | Parameters | 715,746,304, all `torch.bfloat16` |
89
+ | `noise_refiner` input | three real COCO128 images → authentic Z-Image VAE → latent `[1, 16, 32, 32]` → 2×2 patches `[256, 64]` |
90
+ | `noise_refiner` output | `[1, 256, 3840]`, all finite on all three images |
91
+ | `context_refiner` output | `[1, 64, 3840]`, all finite |
92
+ | Determinism | repeated identical input, max absolute error exactly `0.0` on both stacks |
93
+
94
+ The `noise_refiner` path uses **real image data end to end**. The VAE is the local Flux VAE, verified byte-identical to `Tongyi-MAI/Z-Image-Turbo`'s `vae/diffusion_pytorch_model.safetensors` (SHA-256 `f5b59a26851551b67ae1fe58d32e76486e1e812def4696a4bea97f16604d40a3`). Latents are scaled with the source `shift_factor` 0.1159 and `scaling_factor` 0.3611, noised at flow-matching `t = 0.5`, then passed through the authentic `all_x_embedder` and `t_embedder` extracted from the same pinned revision. RoPE uses the upstream `create_coordinate_grid` layout.
95
+
96
+ **Two documented assumptions.** The official Qwen3 text encoder was not downloaded, so (1) `context_refiner` receives seeded synthetic caption features rather than real text-encoder output — they still pass through the authentic `cap_embedder`; and (2) the padded caption length is fixed at 64, which sets the offset of the image position ids. Neither stack is claimed to reproduce full-pipeline outputs.
97
+
98
+ ## Limitations
99
+
100
+ - This is a component-level extraction. Without the trunk, final layer, VAE and text encoder there is no image generation capability here.
101
+ - The refiners are designed to run before the trunk; their outputs are intermediate features, not images or final latents.
102
+ - `bfloat16` CPU execution is not claimed to be bit-identical to the original GPU inference path.
103
+ - COCO128 images used for validation may overlap the model's training data; they are not an independent generalization benchmark.
104
+
105
+ ## License
106
+
107
+ Apache License 2.0, inherited from the source repository. `LICENSE` is the upstream Apache 2.0 text and `NOTICE` records attribution. No official source file was modified; `component.py`, `component_config.json`, `extraction.json`, `tensor_mapping.json`, `validation.json` and this README are added by the extractor.
component.py ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Load the NitroFusion2 DiT refiner stacks using the official diffusers Z-Image blocks."""
2
+ from pathlib import Path
3
+ import json
4
+ import torch
5
+ from torch import nn
6
+ from accelerate import init_empty_weights
7
+ from safetensors.torch import load_file
8
+ from diffusers.models.transformers.transformer_z_image import ZImageTransformerBlock, RopeEmbedder
9
+
10
+
11
+ class NitroFusion2Refiners(nn.Module):
12
+ def __init__(self, config):
13
+ super().__init__()
14
+ dim = config['dim']
15
+ args = (dim, config['n_heads'], config['n_kv_heads'], config['norm_eps'], config['qk_norm'])
16
+ n = config['n_refiner_layers']
17
+ self.noise_refiner = nn.ModuleList([
18
+ ZImageTransformerBlock(1000 + i, *args, modulation=True) for i in range(n)])
19
+ self.context_refiner = nn.ModuleList([
20
+ ZImageTransformerBlock(i, *args, modulation=False) for i in range(n)])
21
+ self.rope_embedder = RopeEmbedder(
22
+ theta=config['rope_theta'], axes_dims=config['axes_dims'], axes_lens=config['axes_lens'])
23
+
24
+ def forward_noise(self, x, attn_mask, position_ids, adaln_input):
25
+ freqs_cis = self.rope_embedder(position_ids).unsqueeze(0)
26
+ for layer in self.noise_refiner:
27
+ x = layer(x, attn_mask, freqs_cis, adaln_input)
28
+ return x
29
+
30
+ def forward_context(self, cap_feats, attn_mask, position_ids):
31
+ freqs_cis = self.rope_embedder(position_ids).unsqueeze(0)
32
+ for layer in self.context_refiner:
33
+ cap_feats = layer(cap_feats, attn_mask, freqs_cis)
34
+ return cap_feats
35
+
36
+
37
+ def load_model(root, dtype=None):
38
+ root = Path(root)
39
+ config = json.loads((root / 'config.json').read_text())
40
+ with init_empty_weights(include_buffers=False):
41
+ model = NitroFusion2Refiners(config)
42
+ state = load_file(str(root / 'model.safetensors'), device='cpu')
43
+ model.load_state_dict(state, strict=True, assign=True)
44
+ model = model.eval()
45
+ return model if dtype is None else model.to(dtype)
component_config.json ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "kind": "dit-refiner",
3
+ "source_repo": "ChenDY/NitroFusion2",
4
+ "source_revision": "62d1a7000af9c46a0c4348d936bd7670ff33c1b9",
5
+ "prefixes": ["noise_refiner.", "context_refiner."],
6
+ "block_class": "ZImageTransformerBlock",
7
+ "block_module": "diffusers.models.transformers.transformer_z_image",
8
+ "source_declared_diffusers_version": "0.36.0.dev0",
9
+ "validated_diffusers_version": "0.36.0",
10
+ "naming": "original checkpoint tensor names preserved; load_state_dict(strict=True) with no prefix stripping",
11
+ "excluded": "layers.* (30-layer MMDiT trunk), all_x_embedder.*, all_final_layer.*, cap_embedder.*, t_embedder.*, x_pad_token, cap_pad_token",
12
+ "input_adapters_required": "noise_refiner expects embedded noisy latent patches from all_x_embedder plus adaLN conditioning from t_embedder; context_refiner expects caption features from cap_embedder. Those adapters are not included in this component and must be taken from the source repository.",
13
+ "license": "Apache-2.0"
14
+ }
config.json ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "_class_name": "ZImageTransformer2DModel",
3
+ "_diffusers_version": "0.36.0.dev0",
4
+ "all_f_patch_size": [
5
+ 1
6
+ ],
7
+ "all_patch_size": [
8
+ 2
9
+ ],
10
+ "axes_dims": [
11
+ 32,
12
+ 48,
13
+ 48
14
+ ],
15
+ "axes_lens": [
16
+ 1536,
17
+ 512,
18
+ 512
19
+ ],
20
+ "cap_feat_dim": 2560,
21
+ "dim": 3840,
22
+ "in_channels": 16,
23
+ "n_heads": 30,
24
+ "n_kv_heads": 30,
25
+ "n_layers": 30,
26
+ "n_refiner_layers": 2,
27
+ "norm_eps": 1e-05,
28
+ "qk_norm": true,
29
+ "rope_theta": 256.0,
30
+ "t_scale": 1000.0
31
+ }
extraction.json ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "source_repo": "ChenDY/NitroFusion2",
3
+ "source_revision": "62d1a7000af9c46a0c4348d936bd7670ff33c1b9",
4
+ "source_shards": [
5
+ "diffusion_pytorch_model-00001-of-00003.safetensors"
6
+ ],
7
+ "scope": "noise_refiner.* and context_refiner.* (the two 2-layer refiner stacks of the Z-Image MMDiT; the 30-layer trunk, embedders and final layer are excluded)",
8
+ "naming": "original checkpoint tensor names preserved",
9
+ "tensor_count": 56,
10
+ "tensor_bytes": 1431492608,
11
+ "parameters": 715746304,
12
+ "sha256": "c871ae336b02e763a4be2018231a1b616082fd4edb04a51189b2798dcfb62284",
13
+ "source_range_bytes_verified": true,
14
+ "license": "Apache-2.0"
15
+ }
model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c871ae336b02e763a4be2018231a1b616082fd4edb04a51189b2798dcfb62284
3
+ size 1431498952
tensor_mapping.json ADDED
@@ -0,0 +1,648 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "context_refiner.0.attention.norm_k.weight": {
3
+ "source_shard": "diffusion_pytorch_model-00001-of-00003.safetensors",
4
+ "source_data_offsets": [
5
+ 22645888,
6
+ 22646144
7
+ ],
8
+ "dtype": "BF16",
9
+ "shape": [
10
+ 128
11
+ ]
12
+ },
13
+ "context_refiner.0.attention.norm_q.weight": {
14
+ "source_shard": "diffusion_pytorch_model-00001-of-00003.safetensors",
15
+ "source_data_offsets": [
16
+ 22646144,
17
+ 22646400
18
+ ],
19
+ "dtype": "BF16",
20
+ "shape": [
21
+ 128
22
+ ]
23
+ },
24
+ "context_refiner.0.attention.to_k.weight": {
25
+ "source_shard": "diffusion_pytorch_model-00001-of-00003.safetensors",
26
+ "source_data_offsets": [
27
+ 22646400,
28
+ 52137600
29
+ ],
30
+ "dtype": "BF16",
31
+ "shape": [
32
+ 3840,
33
+ 3840
34
+ ]
35
+ },
36
+ "context_refiner.0.attention.to_out.0.weight": {
37
+ "source_shard": "diffusion_pytorch_model-00001-of-00003.safetensors",
38
+ "source_data_offsets": [
39
+ 52137600,
40
+ 81628800
41
+ ],
42
+ "dtype": "BF16",
43
+ "shape": [
44
+ 3840,
45
+ 3840
46
+ ]
47
+ },
48
+ "context_refiner.0.attention.to_q.weight": {
49
+ "source_shard": "diffusion_pytorch_model-00001-of-00003.safetensors",
50
+ "source_data_offsets": [
51
+ 81628800,
52
+ 111120000
53
+ ],
54
+ "dtype": "BF16",
55
+ "shape": [
56
+ 3840,
57
+ 3840
58
+ ]
59
+ },
60
+ "context_refiner.0.attention.to_v.weight": {
61
+ "source_shard": "diffusion_pytorch_model-00001-of-00003.safetensors",
62
+ "source_data_offsets": [
63
+ 111120000,
64
+ 140611200
65
+ ],
66
+ "dtype": "BF16",
67
+ "shape": [
68
+ 3840,
69
+ 3840
70
+ ]
71
+ },
72
+ "context_refiner.0.attention_norm1.weight": {
73
+ "source_shard": "diffusion_pytorch_model-00001-of-00003.safetensors",
74
+ "source_data_offsets": [
75
+ 140611200,
76
+ 140618880
77
+ ],
78
+ "dtype": "BF16",
79
+ "shape": [
80
+ 3840
81
+ ]
82
+ },
83
+ "context_refiner.0.attention_norm2.weight": {
84
+ "source_shard": "diffusion_pytorch_model-00001-of-00003.safetensors",
85
+ "source_data_offsets": [
86
+ 140618880,
87
+ 140626560
88
+ ],
89
+ "dtype": "BF16",
90
+ "shape": [
91
+ 3840
92
+ ]
93
+ },
94
+ "context_refiner.0.feed_forward.w1.weight": {
95
+ "source_shard": "diffusion_pytorch_model-00001-of-00003.safetensors",
96
+ "source_data_offsets": [
97
+ 140626560,
98
+ 219269760
99
+ ],
100
+ "dtype": "BF16",
101
+ "shape": [
102
+ 10240,
103
+ 3840
104
+ ]
105
+ },
106
+ "context_refiner.0.feed_forward.w2.weight": {
107
+ "source_shard": "diffusion_pytorch_model-00001-of-00003.safetensors",
108
+ "source_data_offsets": [
109
+ 219269760,
110
+ 297912960
111
+ ],
112
+ "dtype": "BF16",
113
+ "shape": [
114
+ 3840,
115
+ 10240
116
+ ]
117
+ },
118
+ "context_refiner.0.feed_forward.w3.weight": {
119
+ "source_shard": "diffusion_pytorch_model-00001-of-00003.safetensors",
120
+ "source_data_offsets": [
121
+ 297912960,
122
+ 376556160
123
+ ],
124
+ "dtype": "BF16",
125
+ "shape": [
126
+ 10240,
127
+ 3840
128
+ ]
129
+ },
130
+ "context_refiner.0.ffn_norm1.weight": {
131
+ "source_shard": "diffusion_pytorch_model-00001-of-00003.safetensors",
132
+ "source_data_offsets": [
133
+ 376556160,
134
+ 376563840
135
+ ],
136
+ "dtype": "BF16",
137
+ "shape": [
138
+ 3840
139
+ ]
140
+ },
141
+ "context_refiner.0.ffn_norm2.weight": {
142
+ "source_shard": "diffusion_pytorch_model-00001-of-00003.safetensors",
143
+ "source_data_offsets": [
144
+ 376563840,
145
+ 376571520
146
+ ],
147
+ "dtype": "BF16",
148
+ "shape": [
149
+ 3840
150
+ ]
151
+ },
152
+ "context_refiner.1.attention.norm_k.weight": {
153
+ "source_shard": "diffusion_pytorch_model-00001-of-00003.safetensors",
154
+ "source_data_offsets": [
155
+ 376571520,
156
+ 376571776
157
+ ],
158
+ "dtype": "BF16",
159
+ "shape": [
160
+ 128
161
+ ]
162
+ },
163
+ "context_refiner.1.attention.norm_q.weight": {
164
+ "source_shard": "diffusion_pytorch_model-00001-of-00003.safetensors",
165
+ "source_data_offsets": [
166
+ 376571776,
167
+ 376572032
168
+ ],
169
+ "dtype": "BF16",
170
+ "shape": [
171
+ 128
172
+ ]
173
+ },
174
+ "context_refiner.1.attention.to_k.weight": {
175
+ "source_shard": "diffusion_pytorch_model-00001-of-00003.safetensors",
176
+ "source_data_offsets": [
177
+ 376572032,
178
+ 406063232
179
+ ],
180
+ "dtype": "BF16",
181
+ "shape": [
182
+ 3840,
183
+ 3840
184
+ ]
185
+ },
186
+ "context_refiner.1.attention.to_out.0.weight": {
187
+ "source_shard": "diffusion_pytorch_model-00001-of-00003.safetensors",
188
+ "source_data_offsets": [
189
+ 406063232,
190
+ 435554432
191
+ ],
192
+ "dtype": "BF16",
193
+ "shape": [
194
+ 3840,
195
+ 3840
196
+ ]
197
+ },
198
+ "context_refiner.1.attention.to_q.weight": {
199
+ "source_shard": "diffusion_pytorch_model-00001-of-00003.safetensors",
200
+ "source_data_offsets": [
201
+ 435554432,
202
+ 465045632
203
+ ],
204
+ "dtype": "BF16",
205
+ "shape": [
206
+ 3840,
207
+ 3840
208
+ ]
209
+ },
210
+ "context_refiner.1.attention.to_v.weight": {
211
+ "source_shard": "diffusion_pytorch_model-00001-of-00003.safetensors",
212
+ "source_data_offsets": [
213
+ 465045632,
214
+ 494536832
215
+ ],
216
+ "dtype": "BF16",
217
+ "shape": [
218
+ 3840,
219
+ 3840
220
+ ]
221
+ },
222
+ "context_refiner.1.attention_norm1.weight": {
223
+ "source_shard": "diffusion_pytorch_model-00001-of-00003.safetensors",
224
+ "source_data_offsets": [
225
+ 494536832,
226
+ 494544512
227
+ ],
228
+ "dtype": "BF16",
229
+ "shape": [
230
+ 3840
231
+ ]
232
+ },
233
+ "context_refiner.1.attention_norm2.weight": {
234
+ "source_shard": "diffusion_pytorch_model-00001-of-00003.safetensors",
235
+ "source_data_offsets": [
236
+ 494544512,
237
+ 494552192
238
+ ],
239
+ "dtype": "BF16",
240
+ "shape": [
241
+ 3840
242
+ ]
243
+ },
244
+ "context_refiner.1.feed_forward.w1.weight": {
245
+ "source_shard": "diffusion_pytorch_model-00001-of-00003.safetensors",
246
+ "source_data_offsets": [
247
+ 494552192,
248
+ 573195392
249
+ ],
250
+ "dtype": "BF16",
251
+ "shape": [
252
+ 10240,
253
+ 3840
254
+ ]
255
+ },
256
+ "context_refiner.1.feed_forward.w2.weight": {
257
+ "source_shard": "diffusion_pytorch_model-00001-of-00003.safetensors",
258
+ "source_data_offsets": [
259
+ 573195392,
260
+ 651838592
261
+ ],
262
+ "dtype": "BF16",
263
+ "shape": [
264
+ 3840,
265
+ 10240
266
+ ]
267
+ },
268
+ "context_refiner.1.feed_forward.w3.weight": {
269
+ "source_shard": "diffusion_pytorch_model-00001-of-00003.safetensors",
270
+ "source_data_offsets": [
271
+ 651838592,
272
+ 730481792
273
+ ],
274
+ "dtype": "BF16",
275
+ "shape": [
276
+ 10240,
277
+ 3840
278
+ ]
279
+ },
280
+ "context_refiner.1.ffn_norm1.weight": {
281
+ "source_shard": "diffusion_pytorch_model-00001-of-00003.safetensors",
282
+ "source_data_offsets": [
283
+ 730481792,
284
+ 730489472
285
+ ],
286
+ "dtype": "BF16",
287
+ "shape": [
288
+ 3840
289
+ ]
290
+ },
291
+ "context_refiner.1.ffn_norm2.weight": {
292
+ "source_shard": "diffusion_pytorch_model-00001-of-00003.safetensors",
293
+ "source_data_offsets": [
294
+ 730489472,
295
+ 730497152
296
+ ],
297
+ "dtype": "BF16",
298
+ "shape": [
299
+ 3840
300
+ ]
301
+ },
302
+ "noise_refiner.0.adaLN_modulation.0.bias": {
303
+ "source_shard": "diffusion_pytorch_model-00001-of-00003.safetensors",
304
+ "source_data_offsets": [
305
+ 4262134912,
306
+ 4262165632
307
+ ],
308
+ "dtype": "BF16",
309
+ "shape": [
310
+ 15360
311
+ ]
312
+ },
313
+ "noise_refiner.0.adaLN_modulation.0.weight": {
314
+ "source_shard": "diffusion_pytorch_model-00001-of-00003.safetensors",
315
+ "source_data_offsets": [
316
+ 4262165632,
317
+ 4270029952
318
+ ],
319
+ "dtype": "BF16",
320
+ "shape": [
321
+ 15360,
322
+ 256
323
+ ]
324
+ },
325
+ "noise_refiner.0.attention.norm_k.weight": {
326
+ "source_shard": "diffusion_pytorch_model-00001-of-00003.safetensors",
327
+ "source_data_offsets": [
328
+ 4270029952,
329
+ 4270030208
330
+ ],
331
+ "dtype": "BF16",
332
+ "shape": [
333
+ 128
334
+ ]
335
+ },
336
+ "noise_refiner.0.attention.norm_q.weight": {
337
+ "source_shard": "diffusion_pytorch_model-00001-of-00003.safetensors",
338
+ "source_data_offsets": [
339
+ 4270030208,
340
+ 4270030464
341
+ ],
342
+ "dtype": "BF16",
343
+ "shape": [
344
+ 128
345
+ ]
346
+ },
347
+ "noise_refiner.0.attention.to_k.weight": {
348
+ "source_shard": "diffusion_pytorch_model-00001-of-00003.safetensors",
349
+ "source_data_offsets": [
350
+ 4270030464,
351
+ 4299521664
352
+ ],
353
+ "dtype": "BF16",
354
+ "shape": [
355
+ 3840,
356
+ 3840
357
+ ]
358
+ },
359
+ "noise_refiner.0.attention.to_out.0.weight": {
360
+ "source_shard": "diffusion_pytorch_model-00001-of-00003.safetensors",
361
+ "source_data_offsets": [
362
+ 4299521664,
363
+ 4329012864
364
+ ],
365
+ "dtype": "BF16",
366
+ "shape": [
367
+ 3840,
368
+ 3840
369
+ ]
370
+ },
371
+ "noise_refiner.0.attention.to_q.weight": {
372
+ "source_shard": "diffusion_pytorch_model-00001-of-00003.safetensors",
373
+ "source_data_offsets": [
374
+ 4329012864,
375
+ 4358504064
376
+ ],
377
+ "dtype": "BF16",
378
+ "shape": [
379
+ 3840,
380
+ 3840
381
+ ]
382
+ },
383
+ "noise_refiner.0.attention.to_v.weight": {
384
+ "source_shard": "diffusion_pytorch_model-00001-of-00003.safetensors",
385
+ "source_data_offsets": [
386
+ 4358504064,
387
+ 4387995264
388
+ ],
389
+ "dtype": "BF16",
390
+ "shape": [
391
+ 3840,
392
+ 3840
393
+ ]
394
+ },
395
+ "noise_refiner.0.attention_norm1.weight": {
396
+ "source_shard": "diffusion_pytorch_model-00001-of-00003.safetensors",
397
+ "source_data_offsets": [
398
+ 4387995264,
399
+ 4388002944
400
+ ],
401
+ "dtype": "BF16",
402
+ "shape": [
403
+ 3840
404
+ ]
405
+ },
406
+ "noise_refiner.0.attention_norm2.weight": {
407
+ "source_shard": "diffusion_pytorch_model-00001-of-00003.safetensors",
408
+ "source_data_offsets": [
409
+ 4388002944,
410
+ 4388010624
411
+ ],
412
+ "dtype": "BF16",
413
+ "shape": [
414
+ 3840
415
+ ]
416
+ },
417
+ "noise_refiner.0.feed_forward.w1.weight": {
418
+ "source_shard": "diffusion_pytorch_model-00001-of-00003.safetensors",
419
+ "source_data_offsets": [
420
+ 4388010624,
421
+ 4466653824
422
+ ],
423
+ "dtype": "BF16",
424
+ "shape": [
425
+ 10240,
426
+ 3840
427
+ ]
428
+ },
429
+ "noise_refiner.0.feed_forward.w2.weight": {
430
+ "source_shard": "diffusion_pytorch_model-00001-of-00003.safetensors",
431
+ "source_data_offsets": [
432
+ 4466653824,
433
+ 4545297024
434
+ ],
435
+ "dtype": "BF16",
436
+ "shape": [
437
+ 3840,
438
+ 10240
439
+ ]
440
+ },
441
+ "noise_refiner.0.feed_forward.w3.weight": {
442
+ "source_shard": "diffusion_pytorch_model-00001-of-00003.safetensors",
443
+ "source_data_offsets": [
444
+ 4545297024,
445
+ 4623940224
446
+ ],
447
+ "dtype": "BF16",
448
+ "shape": [
449
+ 10240,
450
+ 3840
451
+ ]
452
+ },
453
+ "noise_refiner.0.ffn_norm1.weight": {
454
+ "source_shard": "diffusion_pytorch_model-00001-of-00003.safetensors",
455
+ "source_data_offsets": [
456
+ 4623940224,
457
+ 4623947904
458
+ ],
459
+ "dtype": "BF16",
460
+ "shape": [
461
+ 3840
462
+ ]
463
+ },
464
+ "noise_refiner.0.ffn_norm2.weight": {
465
+ "source_shard": "diffusion_pytorch_model-00001-of-00003.safetensors",
466
+ "source_data_offsets": [
467
+ 4623947904,
468
+ 4623955584
469
+ ],
470
+ "dtype": "BF16",
471
+ "shape": [
472
+ 3840
473
+ ]
474
+ },
475
+ "noise_refiner.1.adaLN_modulation.0.bias": {
476
+ "source_shard": "diffusion_pytorch_model-00001-of-00003.safetensors",
477
+ "source_data_offsets": [
478
+ 4623955584,
479
+ 4623986304
480
+ ],
481
+ "dtype": "BF16",
482
+ "shape": [
483
+ 15360
484
+ ]
485
+ },
486
+ "noise_refiner.1.adaLN_modulation.0.weight": {
487
+ "source_shard": "diffusion_pytorch_model-00001-of-00003.safetensors",
488
+ "source_data_offsets": [
489
+ 4623986304,
490
+ 4631850624
491
+ ],
492
+ "dtype": "BF16",
493
+ "shape": [
494
+ 15360,
495
+ 256
496
+ ]
497
+ },
498
+ "noise_refiner.1.attention.norm_k.weight": {
499
+ "source_shard": "diffusion_pytorch_model-00001-of-00003.safetensors",
500
+ "source_data_offsets": [
501
+ 4631850624,
502
+ 4631850880
503
+ ],
504
+ "dtype": "BF16",
505
+ "shape": [
506
+ 128
507
+ ]
508
+ },
509
+ "noise_refiner.1.attention.norm_q.weight": {
510
+ "source_shard": "diffusion_pytorch_model-00001-of-00003.safetensors",
511
+ "source_data_offsets": [
512
+ 4631850880,
513
+ 4631851136
514
+ ],
515
+ "dtype": "BF16",
516
+ "shape": [
517
+ 128
518
+ ]
519
+ },
520
+ "noise_refiner.1.attention.to_k.weight": {
521
+ "source_shard": "diffusion_pytorch_model-00001-of-00003.safetensors",
522
+ "source_data_offsets": [
523
+ 4631851136,
524
+ 4661342336
525
+ ],
526
+ "dtype": "BF16",
527
+ "shape": [
528
+ 3840,
529
+ 3840
530
+ ]
531
+ },
532
+ "noise_refiner.1.attention.to_out.0.weight": {
533
+ "source_shard": "diffusion_pytorch_model-00001-of-00003.safetensors",
534
+ "source_data_offsets": [
535
+ 4661342336,
536
+ 4690833536
537
+ ],
538
+ "dtype": "BF16",
539
+ "shape": [
540
+ 3840,
541
+ 3840
542
+ ]
543
+ },
544
+ "noise_refiner.1.attention.to_q.weight": {
545
+ "source_shard": "diffusion_pytorch_model-00001-of-00003.safetensors",
546
+ "source_data_offsets": [
547
+ 4690833536,
548
+ 4720324736
549
+ ],
550
+ "dtype": "BF16",
551
+ "shape": [
552
+ 3840,
553
+ 3840
554
+ ]
555
+ },
556
+ "noise_refiner.1.attention.to_v.weight": {
557
+ "source_shard": "diffusion_pytorch_model-00001-of-00003.safetensors",
558
+ "source_data_offsets": [
559
+ 4720324736,
560
+ 4749815936
561
+ ],
562
+ "dtype": "BF16",
563
+ "shape": [
564
+ 3840,
565
+ 3840
566
+ ]
567
+ },
568
+ "noise_refiner.1.attention_norm1.weight": {
569
+ "source_shard": "diffusion_pytorch_model-00001-of-00003.safetensors",
570
+ "source_data_offsets": [
571
+ 4749815936,
572
+ 4749823616
573
+ ],
574
+ "dtype": "BF16",
575
+ "shape": [
576
+ 3840
577
+ ]
578
+ },
579
+ "noise_refiner.1.attention_norm2.weight": {
580
+ "source_shard": "diffusion_pytorch_model-00001-of-00003.safetensors",
581
+ "source_data_offsets": [
582
+ 4749823616,
583
+ 4749831296
584
+ ],
585
+ "dtype": "BF16",
586
+ "shape": [
587
+ 3840
588
+ ]
589
+ },
590
+ "noise_refiner.1.feed_forward.w1.weight": {
591
+ "source_shard": "diffusion_pytorch_model-00001-of-00003.safetensors",
592
+ "source_data_offsets": [
593
+ 4749831296,
594
+ 4828474496
595
+ ],
596
+ "dtype": "BF16",
597
+ "shape": [
598
+ 10240,
599
+ 3840
600
+ ]
601
+ },
602
+ "noise_refiner.1.feed_forward.w2.weight": {
603
+ "source_shard": "diffusion_pytorch_model-00001-of-00003.safetensors",
604
+ "source_data_offsets": [
605
+ 4828474496,
606
+ 4907117696
607
+ ],
608
+ "dtype": "BF16",
609
+ "shape": [
610
+ 3840,
611
+ 10240
612
+ ]
613
+ },
614
+ "noise_refiner.1.feed_forward.w3.weight": {
615
+ "source_shard": "diffusion_pytorch_model-00001-of-00003.safetensors",
616
+ "source_data_offsets": [
617
+ 4907117696,
618
+ 4985760896
619
+ ],
620
+ "dtype": "BF16",
621
+ "shape": [
622
+ 10240,
623
+ 3840
624
+ ]
625
+ },
626
+ "noise_refiner.1.ffn_norm1.weight": {
627
+ "source_shard": "diffusion_pytorch_model-00001-of-00003.safetensors",
628
+ "source_data_offsets": [
629
+ 4985760896,
630
+ 4985768576
631
+ ],
632
+ "dtype": "BF16",
633
+ "shape": [
634
+ 3840
635
+ ]
636
+ },
637
+ "noise_refiner.1.ffn_norm2.weight": {
638
+ "source_shard": "diffusion_pytorch_model-00001-of-00003.safetensors",
639
+ "source_data_offsets": [
640
+ 4985768576,
641
+ 4985776256
642
+ ],
643
+ "dtype": "BF16",
644
+ "shape": [
645
+ 3840
646
+ ]
647
+ }
648
+ }
validation.json ADDED
@@ -0,0 +1,114 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "strict_load": true,
3
+ "finite": true,
4
+ "diffusers_version": "0.36.0",
5
+ "source_declared_diffusers_version": "0.36.0.dev0",
6
+ "torch_version": "2.14.1",
7
+ "device": "cpu",
8
+ "dtype": [
9
+ "torch.bfloat16"
10
+ ],
11
+ "parameters": 715746304,
12
+ "tensor_count": 56,
13
+ "noise_refiner_validation": {
14
+ "input": "three real COCO128 images encoded by the authentic Z-Image VAE, patchified and embedded with the authentic all_x_embedder, noised at flow-matching t=0.5, real t_embedder adaLN conditioning and upstream create_coordinate_grid RoPE",
15
+ "vae_sha256": "f5b59a26851551b67ae1fe58d32e76486e1e812def4696a4bea97f16604d40a3",
16
+ "vae_identical_to_z_image_turbo": true,
17
+ "assumed_caption_length": 64,
18
+ "assumption_note": "image position ids are offset by the padded caption length upstream; the official Qwen3 text encoder is out of scope, so a fixed 64-token caption length is assumed",
19
+ "per_image": [
20
+ {
21
+ "image": "000000000009.png",
22
+ "source_size": [
23
+ 256,
24
+ 256
25
+ ],
26
+ "latent_shape": [
27
+ 1,
28
+ 16,
29
+ 32,
30
+ 32
31
+ ],
32
+ "patch_shape": [
33
+ 256,
34
+ 64
35
+ ],
36
+ "noise_refiner_output_shape": [
37
+ 1,
38
+ 256,
39
+ 3840
40
+ ],
41
+ "timestep": 0.5,
42
+ "finite": true,
43
+ "repeat_max_abs_error": 0.0,
44
+ "output_abs_mean": 0.1828508973121643
45
+ },
46
+ {
47
+ "image": "000000000030.png",
48
+ "source_size": [
49
+ 256,
50
+ 256
51
+ ],
52
+ "latent_shape": [
53
+ 1,
54
+ 16,
55
+ 32,
56
+ 32
57
+ ],
58
+ "patch_shape": [
59
+ 256,
60
+ 64
61
+ ],
62
+ "noise_refiner_output_shape": [
63
+ 1,
64
+ 256,
65
+ 3840
66
+ ],
67
+ "timestep": 0.5,
68
+ "finite": true,
69
+ "repeat_max_abs_error": 0.0,
70
+ "output_abs_mean": 0.17951683700084686
71
+ },
72
+ {
73
+ "image": "000000000034.png",
74
+ "source_size": [
75
+ 256,
76
+ 256
77
+ ],
78
+ "latent_shape": [
79
+ 1,
80
+ 16,
81
+ 32,
82
+ 32
83
+ ],
84
+ "patch_shape": [
85
+ 256,
86
+ 64
87
+ ],
88
+ "noise_refiner_output_shape": [
89
+ 1,
90
+ 256,
91
+ 3840
92
+ ],
93
+ "timestep": 0.5,
94
+ "finite": true,
95
+ "repeat_max_abs_error": 0.0,
96
+ "output_abs_mean": 0.16232071816921234
97
+ }
98
+ ]
99
+ },
100
+ "context_refiner_validation": {
101
+ "input": "synthetic Qwen3-shaped caption features (seeded), passed through the authentic cap_embedder",
102
+ "cap_len": 64,
103
+ "output_shape": [
104
+ 1,
105
+ 64,
106
+ 3840
107
+ ],
108
+ "finite": true,
109
+ "repeat_max_abs_error": 0.0,
110
+ "output_abs_mean": 0.5141564011573792
111
+ },
112
+ "elapsed_seconds": 20.54,
113
+ "limitations": "Component-level CPU test only. The 30-layer DiT trunk, final layer, VAE decoder and text encoder are excluded, so this does not evaluate image generation quality or end-to-end parity with the full NitroFusion2 pipeline. context_refiner inputs are synthetic because the official Qwen3 text encoder was not downloaded. bfloat16 CPU execution is not claimed to match GPU inference. COCO128 may overlap training data."
114
+ }