Character Studio — Prompt (ComfyUI custom node)

Qwen-Image-2512_00078_

A ComfyUI custom node that assembles a natural-language character portrait prompt from structured fields (origin, age, build, skin, face, hair, wardrobe, camera & lens, …).

The node exposes every field as a widget (dropdowns for the enumerated options, text inputs for the rest) and outputs a single STRING — connect it to a CLIP Text Encode.

node license

Why

Character consistency is easier when the description is complete and deterministic. Leaving traits out creates a prompt "vacuum" that the model fills with its own prior; this node uses positive, template-driven defaults (e.g. clean-shaven, no freckles, a fallback wardrobe) so every field is stated explicitly.

Install

Clone into your ComfyUI custom_nodes folder and restart ComfyUI:

cd ComfyUI/custom_nodes
git clone https://github.com/Perry76/character-studio-prompt.git

No extra dependencies (Python standard library only). Restart ComfyUI — the node appears under Add Node → Character Studio → Portret-prompt. Connect its prompt output to a CLIP Text Encode.

image image

Usage

  1. Add the node Character Studio — Portret-prompt.
  2. Pick the character traits in the dropdowns / text fields. Every field has a sensible default, so an untouched node still produces a coherent, fully-clothed portrait prompt.
  3. (Optional) type anything into extra — it is appended to the end of the prompt.
  4. Connect it to a CLIP Text Encode. The node's prompt output is a STRING, but a CLIP Text Encode's text field is a widget by default. Right-click the CLIP Text Encode (Prompt) node → Convert Widget to Input → text (older ComfyUI: Convert text to input), then drag the node's prompt output onto that new text input.
  5. Wire the CLIP Text Encode's CONDITIONING output into your sampler's positive input, as usual.
image

Tip: to see the exact prompt the node produced, add any "Show Text" / string-preview node and connect prompt to it.

Notes / limits

  • Enums are dropdowns; for one-off additions use the optional extra field.
  • Wardrobe is a free-text field. Leave it empty and a default outfit (casual everyday clothing) is used so the subject is never rendered nude; type your own outfit to override it.
S
Description
No description provided
Readme MIT
120 KiB
Languages
Python 100%