Replicate ideogram-ai/ideogram-v2
The text-in-image model, via API
- image
- mask
- IMAGE
If you need legible text inside an image - a poster, a logo mockup, a sign, a t-shirt design - Ideogram is the model that does it. Ideogram v2 renders words that actually spell correctly, which most diffusion models still can't. It's a closed, API-only model, so a node like this is the only way to touch it from a ComfyUI graph. This one runs it on Replicate's cloud: prompt up, image back, pay per run, need a Replicate account and a REPLICATE_API_TOKEN. Nothing to install locally beyond the wrapper.
Worth knowing whose model this is, because the pedigree is deep and rarely mentioned: Ideogram was founded by the ex-Google Brain researchers behind the DDPM and Imagen papers - as foundational a lineage as it gets in this field. They kept it closed for three generations, and text rendering was the differentiator from day one.
How it works
You give it a prompt, optionally an aspect ratio or exact resolution and a style, and it generates. The one behavior to understand is magic prompt: Ideogram can silently expand your prompt with an LLM to add detail before generating. Great when you're feeling lazy, annoying when you want exact control - so there's a switch.
The inputs and outputs that matter
prompt(required) - describe the scene, and put the text you want rendered in quotes:a neon sign that says "OPEN 24 HOURS".magic_prompt_option(Auto) -Auto,On, orOff. Set itOffwhen you want your prompt used verbatim; leave itAuto/Onto let Ideogram embellish.style_type(None) -Auto,General,Realistic,Design,Render 3D, orAnime.DesignandRealisticare the workhorses for graphics and photos respectively.aspect_ratio(1:1) - or useresolutionfor one of its many exact pixel sizes.
Output is a single IMAGE. You can also pass an image + mask to edit/inpaint, plus negative_prompt and seed. force_rerun bypasses Replicate's cache.
How to install it
One install covers every Replicate node.
- ComfyUI Manager: search ComfyUI-Replicate, install, restart.
- Manual:
then restart.cd ComfyUI/custom_nodes git clone https://github.com/replicate/comfyui-replicate cd comfyui-replicate pip install -r requirements.txt
No weights download - Ideogram is closed and lives on Replicate. Only the replicate pip package installs. Set your token first: export REPLICATE_API_TOKEN="r8_..." (replicate.com/account/api-tokens).
Common issues & troubleshooting
The result ignored half my prompt or added stuff I didn't ask for. That's magic prompt rewriting you. Set magic_prompt_option to Off for literal control, especially when the exact spelling of your text matters.
A prompt got refused, or you got a "safety" placeholder image back. Ideogram trains its content filter into the weights - it can emit a refusal image when it judges a prompt unsafe. This is a property of the model, not a bug in the node or ComfyUI; Ideogram's own team is who tuned it that way. Rework the prompt if you hit it.
The text is misspelled or garbled. Keep the text short, in quotes, and don't ask for a whole paragraph - even Ideogram degrades on long strings. Re-roll the seed; text rendering benefits from a couple of attempts.
Great text, mediocre photo. Ideogram's edge is typography, not necessarily the most photorealistic scenes. If you want text on a truly photographic background, generate the layout here and composite, or lean on style_type: Realistic and accept a few re-rolls. Same image on re-run means the Replicate cache fired - change the seed or set force_rerun.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | — | |
| negative_promptopt | STRING | — | |
| aspect_ratioopt | COMBO | 1:1 | 11 options: 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, +5 |
| resolutionopt | COMBO | None | 79 options: None, 512x1536, 576x1408, 576x1472, 576x1536, 640x1024, +73 |
| magic_prompt_optionopt | COMBO | Auto | 3 options: Auto, On, Off |
| imageopt | IMAGE | — | |
| maskopt | IMAGE | — | |
| style_typeopt | COMBO | None | 7 options: None, Auto, General, Realistic, Design, Render 3D, +1 |
| seedopt | INT | — | |
| force_rerunopt | BOOLEAN | false | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |