๐ฉโ๐ฆฐ๐ Text Generator (Character Female)
Build a character prompt from menus
- add_GEN_CHARACTER
- GEN_OUTFIT
- GEN_POSE
- GEN_CHARACTER
Instead of typing "a 26-year-old woman, athletic build, long red hair, green eyes, olive skinโฆ" by hand, you set those as dropdowns and this node writes the sentence for you. It's a structured prompt builder for female characters - pick from menus for ethnicity, age, body shape, hair, eyes, skin, and it assembles a clean description string. The real power is the RANDOM option on every field: leave things on RANDOM and each run rolls a fresh character, which is the modern, menu-driven version of the old A1111 wildcard trick people used to build character reference libraries without training anything (see the KB's prompt-engineering notes).
It's part of a little system, not a standalone node - and understanding that is the whole game.
How it works
This node doesn't produce the final prompt on its own. It emits a GEN_CHARACTER payload that you feed into the pack's main Image Text Generator node (node 81), which stitches the character together with style, scene, and camera details into the actual prompt text. Character nodes also chain to each other (for multiple distinct characters) and accept an outfit and a pose, so you can build "aggressive dragon-riding woman on the left, in floral armor, holding a book" out of connected menu nodes. Every field offers NONE (omit it), RANDOM (roll it via the seed), or a specific choice.
The inputs and outputs that matter
You won't touch all of them; the ones that carry the weight:
seed(INT) - drives every RANDOM field. Randomize for a new character each run, fix to reproduce one.age(default "woman"),ethnicity,body_shape,hair_style,hair_color,eye_color,skin_tone- the core descriptors. Set them, or leave on RANDOM for variety.number_of_characters(INT) - how many characters this node describes (they share the same characteristics).CUSTOM_PROMPT(STRING) - freeform text appended to whatever the menus produce, for anything the dropdowns don't cover.- Optional chaining inputs:
add_GEN_CHARACTER(connect another character node to add a distinct second character),GEN_OUTFIT(attach an Outfit node),GEN_POSE(attach a Pose node).
There are also body-description fields (breasts, ass, plus toggles like ethnicity_description) - a clear tell that this pack is built with character and pinup generation in mind. Set them to NONE if that's not your use.
Output: GEN_CHARACTER - wire it into the main Image Text Generator node. Nothing renders until you do.
How to install it
ComfyUI Manager โ Bjornulf_custom_nodes โ install โ restart. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/justUmen/Bjornulf_custom_nodes
pip install -r Bjornulf_custom_nodes/requirements.txt
then restart. No special dependency - it's text assembly.
Common issues & troubleshooting
I connected it and nothing generates. By itself this node only writes text. Its GEN_CHARACTER output has to reach the main Image Text Generator node, which produces the prompt string you then send to your CLIP/checkpoint. Without that hub node, there's no output to render.
The model ignores half the details. The author is blunt about this: the node just writes text, and it's the checkpoint that has to understand it. It was built with Flux in mind; SDXL and SD1.5 are worse at obscure attributes. If a detail isn't landing, that's a model-comprehension limit, not a node bug - try Flux.
location_on_image does nothing on SDXL. Documented: positional control works on Flux and fails on SDXL in the author's own tests. Switch models if you need it.
Every run is the same character. Fixed seed. Randomize it to reroll the RANDOM fields.
NONE vs RANDOM confusion. NONE omits the field entirely; RANDOM picks a value. If you want a trait present but varied, use RANDOM, not NONE.
Inputs (20)
| Name | Type | Default | Description |
|---|---|---|---|
| enabled | BOOLEAN | true | โ |
| number_of_characters | INT | 11โ10 | โ |
| seed | INT | 00โ18446744073709550000 | โ |
| location_on_image | COMBO | 11 options: NONE, RANDOM, on the left, in the center, on the right, at the top, +5 | |
| ethnicity | COMBO | 26 options: NONE, RANDOM, Asian, Caucasian, African, Latina, +20 | |
| ethnicity_description | BOOLEAN | false | โ |
| nationality | COMBO | 123 options: NONE, RANDOM, Chinese, Japanese, Korean, Mongolian, +117 | |
| age | COMBO | woman | 7 options: RANDOM, baby girl, girl, teen girl, young woman, woman, +1 |
| add_specific_age | STRING | โ | |
| body_shape | COMBO | 51 options: RANDOM, NONE, athletic, muscular, slim, slender, +45 | |
| breasts | COMBO | 20 options: RANDOM, NONE, tiny, small, medium, large, +14 | |
| ass | COMBO | 21 options: RANDOM, NONE, tiny, small, medium, large, +15 | |
| skin_tone | COMBO | 17 options: NONE, RANDOM, fair, pale, medium, olive, +11 | |
| eye_color | COMBO | 15 options: NONE, RANDOM, blue, green, brown, hazel, +9 | |
| hair_style | COMBO | 36 options: NONE, RANDOM, long, short, curly, straight, +30 | |
| hair_color | COMBO | 31 options: NONE, RANDOM, black, white, grey, red, +25 | |
| CUSTOM_PROMPT | STRING | โ | |
| add_GEN_CHARACTERopt | GEN_CHARACTER,STRING | โ | |
| GEN_OUTFITopt | GEN_OUTFIT,STRING | โ | |
| GEN_POSEopt | GEN_POSE,STRING | โ |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| GEN_CHARACTER | GEN_CHARACTER,STRING | โ |