Nodes/ComfyUI-LukutarNodes/Annotation Segment
ComfyUI Node

Annotation Segment

ComfyUI Annotation Segment

By Mistress-Lukutar·Created 7 days ago·Updated 2 days ago· 1
Annotation Segment
  • annotations
  • text
labelface
include_commontrue

If Prompt Annotate is the parser, this is the extractor. Annotation Segment takes the ANNOTATIONS output from Prompt Annotate and pulls the prompt text for one label - so the face region gets blue eyes, smirk, the background gets outdoors, park, and each one becomes the inpaint prompt for its own Detailer pass.

This is the node that makes the whole annotation family pay off in a detect-crop-refine workflow. Impact Pack's loop is: detect a region, crop it, re-render it with its own prompt, paste it back. That per-region prompt is exactly what Annotation Segment produces. Since everything derives from one annotated prompt, you get the familiar composability of SEGS - any detector feeding any detailer - but on the text side: one source prompt, region-specific texts for free, all kept in sync.

What the inputs do

Only three, and two of them are obvious:

  • annotations - the ANNOTATIONS output from Prompt Annotate. Nothing else will do; the node checks the type and errors clearly if you wire the wrong thing.
  • label - the region you want, e.g. face. Defaults to face. Ask for a label that doesn't exist and the node fails, helpfully listing the available ones. That's the most common beginner stumble, and it's also the friendliest failure mode in the pack.
  • include_common (default on) - prepends the unmarked common part of the prompt. This is the one worth understanding, because it's what makes the extracted text actually usable as an inpaint prompt. With it on, face returns masterpiece, blue eyes, smirk - your shared quality tags riding along with the region text. With it off, you get just blue eyes, smirk, which is the right choice when the detailer's own prompt already carries the quality tags, or when you want to build the full text yourself.

The output

One text (STRING) - the composed prompt for that label. Wire it into whatever builds the conditioning for your Detailer pass, or into a text-concat if you want to add per-region LoRA triggers. That's the whole node.

Installation

Part of ComfyUI-LukutarNodes (MIT). Via ComfyUI Manager: Custom Nodes Manager → Install via git URLhttps://github.com/Mistress-Lukutar/ComfyUI-LukutarNodes. Or:

cd <ComfyUI>/custom_nodes
git clone https://github.com/Mistress-Lukutar/ComfyUI-LukutarNodes

Restart ComfyUI. Only extra runtime dependency is opencv-python (>= 4.8); Manager handles requirements.txt, manual installs may need to pip install opencv-python into ComfyUI's python. No models, no keys. Lives under Lukutar/Prompt.

Notes from the field

  • include_common's prepend is literal - it dumps the common text before the label text. If your common part ends with a comma the result is clean; if it doesn't, you may get masterpiece1girl glue. Keep the annotated prompt's common section comma-separated.
  • There's no per-label separator handling on extraction - a label spread over several spans just concatenates its text.
  • The label you extract must exist in the annotation. If you renamed a region in Prompt Annotate and forgot to update this node's label widget, the error message lists every label it does have, so the fix is one copy-paste.
  • The pack is young (v0.10.x, 2026) with almost no community footprint. The README covers the annotation family in detail - read it before searching for help.
CategoryLukutar/Prompt

Inputs (3)

NameTypeDefaultDescription
annotationsANNOTATIONSAnnotations from Prompt Annotate (Lukutar)
labelSTRINGfaceLabel to extract, e.g. face / body
include_commonBOOLEANtruePrepend the unmarked common part of the prompt

Outputs (1)

NameTypeDescription
textSTRING