Ideogram 3.0 Edit
Ideogram 3.0 Edit
- seedImage
- maskImage
- advancedFeatures.watermark.image
- providerSettings.ideogram.characterReferenceImages
- providerSettings.ideogram.characterReferenceImagesMask
- providerSettings.ideogram.styleReferenceImages
- image
If you've ever wanted Ideogram's text-in-image quality without owning a GPU or babysitting a 9.3B-parameter download, this is the node for it. Ideogram 3.0 Edit is the hosted, API version of Ideogram's image editor - you hand it an image, a mask, and a prompt, and it regenerates just the masked region. It runs entirely on Runware's cloud, so the only thing you install is the pack and an API key.
This is the same lab whose 4.0 open weights made the rounds in mid-2026 - the community went back and forth about that model's licensing and its famously strict safety filter. The hosted API is a separate product from those open weights, and a practical one: no license treadmill, no quantization wrangling, and it plugs straight into your ComfyUI graph as a native IMAGE.
How it works
The node is one of the generated classes in the Runware pack. Your seedImage tensor gets uploaded, the request goes over REST through the runware-sdk, and the edited image comes back and is decoded into a normal IMAGE you can feed into Preview Image or Save Image. Nothing runs on your machine but the plumbing.
The inputs that actually matter:
seedImage- the base image you're editing (required,IMAGE).maskImage- where the edit happens. Everything under the mask gets regenerated; everything outside is preserved. This is the whole game.positivePrompt- what you want in the masked area. "Replace the sign with a neon 'Open' in cursive" - Ideogram is the best-in-class name in in-image text, so this is where it shines.providerSettings.ideogram.stylePreset- a 63-item dropdown of artistic directions (Art Deco, Bauhaus, 80s illustration, and plenty more). Leave it on(default)unless you want a consistent visual language.numberResults- 1 to 20; each result uses a different seed. Cheap way to roll the dice.safety.checkContent- opt into a content-safety pass. When it runs, the node's title bar shows the verdict, e.g.NSFW: no. Ideogram's moderation is strict; don't be surprised if explicit prompts get refused.
There are also character-reference and style-reference image sockets, plus styleCode (an 8-char hex) if you've saved a style you want to reuse, and magicPrompt (AUTO/ON/OFF) for automatic prompt polish. The outputFormat/outputQuality pair just controls the file encoding; leave them alone unless you specifically need PNG.
Installing it
Runware's official pack, so it's a ComfyUI Manager one-liner: open the Custom Nodes Manager, search Runware, install, restart. Or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/Runware/ComfyUI-Runware
pip install -r ComfyUI-Runware/requirements.txt
Then create a key at runware.ai/api-keys and paste it into ComfyUI Settings → Runware API key (or set RUNWARE_API_KEY). The pack's dependencies are light - runware-sdk, pillow, soundfile - no model files, nothing to download. That's the entire point.
Where people get burned
The #1 failure is queueing without a key set - the node just errors until you fix the Settings field or env var. #2 is forgetting this is a paid API: Runware works on top-ups, and the community's gripes are the $20-ish minimum and mandatory card linking, not the per-image price, which is genuinely cheap. Budget before you crank numberResults to 20. And if you expected the open-weights Ideogram's refusal quirks: this is the hosted service, so moderation lives server-side - a refused prompt shows up in the title bar as NSFW: yes.
Inputs (26)
| Name | Type | Default | Description |
|---|---|---|---|
| seedImage | IMAGE | — | |
| maskImage | IMAGE | — | |
| positivePrompt | STRING | Text prompt describing elements to include in the generated output. | |
| advancedFeatures.watermark.imageopt | IMAGE | — | |
| providerSettings.ideogram.characterReferenceImagesopt | IMAGE | — | |
| providerSettings.ideogram.characterReferenceImagesMaskopt | IMAGE | — | |
| providerSettings.ideogram.styleReferenceImagesopt | IMAGE | — | |
| numberResultsopt | INT | 11–20 | Number of results to generate. Each result uses a different seed, producing variations of the same parameters. |
| advancedFeaturesopt | BOOLEAN | false | Enable to set advancedFeatures. Off uses the model's default. |
| advancedFeatures.watermark.bgColoropt | STRING | Background color in hex format. | |
| advancedFeatures.watermark.displayPositionopt | COMBO | (default) | Watermark position. |
| advancedFeatures.watermark.fontColoropt | STRING | Text color in hex format. | |
| advancedFeatures.watermark.opacityopt | BOOLEAN | false | Enable to set advancedFeatures.watermark.opacity. Off uses the model's default. |
| advancedFeatures.watermark.opacity_valueopt | FLOAT | 0.100.1–1 | Watermark opacity. |
| advancedFeatures.watermark.textopt | STRING | Watermark text. | |
| providerSettings.ideogram.magicPromptopt | COMBO | AUTO | Automatic prompt enhancement. |
| providerSettings.ideogram.renderingSpeedopt | COMBO | DEFAULT | Generation speed/quality tradeoff. |
| safetyopt | BOOLEAN | false | Enable to set safety. Off uses the model's default. |
| safety.checkContentopt | BOOLEAN | false | Enable or disable content safety checking. |
| providerSettings.ideogram.styleCodeopt | STRING | Predefined style code (8-char hex). | |
| providerSettings.ideogram.stylePresetopt | COMBO | (default) | Artistic style preset. |
| providerSettings.ideogram.styleTypeopt | COMBO | AUTO | Visual style and rendering approach. |
| ttlopt | BOOLEAN | false | Enable to set ttl. Off uses the model's default. |
| ttl_valueopt | INT | 60 | Time-to-live (TTL) in seconds for generated content. Only applies when `outputType` is `URL`. |
| outputFormatopt | COMBO | JPG | File format for the generated image. |
| outputQualityopt | INT | 9520–99 | Compression quality of the output. Higher values preserve quality but increase file size. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |