BMAB Watermark
ComfyUI Node Guide
- bind
- image
- BMAB bind
- image
What it is
BMAB Watermark stamps text onto your output image right inside the ComfyUI graph - useful if you're batch-generating and want every image branded, credited, or otherwise marked before it ever leaves the pipeline, instead of doing that as a separate pass in an image editor afterward. It's not doing anything exotic: pick a position, style the text, decide whether it needs a background chip behind it for legibility, and it draws it straight onto the image.
Where it earns points over a generic "draw text on image" node is depth of control - nine-position anchoring, rotation, independent background styling, and its own multi-line text alignment - and where BMAB's habits show through is the optional bind input, letting it slot into a chain fed by ToBind or another BMAB node without extra wiring.
Inputs and outputs
The position controls are the ones you'll touch most: alignment picks one of nine anchor points (the corners, edges, and center - think a tic-tac-toe grid), margin (0–100, default 5) sets the padding from that anchor, and rotate lets you spin the text 0, 90, 180, or 270 degrees. text is the multiline content itself, and text_alignment (left/right/center) handles justification if it wraps across lines.
Styling covers font (a dropdown - worth noting it lists font format categories like truetype, type1, opentype, cmap, rather than named font families, so expect to try a couple before you find something legible), font_size (4–128, default 12), and color / background_color (both hex strings, defaulting to #000000). Two fields are easy to misread: transparency (0–100, default 100) and background_transparency (0–100, default 0). Despite the name, higher here means more visible - the defaults make the text fully opaque and the background fully invisible by default, so if you're expecting "transparency" to work the other way round, test it on a sample image before trusting it in a batch run.
Optional inputs are bind (a BMAB bind) and image. Outputs mirror that: BMAB bind passed through, and image, the watermarked result.
How to install it
It's part of comfyui_bmab, so no separate download. Through ComfyUI Manager, search comfyui_bmab - it also installs comfyui_controlnet_aux and ComfyUI_IPAdapter_plus, the two dependencies the wider pack needs even though this specific node doesn't touch either. Manually:
cd ComfyUI/custom_nodes
git clone https://github.com/portu-sim/comfyui_bmab.git
cd comfyui_bmab
pip install -r requirements.txt
then the same for the two companion repos, and restart ComfyUI.
Common issues
The transparency-naming confusion above is the most likely place people get tripped up - set transparency low expecting a faint watermark and instead get one that barely renders, when what was actually needed was a lower background_transparency or a different opacity value entirely. Preview on one image before committing to a batch.
The font dropdown is the other soft spot: since it's organized by format rather than by name, there's no way to know from the list alone which entry gives you a clean, readable font versus something obscure or symbol-heavy. Cycle through a few and check the rendered result rather than guessing from the label.
Inputs (13)
| Name | Type | Default | Description |
|---|---|---|---|
| font | COMBO | 5 options: cmap, cMap, truetype, type1, opentype | |
| alignment | COMBO | 9 options: bottom-left, top, top-right, right, bottom-right, bottom, +3 | |
| text_alignment | COMBO | 3 options: left, right, center | |
| rotate | COMBO | 4 options: 0, 90, 180, 270 | |
| color | STRING | #000000 | — |
| background_color | STRING | #000000 | — |
| font_size | INT | 124–128 | — |
| transparency | INT | 1000–100 | — |
| background_transparency | INT | 00–100 | — |
| margin | INT | 50–100 | — |
| text | STRING | — | |
| bindopt | BMAB bind | — | |
| imageopt | IMAGE | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| BMAB bind | BMAB bind | — |
| image | IMAGE | — |