The root templates ran on SDXL base, where every gallery style washed out. A full compiled style is ~480 tokens and SDXL's CLIP attends to ~77 per chunk, so the style was truncated before the sampler saw it. No checkpoint swap fixes that, Juggernaut included: it is an SDXL finetune with the same encoder. Root set now runs FLUX.1 dev (Comfy-Org fp8 all-in-one, since BFL's own file is UNET-only and CheckpointLoaderSimple cannot load it), compiled from the flux target, whose T5 encoder takes the whole prompt. FluxGuidance 3.5, CFG 1.0, and ConditioningZeroOut on the negative input: FLUX is guidance distilled and has no negative channel, exactly like Z-Image. Uses EmptySD3LatentImage because FLUX works in a 16-channel latent space. The two sets load different gallery styles on purpose. How well a style demos is a property of the style and the model together: Z-Image reproduces painterly technique and keeps the Renaissance style, FLUX is strongest at light and tonality and takes a noir one. Also: - Adds the reference-images template the root set was missing, and renumbers Facets to 05, so both sets are 01-05 with matching names. Both sets are now pinned by test against a shared story list. - Model download metadata moves to each node's properties.models, where ComfyUI reads it, so a missing checkpoint offers a download instead of being silently substituted. - The Load node names the style its slug resolves to, on a read-only row under style_ref, via a new /styleref/resolve route. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
687 lines
13 KiB
JSON
687 lines
13 KiB
JSON
{
|
|
"last_node_id": 14,
|
|
"last_link_id": 13,
|
|
"nodes": [
|
|
{
|
|
"id": 1,
|
|
"type": "Note",
|
|
"pos": [
|
|
40,
|
|
60
|
|
],
|
|
"size": [
|
|
320,
|
|
540
|
|
],
|
|
"flags": {},
|
|
"order": 0,
|
|
"mode": 0,
|
|
"inputs": [],
|
|
"outputs": [],
|
|
"properties": {
|
|
"Node name for S&R": "Note"
|
|
},
|
|
"widgets_values": [
|
|
"Z-Image quickstart \u2014 no account needed.\n1. Queue \u2014 the three Z-Image files download on first run.\n2. Change `subject` on StyleRef Apply and queue again (seeds randomize).\nSwap `style_ref` on StyleRef Load for any gallery slug.\n\nZ-Image Turbo (S3-DiT). Three model files download on first use: the UNET (diffusion_models/), the Qwen text encoder (text_encoders/), and the VAE (vae/).\nSampler defaults are turbo: 8 steps, CFG 1.0, euler/simple.\nZ-Image takes no negative prompt. The model runs without classifier-free guidance, so there is no negative encoder on this canvas \u2014 the sampler's negative input gets a zeroed conditioning. StyleRef still compiles the negative and previews it; put anything you need from it into `subject` on Apply as a positive phrase (\"fully clothed\", \"no text or watermark\"). Raising CFG does not bring the negative back.\nStyle prompts use the `diffusion` target \u2014 Z-Image reads the same tag-weighted output SDXL/SD1.5 use."
|
|
],
|
|
"title": "Z-Image quickstart"
|
|
},
|
|
{
|
|
"id": 2,
|
|
"type": "StyleRefLoad",
|
|
"pos": [
|
|
40,
|
|
648
|
|
],
|
|
"size": [
|
|
320,
|
|
248
|
|
],
|
|
"flags": {},
|
|
"order": 1,
|
|
"mode": 0,
|
|
"inputs": [],
|
|
"outputs": [
|
|
{
|
|
"name": "style",
|
|
"type": "STYLEREF_STYLE",
|
|
"links": [
|
|
1
|
|
],
|
|
"slot_index": 0
|
|
},
|
|
{
|
|
"name": "search_results",
|
|
"type": "STRING",
|
|
"links": [],
|
|
"slot_index": 1
|
|
}
|
|
],
|
|
"properties": {
|
|
"Node name for S&R": "StyleRefLoad"
|
|
},
|
|
"widgets_values": [
|
|
"sbdlwwly-66ae1a89efdc",
|
|
"",
|
|
"any",
|
|
true,
|
|
false
|
|
],
|
|
"title": "Load \u2014 swap this slug"
|
|
},
|
|
{
|
|
"id": 3,
|
|
"type": "UNETLoader",
|
|
"pos": [
|
|
40,
|
|
944
|
|
],
|
|
"size": [
|
|
320,
|
|
140
|
|
],
|
|
"flags": {},
|
|
"order": 2,
|
|
"mode": 0,
|
|
"inputs": [],
|
|
"outputs": [
|
|
{
|
|
"name": "MODEL",
|
|
"type": "MODEL",
|
|
"links": [
|
|
6
|
|
],
|
|
"slot_index": 0
|
|
}
|
|
],
|
|
"properties": {
|
|
"Node name for S&R": "UNETLoader",
|
|
"models": [
|
|
{
|
|
"name": "z_image_turbo_bf16.safetensors",
|
|
"url": "https://huggingface.co/Comfy-Org/z_image_turbo/resolve/main/split_files/diffusion_models/z_image_turbo_bf16.safetensors",
|
|
"directory": "diffusion_models"
|
|
}
|
|
]
|
|
},
|
|
"widgets_values": [
|
|
"z_image_turbo_bf16.safetensors",
|
|
"default"
|
|
],
|
|
"title": "Z-Image UNET"
|
|
},
|
|
{
|
|
"id": 4,
|
|
"type": "CLIPLoader",
|
|
"pos": [
|
|
40,
|
|
1132
|
|
],
|
|
"size": [
|
|
320,
|
|
168
|
|
],
|
|
"flags": {},
|
|
"order": 3,
|
|
"mode": 0,
|
|
"inputs": [],
|
|
"outputs": [
|
|
{
|
|
"name": "CLIP",
|
|
"type": "CLIP",
|
|
"links": [
|
|
5
|
|
],
|
|
"slot_index": 0
|
|
}
|
|
],
|
|
"properties": {
|
|
"Node name for S&R": "CLIPLoader",
|
|
"models": [
|
|
{
|
|
"name": "qwen_3_4b.safetensors",
|
|
"url": "https://huggingface.co/Comfy-Org/z_image_turbo/resolve/main/split_files/text_encoders/qwen_3_4b.safetensors",
|
|
"directory": "text_encoders"
|
|
}
|
|
]
|
|
},
|
|
"widgets_values": [
|
|
"qwen_3_4b.safetensors",
|
|
"lumina2",
|
|
"default"
|
|
],
|
|
"title": "Qwen text encoder"
|
|
},
|
|
{
|
|
"id": 5,
|
|
"type": "VAELoader",
|
|
"pos": [
|
|
40,
|
|
1348
|
|
],
|
|
"size": [
|
|
320,
|
|
112
|
|
],
|
|
"flags": {},
|
|
"order": 4,
|
|
"mode": 0,
|
|
"inputs": [],
|
|
"outputs": [
|
|
{
|
|
"name": "VAE",
|
|
"type": "VAE",
|
|
"links": [
|
|
12
|
|
],
|
|
"slot_index": 0
|
|
}
|
|
],
|
|
"properties": {
|
|
"Node name for S&R": "VAELoader",
|
|
"models": [
|
|
{
|
|
"name": "ae.safetensors",
|
|
"url": "https://huggingface.co/Comfy-Org/z_image_turbo/resolve/main/split_files/vae/ae.safetensors",
|
|
"directory": "vae"
|
|
}
|
|
]
|
|
},
|
|
"widgets_values": [
|
|
"ae.safetensors"
|
|
],
|
|
"title": "Z-Image VAE"
|
|
},
|
|
{
|
|
"id": 6,
|
|
"type": "StyleRefApply",
|
|
"pos": [
|
|
420,
|
|
60
|
|
],
|
|
"size": [
|
|
320,
|
|
424
|
|
],
|
|
"flags": {},
|
|
"order": 5,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{
|
|
"name": "style",
|
|
"type": "STYLEREF_STYLE",
|
|
"link": 1
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"name": "positive",
|
|
"type": "STRING",
|
|
"links": [
|
|
2,
|
|
4
|
|
],
|
|
"slot_index": 0
|
|
},
|
|
{
|
|
"name": "negative",
|
|
"type": "STRING",
|
|
"links": [
|
|
3
|
|
],
|
|
"slot_index": 1
|
|
},
|
|
{
|
|
"name": "attribution",
|
|
"type": "STRING",
|
|
"links": [],
|
|
"slot_index": 2
|
|
}
|
|
],
|
|
"properties": {
|
|
"Node name for S&R": "StyleRefApply"
|
|
},
|
|
"widgets_values": [
|
|
"two friends flipping through crates of vinyl in a record shop",
|
|
"diffusion",
|
|
"",
|
|
false,
|
|
"",
|
|
true
|
|
]
|
|
},
|
|
{
|
|
"id": 7,
|
|
"type": "PreviewAny",
|
|
"pos": [
|
|
420,
|
|
532
|
|
],
|
|
"size": [
|
|
320,
|
|
84
|
|
],
|
|
"flags": {},
|
|
"order": 6,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{
|
|
"name": "source",
|
|
"type": "*",
|
|
"link": 2
|
|
}
|
|
],
|
|
"outputs": [],
|
|
"properties": {
|
|
"Node name for S&R": "PreviewAny"
|
|
},
|
|
"widgets_values": [],
|
|
"title": "Compiled positive"
|
|
},
|
|
{
|
|
"id": 8,
|
|
"type": "PreviewAny",
|
|
"pos": [
|
|
420,
|
|
664
|
|
],
|
|
"size": [
|
|
320,
|
|
84
|
|
],
|
|
"flags": {},
|
|
"order": 7,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{
|
|
"name": "source",
|
|
"type": "*",
|
|
"link": 3
|
|
}
|
|
],
|
|
"outputs": [],
|
|
"properties": {
|
|
"Node name for S&R": "PreviewAny"
|
|
},
|
|
"widgets_values": [],
|
|
"title": "Compiled negative"
|
|
},
|
|
{
|
|
"id": 9,
|
|
"type": "CLIPTextEncode",
|
|
"pos": [
|
|
800,
|
|
60
|
|
],
|
|
"size": [
|
|
320,
|
|
198
|
|
],
|
|
"flags": {},
|
|
"order": 8,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{
|
|
"name": "clip",
|
|
"type": "CLIP",
|
|
"link": 5
|
|
},
|
|
{
|
|
"name": "text",
|
|
"type": "STRING",
|
|
"link": 4
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"name": "CONDITIONING",
|
|
"type": "CONDITIONING",
|
|
"links": [
|
|
7,
|
|
8
|
|
],
|
|
"slot_index": 0
|
|
}
|
|
],
|
|
"properties": {
|
|
"Node name for S&R": "CLIPTextEncode"
|
|
},
|
|
"widgets_values": [
|
|
""
|
|
],
|
|
"title": "Positive (from StyleRef)"
|
|
},
|
|
{
|
|
"id": 10,
|
|
"type": "ConditioningZeroOut",
|
|
"pos": [
|
|
800,
|
|
306
|
|
],
|
|
"size": [
|
|
320,
|
|
84
|
|
],
|
|
"flags": {},
|
|
"order": 9,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{
|
|
"name": "conditioning",
|
|
"type": "CONDITIONING",
|
|
"link": 8
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"name": "CONDITIONING",
|
|
"type": "CONDITIONING",
|
|
"links": [
|
|
9
|
|
],
|
|
"slot_index": 0
|
|
}
|
|
],
|
|
"properties": {
|
|
"Node name for S&R": "ConditioningZeroOut"
|
|
},
|
|
"widgets_values": [],
|
|
"title": "Z-Image has no negative"
|
|
},
|
|
{
|
|
"id": 11,
|
|
"type": "EmptySD3LatentImage",
|
|
"pos": [
|
|
800,
|
|
438
|
|
],
|
|
"size": [
|
|
320,
|
|
168
|
|
],
|
|
"flags": {},
|
|
"order": 10,
|
|
"mode": 0,
|
|
"inputs": [],
|
|
"outputs": [
|
|
{
|
|
"name": "LATENT",
|
|
"type": "LATENT",
|
|
"links": [
|
|
10
|
|
],
|
|
"slot_index": 0
|
|
}
|
|
],
|
|
"properties": {
|
|
"Node name for S&R": "EmptySD3LatentImage"
|
|
},
|
|
"widgets_values": [
|
|
1024,
|
|
1024,
|
|
1
|
|
]
|
|
},
|
|
{
|
|
"id": 12,
|
|
"type": "KSampler",
|
|
"pos": [
|
|
1180,
|
|
60
|
|
],
|
|
"size": [
|
|
320,
|
|
352
|
|
],
|
|
"flags": {},
|
|
"order": 11,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{
|
|
"name": "model",
|
|
"type": "MODEL",
|
|
"link": 6
|
|
},
|
|
{
|
|
"name": "positive",
|
|
"type": "CONDITIONING",
|
|
"link": 7
|
|
},
|
|
{
|
|
"name": "negative",
|
|
"type": "CONDITIONING",
|
|
"link": 9
|
|
},
|
|
{
|
|
"name": "latent_image",
|
|
"type": "LATENT",
|
|
"link": 10
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"name": "LATENT",
|
|
"type": "LATENT",
|
|
"links": [
|
|
11
|
|
],
|
|
"slot_index": 0
|
|
}
|
|
],
|
|
"properties": {
|
|
"Node name for S&R": "KSampler"
|
|
},
|
|
"widgets_values": [
|
|
0,
|
|
"randomize",
|
|
8,
|
|
1.0,
|
|
"euler",
|
|
"simple",
|
|
1.0
|
|
]
|
|
},
|
|
{
|
|
"id": 13,
|
|
"type": "VAEDecode",
|
|
"pos": [
|
|
1560,
|
|
60
|
|
],
|
|
"size": [
|
|
320,
|
|
108
|
|
],
|
|
"flags": {},
|
|
"order": 12,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{
|
|
"name": "samples",
|
|
"type": "LATENT",
|
|
"link": 11
|
|
},
|
|
{
|
|
"name": "vae",
|
|
"type": "VAE",
|
|
"link": 12
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"name": "IMAGE",
|
|
"type": "IMAGE",
|
|
"links": [
|
|
13
|
|
],
|
|
"slot_index": 0
|
|
}
|
|
],
|
|
"properties": {
|
|
"Node name for S&R": "VAEDecode"
|
|
},
|
|
"widgets_values": []
|
|
},
|
|
{
|
|
"id": 14,
|
|
"type": "SaveImage",
|
|
"pos": [
|
|
1560,
|
|
216
|
|
],
|
|
"size": [
|
|
320,
|
|
112
|
|
],
|
|
"flags": {},
|
|
"order": 13,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{
|
|
"name": "images",
|
|
"type": "IMAGE",
|
|
"link": 13
|
|
}
|
|
],
|
|
"outputs": [],
|
|
"properties": {
|
|
"Node name for S&R": "SaveImage"
|
|
},
|
|
"widgets_values": [
|
|
"StyleRef"
|
|
]
|
|
}
|
|
],
|
|
"links": [
|
|
[
|
|
1,
|
|
2,
|
|
0,
|
|
6,
|
|
0,
|
|
"STYLEREF_STYLE"
|
|
],
|
|
[
|
|
2,
|
|
6,
|
|
0,
|
|
7,
|
|
0,
|
|
"STRING"
|
|
],
|
|
[
|
|
3,
|
|
6,
|
|
1,
|
|
8,
|
|
0,
|
|
"STRING"
|
|
],
|
|
[
|
|
4,
|
|
6,
|
|
0,
|
|
9,
|
|
1,
|
|
"STRING"
|
|
],
|
|
[
|
|
5,
|
|
4,
|
|
0,
|
|
9,
|
|
0,
|
|
"CLIP"
|
|
],
|
|
[
|
|
6,
|
|
3,
|
|
0,
|
|
12,
|
|
0,
|
|
"MODEL"
|
|
],
|
|
[
|
|
7,
|
|
9,
|
|
0,
|
|
12,
|
|
1,
|
|
"CONDITIONING"
|
|
],
|
|
[
|
|
8,
|
|
9,
|
|
0,
|
|
10,
|
|
0,
|
|
"CONDITIONING"
|
|
],
|
|
[
|
|
9,
|
|
10,
|
|
0,
|
|
12,
|
|
2,
|
|
"CONDITIONING"
|
|
],
|
|
[
|
|
10,
|
|
11,
|
|
0,
|
|
12,
|
|
3,
|
|
"LATENT"
|
|
],
|
|
[
|
|
11,
|
|
12,
|
|
0,
|
|
13,
|
|
0,
|
|
"LATENT"
|
|
],
|
|
[
|
|
12,
|
|
5,
|
|
0,
|
|
13,
|
|
1,
|
|
"VAE"
|
|
],
|
|
[
|
|
13,
|
|
13,
|
|
0,
|
|
14,
|
|
0,
|
|
"IMAGE"
|
|
]
|
|
],
|
|
"groups": [],
|
|
"config": {},
|
|
"extra": {
|
|
"styleref": {
|
|
"notes": "Generated by scripts/build_workflows.py \u2014 edit the script, not this file."
|
|
}
|
|
},
|
|
"version": 0.4,
|
|
"models": [
|
|
{
|
|
"name": "z_image_turbo_bf16.safetensors",
|
|
"url": "https://huggingface.co/Comfy-Org/z_image_turbo/resolve/main/split_files/diffusion_models/z_image_turbo_bf16.safetensors",
|
|
"directory": "diffusion_models"
|
|
},
|
|
{
|
|
"name": "qwen_3_4b.safetensors",
|
|
"url": "https://huggingface.co/Comfy-Org/z_image_turbo/resolve/main/split_files/text_encoders/qwen_3_4b.safetensors",
|
|
"directory": "text_encoders"
|
|
},
|
|
{
|
|
"name": "ae.safetensors",
|
|
"url": "https://huggingface.co/Comfy-Org/z_image_turbo/resolve/main/split_files/vae/ae.safetensors",
|
|
"directory": "vae"
|
|
}
|
|
]
|
|
}
|