Add Watermark Image
Stamp a logo or signature on every image without leaving ComfyUI
- original_image
- Watermark_image
- mask
- image
Add Watermark Image overlays a logo, signature, or text badge onto another image, with real control over size, position, rotation, and opacity. If you post batches of gens anywhere, this is the node that saves you from opening GIMP forty times to paste your handle onto each one. It runs on pure PIL on the CPU, so it's instant and costs you zero VRAM - it slots into the post-processing layer, the deterministic stuff you do after sampling rather than burning another diffusion pass.
How it works
It takes your original_image and your Watermark_image, converts the watermark to RGBA, optionally knocks out parts with a mask, rotates it, applies transparency, and composites it at an anchor point plus your chosen offset. All classic image compositing, none of it AI.
The inputs that matter for a beginner:
original_imageandWatermark_image- the base and the overlay. Both areIMAGEsockets, so your logo can come from a Load Image node or even be generated.Zoom_mode- the combo that decides how the watermark gets sized:None(keep its natural size),Fit(scale to fit the original, keeping aspect),zoom(scale byScaling_factor), orScale_according_to_input_width_and_height(useScale_width/Scale_heightdirectly).initial_position- nine presets: Centered, Top, Bottom, Left, Right, and the four corners.X_directionandY_directionthen nudge it by pixels from that anchor (step 10).rotate- any angle from β180 to 180. A 45Β° corner stamp looks way more deliberate than a horizontal one.transparency- 0 means fully opaque, 100 means invisible. This is the one that trips people up on first use; the name suggests "how transparent" but the default of 0 gives you a solid stamp.mask- optional. The mask is inverted and used as the alpha channel, so white regions of the mask knock out the watermark. Handy for clipping a logo so it doesn't run over a face or a busy area.
Output is a single image. Send it to a Preview or Save Images node and you're done.
A typical workflow
Load your batch, load your logo, drop this node between them with initial_position: Bottom Right, transparency: 20, rotate: -15, and let the batch flow through. Because it's CPU-only and per-image, a thousand frames cost you a few seconds, not a GPU allocation.
Installing it
It ships in ComfyUI_Eclipse, installed once for the whole pack:
cd ComfyUI/custom_nodes
git clone https://github.com/r-vage/ComfyUI_Eclipse
then restart ComfyUI (or use Manager and search "ComfyUI Eclipse"). This node only needs Pillow, which ComfyUI already brings, so there are no extra deps to chase.
Gotchas
The migration one is pack-wide: ComfyUI_Eclipse was previously RvTools, and v4.0.0 removed all legacy nodes - run old workflows through the Workflow Migration Tool node (or python tools/migrate_workflow.py <workflow.json>) to rewrite old IDs with a backup. And remember: transparency of 100 erases the watermark entirely, so if your stamp "isn't showing," check that slider before you blame the node.
Inputs (13)
| Name | Type | Default | Description |
|---|---|---|---|
| original_image | IMAGE | β | |
| Watermark_image | IMAGE | β | |
| Zoom_mode | COMBO | 4 options: None, Fit, zoom, Scale_according_to_input_width_and_height | |
| Scaling_method | COMBO | 3 options: nearest-exact, bilinear, area | |
| Scaling_factor | FLOAT | 1.00.01β16 | β |
| Scale_width | INT | 5120β32768 | β |
| Scale_height | INT | 5120β32768 | β |
| initial_position | COMBO | 9 options: Centered, Top, Bottom, Left, Right, Top Left, +3 | |
| X_direction | INT | 0-48000β48000 | β |
| Y_direction | INT | 0-48000β48000 | β |
| rotate | INT | 0-180β180 | β |
| transparency | FLOAT | 00β100 | β |
| maskopt | MASK | β |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | β |