Nodes/comfyui-superside-nodes/Superside Ideogram V4.5 Edit
ComfyUI Node

Superside Ideogram V4.5 Edit

Fixes the defect, won't move the shape

By Superside·Created 3 months ago·Updated 12 days ago· 1
Superside Ideogram V4.5 Edit
  • image_1
  • image_2
  • image_3
  • image_4
  • mask_image
  • images
  • info
◄prompt—►
◄api_key►
◄mask_modeoff - edit whole image►
◄invert_maskfalse►
◄num_images1►
◄qualityhigh►
◄edit_precisionhigh►
◄seed-1►

There's a moment in a retouching pipeline where everything is right except one thing - a scratch on a lens, a smudge where the hinge should be clean. You don't want the model to "reimagine" the photo; you want it to fix that and leave the other 4 megapixels alone. That's this node's job, and the pack's own testing is blunt about where it stops. On five eyewear cases, Ideogram V4.5 at quality: high repaired a broken detail 3/3 runs where GPT Image 2.5 Sunburst managed 1/3, changing only the defect while Sunburst redrew the frame. Asked to reshape an outline it went 0/2, Sunburst 2/2. It holds the geometry it's given - so correct detail with it, don't ask it to change a shape.

What it actually is

SupersideIdeogramV45EditNode is a thin ComfyUI wrapper over fal's ideogram/v4.5/edit endpoint. Nothing runs on your GPU: the node uploads your image to fal, waits, and drops the edited image back into the graph as a normal IMAGE. Same category as ComfyUI's own Partner Nodes - a metered storefront over a model you were never going to download, so expect per-call cost, your images leaving the machine, and the vendor's filter doing what it does.

What makes it pleasant to live with is that it speaks the same mask dialect as the rest of the pack, so it's a drop-in swap wherever one of the GPT Image nodes sits. Three things differ underneath:

  • Ideogram reads black as the editable area - backwards from every other node here. The wrapper inverts your mask on the way out, so one WHITE = edit mask feeds either model.
  • References go in their own reference_image_urls list, beside image_url, and fal takes at most three alongside a mask.
  • It's seeded, so a fixed seed reproduces a run.

The inputs that matter

prompt, image_1 and api_key are required. image_1 is the thing being edited; image_2–image_4 are references (a product shot to keep the look consistent, another angle). Wire three references and a mask and you're at the cap - the node trims the extras and logs a warning rather than erroring.

mask_mode defaults to off - edit whole image, which ignores mask_image entirely. That's deliberate: in a crop-stitch graph a separate node does the masking, so the edit model should treat the whole crop as editable. For standalone inpainting pick guide model (soft) (the mask is a hint) or lock outside mask (hard), which also composites the result back inside the mask locally so everything outside stays pixel-identical. invert_mask is for masks that already use the opposite convention - you don't need it just because Ideogram is backwards internally.

quality (default high) is where your money goes: $0.22 per image at high, $0.06 at medium. Their test had medium hitting 2/3 where high hit 3/3, so medium-then-verify is a sane budget move. edit_precision (default high) holds the edit closer to the masked region. seed takes -1 for the service's pick or a fixed int. num_images goes to 4, but only the first returned image comes back on images - four is four times the price for one usable wire. Outputs are images (IMAGE) and info (STRING, the result URL, handy for logging a batch). One honesty note: the seed tooltip says the chosen seed comes back in info; in the shipped code info is just the URL, so write your seed down.

No size, resolution or output_format widgets here - deliberately removed. The endpoint rejects output_format with a 422, and it's always called with image_size: auto, so you get no control over output dimensions. Resize downstream.

Install

Manager, or by hand:

cd ComfyUI/custom_nodes
git clone https://github.com/Superside/comfyui-superside-nodes.git
pip install -r requirements.txt   # into ComfyUI's own Python env

Restart ComfyUI and type "Superside" in the node search. Dependencies are light - fal-client, pillow, numpy, torch, requests - and there are no model downloads: the weights live on fal. Then paste your fal key into the api_key widget. This is an in-house pack for a design agency's production pipelines ("ask your project lead for the key"), not a community favourite, so there's no thread history to fall back on; the README is the documentation. A blank api_key falls back to the FAL_KEY environment variable. On a shared ComfyUI box keep passing an explicit per-workflow key - that input is the access gate, not a formality.

Where people get burned

  • The mask did nothing. You wired a mask, ran, and the whole frame re-rendered: mask_mode was still off. That's the default on purpose.
  • You pre-inverted the mask. Feed it WHITE = edit and let the node do the inversion.
  • You asked it to reshape something. The 0/2 is the whole story - geometry changes belong to Sunburst or a local edit model.
  • Cost drift. Every fal-backed node here paints its price under the node body, and the Superside Fal Cost Report node totals the run. Wire it into batch graphs; a few hundred repairs at $0.22 is a real invoice.

The natural pairing is the pack's own crop-stitch pair: a region selector finds the defect, Crop By Region cuts around it, you edit the crop with mask_mode: off, and Stitch Region pastes it back at full resolution. Paying to re-encode a 12-megapixel frame to fix a 400-pixel scratch is the expensive way to do it.

CategorySuperside

Inputs (13)

NameTypeDefaultDescription
promptSTRING—
image_1IMAGE—
api_keySTRING—
image_2optIMAGE—
image_3optIMAGE—
image_4optIMAGE—
mask_imageoptIMAGE—
mask_modeoptCOMBOoff - edit whole imageHow to use mask_image: - 'off - edit whole image': ignore the mask, edit everything. Use this in crop-stitch pipelines where a separate stitch node does the masking (this is how it worked before). - 'guide model (soft)': send the mask to GPT so it focuses edits on the white area (the model may still re-render the rest). - 'lock outside mask (hard)': same, plus paste the result back only inside the mask so everything outside stays pixel-identical to the input. Best for standalone inpainting.
invert_maskoptBOOLEANfalseOnly used when mask_mode is not 'off'. Mask convention is WHITE = edit this area, BLACK = keep. Turn ON if your mask is inverted (the area you want to change is black).
num_imagesoptINT11–4—
qualityoptCOMBOhighRendering quality. 'high' repaired a detail 3/3 in testing and 'medium' 2/3, at roughly a quarter of the price.
edit_precisionoptCOMBOhighHow closely the edit is held to the masked region. 'high' keeps more of the surrounding image untouched.
seedoptINT-1-1–2147483647Fixed seed for a reproducible run. -1 lets the service pick, and the seed it used comes back in `info`.

Outputs (2)

NameTypeDescription
imagesIMAGE—
infoSTRING—