ComfyUI Extension: comfyui-character-composer
Run ComfyUI workflows without the setup
No installs, no CUDA version roulette, no GPU sitting idle on your bill. Bring a workflow and run it in the browser.
Structured, JSON-driven character prompt system for ComfyUI enabling consistent, controllable character generation with Qwen workflows.
Looking for a different extension?
Custom Nodes (0)
README
license: apache-2.0 task_categories:
- image-to-image language:
- en tags:
- comfyui
- qwen
- character-generation
- custom-node
- workflow
- image-generation pretty_name: ComfyUI Character Composer version: 2.0 release_date: 2026-5-18 size_categories:
- n<1K
ComfyUI Character Composer
Version: 2.0 • Release Date: 2026-05-18 • License: Apache-2.0
Structured, JSON-driven character prompt system for ComfyUI.
Designed for consistent, controllable character generation with Qwen-style workflows, replacing random prompt chaos with a more deterministic composition layer.
Spicier companion dataset: https://huggingface.co/datasets/unh1nge/comfyui-character-composer
<img src="preview/ComfyUI_01625_.png" width="100%" />New / Advanced UI & Prompt generation (v2.0)
- Character creation node now prints the final prompt it generates for easier debugging.
- Character creation node now accepts up to 3 input images at the same time
New / Advanced toggles (v1.2)
-
preserve_input_position(BOOLEAN, advanced): If True and a reference image is supplied, injects a short preserve-position hint into the prompt (or replace{preserve_position}if present). -
preserve_character_look(BOOLEAN, advanced): Strictly preserve known look traits from UI selections or prompt inference, and from the reference image if supplied. When active, unknown character look traits are no longer auto-filled so the same person identity remains stable. Only traits with actual values are locked sofill_auto_traitscan still populate non-look fields like pose, setting, and props. -
outfit_mode(COMBO):auto/keep/random— keeps or randomizes theoutfittrait when used withpreserve_character_lookand/orfill_auto_traits.
Recommended Stack
- Model:
Qwen-Image-Edit-Rapid-AIO - Workflow:
QWEN AIO CC 3X WORKFLOW.json - Node:
ComfyUI Character Composer
This setup combines:
- Qwen spatial reasoning
- structured prompt composition
- controllable character generation
Text-to-image
Use QWEN AIO CC 3X WORKFLOW.json with the image sockets left disconnected or just bypass them for normal prompt-driven generation.
3-image image-to-image
Use QWEN AIO CC 3X WORKFLOW.json when you want to feed three reference images into the Qwen image-edit encoder.
Why This Node Exists
Most character-generation pipelines:
- rely on random prompts
- produce inconsistent characters
- become hard to reproduce
- break down when too many pose, style, and scene tags pile up
This node provides:
- structured trait composition
- seed-based deterministic behavior
- prompt cleanup and conflict handling
- JSON-driven customization without rewriting Python
Current Features
- JSON-driven trait libraries via
tags.jsonandtags_NSFW.json - Selectable tag source file with merged UI dropdowns
- Smart prompt assembly with weighted core traits
- Wildcard support such as
{hair_color}or{interaction} - Backward compatibility for legacy
{pose_x}placeholders - Workflow-level smart presets
- Composition-aware defaults and conflict handling
- Scene sanitization for unstable interaction / pose / camera combinations
- Complexity guard that trims low-priority details when prompts get overloaded
- Alias matching from JSON, such as
blond -> blonde - Tag conflict rules from JSON, such as
kokoshnikvsushanka - Detail budgets and category weights from JSON
- A compact output surface: final prompt, negative prompt, and image passthroughs
Main Controls
Core inputs
input_promptseedtag_fileextra_modifiers
High-level steering
-
smart_presetnonesafe portraithigh detail characterwinter fashionpaired cinematicsimple anatomy-safe
-
composition_mode -
auto -
solo portrait -
fashion -
paired -
close-up -
full body -
winter -
fantasy -
subject_count -
auto(recommended) — node will infer 1/2/3/4/group from prompt/interaction/pose -
1 -
2 -
3 -
4 -
group -
detail_levelminimalbalancedrich
-
style_strengthsubtlebalancedstrong
Utility toggles
-
fill_auto_traits- fills unresolved
autofields from the active tag file
- fills unresolved
-
reset_overrides- pushes trait dropdowns back to
autofor the current generation
- pushes trait dropdowns back to
-
bypass_generator- returns the raw
input_promptunchanged
- returns the raw
Trait sections
The node UI is grouped into:
CORE CREATIVECHARACTER LOOKCAMERA & FRAMINGSTYLE & SCENEOPTIONAL EXTRAS
Notable rename:
pose_xis nowinteraction
Example
Input:
{hair_color} {hair_style} woman in {setting}
Possible output:
gravure, photorealistic, soft lighting, 8k, (1woman:1.20), model blonde beach waves hair, shot on 35mm film grain, modern portrait, wearing bikini minimal fabric, shot as a three-quarter shot natural perspective, at the tropical beach open horizon
Installation
- Clone into your
ComfyUI/custom_nodesdirectory:
cd ComfyUI/custom_nodes
git clone https://github.com/unh1nge/comfyui-character-composer
-
Restart ComfyUI.
-
Add the node:
ComfyUICharacterComposerCategory:Prompt
For the fastest setup, load QWEN AIO CC 3X WORKFLOW.json. It works for text-to-image when the image inputs are disconnected, and for three-reference image editing when image1, image2, and image3 are connected.
Usage
- Start with an optional natural-language base prompt.
- Pick a
tag_file. - Set a
smart_presetorcomposition_modeif you want the node to bias defaults for you. - Choose
subject_count,detail_level, andstyle_strength. - Leave most dropdowns on
autounless you need exact overrides. - Use
fill_auto_traitswhen you want the node to complete unresolved traits. - Use
{tags}insideinput_promptif you want explicit wildcard injection. - Check the final prompt preview after each run.
JSON Customization
The node is intentionally data-driven. Most tuning can now happen in JSON.
Trait lists
The standard visible dropdown values still live in keys such as:
hair_coloroutfitinteractionsettingprop
interaction will also load from legacy pose_x arrays if needed.
_composer_rules
Optional rule block for prompt behavior and scene stability.
Examples:
interaction_scene_familiesscene_compatible_pose_hintscomplexity_level_termsextreme_focus_termsextreme_camera_termsaccessory_drop_termssetting_drop_termssetting_restricted_scenescamera_downgradedetail_budgetscategory_weightscomplexity_thresholds
_tag_aliases
Optional synonym mapping for prompt detection without bloating the UI.
Examples:
blond -> blondefur hat -> ushanka fur hatsnow maiden outfit -> snegurochka costume
_tag_conflicts
Optional conflict map for incompatible selections.
Examples:
kokoshnik headdressconflicts withushanka fur hatcat earsconflicts withbunny earswinter bootsconflicts withhigh heels
Prompt Behavior Notes
- Core traits are weighted more strongly than decorative traits.
- Composition mode can auto-bias camera, focus, scene, and style defaults.
- Smart presets can override default
detail_level,style_strength,subject_count, and composition intent. - Complex interaction scenes may automatically drop risky focus, props, accessories, or settings.
- The complexity guard trims low-priority traits when the prompt becomes too crowded.
This is meant to improve stability, not produce perfectly identical prompts for every setup or model.
Outputs
-
positive_prompt- final assembled prompt
-
negative_prompt- built-in negative terms
-
image1- passthrough image input
-
image2- second passthrough image input for multi-reference Qwen image-edit workflows
-
image3- third passthrough image input for multi-reference Qwen image-edit workflows
Included Workflows
This repository includes workflow JSON files adapted from the Qwen ecosystem and adjusted for structured prompt composition.
- QWEN AIO CC 3X WORKFLOW.json - recommended all-in-one workflow for
Qwen-Image-Edit-Rapid-AIOandComfyUICharacterComposer. Leave the composer image inputs disconnected for text-to-image, or connectimage1,image2, andimage3for three-reference image-to-image.
If you want text-to-image, leave image1, image2, and image3 disconnected or bypass the input images in the Qwen workflow.
The included workflows are useful as starting points for:
- text-to-image
- character-consistent edits
What This Is Not
- Not a LoRA trainer
- Not a ControlNet pipeline
- Not a full workflow engine
This is a prompt composition layer.
Acknowledgements
Built on top of:
Phr00t - Qwen Image Edit ecosystem https://huggingface.co/Phr00t/Qwen-Image-Edit-Rapid-AIO
Keywords
ComfyUI, prompt engineering, structured prompts, character generation, Qwen workflow
License
Free to use and modify.
Run ComfyUI workflows without the setup
No installs, no CUDA version roulette, no GPU sitting idle on your bill. Bring a workflow and run it in the browser.