Adds five workflows demonstrating nodes used together (palette extraction chained into full prompt assembly/validation/embedding, content/style blending, vibrancy vs frequency ranking comparison, masked-subject + global palettes, and the embed/recover metadata roundtrip), each with an on-canvas README note. Fixes three dangling links left over in the original 3-way palette study workflow and adds matching README notes to both original workflows. Adds tests/test_workflows.py to catch workflow JSON drifting out of sync with node signatures going forward.
123 lines
4.0 KiB
JSON
123 lines
4.0 KiB
JSON
{
|
|
"last_node_id": 7,
|
|
"last_link_id": 5,
|
|
"nodes": [
|
|
{
|
|
"id": 1,
|
|
"type": "LoadImage",
|
|
"pos": [40, 80],
|
|
"size": [240, 320],
|
|
"flags": {},
|
|
"order": 0,
|
|
"mode": 0,
|
|
"outputs": [
|
|
{ "name": "IMAGE", "type": "IMAGE", "links": [1], "slot_index": 0 },
|
|
{ "name": "MASK", "type": "MASK", "links": null }
|
|
],
|
|
"widgets_values": ["reference.png", "image"]
|
|
},
|
|
{
|
|
"id": 2,
|
|
"type": "IdeogramPaletteExtractor",
|
|
"pos": [340, 80],
|
|
"size": [260, 140],
|
|
"flags": {},
|
|
"order": 1,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{ "name": "image", "type": "IMAGE", "link": 1 }
|
|
],
|
|
"outputs": [
|
|
{ "name": "palette_json", "type": "STRING", "links": [2, 4], "slot_index": 0 },
|
|
{ "name": "palette_preview", "type": "IMAGE", "links": [5], "slot_index": 1 },
|
|
{ "name": "color_count", "type": "INT", "links": null, "slot_index": 2 }
|
|
],
|
|
"widgets_values": [8, 10.0]
|
|
},
|
|
{
|
|
"id": 3,
|
|
"type": "IdeogramPaletteOverride",
|
|
"pos": [660, 80],
|
|
"size": [260, 160],
|
|
"flags": {},
|
|
"order": 2,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{ "name": "palette_json", "type": "STRING", "link": 2 },
|
|
{ "name": "add_colors", "type": "STRING", "link": null },
|
|
{ "name": "remove_index", "type": "STRING", "link": null }
|
|
],
|
|
"outputs": [
|
|
{ "name": "palette_json", "type": "STRING", "links": [3], "slot_index": 0 },
|
|
{ "name": "palette_preview", "type": "IMAGE", "links": null, "slot_index": 1 }
|
|
],
|
|
"widgets_values": [16, "", ""]
|
|
},
|
|
{
|
|
"id": 4,
|
|
"type": "IdeogramPaletteToGlobalJSON",
|
|
"pos": [980, 80],
|
|
"size": [260, 140],
|
|
"flags": {},
|
|
"order": 3,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{ "name": "palette_json", "type": "STRING", "link": 3 },
|
|
{ "name": "aesthetics", "type": "STRING", "link": null },
|
|
{ "name": "lighting", "type": "STRING", "link": null }
|
|
],
|
|
"outputs": [
|
|
{ "name": "style_json", "type": "STRING", "links": null, "slot_index": 0 }
|
|
],
|
|
"widgets_values": ["", ""]
|
|
},
|
|
{
|
|
"id": 5,
|
|
"type": "PreviewImage",
|
|
"pos": [340, 280],
|
|
"size": [260, 260],
|
|
"flags": {},
|
|
"order": 4,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{ "name": "images", "type": "IMAGE", "link": 5 }
|
|
],
|
|
"outputs": []
|
|
},
|
|
{
|
|
"id": 6,
|
|
"type": "ShowText|pysssss",
|
|
"pos": [980, 280],
|
|
"size": [260, 200],
|
|
"flags": {},
|
|
"order": 5,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{ "name": "text", "type": "STRING", "link": 4 }
|
|
],
|
|
"outputs": [
|
|
{ "name": "STRING", "type": "STRING", "links": null }
|
|
]
|
|
},
|
|
{
|
|
"id": 7, "type": "Note", "pos": [40, -200], "size": [780, 160], "flags": {}, "order": 6, "mode": 0,
|
|
"properties": { "text": "" },
|
|
"widgets_values": ["CORE PALETTE PIPELINE (minimal example)\n\nLoad Image -> Extractor -> Override -> Palette->Global JSON.\n\nThe style_json output is a style_description fragment ready to merge into a full Ideogram 4 prompt (e.g. with IdeogramPromptAssembler, or paste it by hand). ShowText is optional (ComfyUI-Custom-Scripts) and just displays the raw extractor JSON.\n\nFor a complete extract -> assemble -> validate -> save pipeline, see workflows/showcase_01_palette_to_prompt_pipeline.json."],
|
|
"color": "#432", "bgcolor": "#653", "title": "README"
|
|
}
|
|
],
|
|
"links": [
|
|
[1, 1, 0, 2, 0, "IMAGE"],
|
|
[2, 2, 0, 3, 0, "STRING"],
|
|
[3, 3, 0, 4, 0, "STRING"],
|
|
[4, 2, 0, 6, 0, "STRING"],
|
|
[5, 2, 1, 5, 0, "IMAGE"]
|
|
],
|
|
"groups": [],
|
|
"config": {},
|
|
"extra": {
|
|
"note": "Example: LoadImage -> IdeogramPaletteExtractor -> IdeogramPaletteOverride -> IdeogramPaletteToGlobalJSON. The 'ShowText|pysssss' node is optional (from ComfyUI-Custom-Scripts) and just displays the raw extractor JSON for inspection; swap with any STRING-compatible display node if you don't have it installed."
|
|
},
|
|
"version": 0.4
|
|
}
|