Files
SurrealByDesign 79a8de97e1 Add IdeogramVisualPromptDesigner (Phase 1) and fix ensure_ascii bug across three nodes
IdeogramVisualPromptDesigner is the backend foundation for the planned
Visual Prompt Designer: builds a prompt from scratch or loads an existing
one, reconstructs an editable internal "designer state," restores
designer-only fields (subjects/hierarchy/relationships/notes/per-element
depth-weight-lock-hide-group) from a previously saved state, applies an
optional palette override, and re-validates with the existing
IdeogramJSONValidator. The drag/resize canvas, scene graph, and
relationship UI from the full spec need a custom ComfyUI frontend
extension and are a separate, future phase -- see README's new
"Ideogram Visual Prompt Designer" section for the status table,
architecture, round-trip workflow, and known limitations.

Found and fixed a real bug while building it: IdeogramJSONValidator,
IdeogramPromptAssembler, and IdeogramPaletteToGlobalJSON were all
missing ensure_ascii=False, silently escaping non-ASCII content into
\uXXXX sequences -- inconsistent with every other JSON-producing node
in this repo. IdeogramJSONValidator also gained two new outputs,
errors_json/warnings_json, added after the existing three so saved
workflows' connections by index are unaffected; updated the three
showcase workflows that reference it to match.

This went through a full pre-publish audit pass (category convention,
dead constants, a decorative non-functional id field removed, a no-op
reference_image input removed, validation structure) and was verified
end-to-end against a live ComfyUI server multiple times, including the
full round-trip workflow.

126 tests passing (up from 102).
2026-06-22 22:53:27 -04:00
..

Workflows

Load any of these via ComfyUI's Workflow → Open menu. Each one has an on-canvas Note node with usage instructions, and the underlying nodes are documented in the main README.

ShowText|pysssss nodes (from ComfyUI-Custom-Scripts) appear in several workflows purely to display raw JSON for inspection — they're optional and safe to delete if you don't have that package installed.

Core examples

File Description
palette_reference_workflow.json Minimal pipeline: Load Image → Extractor → Override → Palette→Global JSON.
palette_study_3way_workflow.json Three reference images → three palettes, for recoloring the same seed+prompt three ways.

Showcase set

A progression from a single extraction up to full pipelines exercising multiple nodes together. See the main README for the full breakdown of which nodes each one wires together.

File Description
showcase_01_palette_to_prompt_pipeline.json Flagship: reference image → fully validated, embedded Ideogram 4 prompt.
showcase_02_blend_content_and_style.json Blend a content-reference palette with a style-reference palette.
showcase_03_vibrant_vs_frequency.json Compare frequency ranking against three Vibrant Extractor modes.
showcase_04_masked_subject_and_global.json Region-accurate per-element palette (masked subject) alongside a global palette.
showcase_05_embed_recover_roundtrip.json Embed a prompt on save, then recover it from the saved PNG by path.
showcase_06_per_element_palettes.json Give each region its own reference palette and placement, assembled into a compositional_deconstruction block.

Validating changes

tests/test_workflows.py parses every workflow here and checks that node types, output signatures, and widget counts match the installed node classes, and that all links are internally consistent (no dangling or missing references). Run it with a Python that can import the package's dependencies (e.g. ComfyUI's embedded Python):

python tests/test_workflows.py