Nodes/ComfyUI_MieNodes/Add Text Watermark For Image ๐Ÿ‘
ComfyUI Node

Add Text Watermark For Image ๐Ÿ‘

Burn a text watermark onto your images

By MieMieeeeeยทCreated 2 years agoยทUpdated 28 days agoยท 225
Add Text Watermark For Image ๐Ÿ‘
  • images
  • IMAGE
โ—„textๆฐดๅฐๆ–‡ๅญ—โ–บ
โ—„font_size48โ–บ
โ—„position_x50.00โ–บ
โ—„position_y95.00โ–บ
โ—„color_r255โ–บ
โ—„color_g255โ–บ
โ—„color_b255โ–บ
โ—„outlinetrueโ–บ
โ—„outline_width3โ–บ
โ—„aligncenterโ–บ

Stamp arbitrary text onto an image - a handle, a URL, a "preview" label, a channel name - directly inside your ComfyUI graph. AddTextWatermarkForImage overlays a text string on each image in a batch, with control over size, color, position, alignment, and an outline so it stays readable. It's the simple, do-it-in-the-workflow answer to "I want my name on these before I post them."

Part of ComfyUI-MieNodes (ComfyUI_MieNodes), MieMieeeee's utility pack, in the Image Operator group. The pack's author is a content creator, and a batch text-stamp is exactly the kind of thing you want when you're publishing a lot of images.

Why you'd use it

The point is to keep watermarking inside the pipeline instead of exporting everything and running a separate pass in Photoshop or a script. Generate, watermark, save - one graph. Because it works across a batch, you can label a whole run in a single queue. And since the position is given as a percentage of the image, one setting places the text sensibly regardless of resolution.

The text field accepts full strings (and non-Latin text - the default is literally Chinese for "watermark text"), so this isn't limited to a single word. Use it for a signature line, a site URL, a "sample / not for redistribution" tag on previews, or episode/scene labels on video frames.

Two caveats worth stating plainly. First, this is a visible, burned-in overlay - it's meant to be seen. It's not a steganographic or tamper-proof watermark and won't survive a determined crop. Second, it edits the pixels, so the output carries the text permanently; keep an un-watermarked branch if you want a clean version too.

The inputs and outputs that matter

The ones you'll actually set:

  • images (IMAGE) - the batch to stamp.
  • text (STRING, multiline) - what to write. Multiline, so you can do more than one line.
  • font_size (INT, default 48) - size in pixels; scale it to your image.
  • position_x / position_y (FLOAT, 0โ€“100, default 50/95) - placement as a percent. 50/95 is bottom-center.
  • align (left/center/right, default center) - text alignment, which matters once you have multiple lines.

The styling defaults are fine to leave alone: color_r/color_g/color_b (0โ€“255, default white) and outline (default true) with outline_width (default 3) - that outline is what keeps light text legible over light images.

Output is IMAGE - the watermarked batch.

Installing it

ComfyUI Manager โ†’ search ComfyUI-MieNodes โ†’ install โ†’ restart. Or:

cd ComfyUI/custom_nodes
git clone https://github.com/MieMieeeee/ComfyUI-MieNodes

then restart. No model download. Nodes appear under the ๐Ÿ‘ MieNodes menu.

Common issues

Text you can't read over a bright image. Keep outline on and give it enough outline_width - that contrasting border is doing the heavy lifting. If your text is white-on-white anyway, switch the color to something darker with the color_r/g/b inputs.

Text spilling off the edge. font_size is absolute pixels, not a percentage, so a size tuned for a 512px image will be huge (and may clip) on a 2048px one, and vice versa. Scale the font to the image, and pull position_x/position_y in from the extremes if a long line runs off.

Non-Latin characters render as boxes. Rendering depends on a font that actually has the glyphs. If your text shows tofu boxes, it's a font-coverage issue on the machine running ComfyUI, not a bug in the node.

It's a signature, not security. Anyone can crop or paint it out. Use it to label and brand, not to lock down ownership.

Category๐Ÿ‘ MieNodes/๐Ÿ‘ Image Operator

Inputs (11)

NameTypeDefaultDescription
imagesIMAGEโ€”
textSTRINGๆฐดๅฐๆ–‡ๅญ—โ€”
font_sizeINT488โ€“512โ€”
position_xFLOAT50.000โ€“100โ€”
position_yFLOAT95.000โ€“100โ€”
color_rINT2550โ€“255โ€”
color_gINT2550โ€“255โ€”
color_bINT2550โ€“255โ€”
outlineBOOLEANtrueโ€”
outline_widthINT30โ€“20โ€”
alignCOMBOcenter3 options: left, center, right

Outputs (1)

NameTypeDescription
IMAGEIMAGEโ€”