Nodes/comfyui-libcom-image-composition/Image Harmonization (Auto)
ComfyUI Node

Image Harmonization (Auto)

Just harmonize it — the auto node that hides the model dropdown

By fuselayer·Created 11 months ago·Updated 10 months ago· 0
Image Harmonization (Auto)
  • composite_image
  • mask
  • harmonized_image
prefer_qualitytrue
max_resolution1024

If the multi-model sibling in this pack gives you choice paralysis, this is the "please just make it not look pasted" node. Image Harmonization (Auto) runs the same harmonization models - the classical CNN ones from the libcom toolkit that re-tint the masked foreground to match its background - but picks the model for you based on two things: the input resolution and one boolean. Same output type, same mask semantics, none of the decision-making.

What it actually decides

It's a thin wrapper around the multi-model node, and it's honest about being thin. The whole selection logic is a few lines:

  • Input bigger than 1024px on its longest side and prefer_quality on → CDTNet_HAdobe5k_2048 (the best-quality, slow, memory-heavy one).
  • At or under 1024px with prefer_quality on → CDTNet_iHarmony4_256 (the balanced default).
  • prefer_quality off → CDTNet_sim_base256 (the fast, LUT-only variant).

Worth knowing: it only ever picks CDTNet variants. No PCT-Net, no Harmonizer, no iSSAM, no matter what your image looks like. "Auto" really means "auto-pick a CDTNet by size," which is fine for the common cutout-paste job - CDTNet is the workhorse of the set - but it's not "the best model for your content."

The inputs that matter

  • composite_image (IMAGE) and mask (MASK) - same as the main node: white in the mask = the foreground region to harmonize.
  • prefer_quality (BOOLEAN, default true) - flip it off when you're churning through lots of small images and want the fast sim model.
  • max_resolution (INT, default 1024) - the processing ceiling; drop it if you're short on VRAM.

Output is a single harmonized_image, ready to wire into SaveImage, a comparison node, or the pack's HarmonyScore node if you want a before/after number.

When to reach for it

Three cases: quick previews where you don't care which model runs, batch pipelines where you want one node that never needs touching, and a placeholder while you build the workflow - you can swap it for the multi-model node later and get the pctnet_strength / blend controls back without changing anything upstream. The prefer_quality toggle is the one knob worth touching; the default resolution logic is sensible enough that you can ignore it.

Install and gotchas

Same pack, same steps: ComfyUI Manager (search "comfyui-libcom-image-composition") or git clone https://github.com/fuselayer/comfyui-libcom-image-composition into ComfyUI/custom_nodes/, then restart. The model weights ship in the repo's checkpoints/ folder - no download, which is the nicest thing about this pack. If you hit CUDA OOM, lower max_resolution; the sim model it picks with prefer_quality off is the cheapest inference in the set. Like the rest of the pack, it's early days - a one-commit, zero-impression project - so treat it as a convenience wrapper with a short support horizon, not a maintained product.

Categoryimage/harmonization

Inputs (4)

NameTypeDefaultDescription
composite_imageIMAGE
maskMASK
prefer_qualityoptBOOLEANtrue
max_resolutionoptINT1024256–4096

Outputs (1)

NameTypeDescription
harmonized_imageIMAGE