Nodes/IAMCCS-nodes/IAMCCS StoryboardFrame + TextInFrame Director
ComfyUI Node

IAMCCS StoryboardFrame + TextInFrame Director

Ideogram layouts, minus the guesswork

By IAMCCS·Created 11 months ago·Updated 8 days ago· 113
IAMCCS StoryboardFrame + TextInFrame Director
  • clip
  • positive
  • prompt_json
  • width
  • height
  • gemma_json_request
design_data{ "schema": "iamccs.ideogram_storyboard_frame_designer", "schema_version": 1, "preset_key": "storyboard", "workflow_mode": "storyboard_grid", "grid_key": "story_2x3", "target_resolution_key": "hd_720", "json_export_mode": "json_perfect", "brief_to_json": { "brief": "", "instruction": "Enhance the current Ideogram JSON without changing layout, bbox coordinates, visible text, or panel count." }, "gemma_assistant": { "enabled": false, "provider": "local_gemma", "mode": "full_json_enhance", "speed": "fast", "model": "text_encoders\\gemma4_e4b_it_fp8_scaled.safetensors", "selected_id": "", "target_field": "", "current_text": "", "brief": "", "request_ready": false }, "mask_paint": { "brush_size": 48, "strokes": [] }, "canvas": { "width": 2560, "height": 2160, "aspect_label": "1280 x 720 - HD 16:9 target / Storyboard 2x3 canvas 2560x2160", "target_resolution_key": "hd_720", "target_width": 1280, "target_height": 720 }, "scene": { "high_level_description": "A six-panel 2x3 cinematic storyboard contact sheet set on a frozen exoplanet, following one exhausted astronaut in a strange partly unsealed expedition suit crossing black ice plains, ruined research vehicles, and distant alien towers under two visible planets in the sky.", "aesthetics": "extremely photoreal live-action science fiction cinema, tactile frozen surfaces, strange worn astronaut suit, partly open asymmetric suit collar, visible inner thermal layers, practical space gear, believable human fatigue, cinematic continuity", "lighting": "cold blue planetary daylight, low amber rim light on ice crystals, breath vapor, long shadows, readable eyes, crisp silhouettes, clean subject separation in every panel", "photo": "35mm anamorphic film stills, varied shot scale, wide exoplanet landscape, tight medium portrait, top-down equipment detail, medium action frame, long telephoto silhouette, macro visor reflection, fine analog grain", "medium": "photograph", "art_style": "", "color_palette": [ "#06111A", "#557C8A", "#A8D8E8", "#E6E1C6", "#E87C45", "#07080A" ], "background": "Clean storyboard contact sheet with exactly two columns and three rows. Six separate 16:9 cinematic stills show different beats of the same frozen-planet sequence with thin panel borders, readable horizon lines, alien planets in the sky, and clear physical action." }, "i2i": { "enabled": false, "denoise": 0.28, "low_sigma_start_step": 12, "scheduler_hint": "Storyboard grid generation. Use AutoCropGrid with 2 columns and 3 rows.", "source_mode": "canvas_composite" }, "reference_mode": { "mode": "single", "label": "Single / Storyboard", "panel_count": 1, "target_index": 0, "locked_indices": [] }, "direct_prompt": { "enabled": false, "text": "" }, "json_override": { "enabled": false, "text": "" }, "items": [ { "id": "panel_01", "kind": "obj", "label": "Panel 1 - Ice Plain Arrival", "text": "", "x": 0, "y": 0, "w": 500, "h": 333, "desc": "ICE PLAIN ARRIVAL: wide establishing shot of a frozen exoplanet plain at sunrise, black ice road crossing toward ruined alien towers, one small astronaut figure walking alone, two planets hanging in the pale sky, long shadow, cold blue atmosphere.", "color_palette": [ "#557C8A", "#A8D8E8" ] }, { "id": "panel_02", "kind": "obj", "label": "Panel 2 - Broken Suit Collar", "text": "", "x": 500, "y": 0, "w": 500, "h": 333, "desc": "BROKEN SUIT COLLAR: tight medium portrait of the same exhausted astronaut pulling a frost-covered breathing scarf across the mouth, strange expedition suit partly unsealed at the collar, inner thermal fabric visible, breath vapor around focused eyes.", "color_palette": [ "#A8D8E8", "#E87C45" ] }, { "id": "panel_03", "kind": "obj", "label": "Panel 3 - Frozen Nav Module", "text": "", "x": 0, "y": 333, "w": 500, "h": 334, "desc": "FROZEN NAV MODULE: top-down close detail of a cracked wrist computer, circular oxygen gauge, folded star map, metal sample case, and frost crystals on white-blue ice, precise object clarity.", "color_palette": [ "#06111A", "#557C8A" ] }, { "id": "panel_04", "kind": "obj", "label": "Panel 4 - Rover Drag", "text": "", "x": 500, "y": 333, "w": 500, "h": 334, "desc": "ROVER DRAG: medium wide action frame of the astronaut dragging a broken rover battery sled across an ice trench, bent posture, boots cutting into snow crust, torn suit panels and loose cables moving in the wind.", "color_palette": [ "#557C8A", "#E6E1C6" ] }, { "id": "panel_05", "kind": "obj", "label": "Panel 5 - Footprints To Antenna", "text": "", "x": 0, "y": 667, "w": 500, "h": 333, "desc": "FOOTPRINTS TO ANTENNA: long telephoto silhouette of the astronaut walking along a frozen ridge toward a collapsed research antenna, clear footprints through powder snow, giant ringed planet low over the horizon.", "color_palette": [ "#A8D8E8", "#07080A" ] }, { "id": "panel_06", "kind": "obj", "label": "Panel 6 - Visor Planet Reflection", "text": "", "x": 500, "y": 667, "w": 500, "h": 333, "desc": "VISOR PLANET REFLECTION: extreme close-up of a cracked astronaut visor, twin planets and broken towers reflected in the glass, frost on eyelashes, skin dust, sweat, sharp helmet texture, cinematic macro detail.", "color_palette": [ "#07080A", "#A8D8E8" ] } ] }
ideoboard_input_signature
ideoboard

IAMCCS_StoryboardFrameDesigner is the original Ideogram storyboard node from the IAMCCS Cine pack: it takes a structured JSON design - a cinematic contact sheet with a fixed grid of panels, each with exact bounding boxes, descriptions, and color palettes - and produces the Ideogram-style prompt, the CLIP conditioning, and the canvas dimensions for generating it. The "TextInFrame Director" part of the display name is the selling point: Ideogram-class models are among the few that can render legible text inside an image, and this node leans on that by treating every panel's text and geometry as structured data instead of hoping the model infers it from prose.

If you're deciding between this and V2: V1 outputs classic positive CONDITIONING + prompt_json + width/height, and does not have V2's image-canvas i2i mode. V1 is the simpler, more composable one - it plays nice with a normal text-encoder/KSampler graph, whereas V2 bundles its state into the IDEO_LINX carrier for the bigger Ideogram chain. For a beginner, V1's outputs are easier to understand.

How it works

The design_data input is a big editable JSON document (schema iamccs.ideogram_storyboard_frame_designer). It describes the scene (high-level description, aesthetics, lighting, photo treatment, color palette), the background (e.g. "Clean storyboard contact sheet with exactly two columns and three rows"), and an items array where each panel carries x/y/w/h coordinates, a label, optional visible text, and a full panel desc. The node normalizes that design, builds the Ideogram prompt payload, encodes it into conditioning with your CLIP, and reports canvas width/height.

The optional ideoboard input accepts a design package from IAMCCS_IdeoTranslate; the ideoboard_input_signature is an internal guard so your manual edits to design_data survive when that input stays connected - a detail that prevents "I edited the board and the next run overwrote it" frustration. There's also a json_override mechanism in the design data, and the gemma_json_request output is the hook for an optional local Gemma assistant that can enhance the JSON before generation - disabled by default.

Inputs and outputs

Required: clip, design_data, ideoboard_input_signature. Optional: ideoboard. Outputs: positive (CONDITIONING - straight into a KSampler), prompt_json (the exact structured prompt sent to the model; paste it into a viewer to inspect), width, height (canvas size for an EmptyLatent or similar), and gemma_json_request (a STRING request payload for the Gemma assistant path).

Installing it

Part of the IAMCCS-nodes pack. ComfyUI Manager → search IAMCCS, or:

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

Restart ComfyUI; it's under IAMCCS/Cine/Ideogram. No pip requirements. You supply the Ideogram-class model and CLIP yourself. README floor: ComfyUI ≥ 0.3.0, Python ≥ 3.12, Torch ≥ 2.8.

Where people get burned

  • It encodes with whatever CLIP you hand it. An Ideogram-style prompt fed into a CLIP that doesn't know the layout vocabulary will still produce an image - it just won't hold the grid or the text. Pair it with the right text encoder for your model.
  • Text-in-frame only works if the model genuinely renders text; if yours doesn't, the panel text fields get ignored and you're paying JSON overhead for nothing. That's a model capability question, not a node bug.
  • width/height are canvas outputs you must use to size your latent. Ignore them and the prompt and the empty latent can disagree about the sheet's proportions, which is a classic way to get panels that don't fit the frame.
CategoryIAMCCS/Cine/Ideogram

Inputs (4)

NameTypeDefaultDescription
clipCLIP
design_dataSTRING{ "schema": "iamccs.ideogram_storyboard_frame_designer", "schema_version": 1, "preset_key": "storyboard", "workflow_mode": "storyboard_grid", "grid_key": "story_2x3", "target_resolution_key": "hd_720", "json_export_mode": "json_perfect", "brief_to_json": { "brief": "", "instruction": "Enhance the current Ideogram JSON without changing layout, bbox coordinates, visible text, or panel count." }, "gemma_assistant": { "enabled": false, "provider": "local_gemma", "mode": "full_json_enhance", "speed": "fast", "model": "text_encoders\\gemma4_e4b_it_fp8_scaled.safetensors", "selected_id": "", "target_field": "", "current_text": "", "brief": "", "request_ready": false }, "mask_paint": { "brush_size": 48, "strokes": [] }, "canvas": { "width": 2560, "height": 2160, "aspect_label": "1280 x 720 - HD 16:9 target / Storyboard 2x3 canvas 2560x2160", "target_resolution_key": "hd_720", "target_width": 1280, "target_height": 720 }, "scene": { "high_level_description": "A six-panel 2x3 cinematic storyboard contact sheet set on a frozen exoplanet, following one exhausted astronaut in a strange partly unsealed expedition suit crossing black ice plains, ruined research vehicles, and distant alien towers under two visible planets in the sky.", "aesthetics": "extremely photoreal live-action science fiction cinema, tactile frozen surfaces, strange worn astronaut suit, partly open asymmetric suit collar, visible inner thermal layers, practical space gear, believable human fatigue, cinematic continuity", "lighting": "cold blue planetary daylight, low amber rim light on ice crystals, breath vapor, long shadows, readable eyes, crisp silhouettes, clean subject separation in every panel", "photo": "35mm anamorphic film stills, varied shot scale, wide exoplanet landscape, tight medium portrait, top-down equipment detail, medium action frame, long telephoto silhouette, macro visor reflection, fine analog grain", "medium": "photograph", "art_style": "", "color_palette": [ "#06111A", "#557C8A", "#A8D8E8", "#E6E1C6", "#E87C45", "#07080A" ], "background": "Clean storyboard contact sheet with exactly two columns and three rows. Six separate 16:9 cinematic stills show different beats of the same frozen-planet sequence with thin panel borders, readable horizon lines, alien planets in the sky, and clear physical action." }, "i2i": { "enabled": false, "denoise": 0.28, "low_sigma_start_step": 12, "scheduler_hint": "Storyboard grid generation. Use AutoCropGrid with 2 columns and 3 rows.", "source_mode": "canvas_composite" }, "reference_mode": { "mode": "single", "label": "Single / Storyboard", "panel_count": 1, "target_index": 0, "locked_indices": [] }, "direct_prompt": { "enabled": false, "text": "" }, "json_override": { "enabled": false, "text": "" }, "items": [ { "id": "panel_01", "kind": "obj", "label": "Panel 1 - Ice Plain Arrival", "text": "", "x": 0, "y": 0, "w": 500, "h": 333, "desc": "ICE PLAIN ARRIVAL: wide establishing shot of a frozen exoplanet plain at sunrise, black ice road crossing toward ruined alien towers, one small astronaut figure walking alone, two planets hanging in the pale sky, long shadow, cold blue atmosphere.", "color_palette": [ "#557C8A", "#A8D8E8" ] }, { "id": "panel_02", "kind": "obj", "label": "Panel 2 - Broken Suit Collar", "text": "", "x": 500, "y": 0, "w": 500, "h": 333, "desc": "BROKEN SUIT COLLAR: tight medium portrait of the same exhausted astronaut pulling a frost-covered breathing scarf across the mouth, strange expedition suit partly unsealed at the collar, inner thermal fabric visible, breath vapor around focused eyes.", "color_palette": [ "#A8D8E8", "#E87C45" ] }, { "id": "panel_03", "kind": "obj", "label": "Panel 3 - Frozen Nav Module", "text": "", "x": 0, "y": 333, "w": 500, "h": 334, "desc": "FROZEN NAV MODULE: top-down close detail of a cracked wrist computer, circular oxygen gauge, folded star map, metal sample case, and frost crystals on white-blue ice, precise object clarity.", "color_palette": [ "#06111A", "#557C8A" ] }, { "id": "panel_04", "kind": "obj", "label": "Panel 4 - Rover Drag", "text": "", "x": 500, "y": 333, "w": 500, "h": 334, "desc": "ROVER DRAG: medium wide action frame of the astronaut dragging a broken rover battery sled across an ice trench, bent posture, boots cutting into snow crust, torn suit panels and loose cables moving in the wind.", "color_palette": [ "#557C8A", "#E6E1C6" ] }, { "id": "panel_05", "kind": "obj", "label": "Panel 5 - Footprints To Antenna", "text": "", "x": 0, "y": 667, "w": 500, "h": 333, "desc": "FOOTPRINTS TO ANTENNA: long telephoto silhouette of the astronaut walking along a frozen ridge toward a collapsed research antenna, clear footprints through powder snow, giant ringed planet low over the horizon.", "color_palette": [ "#A8D8E8", "#07080A" ] }, { "id": "panel_06", "kind": "obj", "label": "Panel 6 - Visor Planet Reflection", "text": "", "x": 500, "y": 667, "w": 500, "h": 333, "desc": "VISOR PLANET REFLECTION: extreme close-up of a cracked astronaut visor, twin planets and broken towers reflected in the glass, frost on eyelashes, skin dust, sweat, sharp helmet texture, cinematic macro detail.", "color_palette": [ "#07080A", "#A8D8E8" ] } ] }Editable working copy used by the IAMCCS StoryboardFrame canvas.
ideoboard_input_signatureSTRINGInternal guard that lets manual canvas edits survive while the same IdeoTranslate input remains connected.
ideoboardoptSTRINGConnect IAMCCS_IdeoTranslate.design_data_json or an ideoboard package here.

Outputs (5)

NameTypeDescription
positiveCONDITIONING
prompt_jsonSTRING
widthINT
heightINT
gemma_json_requestSTRING