2🐕Add finished watermark image
Stamp a logo or watermark image onto your output, with real position control
- original_image
- Watermark_image
- mask
- IMAGE
If you're generating images for anything you're going to publish, you eventually need to stamp a logo or watermark onto the output - and doing that "properly" (scaled sanely, positioned where you want, not opaque enough to ruin the shot) usually means a trip to an external editor. EG_CPSYTJ ("Add finished watermark image") does the whole job as one node: give it your finished image and a pre-made watermark image, and it composites the second onto the first with full control over scale, position, rotation, and opacity.
How it works
You provide two images - original_image and Watermark_image - plus a pile of placement controls, and the node composites the watermark onto the original in one pass. Zoom_mode decides how the watermark's size is determined: Fit sizes it to fit within given bounds, zoom applies a scale factor directly, and Scale_according_to_input_width_and_height sizes it to explicit pixel dimensions. initial_position gives you nine anchor points (Centered, Up, Down, Left, Right, and the four corners) to start from, and X_direction / Y_direction nudge it from there in pixels. rotate spins the watermark, and transparency fades it. There's also an optional mask input - useful if you want the watermark constrained to a specific region rather than free-floating, e.g. only stamping the bottom third of a promotional image.
The inputs and outputs that matter
The controls that matter most for a beginner: initial_position (pick a corner and you're 90% done), Scaling_factor (default 1, range 0.01–16 - shrink or blow up the watermark relative to its native size) or the explicit Scale_width / Scale_height (default 512×512) if you're using the dimension-based zoom mode, and transparency (0–100, default 0 - 0 is fully opaque) to keep it subtle. X_direction / Y_direction (both default 0, range ±48000) fine-tune placement once you've picked a corner. Scaling_method (nearest-exact / bilinear / area) controls resize quality - bilinear is the safe default for a smooth-edged logo. Output is a single IMAGE with the watermark composited in.
How to install it
ComfyUI Manager: search Comfyui-ergouzi-Nodes. Manually:
cd ComfyUI/custom_nodes
git clone https://github.com/11dogzi/Comfyui-ergouzi-Nodes.git
Restart ComfyUI. The README's own framing is worth repeating here since it applies to every node in this pack: this English repo is frozen, with the author's ongoing work happening in a Chinese-named sibling pack instead. According to that same README, this watermark node is also meant to be paired with a batch image loader for stamping a whole folder at once - that batching node isn't part of this particular brief, but it's the workflow the author designed this one for.
Common issues & troubleshooting
Watermark comes out the wrong size entirely. This is the most common trip-up with placement nodes like this: Zoom_mode changes what Scaling_factor, Scale_width, and Scale_height actually mean, so if you set explicit width/height but left Zoom_mode on zoom (which uses Scaling_factor instead), your dimension values are silently ignored. Match the zoom mode to the sizing fields you're actually using.
Watermark placement looks right in isolation but wrong on different-sized source images. X_direction/Y_direction offsets are pixel values, not percentages - a nudge that looks perfect on a 512px image will land somewhere completely different on a 2048px one. Re-tune the offsets whenever your source resolution changes, or anchor with initial_position alone and skip the manual offset.
Rotated watermark has visible hard edges. If your watermark PNG doesn't already have a transparent background, rotating it will expose its background color as a rectangle around the logo. Use a watermark image with real alpha transparency, not a flattened PNG or JPEG.
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–16384 | — |
| Scale_height | INT | 5120–16384 | — |
| initial_position | COMBO | 9 options: Centered, Up, Down, Left, Right, Up 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 | — |