Nodes/honda-nodes/πŸ–Ό Text Watermark
ComfyUI Node

πŸ–Ό Text Watermark

Yes, it can say your name β€” but your font size may be a lie

By AvarayΒ·Created 14 days agoΒ·Updated 12 days agoΒ· 0
πŸ–Ό Text Watermark
    • Watermark
    β—„textΒ© My Nameβ–Ί
    β—„font[default]β–Ί
    β—„size32β–Ί
    β—„color#FFFFFFβ–Ί
    β—„opacity0.70β–Ί
    β—„shadowtrueβ–Ί
    β—„positionbottom_rightβ–Ί
    β—„margin16β–Ί

    Two things people actually ask for in r/comfyui: "how do I put the checkpoint name in the corner of the output" and "how do I stamp my handle on everything I post". Both are the same problem, and a text watermark solves it in the graph instead of in an image editor afterwards. πŸ–Ό Text Watermark renders a string onto your saved image - font, size, colour, opacity, drop shadow, corner, margin.

    It doesn't touch the image tensor. Like its image-based sibling, it produces a HONDA_WATERMARK object which the pack's own πŸ–Ό Save Image node applies with PIL while writing the file. Everything you preview upstream is unstamped, which is correct and also briefly confusing the first time.

    How it works

    The node packs your settings into a dict. Save Image then draws the string onto a transparent overlay with PIL's ImageDraw, in your chosen colour at opacity Γ— 255 alpha, optionally with a black shadow offset two pixels down and right at half that alpha, and alpha-composites the overlay onto the image. \n in the text field gives you line breaks - PIL's text drawing handles them.

    That's the whole mechanism. It's not a renderer, it's not typography; it's a stamp.

    Inputs that matter

    Text - defaults to Β© My Name, which tells you exactly what the author had in mind. Type your handle, your site, or a prompt text you want burned in.

    Font - a dropdown of every .ttf/.otf the node found on your system, plus [default]. See the gotcha below; this field is where the node's rough edges are.

    Font Size - 6 to 512, default 32.

    Color - a dropdown of nine presets (white, black, primaries, etc.) that also accepts a typed hex code like #FF8800. The tooltip says you can type a custom hex directly, and you can. Note what happens when you typo one: the parse fails and it renders white. No error, no warning.

    Opacity - 0–1, default 0.7. Drop Shadow defaults on, and leave it on unless your image is uniformly dark - plain text at 0.7 over a bright, busy sky disappears.

    Position - bottom_right, bottom_left, top_right, top_left, center. Margin (px) is 16 by default.

    Output

    Watermark, type HONDA_WATERMARK - and only one place it can go: the watermark input on ⚑️ Honda Nodes/πŸ–Ό Image β†’ Save Image. Core Save Image cannot accept this socket. If you're used to the default save node, that's the single biggest thing to know before starting.

    The font list is the trap

    The pack builds its font list once, at import, by scanning the OS font directories: C:\Windows\Fonts on Windows, /Library/Fonts and /System/Library/Fonts plus ~/Library/Fonts on macOS, and /usr/share/fonts, /usr/local/share/fonts, ~/.fonts on Linux. It looks at files directly inside those folders, not in subfolders.

    Consequences you can predict from that:

    • Install a font, then restart ComfyUI. The list is cached at startup; a newly installed .ttf won't appear until you do.
    • On Linux you will often see only [default]. Every distro I've touched keeps its fonts one level down, in /usr/share/fonts/truetype/..., and the scanner doesn't recurse. So the dropdown is empty and you fall back to [default].
    • And [default] is Pillow's built-in bitmap font, which ignores Font Size. Set 64, get roughly ten pixels of text. If your watermark is tiny no matter what number you type, this is why. Fix: put a .ttf directly in ~/.fonts/ (a single file, not a subfolder), restart, pick it by name.

    On Windows and macOS fonts usually sit flat in the system folder, so this mostly bites Linux, Docker and headless server installs.

    Install

    cd ComfyUI/custom_nodes
    git clone --depth 1 https://github.com/Avaray/honda-nodes.git
    cd honda-nodes
    python install.py
    

    Or ComfyUI Manager β†’ Node Pack β†’ search Honda Nodes β†’ Install β†’ restart. The installer downloads jq and the author's ime binary into bin/; the watermark nodes don't use them, but the metadata nodes in the same pack do. Requires ComfyUI 0.38.0 or newer - the pack is written against the V3 schema, so on older builds the nodes won't appear at all.

    Common issues

    Text is clipped or off-screen at the bottom. The position is computed from the text's bounding box, but descenders and a tight margin on an odd resolution can shave a pixel or two. Bump the margin.

    The colour is white when you asked for something else. Your hex didn't parse - check the # and the digit count; three-digit shorthand works, junk silently becomes white.

    Nothing on the saved file. You saved with core Save Image, or you're looking at a preview upstream. The stamp lands in output/ and nowhere earlier.

    Long text runs off the edge. There's no wrapping and no auto-fit. Shorten the string or drop the size; the node draws exactly what you give it at exactly the size you asked for.

    Category⚑️ Honda Nodes/πŸ–Ό Image

    Inputs (8)

    NameTypeDefaultDescription
    textSTRINGΒ© My NameText to render as watermark. Use \n for newlines.
    fontCOMBO[default]1 options: [default]
    sizeINT326–512β€”
    colorCOMBO#FFFFFFColor as a hex code. You can type a custom hex directly.
    opacityFLOAT0.700–1β€”
    shadowBOOLEANtrueAdds a subtle black shadow under the text for readability on bright backgrounds.
    positionCOMBObottom_right5 options: bottom_right, bottom_left, top_right, top_left, center
    marginINT160–512β€”

    Outputs (1)

    NameTypeDescription
    WatermarkHONDA_WATERMARKβ€”