ComfyUI Node

Watermarking

Stamp a Watermark Onto Your Output — and Know Its Quirks

By Off-Live·Created 3 years ago·Updated 2 years ago· 0
Watermarking
  • source
  • watermark
  • IMAGE

Posting generated work without a watermark is how it ends up on someone's "AI art" thread without credit. This node stamps one on for you: give it your image and a watermark image, and it places the watermark in the top-left corner, sized to 15% of your image's width. Two inputs, one composited output, nothing else to configure.

It's part of ComfyUI-off-suite, and it does the job - with two quirks you should know before you bake it into your save pipeline, because both come straight out of the source.

How it works

  • source - the image to watermark.
  • watermark - the mark itself. Any IMAGE works; a logo, text rendered to an image, a small PNG.

The node resizes the watermark to 15% of the source's width (keeping its aspect ratio), then pastes it at position (10, 10) - top-left, 10px in from each edge. Output is a single IMAGE, ready for your save node.

Quirk one: your transparent PNG's alpha is ignored

Here's where it gets interesting. The code calls .convert() on the watermark, which drops the alpha channel. Then - because of how the paste is done - the watermark's own pixels are used as the paste mask. Translation: a white-on-transparent logo does not blend as a soft stamp; it pastes as an opaque block wherever the logo is white. And black-on-transparent? The mask is derived from luminance, so black text pastes nearly invisible.

The practical fix is to design your watermark image for this node: white or light content on a black background. That reads as an opaque light stamp in the corner. If your watermark is a typical transparent PNG with white text, expect a hard-edged white box - recognizable, but not classy.

Quirk two: no rotation, no position control

You get exactly one placement: top-left, 10px in, 15% width. There's no angle, no opacity slider, no corner choice. If your workflow needs the diagonal "sample watermark" look or bottom-right placement, this node won't do it - those are manual composite or a dedicated watermark node. What this one offers is zero-effort branding on every output, which for a personal pipeline is often exactly enough.

Where it fits

  • Automating a small credit mark on every generated image before the save node.
  • Batch proofing, where you want your handle on the contact sheet so it can't be cropped-and-reposted without effort.
  • Content pipelines where a light visible mark beats an invisible one (metadata watermarks are easy to strip; a visual one at least survives screenshots).

It sits naturally at the end of a graph: sampler → decode → this node → save. Wire it in once and every output gets the mark without you thinking about it.

Install

cd ComfyUI/custom_nodes
git clone https://github.com/Off-Live/ComfyUI-off-suite
# or: ComfyUI Manager → search "ComfyUI-off-suite"

No dependencies, no models - it's a few lines of Pillow. Same pack-wide note: quiet since mid-2024, but a watermark stamp doesn't really break. And one reminder for the workflow: a watermark is a signal, not a guarantee - treat it as credit and deterrent, not as actual protection.

CategoryOFF

Inputs (2)

NameTypeDefaultDescription
sourceIMAGE
watermarkIMAGE

Outputs (1)

NameTypeDescription
IMAGEIMAGE