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

Add Number Watermark For Image ๐Ÿ‘

Stamp an incrementing number onto a batch

By MieMieeeeeยทCreated about a year agoยทUpdated 21 days agoยท 225
Add Number Watermark For Image ๐Ÿ‘
  • images
  • IMAGE
โ—„start_number1โ–บ
โ—„position_x95.00โ–บ
โ—„position_y95.00โ–บ
โ—„font_scale1.00โ–บ
โ—„color_r255โ–บ
โ—„color_g255โ–บ
โ—„color_b255โ–บ
โ—„thickness2โ–บ
โ—„outlinetrueโ–บ
โ—„outline_thickness2โ–บ

This node burns a number onto each image in a batch, counting up as it goes - image one gets "1," image two gets "2," and so on. It's not a copyright-watermark tool so much as an indexing tool: a fast way to label frames, grid tiles, or dataset images so you can refer to them by number later. If you've ever exported a batch and then squinted trying to figure out which one was "the third from that run," this fixes that.

Part of ComfyUI-MieNodes (ComfyUI_MieNodes), MieMieeeee's utility pack, in the Image Operator group. Fitting for the author, who's a video content creator - numbered frames are bread-and-butter for that kind of work.

Why you'd use it

The obvious case: you generate a batch and want each image visibly numbered so you can pick "give me number 7" without opening files one at a time. Contact sheets, seed-exploration grids, before/after sequences, storyboard frames - anything where the position in the batch is information you want on the image itself.

Because the number auto-increments from a starting value, it also works for stitching numbering across multiple runs: set start_number to where the last batch left off and the count continues. And since the position is specified as a percentage of the image, the same setting lands the number in a sensible spot whether your images are 512px or 2048px.

A quick honesty note: this is a burned-in overlay, not a robust or invisible watermark. It's meant to be seen and to help you organize, not to survive cropping or protect ownership. For labeling and indexing it's perfect; for "prove this is mine" it isn't the tool.

The inputs and outputs that matter

You only really touch a few of these; the rest are styling with sane defaults.

  • images (IMAGE) - the batch to number.
  • start_number (INT, default 1) - what the first image is labeled. Set it to continue a count across runs.
  • position_x / position_y (FLOAT, 0โ€“100, default 95/95) - where the number sits, as a percent of width/height. 95/95 is bottom-right.
  • font_scale (FLOAT, default 1) - size.

The rest are appearance: color_r/color_g/color_b (0โ€“255, default white), thickness (default 2), and outline (default true) with outline_thickness (default 2) for a contrasting border that keeps the digits readable over busy images.

Output is IMAGE - the numbered batch, ready to preview or save.

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

The number's hard to read. Keep outline on - that dark border is what makes white digits legible over a bright or busy image. If it's still lost, bump font_scale and thickness, or move it to a calmer corner with position_x/position_y.

It ran but I only see one number. This numbers a batch. If you pass a single image you get a single number (your start_number). The incrementing only shows when there are multiple images on the wire.

It modifies the pixels. The number is baked into the output image, not a separate layer. If you want a clean copy too, branch the batch before this node so you keep an unnumbered version.

Off-image placement. position_x/position_y are percentages, so values near 100 push toward the edges; if a large font gets clipped at the corner, pull the position in a few percent or shrink the font.

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

Inputs (11)

NameTypeDefaultDescription
imagesIMAGEโ€”
start_numberINT1-2147483648โ€“2147483647โ€”
position_xFLOAT95.000โ€“100โ€”
position_yFLOAT95.000โ€“100โ€”
font_scaleFLOAT1.000.1โ€“10โ€”
color_rINT2550โ€“255โ€”
color_gINT2550โ€“255โ€”
color_bINT2550โ€“255โ€”
thicknessINT21โ€“20โ€”
outlineBOOLEANtrueโ€”
outline_thicknessINT21โ€“10โ€”

Outputs (1)

NameTypeDescription
IMAGEIMAGEโ€”