Ideogram 4 EmberFrame Prompt Builder Workflow
First of all, a quick thank you again to the people behind ComfyUI, CivitAI, the Ideogram 4 workflow and model releases, KJNodes, and all of the creators making nodes, checkpoints, LoRAs, tools, and workflows, then sharing them for everyone else to use. Without that community, this kind of workflow would not be possible, and it definitely would not be anywhere near as fun to build.
This is my first public 1.0 release of an Ideogram 4 workflow.
The goal here is simple: make Ideogram 4 easier to prompt inside ComfyUI. Ideogram 4 is very strong, but the structured prompt builder can feel a little different if you are used to normal text prompts. This workflow is built around the Ideogram 4 Prompt Builder KJ node and gives you a few clean ways to feed it without needing to build the JSON by hand every time.
It is not meant to be a huge all-in-one workflow. It is a simple Ideogram 4 setup with model selection in one place, three prompt entry routes, a compact Engine Subgraph, and CivitAI-friendly image saving and metadata.
The short version is this
· This is a simple Ideogram 4 workflow for ComfyUI.
· Models are selected once in the Model Selection section.
· The workflow uses the Ideogram 4 Prompt Builder KJ node.
· You can prompt in three ways: User Prompt, Prompt from Image, or Import JSON.
· Only one prompt source should be enabled at a time.
· User Prompt and Prompt from Image use a shared Gemma text encoder called CLIP_GEMMA.
· Import JSON sends your pasted JSON directly to the KJ node.
· The Engine Subgraph keeps the sampler, size, seed, decode, and Image Saver metadata path together.
· The workflow is set up for CivitAI-friendly image saving and shared image creation data.

What this workflow does
At its core, this workflow loads the Ideogram 4 scaled model, the Ideogram 4 unconditional model, the Qwen text encoder, the Flux2 VAE, and the optional Realism Engine Ideogram 4 LoRA. The generated prompt is passed into the Ideogram 4 Prompt Builder KJ node, then into the Engine Subgraph for generation and saving.
The workflow includes:
· Text-to-image generation with Ideogram 4
· Central model selection
· Shared CLIP, VAE, SCALED_MODEL, and UNCONDITIONAL_MODEL variables
· Shared CLIP_GEMMA for the AI prompt builder routes
· User Prompt enhancement using Gemma
· Prompt from Image using Gemma
· Import JSON for direct Ideogram 4 JSON prompts
· Ideogram 4 Prompt Builder KJ editing
· Aspect ratio, orientation, megapixel, seed, sampler, scheduler, CFG, and step controls in the Engine Subgraph
· Optional Realism Engine Ideogram 4 LoRA loading
· CivitAI-friendly image saving and metadata
Important first step: custom nodes required
Install these with ComfyUI Manager where possible, or manually clone/download them into your ComfyUI/custom_nodes/ folder.
· WAS Node Suite - Revised
For a manual install, custom nodes normally go here:
ComfyUI/custom_nodes/
For a Windows portable install, that is usually:
ComfyUI_windows_portable/ComfyUI/custom_nodes/
After installing or updating node packs, restart ComfyUI before loading the workflow.
Model setup
The workflow is built around the Comfy-Org Ideogram 4 files and is currently set up for the FP8 versions.
Download the Ideogram 4 model files from:
https://huggingface.co/Comfy-Org/Ideogram-4
You will need:
· ideogram4_fp8_scaled.safetensors
· ideogram4_unconditional_fp8_scaled.safetensors
· qwen3vl_8b_fp8_scaled.safetensors
· flux2-vae.safetensors
For the prompt builder routes, you will also need:
· gemma4_e4b_it_fp8_scaled.safetensors
Gemma4 text encoder:
The workflow also has the Realism Engine Ideogram 4 LoRA enabled in both LoRA loaders by default (just because I really like it):
https://civarchive.com/models/2688234/realism-engine-ideogram-4?modelVersionId=3026632
If you do not want to use that LoRA, disable it or replace it with your own LoRA choice.
Folder layout
Place the model files like this:
ComfyUI/
└── models/
├── diffusion_models/
│ └── Ideogram-4/
│ ├── ideogram4_fp8_scaled.safetensors
│ └── ideogram4_unconditional_fp8_scaled.safetensors
├── text_encoders/
│ ├── gemma4_e4b_it_fp8_scaled.safetensors
│ └── Qwen/
│ └── qwen3vl_8b_fp8_scaled.safetensors
├── vae/
│ └── flux2-vae.safetensors
└── loras/
└── Ideogram-4/
└── Realism_Engine_Ideogram_V3.safetensors
Model Selection
The Model Selection section is there so you only need to select the main model files once. The workflow then reuses those selections everywhere else.
This section loads:
· the scaled Ideogram 4 model
· the unconditional Ideogram 4 model
· the Qwen Ideogram 4 CLIP
· the Flux2 VAE
· the Gemma4 text encoder for the AI prompt builder routes
The shared Gemma loader is stored as CLIP_GEMMA. User Prompt and Prompt from Image both use that shared value inside their subgraphs.

Prompt sources
There are three prompt routes in the workflow:
· User Prompt
· Prompt from Image
· Import JSON
Only one should be used at a time. The Prompt Options switch is there to make that clear.
User Prompt
The User Prompt route is the easiest way to start if you want to type a normal idea and have the workflow turn it into a structured Ideogram 4 JSON prompt.
Write your prompt in the User Prompt box, enable User Prompt in Prompt Options, then set the KJ node import_mode to always.
Gemma will rewrite the idea into the JSON structure expected by the Ideogram 4 Prompt Builder KJ node. The result then feeds into the KJ node.

Prompt from Image
Prompt from Image lets you load an image and have Gemma describe it as an Ideogram 4 JSON prompt.
Load your image in the Prompt from Image section, enable Prompt from Image in Prompt Options, then set the KJ node import_mode to always.
This is useful if you want to use an existing image as a visual prompt reference or if you want a quick structured prompt starting point based on a picture.

Import JSON
Import JSON is for people who already have a JSON prompt ready.
Paste your JSON into the Import JSON box, enable Prompt from JSON in Prompt Options, then set the KJ node import_mode to always.
This route does not use Gemma. It sends the pasted JSON straight to the KJ node.

The important KJ import_mode setting
This is the part most likely to cause confusion, so it is worth repeating.
When using one of the prompt routes:
· User Prompt
· Prompt from Image
· Import JSON
set the KJ node import_mode field to:
always
When you are not using those prompt routes and want to edit directly inside the KJ node, set import_mode back to:
when empty
If the KJ node is set to the wrong mode, it may not import the incoming prompt when you expect it to, or it may overwrite what you are trying to edit directly.
Easy gotcha: bbox detail can disappear
One thing to watch out for: if all three Prompt Options are turned off but the KJ node is still set to import_mode: always, the final prompt output can lose the bounding box detail. The main prompt may still run, so the image may look roughly right, but the detailed bbox-driven object information will be missing.
The confusing part is that the bounding boxes are not removed from the Ideogram 4 editor. They can still be visible there, but they are not included in the final prompt output.
The fix is simple: when all prompt routes are off and you are working directly in the KJ node, set import_mode back to when empty. The bounding boxes should return to the final prompt output.

Engine Subgraph
The Engine Subgraph is where the generation actually happens.
It contains the main controls for:
· CFG
· steps
· scheduler
· sampler
· seed
· aspect ratio
· orientation
· megapixels
· latent creation
· sampling
· VAE decode
· Image Saver output and metadata
The front-facing Engine Subgraph node exposes the most important controls, so you should not need to open the subgraph constantly once everything is set up.

Inside the Engine Subgraph, the workflow connects the sampler path, the aspect resolution selector, the seed generator, the VAE decode, and the Image Saver metadata fields.

Gemma AI enhancer subgraph
The User Prompt and Prompt from Image routes both use a Gemma-based enhancer subgraph. This subgraph takes either typed text or a loaded image, applies the instruction prompt, and produces JSON for the Ideogram 4 Prompt Builder KJ node.
The instruction is deliberately strict: the output should be JSON only, with the expected Ideogram-style fields. This helps keep the prompt builder route predictable.

CivitAI metadata and image saving
CivitAI and shareable image creation data are important to me, so the workflow uses ComfyUI-Image-Saver and routes model names, sampler settings, scheduler, seed, size, prompt data, and LoRA data into the saved image metadata path.
The workflow has been cleaned for sharing:
· saved example prompts have been removed
· personal paths have been removed
· the prompt image input uses example_input.png
· model folders use share-friendly relative ComfyUI paths
· the Image Saver model field uses a public placeholder
· the Realism Engine LoRA is the only LoRA left enabled by default
Suggested first test
After installing the required nodes and models:
1. Open the workflow.
2. Check Model Selection and make sure every model file is found.
3. Start with User Prompt enabled.
4. Type a simple prompt.
5. Set KJ import_mode to always.
6. Run one image.
7. After the prompt has imported into the KJ node, switch import_mode back to when empty if you want to edit directly inside KJ.
Once that works, try Prompt from Image and Import JSON.
Known notes
Keep ComfyUI updated. The workflow uses the ideogram4 CLIP type and current TextGenerate support.
If the Gemma routes do not run, check CLIP_GEMMA in Model Selection first.
If the main Ideogram 4 generation path does not run, check the scaled model, unconditional model, Qwen CLIP, and VAE paths first.
If the Realism Engine LoRA is missing, either install it into models/loras/Ideogram-4/ or disable both LoRA loaders.
This is a 1.0 workflow, so I will probably keep adjusting it as I use Ideogram 4 more. For now, the main goal is to keep the workflow simple, clean, and easy to share.
Description
First public 1.0 release of my Ideogram 4 EmberFrame workflow. This workflow is built around the Ideogram 4 diffusion model and the Ideogram 4 Prompt Builder KJ node. The aim is to keep the workflow simple to use: select the models once, choose one prompt source, then let the workflow route everything into the KJ prompt builder and the Engine Subgraph. It includes User Prompt enhancement, Prompt from Image, Import JSON, shared model selection, CivitAI-friendly image saving, and image metadata support.



















