JK Easy Watermark
Stamp a logo or text onto generated images
- image
- logo_image
- mask
- IMAGE
A straightforward branding node: give it an image and either a logo, some text, or both, and it stamps that onto the output with configurable position, size, and transparency. Nothing exotic here - it's the kind of node you add at the very end of a pipeline, right before saving, once you're actually shipping images somewhere and want your name (or a client's) on them.
The inputs and outputs that matter
Only image is required - everything else is optional, and the node does nothing visible if you leave it all blank.
- watermark_text - plain text to stamp on the image. Pairs well with JKEasyCheckpointLoader's
CKPT_NAMEoutput if you want the watermark to automatically say which model made the image, rather than typing a static string. - logo_image - an image to overlay instead of, or alongside, text.
- font - defaults to a font bundled with the pack itself (
assets/fonts/DMSans-VariableFont...), so text watermarking works out of the box with no extra font install. You can point it at a different font file path if you want your own. - font_size (default 16) - self-explanatory.
- logo_scale_percentage (default 30) - how big the logo renders relative to the source image.
- position (topleft / bottomleft / topright / bottomright, default bottomright) - the standard four-corner placement most watermark tools offer.
- x_padding / y_padding (default 20 each) - distance from the edge.
- opacity (default 40) - how see-through the watermark is; lower values are more subtle, higher values are more assertive.
- mask - an optional mask, presumably to restrict where the watermark can be drawn, if you need it to avoid a specific region of the image.
Output is IMAGE, and notably it's a list output (is_list: true) rather than a single image - worth knowing if you're chaining it into something that expects a single image versus a batch; you may need a batch/list handling node depending on what's downstream.
Installing it
Part of the kostenickj/jk-comfyui-helpers pack - pre-installed on comfy.icu's shared image, or cd ComfyUI/custom_nodes && git clone https://github.com/kostenickj/jk-comfyui-helpers.git and restart if self-hosting. The bundled font means you don't need to hunt down a font file yourself just to get text watermarking working, which is a small but genuinely convenient default. Nothing else here needs a model download. As with the rest of this pack, it's a small, low-visibility personal toolkit - expect the README and the node's field names to be your main reference, not a community thread.
Common issues
- Text watermark looks tiny or huge relative to the image.
font_sizeis a fixed pixel value, not relative to image size - if you're running this across images of very different resolutions, you may need to adjust it per batch or accept that it looks proportionally different on a 512px versus a 2048px image. - Watermark barely visible or way too strong. Tune
opacity- 40 is a moderate default, drop it for subtlety, raise it if it's getting lost against a busy background. - Logo watermark output is a list, not a single image, and something downstream errors. Check whether the next node in your chain expects a batch/list or a single IMAGE, and add a batch-handling node if needed.
- Custom font not loading. Double-check the path in
fontactually resolves from wherever ComfyUI is running - a relative path that worked on one machine won't necessarily resolve the same way elsewhere.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| logo_imageopt | IMAGE | — | |
| maskopt | MASK | — | |
| watermark_textopt | STRING | — | |
| fontopt | STRING | assets/fonts/DMSans-VariableFont_opsz,wght.ttf | — |
| font_sizeopt | INT | 161–256 | — |
| logo_scale_percentageopt | INT | 301–100 | — |
| x_paddingopt | INT | 200–16384 | — |
| y_paddingopt | INT | 200–16384 | — |
| opacityopt | FLOAT | 400–100 | — |
| positionopt | COMBO | bottomright | 4 options: topleft, bottomleft, topright, bottomright |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |