Nodes/ComfyAngel/Custom Text Overlay πŸͺ½
ComfyUI Node

Custom Text Overlay πŸͺ½

Put words on images without leaving the graph

By ThepExcelΒ·Created 8 months agoΒ·Updated about a month agoΒ· 14
Custom Text Overlay πŸͺ½
  • image
  • image
β—„textβ–Ί
β—„positionβ–Ύβ–Ί
β—„font_size25β–Ί
β—„bg_opacity0.7β–Ί
β—„text_color#FFFFFFβ–Ί
β—„bg_color#000000β–Ί

The cousin of Parameter Overlay, minus the cleverness. Where that node auto-formats generation settings, Custom Text Overlay πŸͺ½ just puts your text on the image - any text, styled however you like. Watermarks, titles, labels on a comparison grid, batch captioning where each image gets its own line from a loop. Simple, and genuinely the one you'll reach for when the words are yours, not the machine's.

The inputs that do the work

  • image - the image (or batch of images) to draw on.
  • text - your text, multiline; each line becomes a row. Use \n for newlines.
  • position - bottom_extend (grows the canvas and puts text below - the default, and the one that never covers pixels), bottom_inside, or top_inside (overlays on top of the picture).
  • font_size - 8–100, default 25.
  • bg_opacity - 0–1 for the bar behind the text, default 0.7.
  • text_color / bg_color - hex strings, default #FFFFFF on #000000. This is where a Color Picker node plugs in.

Everything is per-batch: give it a batch of images and it renders the same text onto each. Pair it with Loop Start and a list of strings and you've got per-image captions, one per iteration.

How it works

Purely local, zero models: the pack's TextRenderer uses PIL to pick a system font, measure the text, draw a semi-transparent rounded bar, and composite the lines. The mechanism is deliberately boring - that's a feature. There's no AI involved, no font files to download, nothing that breaks when you upgrade a checkpoint. The one implementation detail worth knowing is the bottom_extend mode: it literally makes the canvas taller and places the text in the new strip, so the original pixels are untouched.

Installing it

It's part of ComfyAngel, so one install gets you this and everything else:

cd ComfyUI/custom_nodes
git clone https://github.com/ThepExcel/ComfyAngel.git

Restart ComfyUI, or search "ComfyAngel" in ComfyUI Manager. Pillow is the entire dependency footprint; no model files.

The gotchas

Empty text returns the image unchanged (no error, which is the graceful behavior you want). A blank line in the middle of the text just gets skipped. And hex colors that don't parse fall back to white-on-black rather than crashing - which means a typo like #FFF instead of #FFFFFF quietly gives you the default look, so double-check your hex before you blame the node. That's the whole list; it's a small, honest utility and it stays out of your way.

CategoryComfyAngel/Overlay

Inputs (7)

NameTypeDefaultDescription
imageIMAGEβ€”
textSTRINGβ€”
positionoptCOMBO3 options: bottom_extend, bottom_inside, top_inside
font_sizeoptINT258–100β€”
bg_opacityoptFLOAT0.70–1β€”
text_coloroptSTRING#FFFFFFβ€”
bg_coloroptSTRING#000000β€”

Outputs (1)

NameTypeDescription
imageIMAGEβ€”