Nodes/IAMCCS-nodes/IAMCCS IdeoTranslate
ComfyUI Node

IAMCCS IdeoTranslate

Translate a plain LLM prompt into Ideogram 4's fussy JSON

By IAMCCS·Created 11 months ago·Updated 8 days ago· 113
IAMCCS IdeoTranslate
    • design_data_json
    • ideoboard_package_json
    • prompt_json_out
    • translation_summary
    • width
    • height
    prompt_json_in{ "high_level_description": "A cinematic frame", "style_description": { "aesthetics": "premium cinematic composition", "lighting": "controlled dramatic lighting", "photo": "35mm lens", "medium": "cinematic concept art", "color_palette": ["#1C2430", "#B86A3B", "#E9D7B9"] }, "compositional_deconstruction": { "background": "A controlled cinematic environment", "elements": [] } }
    preset_override
    normalize_canvas_to_presettrue
    auto_generate_text_boxestrue
    auto_palette_from_jsontrue

    Ideogram 4's structured JSON prompt format is powerful but it's a chore to write by hand, and if you're building prompts with an LLM you probably have a big flat blob of text, not a nicely nested style_description object. IAMCCS IdeoTranslate sits exactly in that gap: it takes a structured prompt JSON - the kind your LLM prompt builder emits - and turns it into the design data this pack's Ideogram nodes actually consume.

    Again, no API, no key, no network call. It's a JSON-to-JSON transform running locally. The author's own description calls it a "bridge node," which is the right mental model: one end speaks LLM-structured prompt, the other end speaks IAMCCS ideoboard.

    How it works

    Feed prompt_json_in anything shaped like the default - a high_level_description, a style_description with aesthetics/lighting/photo/medium/color_palette, and a compositional_deconstruction with background and elements. The node normalizes that into a design dict, then applies three optional passes, each toggled by a boolean:

    • normalize_canvas_to_preset - snaps the canvas to a preset's proportions.
    • auto_generate_text_boxes - creates text-element boxes so any copy in your prompt gets a real bounding box to live in.
    • auto_palette_from_json - refreshes the scene color palette from the JSON's color_palette.

    preset_override is the one knob you'll actually touch: auto lets the JSON decide, or you can force storyboard, poster, signage, screen_ui, or title_card. Handy when the same prompt text needs to be laid out as a poster in one branch and a storyboard panel in another - flip the combo, done.

    Outputs

    The four STRING outputs are all different views of the same design: design_data_json (the canonical IAMCCS design), ideoboard_package_json (the packaged form you hand to the Storyboard sheet node's ideotranslate_json input), prompt_json_out (back to Ideogram-style prompt JSON), and translation_summary (a readable summary of what changed). width/height report the normalized canvas.

    Install & context

    ComfyUI Manager → search IAMCCS, or clone the repo into custom_nodes:

    cd ComfyUI/custom_nodes
    git clone https://github.com/IAMCCS/IAMCCS-nodes.git
    

    Restart after. No extra dependencies, no model downloads.

    The trap

    If your LLM emits loosely-formed or free-text JSON, translation_summary is your friend - read it before wiring everything downstream. The node is defensive about missing fields but it can't invent a style_description that wasn't there; a minimal {"high_level_description": ...} will translate, but it'll translate to a pretty plain design. Start from the default JSON in the widget and you'll see the shape it wants.

    CategoryIAMCCS/Cine/Ideogram

    Inputs (5)

    NameTypeDefaultDescription
    prompt_json_inSTRING{ "high_level_description": "A cinematic frame", "style_description": { "aesthetics": "premium cinematic composition", "lighting": "controlled dramatic lighting", "photo": "35mm lens", "medium": "cinematic concept art", "color_palette": ["#1C2430", "#B86A3B", "#E9D7B9"] }, "compositional_deconstruction": { "background": "A controlled cinematic environment", "elements": [] } }Structured JSON from the LLM Prompt Builder, prompt JSON, ideoboard package, or existing design_data.
    preset_overrideCOMBO6 options: auto, storyboard, poster, signage, screen_ui, title_card
    normalize_canvas_to_presetBOOLEANtrue
    auto_generate_text_boxesBOOLEANtrue
    auto_palette_from_jsonBOOLEANtrue

    Outputs (6)

    NameTypeDescription
    design_data_jsonSTRING
    ideoboard_package_jsonSTRING
    prompt_json_outSTRING
    translation_summarySTRING
    widthINT
    heightINT