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).
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