DP Ideogram Character
Same face every time, without touching a checkpoint — the Ideogram API shortcut
- character_image
- images
- info
Keeping the same character across generations is the most-cited unsolved problem in this hobby, and the usual answers are a commitment. Train a LoRA, and you're collecting 15–25 reference images and babysitting a training run. Go the instruction-editing route, and you're stacking Qwen-Image-Edit with masks and praying the face survives. DP Ideogram Character skips all of it: give it one photo and a prompt, and a hosted model returns that same person in new scenes. No LoRA, no adapter, no GPU grind - just an API key and a per-image price tag.
This node is part of Desert Pixel's small DP collection, and "node" undersells it. Underneath, it's a thin ComfyUI wrapper around Ideogram's v3 character-reference API. You drop in an IMAGE, the node packs it up with your prompt and settings, POSTs a multipart request to api.ideogram.ai/v1/ideogram-v3/generate, then downloads the results and reassembles them into a normal ComfyUI image tensor. The model itself never touches your machine - Ideogram's servers do all the work. That's the whole trade in one sentence: zero local compute, real money per image.
The inputs that matter
- api_key - your Ideogram API key from the developer portal. It's marked as a password field, but it's still stored plaintext inside the workflow JSON. Don't share workflows that contain it.
- prompt - describe the scene, pose, clothing, lighting. The character's face comes from the reference, everything else from your words.
- character_image - the reference. A clear, well-lit portrait or headshot works best. The node takes the first image of whatever batch you feed it, converts it to RGB, and auto-resizes if it's over the ~10MB API limit.
- render_speed - Turbo / Default / Quality. This is your wallet control, since character-reference pricing runs roughly $0.04 / $0.07 / $0.10 per image respectively. Multiply by image_count (1–4) and you've got the cost of a queue.
- style_type - Auto, General, Realistic, Design, or Fiction, per the author's own tooltip. Auto lets the model pick; Realistic is your photoreal default.
- aspect_ratio - 15 presets like
1:1 (1024x1024)and16:9 (1456x832), mapped internally to the API's format. - seed and magic_prompt - optional. Seed
-1means random (the node generates one and reports it back); set a fixed value if you want reproducible-ish runs, though hosted APIs are never as deterministic as local sampling.AUTOmagic prompt leaves it to the API;ON/OFFforce it.
The outputs
- images - the generated renders as a standard
IMAGEbatch, so they wire straight into Save Image or anything else downstream. - info - a
STRINGwith the seed used, image count, and each image's dimensions. Dull until something goes wrong - see below.
Installing
ComfyUI Manager: search "DP Ideogram Character" and install, or clone manually:
cd ComfyUI/custom_nodes
git clone https://github.com/DesertPixelAi/ComfyUI-DP-Ideogram-Character
cd ComfyUI-DP-Ideogram-Character
pip install -r requirements.txt
Then restart ComfyUI. The requirements.txt lists torch, torchvision, numpy, Pillow, and requests - every one of those already ships with ComfyUI, so the pip step is basically ceremonial and there are no model files to download. The only real prerequisite is an Ideogram API key with credits on it.
Where people get burned
The big one: errors don't look like errors. When generation fails, the node doesn't raise - it returns a red-tinted 512×512 placeholder image plus the error message in the info string. If you get a red square back, don't save it; read info and check the ComfyUI console, which prints the API status and a snippet of the response.
Beyond that: "Invalid API key" means exactly that, so re-copy it from the dashboard. "No images returned" is your quota or credits running dry. And remember the API's own limits - no custom color palettes, no style-reference images stacked on character reference, no character masks in Generate mode. If you need the character across a hundred shots, the per-image pricing makes a LoRA cheaper in week two. But for a quick, consistent character on a deadline, this is the node you'll actually reach for.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| api_key | STRING | — | |
| prompt | STRING | — | |
| character_image | IMAGE | — | |
| aspect_ratio | COMBO | 1:1 (1024x1024) | 15 options: 1:1 (1024x1024), 16:9 (1456x832), 9:16 (832x1456), 4:3 (1152x896), 3:4 (896x1152), 10:16 (896x1408), +9 |
| image_count | COMBO | 1 | 4 options: 1, 2, 3, 4 |
| render_speed | COMBO | Default | 3 options: Turbo, Default, Quality |
| style_type | COMBO | Auto | Auto: Let AI choose style, General: Balanced approach, Realistic: Photorealistic style, Design: Artistic/illustration style, Fiction: Fantasy/sci-fi style |
| seedopt | INT | -1-1–2147483647 | — |
| magic_promptopt | COMBO | AUTO | 3 options: AUTO, ON, OFF |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | — |
| info | STRING | — |