Nodes/ComfyUI_StarNodes/⭐ Star Watermark
ComfyUI Node

⭐ Star Watermark

Text or logo watermarks, tiled or one-off, with a mask

By Starnodes2024·Created 2 years ago·Updated a day ago· 107
⭐ Star Watermark
  • images
  • watermark_image
  • watermark_mask
  • watermarked
  • mask
◄textSample Watermark►
◄modetext►
◄image_scale100►
◄repeat_patternfalse►
◄opacity0.50►
◄positionbottom_right►
◄x_offset10►
◄y_offset10►
◄rotation0►
◄blend_modenormal►
◄output_maskfalse►
◄adaptive_colorfalse►
◄randomize_per_batchfalse►
◄fontarial.ttf►
◄font_size32►
◄font_color#FFFFFF►
◄font_boldfalse►
◄font_italicfalse►
◄font_underlinefalse►
◄effect_outlinefalse►
◄effect_shadowfalse►
◄effect_glowfalse►
◄insert_datetimefalse►
◄invert_maskfalse►

Sooner or later you want your name on the output - branding, a batch of generations you're about to post, or just insurance against someone else claiming your renders. You can do that in an image editor, or you can do it in the workflow with ⭐ Star Watermark, which stamps text or a logo onto a whole batch of images before they hit your save node. It's part of the StarNodes pack, the big helper collection from the r/comfyui dev who builds nodes "for myself but maybe some of you can use them too."

What makes it worth reaching for over a Paint.net trip: it's deterministic, it reruns with every batch, and it hands you a mask of where the watermark actually landed - which opens up downstream tricks like only watermarking a region or using the mask in compositing.

The mode that matters

The single most important input is mode, and it's a trap if you skip it:

  • text - renders your text string with a system font. Fine for a name, a handle, or a "Sample Watermark".
  • image - pastes a logo from the optional watermark_image input (plus an optional watermark_mask if your logo has transparency baked in weirdly). This is the one you want for an actual brand.

Watch it: in image mode without a watermark_image connected, the node quietly falls back to a default text watermark. If you see "Watermark" stamped on your images, that's why.

The inputs a beginner actually sets

  • position - ten choices including all corners plus custom, which unlocks the x_offset / y_offset knobs for pixel-fine placement.
  • opacity - 0 to 1. 0.5 is a decent default for something visible but not obnoxious.
  • repeat_pattern - tiles the watermark across the whole image. That's your "nobody crops this out" mode, beloved by stock-image sellers.
  • rotation - handy for diagonal text on tiled watermarks.

Everything else is optional seasoning: font, font_size, font_color, bold/italic/underline, and the effect_outline / effect_shadow / effect_glow toggles for legibility. There's also adaptive_color (picks a contrasting color automatically) and insert_datetime for timestamping. blend_mode gives you normal, multiply, or overlay - overlay is a nice subtle option for logos on busy images.

Outputs

  • watermarked - your image batch with the watermark composited in.
  • mask - a black-and-white mask of the watermark placement (you asked for it via output_mask; it's a dummy batch if not).

Installing it

ComfyUI Manager, search Starnodes, install, restart. Manual:

cd ComfyUI/custom_nodes
git clone https://github.com/Starnodes2024/ComfyUI_StarNodes
cd ComfyUI_StarNodes
pip install -r requirements.txt

It's under ⭐StarNodes/Image And Latent, and it's plain Pillow - the one dependency ComfyUI already ships.

Gotchas

  • The font dropdown is built from your system fonts (it scans the Windows Fonts directory). On Linux/Mac the pick list is thinner - if your font isn't there, install it system-wide and restart.
  • randomize_per_batch shifts the watermark position per image in the batch - great for beating simple crop-detection, mildly annoying if you actually want identical placement.
  • Watermarking after upscaling is much cheaper than watermarking before - you only stamp the final resolution once.

One honest note: this is a visible watermark node. If your threat model is someone strip-mining your metadata, this won't stop them - nothing in a pipeline will. It's for making your work look claimed, not for DRM.

Category⭐StarNodes/Image And Latent

Inputs (27)

NameTypeDefaultDescription
imagesIMAGE—
textSTRINGSample Watermark—
modeCOMBOtext2 options: text, image
image_scaleFLOAT1001–500—
repeat_patternBOOLEANfalse—
opacityFLOAT0.500–1—
positionCOMBObottom_right10 options: center, top, bottom, left, right, top_left, +4
x_offsetINT10-10000–10000—
y_offsetINT10-10000–10000—
rotationINT0-180–180—
blend_modeCOMBOnormal3 options: normal, multiply, overlay
output_maskBOOLEANfalse—
adaptive_colorBOOLEANfalse—
randomize_per_batchBOOLEANfalse—
watermark_imageoptIMAGE—
watermark_maskoptMASK—
fontoptCOMBOarial.ttf9 options: Arial Bold.ttf, Arial Italic.ttf, Arial.ttf, Courier.ttf, Times New Roman Bold.ttf, Times New Roman.ttf, +3
font_sizeoptINT321–1000—
font_coloroptSTRING#FFFFFF—
font_boldoptBOOLEANfalse—
font_italicoptBOOLEANfalse—
font_underlineoptBOOLEANfalse—
effect_outlineoptBOOLEANfalse—
effect_shadowoptBOOLEANfalse—
effect_glowoptBOOLEANfalse—
insert_datetimeoptBOOLEANfalse—
invert_maskoptBOOLEANfalse—

Outputs (2)

NameTypeDescription
watermarkedIMAGE—
maskIMAGE—