From 70fcf9ef0054ce8541e04eaaa26459ae272cdc67 Mon Sep 17 00:00:00 2001 From: Behzad Date: Sun, 26 Jul 2026 23:35:22 +0200 Subject: [PATCH] Demo a style whose effect is actually visible MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The templates loaded a documentary photography style that compiles to "photography, naturalistic lighting, deep focus, RAW-like" — close to what SDXL produces unprompted — so the first queue looked like the nodes had done nothing, and the demo subjects were unrelated scenery on top of that. Load Renaissance Mythic Classicism instead: tempera-on-panel technique and a muted Renaissance palette, unmistakable against a base render, with no typography for the sampler to turn into gibberish and no subject it rules out. Subjects are now concrete everyday scenes carrying no style words of their own. Co-Authored-By: Claude Sonnet 5 --- README.md | 3 +- scripts/build_workflows.py | 68 +++++++++++++--------- workflows/01-quickstart.json | 4 +- workflows/02-consistency-grid.json | 8 +-- workflows/03-your-own-style.json | 2 +- workflows/04-facets.json | 4 +- workflows/z-image/01-quickstart.json | 4 +- workflows/z-image/02-consistency-grid.json | 8 +-- workflows/z-image/03-your-own-style.json | 2 +- workflows/z-image/04-reference-images.json | 4 +- workflows/z-image/05-facets.json | 4 +- 11 files changed, 64 insertions(+), 47 deletions(-) diff --git a/README.md b/README.md index 1a48571..431fa0c 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,8 @@ server console at startup. 1. Add **StyleRef Load** and paste a slug from the [gallery](https://styleref.io/gallery) into `style_ref` (try - `9a2adtz6-cd8d77ee2f51`) — or click **Search styles…** to pick one. + `sbdlwwly-66ae1a89efdc`, the Renaissance Mythic Classicism style) — or + click **Search styles…** to pick one. 2. Add **StyleRef Apply**, connect `style`, type a subject, pick your target. 3. Wire `positive` / `negative` into your CLIP Text Encode nodes. diff --git a/scripts/build_workflows.py b/scripts/build_workflows.py index 46f177e..49594a5 100644 --- a/scripts/build_workflows.py +++ b/scripts/build_workflows.py @@ -109,13 +109,37 @@ MULTILINE_WIDGETS = { # Node titles longer than this truncate in both frontends. MAX_TITLE = 28 -# Frontend model-download metadata: a missing checkpoint becomes a -# guided download instead of a red error. +# The gallery style every ready-to-run template loads. Picked for how legible +# its effect is on the first queue: it compiles to tempera-on-panel technique +# and a muted Renaissance palette, so the render is obviously not what the base +# checkpoint would have produced alone. Two styles that read well on the +# gallery make poor demos here — a naturalistic photography style lands close +# to what SDXL does unprompted (the node looks like it did nothing), and a +# typography-led graphic style asks the sampler for headline text it renders as +# gibberish. This one carries no type at all and constrains no subject. +GALLERY_STYLE_REF = "sbdlwwly-66ae1a89efdc" # Renaissance Mythic Classicism + # Placeholder ref for the "your own style" templates. Refs are opaque ids now # (no name lookup), so the templates ship an obvious placeholder the user swaps # for their own style's id — or fills via the node's "Search styles…" picker. OWN_STYLE_REF = "" +# Subjects for the consistency grid. Deliberately varied — interior, open +# landscape, night exterior — because the grid's whole claim is that one style +# holds across unrelated subjects. All three are plain scenes with no style +# words of their own, so anything stylistic in the render came from StyleRef. +GRID_SUBJECTS = [ + "two friends flipping through crates of vinyl in a record shop", + "a lone surfer walking back along the beach at dusk", + "a roadside diner at night seen from the parking lot", +] + +# The single-subject templates all use the first grid subject, so a user who +# opens two templates sees the same prompt render consistently. +DEMO_SUBJECT = GRID_SUBJECTS[0] + +# Frontend model-download metadata: a missing checkpoint becomes a guided +# download instead of a red error. MODEL_SDXL = { "name": "sd_xl_base_1.0.safetensors", "url": "https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/resolve/main/sd_xl_base_1.0.safetensors", @@ -427,11 +451,11 @@ def workflow_zimage_01_quickstart() -> dict[str, Any]: title="Z-Image quickstart", ) load = g.place( - "StyleRefLoad", 0, load_widgets("9a2adtz6-cd8d77ee2f51"), title="Load — swap this slug" + "StyleRefLoad", 0, load_widgets(GALLERY_STYLE_REF), title="Load — swap this slug" ) unet, clip, vae = _zimage_loaders(g) apply_node = g.place( - "StyleRefApply", 1, apply_widgets("a lighthouse on a rocky shore at dawn", "diffusion") + "StyleRefApply", 1, apply_widgets(DEMO_SUBJECT, "diffusion") ) g.link(load, 0, apply_node, 0) _preview(g, apply_node, 1) @@ -451,14 +475,10 @@ def workflow_zimage_02_consistency() -> dict[str, Any]: "many subjects, a coherent set within this model.\n\n" + _ZIMAGE_SETUP_NOTE, title="Z-Image consistency", ) - load = g.place("StyleRefLoad", 0, load_widgets("9a2adtz6-cd8d77ee2f51")) + load = g.place("StyleRefLoad", 0, load_widgets(GALLERY_STYLE_REF)) unet, clip, vae = _zimage_loaders(g) - subjects = [ - "a lighthouse on a rocky shore at dawn", - "a quiet street cafe in the rain", - "a hot air balloon over desert dunes", - ] + subjects = GRID_SUBJECTS for index, subject in enumerate(subjects): apply_node = g.place( "StyleRefApply", 1, apply_widgets(subject, "diffusion"), title=f"Subject {index + 1}" @@ -491,7 +511,7 @@ def workflow_zimage_03_your_own_style() -> dict[str, Any]: ) unet, clip, vae = _zimage_loaders(g) apply_node = g.place( - "StyleRefApply", 1, apply_widgets("a quiet street cafe in the rain", "diffusion") + "StyleRefApply", 1, apply_widgets(DEMO_SUBJECT, "diffusion") ) g.link(load, 0, apply_node, 0) _preview(g, apply_node, 1) @@ -515,7 +535,7 @@ def workflow_zimage_04_reference_images() -> dict[str, Any]: title="Z-Image + references", ) load = g.place( - "StyleRefLoad", 0, load_widgets("9a2adtz6-cd8d77ee2f51"), title="Load — a gallery slug" + "StyleRefLoad", 0, load_widgets(GALLERY_STYLE_REF), title="Load — a gallery slug" ) unet, clip, vae = _zimage_loaders(g) @@ -525,7 +545,7 @@ def workflow_zimage_04_reference_images() -> dict[str, Any]: g.link(refs, 0, ref_preview, 0) apply_node = g.place( - "StyleRefApply", 1, apply_widgets("a lighthouse on a rocky shore at dawn", "diffusion") + "StyleRefApply", 1, apply_widgets(DEMO_SUBJECT, "diffusion") ) g.link(load, 0, apply_node, 0) _preview(g, apply_node, 1) @@ -550,12 +570,12 @@ def workflow_01_quickstart() -> dict[str, Any]: load = g.place( "StyleRefLoad", 0, - load_widgets("9a2adtz6-cd8d77ee2f51"), + load_widgets(GALLERY_STYLE_REF), title="Load — swap this slug", ) checkpoint = g.place("CheckpointLoaderSimple", 0, [MODEL_SDXL["name"]]) apply_node = g.place( - "StyleRefApply", 1, apply_widgets("a lighthouse on a rocky shore at dawn", "diffusion") + "StyleRefApply", 1, apply_widgets(DEMO_SUBJECT, "diffusion") ) _preview(g, apply_node, 1) g.link(load, 0, apply_node, 0) @@ -582,14 +602,10 @@ def workflow_02_consistency() -> dict[str, Any]: "Change any subject, or swap the style on StyleRef Load, and queue again.", title="Consistency grid", ) - load = g.place("StyleRefLoad", 0, load_widgets("9a2adtz6-cd8d77ee2f51")) + load = g.place("StyleRefLoad", 0, load_widgets(GALLERY_STYLE_REF)) checkpoint = g.place("CheckpointLoaderSimple", 0, [MODEL_SDXL["name"]]) - subjects = [ - "a lighthouse on a rocky shore at dawn", - "a quiet street cafe in the rain", - "a hot air balloon over desert dunes", - ] + subjects = GRID_SUBJECTS for index, subject in enumerate(subjects): apply_node = g.place( "StyleRefApply", 1, apply_widgets(subject, "diffusion"), title=f"Subject {index + 1}" @@ -627,7 +643,7 @@ def workflow_03_your_own_style() -> dict[str, Any]: ) checkpoint = g.place("CheckpointLoaderSimple", 0, [MODEL_SDXL["name"]]) apply_node = g.place( - "StyleRefApply", 1, apply_widgets("a quiet street cafe in the rain", "diffusion") + "StyleRefApply", 1, apply_widgets(DEMO_SUBJECT, "diffusion") ) g.link(load, 0, apply_node, 0) _preview(g, apply_node, 1) @@ -659,7 +675,7 @@ def workflow_04_facets() -> dict[str, Any]: load = g.place( "StyleRefLoad", 0, - load_widgets("9a2adtz6-cd8d77ee2f51"), + load_widgets(GALLERY_STYLE_REF), title="Load — swap this slug", ) checkpoint = g.place("CheckpointLoaderSimple", 0, [MODEL_SDXL["name"]]) @@ -667,7 +683,7 @@ def workflow_04_facets() -> dict[str, Any]: _facet_board(g, load, col=1) apply_node = g.place( - "StyleRefApply", 3, apply_widgets("a lighthouse on a rocky shore at dawn", "diffusion") + "StyleRefApply", 3, apply_widgets(DEMO_SUBJECT, "diffusion") ) g.link(load, 0, apply_node, 0) _preview(g, apply_node, 3) @@ -683,7 +699,7 @@ def workflow_zimage_05_facets() -> dict[str, Any]: load = g.place( "StyleRefLoad", 0, - load_widgets("9a2adtz6-cd8d77ee2f51"), + load_widgets(GALLERY_STYLE_REF), title="Load — swap this slug", ) unet, clip, vae = _zimage_loaders(g) @@ -691,7 +707,7 @@ def workflow_zimage_05_facets() -> dict[str, Any]: _facet_board(g, load, col=1) apply_node = g.place( - "StyleRefApply", 3, apply_widgets("a lighthouse on a rocky shore at dawn", "diffusion") + "StyleRefApply", 3, apply_widgets(DEMO_SUBJECT, "diffusion") ) g.link(load, 0, apply_node, 0) _preview(g, apply_node, 3) diff --git a/workflows/01-quickstart.json b/workflows/01-quickstart.json index da0e9c9..35719f1 100644 --- a/workflows/01-quickstart.json +++ b/workflows/01-quickstart.json @@ -61,7 +61,7 @@ "Node name for S&R": "StyleRefLoad" }, "widgets_values": [ - "9a2adtz6-cd8d77ee2f51", + "sbdlwwly-66ae1a89efdc", "", "any", true, @@ -169,7 +169,7 @@ "Node name for S&R": "StyleRefApply" }, "widgets_values": [ - "a lighthouse on a rocky shore at dawn", + "two friends flipping through crates of vinyl in a record shop", "diffusion", "", false, diff --git a/workflows/02-consistency-grid.json b/workflows/02-consistency-grid.json index 11b1f8b..e7ae3a8 100644 --- a/workflows/02-consistency-grid.json +++ b/workflows/02-consistency-grid.json @@ -63,7 +63,7 @@ "Node name for S&R": "StyleRefLoad" }, "widgets_values": [ - "9a2adtz6-cd8d77ee2f51", + "sbdlwwly-66ae1a89efdc", "", "any", true, @@ -178,7 +178,7 @@ "Node name for S&R": "StyleRefApply" }, "widgets_values": [ - "a lighthouse on a rocky shore at dawn", + "two friends flipping through crates of vinyl in a record shop", "diffusion", "", false, @@ -545,7 +545,7 @@ "Node name for S&R": "StyleRefApply" }, "widgets_values": [ - "a quiet street cafe in the rain", + "a lone surfer walking back along the beach at dusk", "diffusion", "", false, @@ -912,7 +912,7 @@ "Node name for S&R": "StyleRefApply" }, "widgets_values": [ - "a hot air balloon over desert dunes", + "a roadside diner at night seen from the parking lot", "diffusion", "", false, diff --git a/workflows/03-your-own-style.json b/workflows/03-your-own-style.json index fe84f97..26f0373 100644 --- a/workflows/03-your-own-style.json +++ b/workflows/03-your-own-style.json @@ -198,7 +198,7 @@ "Node name for S&R": "StyleRefApply" }, "widgets_values": [ - "a quiet street cafe in the rain", + "two friends flipping through crates of vinyl in a record shop", "diffusion", "", false, diff --git a/workflows/04-facets.json b/workflows/04-facets.json index 62422ad..7f3cd5d 100644 --- a/workflows/04-facets.json +++ b/workflows/04-facets.json @@ -62,7 +62,7 @@ "Node name for S&R": "StyleRefLoad" }, "widgets_values": [ - "9a2adtz6-cd8d77ee2f51", + "sbdlwwly-66ae1a89efdc", "", "any", true, @@ -523,7 +523,7 @@ "Node name for S&R": "StyleRefApply" }, "widgets_values": [ - "a lighthouse on a rocky shore at dawn", + "two friends flipping through crates of vinyl in a record shop", "diffusion", "", false, diff --git a/workflows/z-image/01-quickstart.json b/workflows/z-image/01-quickstart.json index 07cadb9..ae1ac4e 100644 --- a/workflows/z-image/01-quickstart.json +++ b/workflows/z-image/01-quickstart.json @@ -61,7 +61,7 @@ "Node name for S&R": "StyleRefLoad" }, "widgets_values": [ - "9a2adtz6-cd8d77ee2f51", + "sbdlwwly-66ae1a89efdc", "", "any", true, @@ -221,7 +221,7 @@ "Node name for S&R": "StyleRefApply" }, "widgets_values": [ - "a lighthouse on a rocky shore at dawn", + "two friends flipping through crates of vinyl in a record shop", "diffusion", "", false, diff --git a/workflows/z-image/02-consistency-grid.json b/workflows/z-image/02-consistency-grid.json index b8b9277..8ca3f91 100644 --- a/workflows/z-image/02-consistency-grid.json +++ b/workflows/z-image/02-consistency-grid.json @@ -63,7 +63,7 @@ "Node name for S&R": "StyleRefLoad" }, "widgets_values": [ - "9a2adtz6-cd8d77ee2f51", + "sbdlwwly-66ae1a89efdc", "", "any", true, @@ -228,7 +228,7 @@ "Node name for S&R": "StyleRefApply" }, "widgets_values": [ - "a lighthouse on a rocky shore at dawn", + "two friends flipping through crates of vinyl in a record shop", "diffusion", "", false, @@ -588,7 +588,7 @@ "Node name for S&R": "StyleRefApply" }, "widgets_values": [ - "a quiet street cafe in the rain", + "a lone surfer walking back along the beach at dusk", "diffusion", "", false, @@ -948,7 +948,7 @@ "Node name for S&R": "StyleRefApply" }, "widgets_values": [ - "a hot air balloon over desert dunes", + "a roadside diner at night seen from the parking lot", "diffusion", "", false, diff --git a/workflows/z-image/03-your-own-style.json b/workflows/z-image/03-your-own-style.json index 44e2f9d..5a5b87f 100644 --- a/workflows/z-image/03-your-own-style.json +++ b/workflows/z-image/03-your-own-style.json @@ -250,7 +250,7 @@ "Node name for S&R": "StyleRefApply" }, "widgets_values": [ - "a quiet street cafe in the rain", + "two friends flipping through crates of vinyl in a record shop", "diffusion", "", false, diff --git a/workflows/z-image/04-reference-images.json b/workflows/z-image/04-reference-images.json index 684ae30..899c248 100644 --- a/workflows/z-image/04-reference-images.json +++ b/workflows/z-image/04-reference-images.json @@ -62,7 +62,7 @@ "Node name for S&R": "StyleRefLoad" }, "widgets_values": [ - "9a2adtz6-cd8d77ee2f51", + "sbdlwwly-66ae1a89efdc", "", "any", true, @@ -295,7 +295,7 @@ "Node name for S&R": "StyleRefApply" }, "widgets_values": [ - "a lighthouse on a rocky shore at dawn", + "two friends flipping through crates of vinyl in a record shop", "diffusion", "", false, diff --git a/workflows/z-image/05-facets.json b/workflows/z-image/05-facets.json index 499fef6..bb905c1 100644 --- a/workflows/z-image/05-facets.json +++ b/workflows/z-image/05-facets.json @@ -62,7 +62,7 @@ "Node name for S&R": "StyleRefLoad" }, "widgets_values": [ - "9a2adtz6-cd8d77ee2f51", + "sbdlwwly-66ae1a89efdc", "", "any", true, @@ -575,7 +575,7 @@ "Node name for S&R": "StyleRefApply" }, "widgets_values": [ - "a lighthouse on a rocky shore at dawn", + "two friends flipping through crates of vinyl in a record shop", "diffusion", "", false,