ComfyUI Node

Label Image

Caption one image the ComfyUI way — Label Image

By rjgoif·Created 9 months ago·Updated 2 months ago· 5
Label Image
  • image
  • image
label
label_locationbottom
label_size32
fontarial.ttf
label_stylewhite on black
label_input

Label Image is the atomic unit of this pack: it takes one image and stamps a text caption onto it. That's the whole node, and it's the thing the bigger array nodes are built from. You'll reach for it directly whenever you need to annotate a single render - "seed 42," "FLUX dev, 8 steps," "LoRA v3" - before saving or sharing it. For Reddit and Discord posting it's basically the difference between a lazy comparison and a useful one, and the community keeps asking people to label their stuff. This is the easy version of that ask.

How it works

It processes every frame in your input tensor (so a batch of images works too, each getting the same label), draws a solid-color label panel, and pastes it onto the image. Text is wrapped to fit, centered, and drawn with whatever font you've selected.

The label placement is label_location, and this is where the node is more flexible than it looks:

  • top / bottom - a horizontal banner the full width of the image. The sensible default.
  • left_vert / right_vert - a vertical strip on the side with rotated text. Saves horizontal space, and the strip matches the image height.
  • left_hor / right_hor - a side strip with normal horizontal text, capped at half the image width, so it's for short captions.

label_style gives you four text-on-background combos: white on black, black on white, white on dark gray, black on light gray. White on black is the default and the safest for readability, especially since it doesn't depend on your image's brightness.

The inputs that matter

  • image - a single IMAGE tensor (or a batch; every frame gets captioned).
  • label - the caption text, multiline. Use \n inside the text for an actual line break - same convention as the pack's other nodes.
  • label_size - font size in pixels, 1–200. 32 is the default; for a quick reference mark on a big render you'll often want more like 48.
  • font - picks from whatever .ttf files you've dropped in a fonts folder at your ComfyUI root. No fonts folder? It falls back to Arial (Windows) or a system default.
  • label_input - optional dynamic input. Wire any string output here and it overrides the label widget. This is the part that makes the node programmable: feed it a seed counter, a filename, or a prompt excerpt and the caption updates automatically.

Output is image, the labeled result, same channel structure as the input.

Install

Same pack as the rest of Img Label Tools: ComfyUI Manager → search "Img Label Tools" → install, or:

cd ComfyUI/custom_nodes
git clone https://github.com/rjgoif/ComfyUI-Img-Label-Tools

Restart ComfyUI after either. No models, no heavy dependencies.

Gotchas

Two things trip people up. First, label_input silently wins over the label text box - if your caption looks wrong, check whether something is connected to the dynamic input. Second, if your label is empty the node still adds a blank panel, so an empty caption leaves you with an unexplained colored bar; either type text or leave the widget alone entirely.

CategoryImage Label Tools

Inputs (7)

NameTypeDefaultDescription
imageIMAGE
labelSTRING
label_locationCOMBObottom6 options: top, bottom, left_vert, left_hor, right_vert, right_hor
label_sizeINT321–200
fontCOMBOarial.ttf1 options: arial.ttf
label_styleCOMBOwhite on black4 options: black on white, white on black, white on dark gray, black on light gray
label_inputoptSTRING

Outputs (1)

NameTypeDescription
imageIMAGE