Nodes/opencv-comfyui/OpenCV seamlessClone_1
ComfyUI Node

OpenCV seamlessClone_1

Poisson blending, UMat overload

By geroldmeisinger·Created about a year ago·Updated about a year ago· 35
OpenCV seamlessClone_1
  • src
  • dst
  • mask
  • blend
  • nparray
p
flags

seamlessClone_1 is seamlessClone_0's UMat overload - the same cv2.seamlessClone, the same behavior, and no difference you'll ever see from inside ComfyUI. The pack's generator emitted a numbered node per OpenCV type-stub overload, so this is the second copy of the pack's most genuinely useful function: Poisson image editing that blends a cut-out subject into a background with no visible seam.

The full how-to

If you came here for the how-to, read the seamlessClone_0 article - it has the full mechanism (gradients preserved inside, pixel values matched at the boundary), the input rundown (src, dst, mask, p as a Point literal like (512, 512), flags where 1 = NORMAL_CLONE, 2 = MIXED_CLONE, 3 = FEATURE_EXCHANGE), and the two classic traps: the p string must be valid Python literal syntax or you get invalid syntax (<unknown>, line 0), and the optional blend out-parameter should be left unwired. Output is a single nparray.

Installing

cd ComfyUI/custom_nodes
git clone https://github.com/geroldmeisinger/opencv-comfyui
pip install opencv-contrib-python

Install: ComfyUI Manager → search "opencv-comfyui", or the commands above, then pip install opencv-contrib-python for the dependency (declared in the pack's requirements.txt; no model downloads).

Verdict

The one useful fact about this pair, same as every _0/_1 pair in the pack: they're interchangeable. A workflow that references seamlessClone_1 runs unchanged on seamlessClone_0. The duplication is a generation artifact, not a feature - pick the one your workflow names and don't worry about the other.

Practical note before you run it: mask must be single-channel 8-bit grayscale and cover the part of src you want cloned - a 3-channel mask is the classic silent failure, where the clone runs but blends nothing sensible. And keep p inside the destination's bounds, or OpenCV asserts on the out-of-range point.

Categoryimage/OpenCV

Inputs (6)

NameTypeDefaultDescription
srcNPARRAY
dstNPARRAY
maskNPARRAY
pSTRING
flagsINT
blendoptNPARRAY

Outputs (1)

NameTypeDescription
nparrayNPARRAY