The Renaissance style carries no guardrails, so it compiles an empty negative, and Z-Image has no negative channel to put one in either. A style steeped in classical painting therefore drifts to classical nudes on a neutral subject — which is a poor look for a first-run demo and for the screenshots people take of it. Positive phrasing in the subject is the only lever either model leaves, so two of the three subjects now say so outright. The grid also reads better: a dusk exterior, an interior, and an object with no figure at all is a wider spread than three peopled scenes, and it makes the "one style, unrelated subjects" claim harder to argue with. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
656 lines
13 KiB
JSON
656 lines
13 KiB
JSON
{
|
|
"last_node_id": 13,
|
|
"last_link_id": 14,
|
|
"nodes": [
|
|
{
|
|
"id": 1,
|
|
"type": "Note",
|
|
"pos": [
|
|
40,
|
|
60
|
|
],
|
|
"size": [
|
|
320,
|
|
1008
|
|
],
|
|
"flags": {},
|
|
"order": 0,
|
|
"mode": 0,
|
|
"inputs": [],
|
|
"outputs": [],
|
|
"properties": {
|
|
"Node name for S&R": "Note"
|
|
},
|
|
"widgets_values": [
|
|
"Quickstart \u2014 no account needed.\n1. Queue \u2014 the FLUX checkpoint downloads on first run.\n2. Seeds randomize, so every queue is a fresh image.\n3. Change `subject` on StyleRef Apply and queue again.\nSwap `style_ref` on StyleRef Load for any slug from https://styleref.io/gallery \u2014 or use the Search styles\u2026 button.\n\nFLUX.1 dev (fp8 all-in-one). The checkpoint downloads on first use into checkpoints/ \u2014 one ~16 GB file containing the UNET, the T5 text encoder and the VAE.\nSampler defaults: 20 steps, CFG 1.0, euler/simple. Prompt strength is the FluxGuidance node (3.5), not CFG.\nFLUX takes no negative prompt. It is guidance distilled and runs at CFG 1.0, 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 `flux` target \u2014 FLUX reads prose with T5, so the whole style fits instead of being truncated at ~77 tokens the way an SDXL CLIP encoder would.\n\nStyle not coming through strongly enough?\nFLUX has a confident house look and will drift back to it. Two dials, in the order worth trying:\n1. `Flux guidance` (3.5 here, FLUX's default) is the blunt dial. 4\u20135 makes the style bite harder; past that the subject starts losing to it, and a dark style can go to pure black.\n2. Narrow `sections` on StyleRef Apply to the parts that define this style. For a period or painterly style that is usually `artistic_mediums,references,surface_material,colors` \u2014 the sections naming the medium, the era and the finish. Leaving it empty sends every section, and the identity-carrying ones render last, so a long style can read as generic.\nWhich sections matter depends on the style: for a geometric or layout-led style keep `shape_language` and `spatial_hierarchy` instead. Queue the Facets template to see what a style actually carries."
|
|
],
|
|
"title": "Quickstart"
|
|
},
|
|
{
|
|
"id": 2,
|
|
"type": "StyleRefLoad",
|
|
"pos": [
|
|
40,
|
|
1116
|
|
],
|
|
"size": [
|
|
320,
|
|
248
|
|
],
|
|
"flags": {},
|
|
"order": 1,
|
|
"mode": 0,
|
|
"inputs": [],
|
|
"outputs": [
|
|
{
|
|
"name": "style",
|
|
"type": "STYLEREF_STYLE",
|
|
"links": [
|
|
3
|
|
],
|
|
"slot_index": 0
|
|
},
|
|
{
|
|
"name": "search_results",
|
|
"type": "STRING",
|
|
"links": [],
|
|
"slot_index": 1
|
|
}
|
|
],
|
|
"properties": {
|
|
"Node name for S&R": "StyleRefLoad"
|
|
},
|
|
"widgets_values": [
|
|
"72e1zdae-e2d54a18d090",
|
|
"",
|
|
"any",
|
|
true,
|
|
false
|
|
],
|
|
"title": "Load \u2014 swap this slug"
|
|
},
|
|
{
|
|
"id": 3,
|
|
"type": "CheckpointLoaderSimple",
|
|
"pos": [
|
|
40,
|
|
1412
|
|
],
|
|
"size": [
|
|
320,
|
|
160
|
|
],
|
|
"flags": {},
|
|
"order": 2,
|
|
"mode": 0,
|
|
"inputs": [],
|
|
"outputs": [
|
|
{
|
|
"name": "MODEL",
|
|
"type": "MODEL",
|
|
"links": [
|
|
8
|
|
],
|
|
"slot_index": 0
|
|
},
|
|
{
|
|
"name": "CLIP",
|
|
"type": "CLIP",
|
|
"links": [
|
|
5
|
|
],
|
|
"slot_index": 1
|
|
},
|
|
{
|
|
"name": "VAE",
|
|
"type": "VAE",
|
|
"links": [
|
|
13
|
|
],
|
|
"slot_index": 2
|
|
}
|
|
],
|
|
"properties": {
|
|
"Node name for S&R": "CheckpointLoaderSimple",
|
|
"models": [
|
|
{
|
|
"name": "flux1-dev-fp8.safetensors",
|
|
"url": "https://huggingface.co/Comfy-Org/flux1-dev/resolve/main/flux1-dev-fp8.safetensors",
|
|
"directory": "checkpoints"
|
|
}
|
|
]
|
|
},
|
|
"widgets_values": [
|
|
"flux1-dev-fp8.safetensors"
|
|
]
|
|
},
|
|
{
|
|
"id": 4,
|
|
"type": "StyleRefApply",
|
|
"pos": [
|
|
420,
|
|
60
|
|
],
|
|
"size": [
|
|
320,
|
|
424
|
|
],
|
|
"flags": {},
|
|
"order": 3,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{
|
|
"name": "style",
|
|
"type": "STYLEREF_STYLE",
|
|
"link": 3
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"name": "positive",
|
|
"type": "STRING",
|
|
"links": [
|
|
1,
|
|
4
|
|
],
|
|
"slot_index": 0
|
|
},
|
|
{
|
|
"name": "negative",
|
|
"type": "STRING",
|
|
"links": [
|
|
2
|
|
],
|
|
"slot_index": 1
|
|
},
|
|
{
|
|
"name": "attribution",
|
|
"type": "STRING",
|
|
"links": [],
|
|
"slot_index": 2
|
|
}
|
|
],
|
|
"properties": {
|
|
"Node name for S&R": "StyleRefApply"
|
|
},
|
|
"widgets_values": [
|
|
"A fully dressed teenager sitting on a rooftop ledge at dusk, dress in #8A9FB5 color with ropes, knees up, headphones on, looking out over a low-rise city as lights begin to switch on; laundry lines and a water tank frame the foreground.",
|
|
"flux",
|
|
"",
|
|
false,
|
|
"",
|
|
true
|
|
]
|
|
},
|
|
{
|
|
"id": 5,
|
|
"type": "PreviewAny",
|
|
"pos": [
|
|
420,
|
|
532
|
|
],
|
|
"size": [
|
|
320,
|
|
84
|
|
],
|
|
"flags": {},
|
|
"order": 4,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{
|
|
"name": "source",
|
|
"type": "*",
|
|
"link": 1
|
|
}
|
|
],
|
|
"outputs": [],
|
|
"properties": {
|
|
"Node name for S&R": "PreviewAny"
|
|
},
|
|
"widgets_values": [],
|
|
"title": "Compiled positive"
|
|
},
|
|
{
|
|
"id": 6,
|
|
"type": "PreviewAny",
|
|
"pos": [
|
|
420,
|
|
664
|
|
],
|
|
"size": [
|
|
320,
|
|
84
|
|
],
|
|
"flags": {},
|
|
"order": 5,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{
|
|
"name": "source",
|
|
"type": "*",
|
|
"link": 2
|
|
}
|
|
],
|
|
"outputs": [],
|
|
"properties": {
|
|
"Node name for S&R": "PreviewAny"
|
|
},
|
|
"widgets_values": [],
|
|
"title": "Compiled negative"
|
|
},
|
|
{
|
|
"id": 7,
|
|
"type": "CLIPTextEncode",
|
|
"pos": [
|
|
800,
|
|
60
|
|
],
|
|
"size": [
|
|
320,
|
|
198
|
|
],
|
|
"flags": {},
|
|
"order": 6,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{
|
|
"name": "clip",
|
|
"type": "CLIP",
|
|
"link": 5
|
|
},
|
|
{
|
|
"name": "text",
|
|
"type": "STRING",
|
|
"link": 4
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"name": "CONDITIONING",
|
|
"type": "CONDITIONING",
|
|
"links": [
|
|
6,
|
|
7
|
|
],
|
|
"slot_index": 0
|
|
}
|
|
],
|
|
"properties": {
|
|
"Node name for S&R": "CLIPTextEncode"
|
|
},
|
|
"widgets_values": [
|
|
""
|
|
],
|
|
"title": "Positive (from StyleRef)"
|
|
},
|
|
{
|
|
"id": 8,
|
|
"type": "FluxGuidance",
|
|
"pos": [
|
|
800,
|
|
306
|
|
],
|
|
"size": [
|
|
320,
|
|
112
|
|
],
|
|
"flags": {},
|
|
"order": 7,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{
|
|
"name": "conditioning",
|
|
"type": "CONDITIONING",
|
|
"link": 6
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"name": "CONDITIONING",
|
|
"type": "CONDITIONING",
|
|
"links": [
|
|
9
|
|
],
|
|
"slot_index": 0
|
|
}
|
|
],
|
|
"properties": {
|
|
"Node name for S&R": "FluxGuidance"
|
|
},
|
|
"widgets_values": [
|
|
3.5
|
|
],
|
|
"title": "Flux guidance"
|
|
},
|
|
{
|
|
"id": 9,
|
|
"type": "ConditioningZeroOut",
|
|
"pos": [
|
|
800,
|
|
466
|
|
],
|
|
"size": [
|
|
320,
|
|
84
|
|
],
|
|
"flags": {},
|
|
"order": 8,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{
|
|
"name": "conditioning",
|
|
"type": "CONDITIONING",
|
|
"link": 7
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"name": "CONDITIONING",
|
|
"type": "CONDITIONING",
|
|
"links": [
|
|
10
|
|
],
|
|
"slot_index": 0
|
|
}
|
|
],
|
|
"properties": {
|
|
"Node name for S&R": "ConditioningZeroOut"
|
|
},
|
|
"widgets_values": [],
|
|
"title": "FLUX has no negative"
|
|
},
|
|
{
|
|
"id": 10,
|
|
"type": "EmptySD3LatentImage",
|
|
"pos": [
|
|
800,
|
|
598
|
|
],
|
|
"size": [
|
|
320,
|
|
168
|
|
],
|
|
"flags": {},
|
|
"order": 9,
|
|
"mode": 0,
|
|
"inputs": [],
|
|
"outputs": [
|
|
{
|
|
"name": "LATENT",
|
|
"type": "LATENT",
|
|
"links": [
|
|
11
|
|
],
|
|
"slot_index": 0
|
|
}
|
|
],
|
|
"properties": {
|
|
"Node name for S&R": "EmptySD3LatentImage"
|
|
},
|
|
"widgets_values": [
|
|
1024,
|
|
1024,
|
|
1
|
|
]
|
|
},
|
|
{
|
|
"id": 11,
|
|
"type": "KSampler",
|
|
"pos": [
|
|
1180,
|
|
60
|
|
],
|
|
"size": [
|
|
320,
|
|
352
|
|
],
|
|
"flags": {},
|
|
"order": 10,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{
|
|
"name": "model",
|
|
"type": "MODEL",
|
|
"link": 8
|
|
},
|
|
{
|
|
"name": "positive",
|
|
"type": "CONDITIONING",
|
|
"link": 9
|
|
},
|
|
{
|
|
"name": "negative",
|
|
"type": "CONDITIONING",
|
|
"link": 10
|
|
},
|
|
{
|
|
"name": "latent_image",
|
|
"type": "LATENT",
|
|
"link": 11
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"name": "LATENT",
|
|
"type": "LATENT",
|
|
"links": [
|
|
12
|
|
],
|
|
"slot_index": 0
|
|
}
|
|
],
|
|
"properties": {
|
|
"Node name for S&R": "KSampler"
|
|
},
|
|
"widgets_values": [
|
|
0,
|
|
"randomize",
|
|
20,
|
|
1.0,
|
|
"euler",
|
|
"simple",
|
|
1.0
|
|
]
|
|
},
|
|
{
|
|
"id": 12,
|
|
"type": "VAEDecode",
|
|
"pos": [
|
|
1560,
|
|
60
|
|
],
|
|
"size": [
|
|
320,
|
|
108
|
|
],
|
|
"flags": {},
|
|
"order": 11,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{
|
|
"name": "samples",
|
|
"type": "LATENT",
|
|
"link": 12
|
|
},
|
|
{
|
|
"name": "vae",
|
|
"type": "VAE",
|
|
"link": 13
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"name": "IMAGE",
|
|
"type": "IMAGE",
|
|
"links": [
|
|
14
|
|
],
|
|
"slot_index": 0
|
|
}
|
|
],
|
|
"properties": {
|
|
"Node name for S&R": "VAEDecode"
|
|
},
|
|
"widgets_values": []
|
|
},
|
|
{
|
|
"id": 13,
|
|
"type": "SaveImage",
|
|
"pos": [
|
|
1560,
|
|
216
|
|
],
|
|
"size": [
|
|
320,
|
|
112
|
|
],
|
|
"flags": {},
|
|
"order": 12,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{
|
|
"name": "images",
|
|
"type": "IMAGE",
|
|
"link": 14
|
|
}
|
|
],
|
|
"outputs": [],
|
|
"properties": {
|
|
"Node name for S&R": "SaveImage"
|
|
},
|
|
"widgets_values": [
|
|
"StyleRef"
|
|
]
|
|
}
|
|
],
|
|
"links": [
|
|
[
|
|
1,
|
|
4,
|
|
0,
|
|
5,
|
|
0,
|
|
"STRING"
|
|
],
|
|
[
|
|
2,
|
|
4,
|
|
1,
|
|
6,
|
|
0,
|
|
"STRING"
|
|
],
|
|
[
|
|
3,
|
|
2,
|
|
0,
|
|
4,
|
|
0,
|
|
"STYLEREF_STYLE"
|
|
],
|
|
[
|
|
4,
|
|
4,
|
|
0,
|
|
7,
|
|
1,
|
|
"STRING"
|
|
],
|
|
[
|
|
5,
|
|
3,
|
|
1,
|
|
7,
|
|
0,
|
|
"CLIP"
|
|
],
|
|
[
|
|
6,
|
|
7,
|
|
0,
|
|
8,
|
|
0,
|
|
"CONDITIONING"
|
|
],
|
|
[
|
|
7,
|
|
7,
|
|
0,
|
|
9,
|
|
0,
|
|
"CONDITIONING"
|
|
],
|
|
[
|
|
8,
|
|
3,
|
|
0,
|
|
11,
|
|
0,
|
|
"MODEL"
|
|
],
|
|
[
|
|
9,
|
|
8,
|
|
0,
|
|
11,
|
|
1,
|
|
"CONDITIONING"
|
|
],
|
|
[
|
|
10,
|
|
9,
|
|
0,
|
|
11,
|
|
2,
|
|
"CONDITIONING"
|
|
],
|
|
[
|
|
11,
|
|
10,
|
|
0,
|
|
11,
|
|
3,
|
|
"LATENT"
|
|
],
|
|
[
|
|
12,
|
|
11,
|
|
0,
|
|
12,
|
|
0,
|
|
"LATENT"
|
|
],
|
|
[
|
|
13,
|
|
3,
|
|
2,
|
|
12,
|
|
1,
|
|
"VAE"
|
|
],
|
|
[
|
|
14,
|
|
12,
|
|
0,
|
|
13,
|
|
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": "flux1-dev-fp8.safetensors",
|
|
"url": "https://huggingface.co/Comfy-Org/flux1-dev/resolve/main/flux1-dev-fp8.safetensors",
|
|
"directory": "checkpoints"
|
|
}
|
|
]
|
|
}
|