SumomoLee commited on
Commit
16364ff
·
verified ·
1 Parent(s): be0f394

v2: core-compatible text encoder keys (model.*), core workflows, Comfy-Org comparison, VAE description fix

Browse files
README.md CHANGED
@@ -36,13 +36,15 @@ which is the better starting point for LoRA training. As a check, our converter
36
  | :-- | :-- | --: |
37
  | `diffusion_models/moss-image-base-dit-int8-convrot.safetensors` | DiT, INT8 ConvRot (W8, per-channel) | 5.41 GB (5,413,723,800 bytes) |
38
  | `diffusion_models/moss-image-base-dit-int4-convrot.safetensors` | DiT, INT4 ConvRot W4A4 | 3.04 GB (3,035,537,344 bytes) |
39
- | `text_encoders/moss-image-qwen35-int8-convrot.safetensors` | Qwen3.5 text encoder, INT8 ConvRot (optional) | 8.45 GB (8,452,951,644 bytes) |
40
- | `vae/moss-image-vae.safetensors` | FLUX.2 VAE, unchanged BF16 copy | 0.25 GB (249,521,372 bytes) |
41
- | `workflows/*.json` | ComfyUI workflows (UI and API format) for each DiT | |
 
42
  | `quantize_moss.py` | conversion script | |
43
 
44
  The BF16 DiT is ~10.2 GB and the BF16 text encoder ~16.8 GB.
45
  MOSS-Image-Base and MOSS-Image-SFT ship byte-identical text encoder and VAE weights, so the text encoder here is identical to the one in the Abiray INT8 repo.
 
46
  You can also keep the BF16 text encoder, exported with the plugin's `export.py`.
47
 
48
  ## Quantization method
@@ -102,12 +104,30 @@ which is FP32 in MOSS-Image-Base and is kept as FP32. The INT8 text encoder has
102
  - Both DiT files and the INT8 text encoder load through `MOSSImageUNETLoader` / `MOSSImageCLIPLoader`.
103
  - The files appear in the loader lists.
104
  - An API-format prompt (INT4 DiT + INT8 TE + VAE, low resolution, 2 steps) ran end to end and saved an image. The INT8 DiT generated an image the same way.
 
 
105
 
106
  On CPU, ComfyUI dequantizes instead of using the int8 / int4 GPU kernels. So this test confirms the files are valid and loadable,
107
  not GPU kernel behavior, output quality or speed.
108
 
109
  ## ComfyUI usage
110
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
111
  Requirements:
112
  - A recent ComfyUI with comfy-kitchen >= 0.2.37. It must have INT4 ConvRot (`convrot_w4a4`) and ConvRot INT8 support; tested with ComfyUI `bdc63e7`.
113
  - PyTorch built for CUDA 13.0 or newer, so the comfy-kitchen CUDA kernels are enabled.
@@ -124,7 +144,7 @@ On GPUs or devices without int8 compute, ComfyUI falls back to dequantize-then-m
124
  "vae/moss-image-vae.safetensors"]:
125
  hf_hub_download("SumomoLee/MOSS-Image-Base-ConvRot-ComfyUI", f, local_dir="/path/to/ComfyUI/models")
126
  ```
127
- 2. Load `workflows/moss-image-base-int8-convrot.json` or `workflows/moss-image-base-int4-convrot.json` in ComfyUI. The `*-api.json` files are for the HTTP API.
128
  3. The nodes are **MOSS-Image Load Diffusion Model** (`MOSSImageUNETLoader`, keep `weight_dtype = default`), **MOSS-Image Load Qwen3.5**
129
  (`MOSSImageCLIPLoader`), and the standard **Load VAE**.
130
 
@@ -132,12 +152,44 @@ Recommended settings for the base model, from the official user guide: 50 steps,
132
  Euler / sgm_uniform, uncond skip-layer guidance on layer 22 (SkipLayerGuidanceDiTSimple), and 1 to 2 MP resolutions in multiples of 16.
133
  Recommended negative prompt: `nsfw, worst quality, bad anatomy, watermark, jpeg artifact`.
134
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
135
  ## Checksums (SHA-256)
136
 
137
  ```text
138
  1f42fac88a1b94f23ea3b49db6149243493ff1d6b962bb599a20417fe4aa71ea diffusion_models/moss-image-base-dit-int4-convrot.safetensors
139
  f47c21a1397f846fa0d01c75e4b88fa6088783b47171399a465d92b1769ba0eb diffusion_models/moss-image-base-dit-int8-convrot.safetensors
140
- 41e7637a983b624f18c715f558fe24669c5d12d960331b655aeed50e7c609d6c text_encoders/moss-image-qwen35-int8-convrot.safetensors
141
  c3bdf94dc67ec69b30ea9fe1fa8340085679cae64d019f7c7e4a9921f1a7f17a vae/moss-image-vae.safetensors
142
  ```
143
 
 
36
  | :-- | :-- | --: |
37
  | `diffusion_models/moss-image-base-dit-int8-convrot.safetensors` | DiT, INT8 ConvRot (W8, per-channel) | 5.41 GB (5,413,723,800 bytes) |
38
  | `diffusion_models/moss-image-base-dit-int4-convrot.safetensors` | DiT, INT4 ConvRot W4A4 | 3.04 GB (3,035,537,344 bytes) |
39
+ | `text_encoders/moss-image-qwen35-int8-convrot.safetensors` | Qwen3.5 text encoder, INT8 ConvRot (optional) | 8.45 GB (8,452,959,908 bytes) |
40
+ | `vae/moss-image-vae.safetensors` | official MOSS-Image VAE (FLUX.2 latent space, slim decoder), unchanged FP32 copy | 0.25 GB (249,521,372 bytes) |
41
+ | `workflows/core/*.json` | workflows for native ComfyUI core support (stock nodes), UI and API format | |
42
+ | `workflows/*.json` | workflows for the MOSS-Image plugin, UI and API format | |
43
  | `quantize_moss.py` | conversion script | |
44
 
45
  The BF16 DiT is ~10.2 GB and the BF16 text encoder ~16.8 GB.
46
  MOSS-Image-Base and MOSS-Image-SFT ship byte-identical text encoder and VAE weights, so the text encoder here is identical to the one in the Abiray INT8 repo.
47
+ The text encoder uses HF / ComfyUI-core key names (`model.language_model.*`, `model.visual.*`). Both ComfyUI core and the MOSS-Image plugin accept them.
48
  You can also keep the BF16 text encoder, exported with the plugin's `export.py`.
49
 
50
  ## Quantization method
 
104
  - Both DiT files and the INT8 text encoder load through `MOSSImageUNETLoader` / `MOSSImageCLIPLoader`.
105
  - The files appear in the loader lists.
106
  - An API-format prompt (INT4 DiT + INT8 TE + VAE, low resolution, 2 steps) ran end to end and saved an image. The INT8 DiT generated an image the same way.
107
+ - The same test passes on ComfyUI core with native MOSS-Image support (PR #17095 at `76d935d`) using only stock nodes.
108
+ The DiT layers load as native quantized tensors (`int8_tensorwise` / `convrot_w4a4`).
109
 
110
  On CPU, ComfyUI dequantizes instead of using the int8 / int4 GPU kernels. So this test confirms the files are valid and loadable,
111
  not GPU kernel behavior, output quality or speed.
112
 
113
  ## ComfyUI usage
114
 
115
+ Two loaders work with these files. Use whichever matches your ComfyUI.
116
+
117
+ ### A. Native ComfyUI core (no custom node)
118
+
119
+ Native MOSS-Image support is being added to ComfyUI core in [Comfy-Org/ComfyUI#17095](https://github.com/Comfy-Org/ComfyUI/pull/17095)
120
+ (open at the time of writing). With a ComfyUI build that includes it:
121
+ - **Load Diffusion Model** (`UNETLoader`): `moss-image-base-dit-int8-convrot.safetensors` or `...-int4-convrot.safetensors`, `weight_dtype = default`.
122
+ - **Load CLIP** (`CLIPLoader`): `moss-image-qwen35-int8-convrot.safetensors`, **type = `moss_image`**.
123
+ You can also use Comfy-Org's `qwen3.5_9b_int8_convrot.safetensors`, which has numerically equivalent weights.
124
+ - **Load VAE** (`VAELoader`): `moss-image-vae.safetensors`. Comfy-Org's `flux2-vae.safetensors` also works (see the comparison below).
125
+ - Workflows: `workflows/core/moss-image-base-int8-convrot.json` / `...-int4-convrot.json`, plus `*-api.json` for the HTTP API.
126
+
127
+ Core detects the separate q/k/v projections in these files automatically. Comfy-Org's own files use a fused `qkv`.
128
+
129
+ ### B. Official MOSS-Image plugin
130
+
131
  Requirements:
132
  - A recent ComfyUI with comfy-kitchen >= 0.2.37. It must have INT4 ConvRot (`convrot_w4a4`) and ConvRot INT8 support; tested with ComfyUI `bdc63e7`.
133
  - PyTorch built for CUDA 13.0 or newer, so the comfy-kitchen CUDA kernels are enabled.
 
144
  "vae/moss-image-vae.safetensors"]:
145
  hf_hub_download("SumomoLee/MOSS-Image-Base-ConvRot-ComfyUI", f, local_dir="/path/to/ComfyUI/models")
146
  ```
147
+ 2. Plugin workflows: load `workflows/moss-image-base-int8-convrot.json` or `workflows/moss-image-base-int4-convrot.json` in ComfyUI. The `*-api.json` files are for the HTTP API.
148
  3. The nodes are **MOSS-Image Load Diffusion Model** (`MOSSImageUNETLoader`, keep `weight_dtype = default`), **MOSS-Image Load Qwen3.5**
149
  (`MOSSImageCLIPLoader`), and the standard **Load VAE**.
150
 
 
152
  Euler / sgm_uniform, uncond skip-layer guidance on layer 22 (SkipLayerGuidanceDiTSimple), and 1 to 2 MP resolutions in multiples of 16.
153
  Recommended negative prompt: `nsfw, worst quality, bad anatomy, watermark, jpeg artifact`.
154
 
155
+ ## Comparison with Comfy-Org/MOSS-Image
156
+
157
+ [Comfy-Org/MOSS-Image](https://huggingface.co/Comfy-Org/MOSS-Image) ships BF16 and INT8 ConvRot DiTs for Base and SFT, an INT8 ConvRot Qwen3.5-9B
158
+ text encoder and `flux2-vae`. It does not ship INT4. Checked by reading tensors from both repos:
159
+
160
+ - **INT8 DiT:** the same `int8_tensorwise` + ConvRot (group 256, per-channel FP32 scale) format.
161
+ - Comfy-Org fuses q/k/v into `proj.qkv`; these files keep them separate, which both core and the plugin accept.
162
+ - The quantized values are identical up to a handful of single-step rounding ties (fewer than 1 in 5 million values).
163
+ - Per-layer weight error is identical (for example 0.855% vs 0.855% on qkv).
164
+ - Kept-precision tensors are byte-identical, including FP32 `rope.bands`.
165
+ - **Attention:** Comfy-Org's `*_int8_convrot_attn` files also carry `layers.N.comfy_attention.config = {"attention": "comfy_kitchen_int8"}`.
166
+ This opts each block into comfy-kitchen INT8 attention kernels where available. These files don't carry it, so attention runs at full precision:
167
+ slightly more accurate, possibly slower on GPUs with those kernels.
168
+ - **Text encoder:** the same quantization and layer selection.
169
+ - Comfy-Org's file is the stock Qwen3.5-9B checkpoint. It adds `lm_head` and `mtp.*`, which conditioning doesn't use, and stores `A_log` and `linear_attn.norm` in FP32.
170
+ - This file is quantized from MOSS-Image's own text encoder, which stores those two in BF16 (the FP32 values rounded).
171
+ - The quantized weights agree to within rare one-step rounding ties.
172
+ - Core prints a harmless "Missing weight for layer model.lm_head" warning for this file; MOSS-Image never uses `lm_head`.
173
+ - **VAE:** `moss-image-vae.safetensors` is the VAE shipped in MOSS-Image-Base. It is a FLUX.2 VAE with a slimmer decoder (96/192/384/384 channels, 62M params)
174
+ and slightly different encoder / batch-norm statistics from the stock `flux2-vae` (512-channel decoder, 84M params).
175
+ - The latent spaces are practically the same: under 0.4% difference in BN statistics and about 0.4% relative difference in encoded latents.
176
+ - The stock decoder reconstructs about 0.2–0.5 dB PSNR better in a quick test; the official decoder is smaller and faster.
177
+ - Either works.
178
+
179
+ ## Changelog
180
+
181
+ - **v2:** the text encoder is re-keyed to `model.language_model.*` / `model.visual.*`. Tensor data is unchanged.
182
+ - The v1 key names (`language_model.*`, the plugin `export.py` naming) only load through the MOSS-Image plugin.
183
+ - In native ComfyUI core, v1 was silently misdetected as a CLIP-L model and produced invalid conditioning.
184
+ - v2 loads in both. Also: added core workflows, corrected the VAE description (FP32, not BF16), and added the Comfy-Org comparison. The DiT files are unchanged.
185
+ - **v1:** initial release.
186
+
187
  ## Checksums (SHA-256)
188
 
189
  ```text
190
  1f42fac88a1b94f23ea3b49db6149243493ff1d6b962bb599a20417fe4aa71ea diffusion_models/moss-image-base-dit-int4-convrot.safetensors
191
  f47c21a1397f846fa0d01c75e4b88fa6088783b47171399a465d92b1769ba0eb diffusion_models/moss-image-base-dit-int8-convrot.safetensors
192
+ 511379fd690d59f11f49c062a8a687b9a985e92faa48a098eb7c66ba505574fe text_encoders/moss-image-qwen35-int8-convrot.safetensors
193
  c3bdf94dc67ec69b30ea9fe1fa8340085679cae64d019f7c7e4a9921f1a7f17a vae/moss-image-vae.safetensors
194
  ```
195
 
SHA256SUMS.txt CHANGED
@@ -1,4 +1,4 @@
1
  1f42fac88a1b94f23ea3b49db6149243493ff1d6b962bb599a20417fe4aa71ea diffusion_models/moss-image-base-dit-int4-convrot.safetensors
2
  f47c21a1397f846fa0d01c75e4b88fa6088783b47171399a465d92b1769ba0eb diffusion_models/moss-image-base-dit-int8-convrot.safetensors
3
- 41e7637a983b624f18c715f558fe24669c5d12d960331b655aeed50e7c609d6c text_encoders/moss-image-qwen35-int8-convrot.safetensors
4
  c3bdf94dc67ec69b30ea9fe1fa8340085679cae64d019f7c7e4a9921f1a7f17a vae/moss-image-vae.safetensors
 
1
  1f42fac88a1b94f23ea3b49db6149243493ff1d6b962bb599a20417fe4aa71ea diffusion_models/moss-image-base-dit-int4-convrot.safetensors
2
  f47c21a1397f846fa0d01c75e4b88fa6088783b47171399a465d92b1769ba0eb diffusion_models/moss-image-base-dit-int8-convrot.safetensors
3
+ 511379fd690d59f11f49c062a8a687b9a985e92faa48a098eb7c66ba505574fe text_encoders/moss-image-qwen35-int8-convrot.safetensors
4
  c3bdf94dc67ec69b30ea9fe1fa8340085679cae64d019f7c7e4a9921f1a7f17a vae/moss-image-vae.safetensors
quantize_moss.py CHANGED
@@ -72,6 +72,9 @@ def main():
72
  cos = torch.nn.functional.cosine_similarity(deq.flatten(), wf.flatten(), dim=0).item()
73
  stats.append((name, list(wf.shape), rel, cos))
74
  print(f"{name} {list(wf.shape)} rel={rel:.5f} cos={cos:.6f}", flush=True)
 
 
 
75
  meta = {"format": "pt", "model": "moss-image"}
76
  if a.mode == "int4":
77
  meta["_quantization_metadata"] = json.dumps({"format_version": "1.0", "layers": layers})
 
72
  cos = torch.nn.functional.cosine_similarity(deq.flatten(), wf.flatten(), dim=0).item()
73
  stats.append((name, list(wf.shape), rel, cos))
74
  print(f"{name} {list(wf.shape)} rel={rel:.5f} cos={cos:.6f}", flush=True)
75
+ if a.component == "te":
76
+ # HF / ComfyUI-core naming (model.language_model.*, model.visual.*); also accepted by the MOSS-Image plugin
77
+ out = {("model." + k if k.startswith(("language_model.", "visual.")) else k): v for k, v in out.items()}
78
  meta = {"format": "pt", "model": "moss-image"}
79
  if a.mode == "int4":
80
  meta["_quantization_metadata"] = json.dumps({"format_version": "1.0", "layers": layers})
text_encoders/moss-image-qwen35-int8-convrot.safetensors CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:41e7637a983b624f18c715f558fe24669c5d12d960331b655aeed50e7c609d6c
3
- size 8452951644
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:511379fd690d59f11f49c062a8a687b9a985e92faa48a098eb7c66ba505574fe
3
+ size 8452959908
workflows/core/moss-image-base-int4-convrot-api.json ADDED
@@ -0,0 +1,124 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "1": {
3
+ "class_type": "UNETLoader",
4
+ "inputs": {
5
+ "unet_name": "moss-image-base-dit-int4-convrot.safetensors",
6
+ "weight_dtype": "default"
7
+ }
8
+ },
9
+ "2": {
10
+ "class_type": "CLIPLoader",
11
+ "inputs": {
12
+ "clip_name": "moss-image-qwen35-int8-convrot.safetensors",
13
+ "type": "moss_image",
14
+ "device": "default"
15
+ }
16
+ },
17
+ "3": {
18
+ "class_type": "VAELoader",
19
+ "inputs": {
20
+ "vae_name": "moss-image-vae.safetensors"
21
+ }
22
+ },
23
+ "4": {
24
+ "class_type": "CLIPTextEncode",
25
+ "inputs": {
26
+ "text": "A red fox sitting in a snowy pine forest at dawn.",
27
+ "clip": [
28
+ "2",
29
+ 0
30
+ ]
31
+ }
32
+ },
33
+ "5": {
34
+ "class_type": "CLIPTextEncode",
35
+ "inputs": {
36
+ "text": "nsfw, worst quality, bad anatomy, watermark, jpeg artifact",
37
+ "clip": [
38
+ "2",
39
+ 0
40
+ ]
41
+ }
42
+ },
43
+ "6": {
44
+ "class_type": "EmptyFlux2LatentImage",
45
+ "inputs": {
46
+ "width": 1024,
47
+ "height": 1024,
48
+ "batch_size": 1
49
+ }
50
+ },
51
+ "15": {
52
+ "class_type": "ModelSamplingSD3",
53
+ "inputs": {
54
+ "shift": 5,
55
+ "model": [
56
+ "1",
57
+ 0
58
+ ]
59
+ }
60
+ },
61
+ "13": {
62
+ "class_type": "SkipLayerGuidanceDiTSimple",
63
+ "inputs": {
64
+ "double_layers": "",
65
+ "single_layers": "22",
66
+ "start_percent": 0,
67
+ "end_percent": 1,
68
+ "model": [
69
+ "15",
70
+ 0
71
+ ]
72
+ }
73
+ },
74
+ "16": {
75
+ "class_type": "KSampler",
76
+ "inputs": {
77
+ "seed": 42,
78
+ "steps": 50,
79
+ "cfg": 3,
80
+ "sampler_name": "euler",
81
+ "scheduler": "sgm_uniform",
82
+ "denoise": 1,
83
+ "model": [
84
+ "13",
85
+ 0
86
+ ],
87
+ "positive": [
88
+ "4",
89
+ 0
90
+ ],
91
+ "negative": [
92
+ "5",
93
+ 0
94
+ ],
95
+ "latent_image": [
96
+ "6",
97
+ 0
98
+ ]
99
+ }
100
+ },
101
+ "17": {
102
+ "class_type": "VAEDecode",
103
+ "inputs": {
104
+ "samples": [
105
+ "16",
106
+ 0
107
+ ],
108
+ "vae": [
109
+ "3",
110
+ 0
111
+ ]
112
+ }
113
+ },
114
+ "18": {
115
+ "class_type": "SaveImage",
116
+ "inputs": {
117
+ "filename_prefix": "moss-image-base",
118
+ "images": [
119
+ "17",
120
+ 0
121
+ ]
122
+ }
123
+ }
124
+ }
workflows/core/moss-image-base-int4-convrot.json ADDED
@@ -0,0 +1,577 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "id": "602a9b4a-8b28-4c64-a19e-fb35024af9c8",
3
+ "revision": 2,
4
+ "last_node_id": 22,
5
+ "last_link_id": 30,
6
+ "nodes": [
7
+ {
8
+ "id": 4,
9
+ "type": "CLIPTextEncode",
10
+ "pos": [
11
+ 590.980723946239,
12
+ 282.97746942714315
13
+ ],
14
+ "size": [
15
+ 430,
16
+ 240
17
+ ],
18
+ "flags": {},
19
+ "order": 5,
20
+ "mode": 0,
21
+ "inputs": [
22
+ {
23
+ "name": "clip",
24
+ "type": "CLIP",
25
+ "link": 28
26
+ }
27
+ ],
28
+ "outputs": [
29
+ {
30
+ "name": "CONDITIONING",
31
+ "type": "CONDITIONING",
32
+ "slot_index": 0,
33
+ "links": [
34
+ 18
35
+ ]
36
+ }
37
+ ],
38
+ "title": "moss-image Positive",
39
+ "properties": {
40
+ "Node name for S&R": "CLIPTextEncode"
41
+ },
42
+ "widgets_values": [
43
+ "A wide view of a refrigerator beside a kitchen counter with a fruit bowl. A small sticky note on the refrigerator door is handwritten in Chinese:\n\"记得买牛奶和鸡蛋!\n牛奶两盒,鸡蛋一打。\n顺便带一袋面包。\""
44
+ ],
45
+ "widgets_values_named": {
46
+ "text": "A wide view of a refrigerator beside a kitchen counter with a fruit bowl. A small sticky note on the refrigerator door is handwritten in Chinese:\n\"记得买牛奶和鸡蛋!\n牛奶两盒,鸡蛋一打。\n顺便带一袋面包。\""
47
+ }
48
+ },
49
+ {
50
+ "id": 5,
51
+ "type": "CLIPTextEncode",
52
+ "pos": [
53
+ 592.3876751767972,
54
+ 586.4494144007078
55
+ ],
56
+ "size": [
57
+ 430,
58
+ 200
59
+ ],
60
+ "flags": {},
61
+ "order": 6,
62
+ "mode": 0,
63
+ "inputs": [
64
+ {
65
+ "name": "clip",
66
+ "type": "CLIP",
67
+ "link": 29
68
+ }
69
+ ],
70
+ "outputs": [
71
+ {
72
+ "name": "CONDITIONING",
73
+ "type": "CONDITIONING",
74
+ "slot_index": 0,
75
+ "links": [
76
+ 19
77
+ ]
78
+ }
79
+ ],
80
+ "title": "moss-image Negative",
81
+ "properties": {
82
+ "Node name for S&R": "CLIPTextEncode"
83
+ },
84
+ "widgets_values": [
85
+ "nsfw, worst quality, bad anatomy, watermark, jpeg artifact"
86
+ ],
87
+ "widgets_values_named": {
88
+ "text": ""
89
+ }
90
+ },
91
+ {
92
+ "id": 6,
93
+ "type": "EmptyFlux2LatentImage",
94
+ "pos": [
95
+ 1076.8709415117667,
96
+ 40.14629806728207
97
+ ],
98
+ "size": [
99
+ 300,
100
+ 180
101
+ ],
102
+ "flags": {},
103
+ "order": 0,
104
+ "mode": 0,
105
+ "inputs": [],
106
+ "outputs": [
107
+ {
108
+ "name": "LATENT",
109
+ "type": "LATENT",
110
+ "slot_index": 0,
111
+ "links": [
112
+ 20
113
+ ]
114
+ }
115
+ ],
116
+ "properties": {
117
+ "Node name for S&R": "EmptyFlux2LatentImage"
118
+ },
119
+ "widgets_values": [
120
+ 1024,
121
+ 1024,
122
+ 1
123
+ ],
124
+ "widgets_values_named": {
125
+ "width": 1024,
126
+ "height": 1024,
127
+ "batch_size": 1
128
+ }
129
+ },
130
+ {
131
+ "id": 13,
132
+ "type": "SkipLayerGuidanceDiTSimple",
133
+ "pos": [
134
+ 1085.9671994568102,
135
+ 810.0057777710338
136
+ ],
137
+ "size": [
138
+ 340,
139
+ 260
140
+ ],
141
+ "flags": {},
142
+ "order": 7,
143
+ "mode": 0,
144
+ "inputs": [
145
+ {
146
+ "name": "model",
147
+ "type": "MODEL",
148
+ "link": 16
149
+ }
150
+ ],
151
+ "outputs": [
152
+ {
153
+ "name": "MODEL",
154
+ "type": "MODEL",
155
+ "slot_index": 0,
156
+ "links": [
157
+ 17
158
+ ]
159
+ }
160
+ ],
161
+ "title": "Uncond skip (empty = off)",
162
+ "properties": {
163
+ "Node name for S&R": "SkipLayerGuidanceDiTSimple"
164
+ },
165
+ "widgets_values": [
166
+ "",
167
+ "22",
168
+ 0,
169
+ 1
170
+ ],
171
+ "widgets_values_named": {
172
+ "double_layers": "",
173
+ "single_layers": "22",
174
+ "start_percent": 0,
175
+ "end_percent": 1
176
+ }
177
+ },
178
+ {
179
+ "id": 15,
180
+ "type": "ModelSamplingSD3",
181
+ "pos": [
182
+ 635.5243515640974,
183
+ 833.754663701251
184
+ ],
185
+ "size": [
186
+ 310,
187
+ 90
188
+ ],
189
+ "flags": {},
190
+ "order": 4,
191
+ "mode": 0,
192
+ "inputs": [
193
+ {
194
+ "name": "model",
195
+ "type": "MODEL",
196
+ "link": 27
197
+ }
198
+ ],
199
+ "outputs": [
200
+ {
201
+ "name": "MODEL",
202
+ "type": "MODEL",
203
+ "slot_index": 0,
204
+ "links": [
205
+ 16
206
+ ]
207
+ }
208
+ ],
209
+ "title": "Official Flow sigma shift",
210
+ "properties": {
211
+ "Node name for S&R": "ModelSamplingSD3"
212
+ },
213
+ "widgets_values": [
214
+ 5
215
+ ],
216
+ "widgets_values_named": {
217
+ "shift": 5
218
+ }
219
+ },
220
+ {
221
+ "id": 16,
222
+ "type": "KSampler",
223
+ "pos": [
224
+ 1462.4773114331942,
225
+ 579.4775120615249
226
+ ],
227
+ "size": [
228
+ 270,
229
+ 474
230
+ ],
231
+ "flags": {},
232
+ "order": 8,
233
+ "mode": 0,
234
+ "inputs": [
235
+ {
236
+ "name": "model",
237
+ "type": "MODEL",
238
+ "link": 17
239
+ },
240
+ {
241
+ "name": "positive",
242
+ "type": "CONDITIONING",
243
+ "link": 18
244
+ },
245
+ {
246
+ "name": "negative",
247
+ "type": "CONDITIONING",
248
+ "link": 19
249
+ },
250
+ {
251
+ "name": "latent_image",
252
+ "type": "LATENT",
253
+ "link": 20
254
+ }
255
+ ],
256
+ "outputs": [
257
+ {
258
+ "name": "LATENT",
259
+ "type": "LATENT",
260
+ "links": [
261
+ 22
262
+ ]
263
+ }
264
+ ],
265
+ "properties": {
266
+ "Node name for S&R": "KSampler"
267
+ },
268
+ "widgets_values": [
269
+ 42,
270
+ "fixed",
271
+ 50,
272
+ 3,
273
+ "euler",
274
+ "sgm_uniform",
275
+ 1
276
+ ],
277
+ "widgets_values_named": {
278
+ "seed": 42,
279
+ "control_after_generate": "fixed",
280
+ "steps": 50,
281
+ "cfg": 3,
282
+ "sampler_name": "euler",
283
+ "scheduler": "sgm_uniform",
284
+ "denoise": 1
285
+ }
286
+ },
287
+ {
288
+ "id": 17,
289
+ "type": "VAEDecode",
290
+ "pos": [
291
+ 1866.0458086602723,
292
+ 593.1343463769351
293
+ ],
294
+ "size": [
295
+ 300,
296
+ 180
297
+ ],
298
+ "flags": {},
299
+ "order": 9,
300
+ "mode": 0,
301
+ "inputs": [
302
+ {
303
+ "name": "samples",
304
+ "type": "LATENT",
305
+ "link": 22
306
+ },
307
+ {
308
+ "name": "vae",
309
+ "type": "VAE",
310
+ "link": 30
311
+ }
312
+ ],
313
+ "outputs": [
314
+ {
315
+ "name": "IMAGE",
316
+ "type": "IMAGE",
317
+ "slot_index": 0,
318
+ "links": [
319
+ 21
320
+ ]
321
+ }
322
+ ],
323
+ "properties": {
324
+ "Node name for S&R": "VAEDecode"
325
+ }
326
+ },
327
+ {
328
+ "id": 18,
329
+ "type": "SaveImage",
330
+ "pos": [
331
+ 2267.030358480412,
332
+ 597.7554837229761
333
+ ],
334
+ "size": [
335
+ 480,
336
+ 600
337
+ ],
338
+ "flags": {},
339
+ "order": 10,
340
+ "mode": 0,
341
+ "inputs": [
342
+ {
343
+ "name": "images",
344
+ "type": "IMAGE",
345
+ "link": 21
346
+ }
347
+ ],
348
+ "outputs": [
349
+ {
350
+ "name": "images",
351
+ "type": "IMAGE",
352
+ "links": []
353
+ }
354
+ ],
355
+ "properties": {
356
+ "Node name for S&R": "SaveImage"
357
+ },
358
+ "widgets_values": [
359
+ "moss-image"
360
+ ],
361
+ "widgets_values_named": {
362
+ "filename_prefix": "moss-image"
363
+ }
364
+ },
365
+ {
366
+ "id": 20,
367
+ "type": "UNETLoader",
368
+ "pos": [
369
+ 108.25581677741914,
370
+ 534.5600783323451
371
+ ],
372
+ "size": [
373
+ 333.183203125,
374
+ 82
375
+ ],
376
+ "flags": {},
377
+ "order": 1,
378
+ "mode": 0,
379
+ "inputs": [],
380
+ "outputs": [
381
+ {
382
+ "name": "MODEL",
383
+ "type": "MODEL",
384
+ "links": [
385
+ 27
386
+ ]
387
+ }
388
+ ],
389
+ "properties": {
390
+ "Node name for S&R": "UNETLoader"
391
+ },
392
+ "widgets_values": [
393
+ "moss-image-base-dit-int4-convrot.safetensors",
394
+ "default"
395
+ ],
396
+ "widgets_values_named": {
397
+ "unet_name": "moss-image-sft-dit-int8.safetensors",
398
+ "weight_dtype": "default"
399
+ }
400
+ },
401
+ {
402
+ "id": 21,
403
+ "type": "CLIPLoader",
404
+ "pos": [
405
+ 103.86961675746264,
406
+ 699.8493345306907
407
+ ],
408
+ "size": [
409
+ 287.8609375,
410
+ 82
411
+ ],
412
+ "flags": {},
413
+ "order": 2,
414
+ "mode": 0,
415
+ "inputs": [],
416
+ "outputs": [
417
+ {
418
+ "name": "CLIP",
419
+ "type": "CLIP",
420
+ "links": [
421
+ 28,
422
+ 29
423
+ ]
424
+ }
425
+ ],
426
+ "properties": {
427
+ "Node name for S&R": "CLIPLoader"
428
+ },
429
+ "widgets_values": [
430
+ "moss-image-qwen35-int8-convrot.safetensors",
431
+ "moss_image",
432
+ "default"
433
+ ],
434
+ "widgets_values_named": {
435
+ "clip_name": "moss-image-sft-qwen35-int8.safetensors",
436
+ "device": "default"
437
+ }
438
+ },
439
+ {
440
+ "id": 22,
441
+ "type": "VAELoader",
442
+ "pos": [
443
+ 127.82638152549406,
444
+ 874.154368339856
445
+ ],
446
+ "size": [
447
+ 270,
448
+ 58
449
+ ],
450
+ "flags": {},
451
+ "order": 3,
452
+ "mode": 0,
453
+ "inputs": [],
454
+ "outputs": [
455
+ {
456
+ "name": "VAE",
457
+ "type": "VAE",
458
+ "links": [
459
+ 30
460
+ ]
461
+ }
462
+ ],
463
+ "properties": {
464
+ "Node name for S&R": "VAELoader"
465
+ },
466
+ "widgets_values": [
467
+ "moss-image-vae.safetensors"
468
+ ],
469
+ "widgets_values_named": {
470
+ "vae_name": "diffusion_pytorch_model.safetensors"
471
+ }
472
+ }
473
+ ],
474
+ "links": [
475
+ [
476
+ 16,
477
+ 15,
478
+ 0,
479
+ 13,
480
+ 0,
481
+ "MODEL"
482
+ ],
483
+ [
484
+ 17,
485
+ 13,
486
+ 0,
487
+ 16,
488
+ 0,
489
+ "MODEL"
490
+ ],
491
+ [
492
+ 18,
493
+ 4,
494
+ 0,
495
+ 16,
496
+ 1,
497
+ "CONDITIONING"
498
+ ],
499
+ [
500
+ 19,
501
+ 5,
502
+ 0,
503
+ 16,
504
+ 2,
505
+ "CONDITIONING"
506
+ ],
507
+ [
508
+ 20,
509
+ 6,
510
+ 0,
511
+ 16,
512
+ 3,
513
+ "LATENT"
514
+ ],
515
+ [
516
+ 21,
517
+ 17,
518
+ 0,
519
+ 18,
520
+ 0,
521
+ "IMAGE"
522
+ ],
523
+ [
524
+ 22,
525
+ 16,
526
+ 0,
527
+ 17,
528
+ 0,
529
+ "LATENT"
530
+ ],
531
+ [
532
+ 27,
533
+ 20,
534
+ 0,
535
+ 15,
536
+ 0,
537
+ "MODEL"
538
+ ],
539
+ [
540
+ 28,
541
+ 21,
542
+ 0,
543
+ 4,
544
+ 0,
545
+ "CLIP"
546
+ ],
547
+ [
548
+ 29,
549
+ 21,
550
+ 0,
551
+ 5,
552
+ 0,
553
+ "CLIP"
554
+ ],
555
+ [
556
+ 30,
557
+ 22,
558
+ 0,
559
+ 17,
560
+ 1,
561
+ "VAE"
562
+ ]
563
+ ],
564
+ "groups": [],
565
+ "config": {},
566
+ "extra": {
567
+ "ds": {
568
+ "scale": 0.8052550000000055,
569
+ "offset": [
570
+ -622.1472402618422,
571
+ -410.32581838321397
572
+ ]
573
+ },
574
+ "frontendVersion": "1.55.17"
575
+ },
576
+ "version": 0.4
577
+ }
workflows/core/moss-image-base-int8-convrot-api.json ADDED
@@ -0,0 +1,124 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "1": {
3
+ "class_type": "UNETLoader",
4
+ "inputs": {
5
+ "unet_name": "moss-image-base-dit-int8-convrot.safetensors",
6
+ "weight_dtype": "default"
7
+ }
8
+ },
9
+ "2": {
10
+ "class_type": "CLIPLoader",
11
+ "inputs": {
12
+ "clip_name": "moss-image-qwen35-int8-convrot.safetensors",
13
+ "type": "moss_image",
14
+ "device": "default"
15
+ }
16
+ },
17
+ "3": {
18
+ "class_type": "VAELoader",
19
+ "inputs": {
20
+ "vae_name": "moss-image-vae.safetensors"
21
+ }
22
+ },
23
+ "4": {
24
+ "class_type": "CLIPTextEncode",
25
+ "inputs": {
26
+ "text": "A red fox sitting in a snowy pine forest at dawn.",
27
+ "clip": [
28
+ "2",
29
+ 0
30
+ ]
31
+ }
32
+ },
33
+ "5": {
34
+ "class_type": "CLIPTextEncode",
35
+ "inputs": {
36
+ "text": "nsfw, worst quality, bad anatomy, watermark, jpeg artifact",
37
+ "clip": [
38
+ "2",
39
+ 0
40
+ ]
41
+ }
42
+ },
43
+ "6": {
44
+ "class_type": "EmptyFlux2LatentImage",
45
+ "inputs": {
46
+ "width": 1024,
47
+ "height": 1024,
48
+ "batch_size": 1
49
+ }
50
+ },
51
+ "15": {
52
+ "class_type": "ModelSamplingSD3",
53
+ "inputs": {
54
+ "shift": 5,
55
+ "model": [
56
+ "1",
57
+ 0
58
+ ]
59
+ }
60
+ },
61
+ "13": {
62
+ "class_type": "SkipLayerGuidanceDiTSimple",
63
+ "inputs": {
64
+ "double_layers": "",
65
+ "single_layers": "22",
66
+ "start_percent": 0,
67
+ "end_percent": 1,
68
+ "model": [
69
+ "15",
70
+ 0
71
+ ]
72
+ }
73
+ },
74
+ "16": {
75
+ "class_type": "KSampler",
76
+ "inputs": {
77
+ "seed": 42,
78
+ "steps": 50,
79
+ "cfg": 3,
80
+ "sampler_name": "euler",
81
+ "scheduler": "sgm_uniform",
82
+ "denoise": 1,
83
+ "model": [
84
+ "13",
85
+ 0
86
+ ],
87
+ "positive": [
88
+ "4",
89
+ 0
90
+ ],
91
+ "negative": [
92
+ "5",
93
+ 0
94
+ ],
95
+ "latent_image": [
96
+ "6",
97
+ 0
98
+ ]
99
+ }
100
+ },
101
+ "17": {
102
+ "class_type": "VAEDecode",
103
+ "inputs": {
104
+ "samples": [
105
+ "16",
106
+ 0
107
+ ],
108
+ "vae": [
109
+ "3",
110
+ 0
111
+ ]
112
+ }
113
+ },
114
+ "18": {
115
+ "class_type": "SaveImage",
116
+ "inputs": {
117
+ "filename_prefix": "moss-image-base",
118
+ "images": [
119
+ "17",
120
+ 0
121
+ ]
122
+ }
123
+ }
124
+ }
workflows/core/moss-image-base-int8-convrot.json ADDED
@@ -0,0 +1,577 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "id": "602a9b4a-8b28-4c64-a19e-fb35024af9c8",
3
+ "revision": 2,
4
+ "last_node_id": 22,
5
+ "last_link_id": 30,
6
+ "nodes": [
7
+ {
8
+ "id": 4,
9
+ "type": "CLIPTextEncode",
10
+ "pos": [
11
+ 590.980723946239,
12
+ 282.97746942714315
13
+ ],
14
+ "size": [
15
+ 430,
16
+ 240
17
+ ],
18
+ "flags": {},
19
+ "order": 5,
20
+ "mode": 0,
21
+ "inputs": [
22
+ {
23
+ "name": "clip",
24
+ "type": "CLIP",
25
+ "link": 28
26
+ }
27
+ ],
28
+ "outputs": [
29
+ {
30
+ "name": "CONDITIONING",
31
+ "type": "CONDITIONING",
32
+ "slot_index": 0,
33
+ "links": [
34
+ 18
35
+ ]
36
+ }
37
+ ],
38
+ "title": "moss-image Positive",
39
+ "properties": {
40
+ "Node name for S&R": "CLIPTextEncode"
41
+ },
42
+ "widgets_values": [
43
+ "A wide view of a refrigerator beside a kitchen counter with a fruit bowl. A small sticky note on the refrigerator door is handwritten in Chinese:\n\"记得买牛奶和鸡蛋!\n牛奶两盒,鸡蛋一打。\n顺便带一袋面包。\""
44
+ ],
45
+ "widgets_values_named": {
46
+ "text": "A wide view of a refrigerator beside a kitchen counter with a fruit bowl. A small sticky note on the refrigerator door is handwritten in Chinese:\n\"记得买牛奶和鸡蛋!\n牛奶两盒,鸡蛋一打。\n顺便带一袋面包。\""
47
+ }
48
+ },
49
+ {
50
+ "id": 5,
51
+ "type": "CLIPTextEncode",
52
+ "pos": [
53
+ 592.3876751767972,
54
+ 586.4494144007078
55
+ ],
56
+ "size": [
57
+ 430,
58
+ 200
59
+ ],
60
+ "flags": {},
61
+ "order": 6,
62
+ "mode": 0,
63
+ "inputs": [
64
+ {
65
+ "name": "clip",
66
+ "type": "CLIP",
67
+ "link": 29
68
+ }
69
+ ],
70
+ "outputs": [
71
+ {
72
+ "name": "CONDITIONING",
73
+ "type": "CONDITIONING",
74
+ "slot_index": 0,
75
+ "links": [
76
+ 19
77
+ ]
78
+ }
79
+ ],
80
+ "title": "moss-image Negative",
81
+ "properties": {
82
+ "Node name for S&R": "CLIPTextEncode"
83
+ },
84
+ "widgets_values": [
85
+ "nsfw, worst quality, bad anatomy, watermark, jpeg artifact"
86
+ ],
87
+ "widgets_values_named": {
88
+ "text": ""
89
+ }
90
+ },
91
+ {
92
+ "id": 6,
93
+ "type": "EmptyFlux2LatentImage",
94
+ "pos": [
95
+ 1076.8709415117667,
96
+ 40.14629806728207
97
+ ],
98
+ "size": [
99
+ 300,
100
+ 180
101
+ ],
102
+ "flags": {},
103
+ "order": 0,
104
+ "mode": 0,
105
+ "inputs": [],
106
+ "outputs": [
107
+ {
108
+ "name": "LATENT",
109
+ "type": "LATENT",
110
+ "slot_index": 0,
111
+ "links": [
112
+ 20
113
+ ]
114
+ }
115
+ ],
116
+ "properties": {
117
+ "Node name for S&R": "EmptyFlux2LatentImage"
118
+ },
119
+ "widgets_values": [
120
+ 1024,
121
+ 1024,
122
+ 1
123
+ ],
124
+ "widgets_values_named": {
125
+ "width": 1024,
126
+ "height": 1024,
127
+ "batch_size": 1
128
+ }
129
+ },
130
+ {
131
+ "id": 13,
132
+ "type": "SkipLayerGuidanceDiTSimple",
133
+ "pos": [
134
+ 1085.9671994568102,
135
+ 810.0057777710338
136
+ ],
137
+ "size": [
138
+ 340,
139
+ 260
140
+ ],
141
+ "flags": {},
142
+ "order": 7,
143
+ "mode": 0,
144
+ "inputs": [
145
+ {
146
+ "name": "model",
147
+ "type": "MODEL",
148
+ "link": 16
149
+ }
150
+ ],
151
+ "outputs": [
152
+ {
153
+ "name": "MODEL",
154
+ "type": "MODEL",
155
+ "slot_index": 0,
156
+ "links": [
157
+ 17
158
+ ]
159
+ }
160
+ ],
161
+ "title": "Uncond skip (empty = off)",
162
+ "properties": {
163
+ "Node name for S&R": "SkipLayerGuidanceDiTSimple"
164
+ },
165
+ "widgets_values": [
166
+ "",
167
+ "22",
168
+ 0,
169
+ 1
170
+ ],
171
+ "widgets_values_named": {
172
+ "double_layers": "",
173
+ "single_layers": "22",
174
+ "start_percent": 0,
175
+ "end_percent": 1
176
+ }
177
+ },
178
+ {
179
+ "id": 15,
180
+ "type": "ModelSamplingSD3",
181
+ "pos": [
182
+ 635.5243515640974,
183
+ 833.754663701251
184
+ ],
185
+ "size": [
186
+ 310,
187
+ 90
188
+ ],
189
+ "flags": {},
190
+ "order": 4,
191
+ "mode": 0,
192
+ "inputs": [
193
+ {
194
+ "name": "model",
195
+ "type": "MODEL",
196
+ "link": 27
197
+ }
198
+ ],
199
+ "outputs": [
200
+ {
201
+ "name": "MODEL",
202
+ "type": "MODEL",
203
+ "slot_index": 0,
204
+ "links": [
205
+ 16
206
+ ]
207
+ }
208
+ ],
209
+ "title": "Official Flow sigma shift",
210
+ "properties": {
211
+ "Node name for S&R": "ModelSamplingSD3"
212
+ },
213
+ "widgets_values": [
214
+ 5
215
+ ],
216
+ "widgets_values_named": {
217
+ "shift": 5
218
+ }
219
+ },
220
+ {
221
+ "id": 16,
222
+ "type": "KSampler",
223
+ "pos": [
224
+ 1462.4773114331942,
225
+ 579.4775120615249
226
+ ],
227
+ "size": [
228
+ 270,
229
+ 474
230
+ ],
231
+ "flags": {},
232
+ "order": 8,
233
+ "mode": 0,
234
+ "inputs": [
235
+ {
236
+ "name": "model",
237
+ "type": "MODEL",
238
+ "link": 17
239
+ },
240
+ {
241
+ "name": "positive",
242
+ "type": "CONDITIONING",
243
+ "link": 18
244
+ },
245
+ {
246
+ "name": "negative",
247
+ "type": "CONDITIONING",
248
+ "link": 19
249
+ },
250
+ {
251
+ "name": "latent_image",
252
+ "type": "LATENT",
253
+ "link": 20
254
+ }
255
+ ],
256
+ "outputs": [
257
+ {
258
+ "name": "LATENT",
259
+ "type": "LATENT",
260
+ "links": [
261
+ 22
262
+ ]
263
+ }
264
+ ],
265
+ "properties": {
266
+ "Node name for S&R": "KSampler"
267
+ },
268
+ "widgets_values": [
269
+ 42,
270
+ "fixed",
271
+ 50,
272
+ 3,
273
+ "euler",
274
+ "sgm_uniform",
275
+ 1
276
+ ],
277
+ "widgets_values_named": {
278
+ "seed": 42,
279
+ "control_after_generate": "fixed",
280
+ "steps": 50,
281
+ "cfg": 3,
282
+ "sampler_name": "euler",
283
+ "scheduler": "sgm_uniform",
284
+ "denoise": 1
285
+ }
286
+ },
287
+ {
288
+ "id": 17,
289
+ "type": "VAEDecode",
290
+ "pos": [
291
+ 1866.0458086602723,
292
+ 593.1343463769351
293
+ ],
294
+ "size": [
295
+ 300,
296
+ 180
297
+ ],
298
+ "flags": {},
299
+ "order": 9,
300
+ "mode": 0,
301
+ "inputs": [
302
+ {
303
+ "name": "samples",
304
+ "type": "LATENT",
305
+ "link": 22
306
+ },
307
+ {
308
+ "name": "vae",
309
+ "type": "VAE",
310
+ "link": 30
311
+ }
312
+ ],
313
+ "outputs": [
314
+ {
315
+ "name": "IMAGE",
316
+ "type": "IMAGE",
317
+ "slot_index": 0,
318
+ "links": [
319
+ 21
320
+ ]
321
+ }
322
+ ],
323
+ "properties": {
324
+ "Node name for S&R": "VAEDecode"
325
+ }
326
+ },
327
+ {
328
+ "id": 18,
329
+ "type": "SaveImage",
330
+ "pos": [
331
+ 2267.030358480412,
332
+ 597.7554837229761
333
+ ],
334
+ "size": [
335
+ 480,
336
+ 600
337
+ ],
338
+ "flags": {},
339
+ "order": 10,
340
+ "mode": 0,
341
+ "inputs": [
342
+ {
343
+ "name": "images",
344
+ "type": "IMAGE",
345
+ "link": 21
346
+ }
347
+ ],
348
+ "outputs": [
349
+ {
350
+ "name": "images",
351
+ "type": "IMAGE",
352
+ "links": []
353
+ }
354
+ ],
355
+ "properties": {
356
+ "Node name for S&R": "SaveImage"
357
+ },
358
+ "widgets_values": [
359
+ "moss-image"
360
+ ],
361
+ "widgets_values_named": {
362
+ "filename_prefix": "moss-image"
363
+ }
364
+ },
365
+ {
366
+ "id": 20,
367
+ "type": "UNETLoader",
368
+ "pos": [
369
+ 108.25581677741914,
370
+ 534.5600783323451
371
+ ],
372
+ "size": [
373
+ 333.183203125,
374
+ 82
375
+ ],
376
+ "flags": {},
377
+ "order": 1,
378
+ "mode": 0,
379
+ "inputs": [],
380
+ "outputs": [
381
+ {
382
+ "name": "MODEL",
383
+ "type": "MODEL",
384
+ "links": [
385
+ 27
386
+ ]
387
+ }
388
+ ],
389
+ "properties": {
390
+ "Node name for S&R": "UNETLoader"
391
+ },
392
+ "widgets_values": [
393
+ "moss-image-base-dit-int8-convrot.safetensors",
394
+ "default"
395
+ ],
396
+ "widgets_values_named": {
397
+ "unet_name": "moss-image-sft-dit-int8.safetensors",
398
+ "weight_dtype": "default"
399
+ }
400
+ },
401
+ {
402
+ "id": 21,
403
+ "type": "CLIPLoader",
404
+ "pos": [
405
+ 103.86961675746264,
406
+ 699.8493345306907
407
+ ],
408
+ "size": [
409
+ 287.8609375,
410
+ 82
411
+ ],
412
+ "flags": {},
413
+ "order": 2,
414
+ "mode": 0,
415
+ "inputs": [],
416
+ "outputs": [
417
+ {
418
+ "name": "CLIP",
419
+ "type": "CLIP",
420
+ "links": [
421
+ 28,
422
+ 29
423
+ ]
424
+ }
425
+ ],
426
+ "properties": {
427
+ "Node name for S&R": "CLIPLoader"
428
+ },
429
+ "widgets_values": [
430
+ "moss-image-qwen35-int8-convrot.safetensors",
431
+ "moss_image",
432
+ "default"
433
+ ],
434
+ "widgets_values_named": {
435
+ "clip_name": "moss-image-sft-qwen35-int8.safetensors",
436
+ "device": "default"
437
+ }
438
+ },
439
+ {
440
+ "id": 22,
441
+ "type": "VAELoader",
442
+ "pos": [
443
+ 127.82638152549406,
444
+ 874.154368339856
445
+ ],
446
+ "size": [
447
+ 270,
448
+ 58
449
+ ],
450
+ "flags": {},
451
+ "order": 3,
452
+ "mode": 0,
453
+ "inputs": [],
454
+ "outputs": [
455
+ {
456
+ "name": "VAE",
457
+ "type": "VAE",
458
+ "links": [
459
+ 30
460
+ ]
461
+ }
462
+ ],
463
+ "properties": {
464
+ "Node name for S&R": "VAELoader"
465
+ },
466
+ "widgets_values": [
467
+ "moss-image-vae.safetensors"
468
+ ],
469
+ "widgets_values_named": {
470
+ "vae_name": "diffusion_pytorch_model.safetensors"
471
+ }
472
+ }
473
+ ],
474
+ "links": [
475
+ [
476
+ 16,
477
+ 15,
478
+ 0,
479
+ 13,
480
+ 0,
481
+ "MODEL"
482
+ ],
483
+ [
484
+ 17,
485
+ 13,
486
+ 0,
487
+ 16,
488
+ 0,
489
+ "MODEL"
490
+ ],
491
+ [
492
+ 18,
493
+ 4,
494
+ 0,
495
+ 16,
496
+ 1,
497
+ "CONDITIONING"
498
+ ],
499
+ [
500
+ 19,
501
+ 5,
502
+ 0,
503
+ 16,
504
+ 2,
505
+ "CONDITIONING"
506
+ ],
507
+ [
508
+ 20,
509
+ 6,
510
+ 0,
511
+ 16,
512
+ 3,
513
+ "LATENT"
514
+ ],
515
+ [
516
+ 21,
517
+ 17,
518
+ 0,
519
+ 18,
520
+ 0,
521
+ "IMAGE"
522
+ ],
523
+ [
524
+ 22,
525
+ 16,
526
+ 0,
527
+ 17,
528
+ 0,
529
+ "LATENT"
530
+ ],
531
+ [
532
+ 27,
533
+ 20,
534
+ 0,
535
+ 15,
536
+ 0,
537
+ "MODEL"
538
+ ],
539
+ [
540
+ 28,
541
+ 21,
542
+ 0,
543
+ 4,
544
+ 0,
545
+ "CLIP"
546
+ ],
547
+ [
548
+ 29,
549
+ 21,
550
+ 0,
551
+ 5,
552
+ 0,
553
+ "CLIP"
554
+ ],
555
+ [
556
+ 30,
557
+ 22,
558
+ 0,
559
+ 17,
560
+ 1,
561
+ "VAE"
562
+ ]
563
+ ],
564
+ "groups": [],
565
+ "config": {},
566
+ "extra": {
567
+ "ds": {
568
+ "scale": 0.8052550000000055,
569
+ "offset": [
570
+ -622.1472402618422,
571
+ -410.32581838321397
572
+ ]
573
+ },
574
+ "frontendVersion": "1.55.17"
575
+ },
576
+ "version": 0.4
577
+ }