ComfyUI Node

Ideogram 4.5 Precise Edit

Change one thing, keep everything else

By Runware·Created 2 years ago·Updated 24 days ago· 142
Ideogram 4.5 Precise Edit
  • seedImage
  • maskImage
  • referenceImages
  • advancedFeatures.watermark.image
  • image
◄positivePrompt—►
◄seed0►
◄numberResults1►
◄advancedFeaturesfalse►
◄advancedFeatures.watermark.bgColor►
◄advancedFeatures.watermark.displayPosition(default)►
◄advancedFeatures.watermark.fontColor►
◄advancedFeatures.watermark.opacityfalse►
◄advancedFeatures.watermark.opacity_value0.10►
◄advancedFeatures.watermark.text►
◄settings.copyrightDetectionfalse►
◄settings.qualityhigh►
◄safetyfalse►
◄safety.checkContentfalse►
◄ttlfalse►
◄ttl_value60►
◄outputFormatJPG►
◄outputQuality95►

The problem this node solves

Instruction editors are amazing right up until the moment they subtly repaint the whole picture. You ask for a jacket colour change and the face drifts, the wall texture changes, the grain shifts, and the image is now a cousin of the one you liked. The local Edit models do this structurally: they re-emit the whole frame, so untouched regions come back close but not identical and the error compounds down a chain of edits. The community's workaround is to bolt a mask back on - Inpaint Crop into the edit, stitch the result back - because these models kept the convenience of masked editing without the pixel guarantee.

Ideogram 4.5 Precise Edit is the hosted, masked answer to that. You hand it the image, you tell it what to change, and it's built to leave the rest alone. The difference between it and the plain Ideogram 4.5 node is simple: Precise Edit requires a source image (seedImage), while 4.5 renders from a prompt and can only take a mask to constrain a fresh generation. If you have a picture and want it modified, this is the node; if you want a new picture, that's the other one.

And it's an API node - same category-wide bargain as every node in this pack: the prompt and the image leave your machine, the call is metered, and the model's filter is Ideogram's rather than something you can patch. That's a bigger deal here than usual, because the whole point is feeding it a real image of yours.

How it works

The node builds a Runware request (model: ideogram:4.5@precise-edit, taskType: imageInference), turns every IMAGE you wire in into an inline base64 PNG data URI - the seed image, the mask, and any references all travel inside the JSON - posts it through the runware-sdk over REST, then downloads the returned imageURL and gives you a torch IMAGE tensor. Dependencies are runware-sdk, pillow and soundfile; nothing loads into VRAM.

Key resolution is RUNWARE_API_KEY → ComfyUI Settings → ~/.runware/config.yaml. Cost and NSFW status show up on the node's title bar after each run, which is your only feedback on what a session is costing.

The inputs that matter

  • seedImage - required. The image being edited. Wire an IMAGE; a Load Image node works fine.
  • positivePrompt - required. Write it as an instruction ("replace the mug with a glass of milk"), not as a caption of the whole scene. The model already has the scene.
  • maskImage - optional, and the difference between "precise" and "mostly precise". Mask the region you want touched and everything outside it stops being negotiable.
  • referenceImages - an IMAGE to guide style or subject alongside the edit.
  • settings.quality - very_low / low / medium / high (default high). Iterate cheap on medium, render on high.
  • settings.copyrightDetection - off by default; opts into Hive likeness and logo checks post-generation.
  • seed and numberResults (1–20) behave as everywhere else in the pack: variations come back batched into one IMAGE.

Notice what isn't here: no width, no height, no sampler, no steps, and no magic prompt. A precise edit doesn't get to choose a new resolution, and it doesn't rewrite your instruction behind your back. Output is a single image (IMAGE) - wire it to Preview, Save Image, or into a local detail/upscale pass.

Installing it

ComfyUI Manager → search Runware → install → restart. Manual:

cd ComfyUI/custom_nodes
git clone https://github.com/Runware/ComfyUI-Runware
pip install -r ComfyUI-Runware/requirements.txt

Then set ComfyUI Settings → Runware API key, or export RUNWARE_API_KEY. Runware bills by top-up with a card on file, so the first hour is also the moment to decide whether per-call metering suits how you work.

Where people get burned

  • The image you wired in is ignored. seedImage is required and there is no default - an unconnected seed image is a validation stop, not a silent fallback.
  • The edit leaks past the mask. If you offered a mask, expect the model to respect it; if you didn't, expect it to be more conservative than a local editor but not surgical. Masking is the fix, and it's the whole reason this node exists separately.
  • Prompt shape errors. The commonest bad prompt is a full scene description. You're steering an existing image; describe the delta.
  • No Runware API key, verbatim, on queue - nothing in env, Settings or the CLI config.
  • Terse errors by design. Runware: ... [parameter 'maskImage', code …, HTTP 400] is the full message. RUNWARE_DEBUG=1 before launching gets you the stack.
  • Batches sneak up on you. numberResults above 1 is a single IMAGE with multiple frames, and each frame was a separate billed generation.
CategoryRunware/Image/ideogram

Inputs (22)

NameTypeDefaultDescription
seedImageIMAGE—
positivePromptSTRINGText prompt describing elements to include in the generated output.
maskImageoptIMAGE—
referenceImagesoptIMAGE—
advancedFeatures.watermark.imageoptIMAGE—
seedoptINT00–2147483647Random seed for reproducible generation. When not provided, a random seed is generated in the unsigned 32-bit range.
numberResultsoptINT11–20Number of results to generate. Each result uses a different seed, producing variations of the same parameters.
advancedFeaturesoptBOOLEANfalseEnable to set advancedFeatures. Off uses the model's default.
advancedFeatures.watermark.bgColoroptSTRINGBackground color in hex format.
advancedFeatures.watermark.displayPositionoptCOMBO(default)Watermark position.
advancedFeatures.watermark.fontColoroptSTRINGText color in hex format.
advancedFeatures.watermark.opacityoptBOOLEANfalseEnable to set advancedFeatures.watermark.opacity. Off uses the model's default.
advancedFeatures.watermark.opacity_valueoptFLOAT0.100.1–1Watermark opacity.
advancedFeatures.watermark.textoptSTRINGWatermark text.
settings.copyrightDetectionoptBOOLEANfalseOpt into post-generation copyright detection using Hive likeness and logo checks.
settings.qualityoptCOMBOhighRendering quality.
safetyoptBOOLEANfalseEnable to set safety. Off uses the model's default.
safety.checkContentoptBOOLEANfalseEnable or disable content safety checking. Increases total generation time.
ttloptBOOLEANfalseEnable to set ttl. Off uses the model's default.
ttl_valueoptINT60Time-to-live (TTL) in seconds for generated content. Only applies when `outputType` is `URL`.
outputFormatoptCOMBOJPGFile format for the generated image.
outputQualityoptINT9520–99Compression quality of the output. Higher values preserve quality but increase file size.

Outputs (1)

NameTypeDescription
imageIMAGE—