Image Harmonization (Auto)
Just harmonize it — the auto node that hides the model dropdown
- composite_image
- mask
- harmonized_image
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_qualityon → CDTNet_HAdobe5k_2048 (the best-quality, slow, memory-heavy one). - At or under 1024px with
prefer_qualityon → CDTNet_iHarmony4_256 (the balanced default). prefer_qualityoff → 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) andmask(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.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| composite_image | IMAGE | — | |
| mask | MASK | — | |
| prefer_qualityopt | BOOLEAN | true | — |
| max_resolutionopt | INT | 1024256–4096 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| harmonized_image | IMAGE | — |