Factory Prompts Generator (Positive)
This is the main Factory Prompts node
- positive_prompt
- selection_summary
This is the node the whole pack is named after. FactoryPromptsPositive is a tag accumulator: you pick a character count, a hair color, a pose, a location, and it assembles a comma-joined booru-style prompt for you. Think of it as a visual "prompt roulette" for anime SDXL - you build a scene by choosing from dropdowns instead of remembering what the hundredth Danbooru tag is called. On its own it won't fix your hands, but it's genuinely good at removing the friction of a blank prompt box when you're sketching ideas.
How it works
At load time the node reads a bundled factory_tags.json file and turns every list into a dropdown, each starting with random. When you run it, every dropdown you left on random is filled with a pick from its list - and the whole thing is seeded, so a non-zero seed reproduces the same prompt every time. That's the killer feature for variation: same node, different seeds, endless scene sketches.
The required inputs are the skeleton of any prompt: quality_level (high/medium/varied), source_style (anime/cartoon/realistic/photorealistic/furry/mixed), character_count (1girl, 1boy, 2girls, and on up to crowd), clothing_style, location_type, include_artist, and seed. Then a wall of optional dropdowns: hair, eyes, skin, expression, body type, pose, locations, lighting, clothing categories, accessories, plus five *_emphasis controls (low/medium/high/very_high) that wrap their tags in (), ((())) style brackets, and a custom_elements multiline box for your own tags.
It returns two STRINGs: positive_prompt (wire it into CLIPTextEncode) and selection_summary, a line-by-line log of everything it picked - a built-in "what did I just generate" answer.
The quirks the README won't tell you
This is where the pack gets honest, and it's worth knowing before you trust a dropdown. The emphasis system works (low (tag), medium plain, high ((tag)), very_high (((tag)))), and the core character tags work. But a real chunk of the panel is cosmetic in this build:
photorealisticsource style maps to the tagsource_pony- straight out of the code. If that surprises you, you're not alone; it's clearly a leftover from the Pony lineage this pack descended from.include_artistdefaults to on but there's no artist dropdown wired anywhere. Nothing to include, so it currently does nothing. The README advertises artist styles; the shipped node doesn't ship them.- The technical dropdowns (
camera_shot,quality,color_scheme,time_period,weather,special_effects,image_style) and the underwear dropdowns only offerrandom, because the JSON keys they read don't exist infactory_tags.json. Left on random, they add nothing to your prompt. - The location dropdowns are populated from the JSON's
environmentssection, but the random pick reads alocationssection that doesn't exist - soindoor_locationandoutdoor_locationonrandomalso come up empty. Pick an explicit location if you want one.
None of this crashes; it just silently contributes nothing. The reliable core is character features, poses, clothing, lighting, and emotion.
Install
Zero dependencies, no model downloads, no requirements.txt:
cd ComfyUI/custom_nodes
git clone https://github.com/HWDigi/Factory-Prompts_comfyui
# restart ComfyUI
Or via ComfyUI Manager, search "Factory Prompt Generator", nodes under "Prompt Factory".
Who this is for
Honestly? The tag vocabulary here is built for the anime SDXL world - Illustrious and NoobAI will read these tags like a native speaker, and the masterpiece, best_quality quality strings are exactly their convention. On Pony it's weaker (Pony wants score_x tags, which this node never emits), and on Flux the whole tag-bag paradigm mostly evaporates. If you generate a lot of anime characters and want a fast, seedable scene generator, this is a fun one. If you're on Flux or Pony, you'll be fighting it more than it helps - and you can find that out cheaply, since install takes thirty seconds.
Inputs (56)
| Name | Type | Default | Description |
|---|---|---|---|
| quality_level | COMBO | high | 3 options: high, medium, varied |
| source_style | COMBO | anime | 6 options: anime, cartoon, realistic, photorealistic, furry, mixed |
| character_count | COMBO | 1girl | 18 options: 1girl, 1boy, 2girls, 2boys, 1girl_1boy, 3girls, +12 |
| character_preference | COMBO | single | 4 options: single, couple, group, crowd |
| clothing_style | COMBO | casual | 6 options: school, casual, formal, traditional, fantasy, mixed |
| location_type | COMBO | indoor | 3 options: indoor, outdoor, mixed |
| include_artist | BOOLEAN | true | — |
| seed | INT | 00–18446744073709550000 | — |
| hair_coloropt | COMBO | random | 42 options: random, blonde_hair, brown_hair, black_hair, white_hair, silver_hair, +36 |
| hair_lengthopt | COMBO | random | 17 options: random, long_hair, short_hair, medium_hair, very_long_hair, shoulder_length_hair, +11 |
| hair_styleopt | COMBO | random | 41 options: random, twintails, ponytail, side_ponytail, twin_braids, single_braid, +35 |
| eye_coloropt | COMBO | random | 25 options: random, blue_eyes, brown_eyes, green_eyes, red_eyes, purple_eyes, +19 |
| skin_coloropt | COMBO | random | 61 options: random, none, pale_skin, fair_skin, light_skin, medium_skin, +55 |
| expressionopt | COMBO | random | 43 options: random, smile, grin, laugh, giggle, smirk, +37 |
| body_typeopt | COMBO | random | 46 options: random, petite, slim, slender, thin, skinny, +40 |
| chest_typeopt | COMBO | random | 17 options: random, small_chest, medium_chest, large_chest, flat_chest, modest_chest, +11 |
| hip_typeopt | COMBO | random | 13 options: random, narrow_hips, wide_hips, curvy_hips, straight_hips, athletic_hips, +7 |
| leg_typeopt | COMBO | random | 21 options: random, long_legs, short_legs, slender_legs, athletic_legs, toned_legs, +15 |
| poseopt | COMBO | random | 63 options: random, standing, sitting, walking, running, jumping, +57 |
| multi_char_positionopt | COMBO | random | 133 options: random, standing_together, sitting_together, walking_side_by_side, talking, chatting, +127 |
| character_1_actionopt | COMBO | random | 52 options: random, leading, following, initiating, responding, dominant_pose, +46 |
| character_2_actionopt | COMBO | random | 52 options: random, following, leading, responding, initiating, submissive_pose, +46 |
| character_3_actionopt | COMBO | random | 31 options: random, watching, participating, waiting_turn, assisting, supporting, +25 |
| camera_shotopt | COMBO | random | 1 options: random |
| indoor_locationopt | COMBO | random | 21 options: random, bedroom, living_room, kitchen, bathroom, office, +15 |
| outdoor_locationopt | COMBO | random | 19 options: random, park, garden, beach, forest, mountain, +13 |
| fantasy_locationopt | COMBO | random | 15 options: random, castle, dungeon, tower, throne_room, magical_forest, +9 |
| lightingopt | COMBO | random | 24 options: random, natural_light, sunlight, moonlight, starlight, candlelight, +18 |
| emotionopt | COMBO | random | 33 options: random, happy, sad, angry, surprised, disgusted, +27 |
| school_uniform_topopt | COMBO | random | 17 options: random, school_uniform_top, sailor_uniform_top, blazer, cardigan, sweater_vest, +11 |
| school_uniform_bottomopt | COMBO | random | 9 options: random, school_skirt, pleated_skirt, school_shorts, uniform_pants, dress_pants, +3 |
| school_uniform_footwearopt | COMBO | random | 10 options: random, school_shoes, loafers, mary_janes, sneakers, dress_shoes, +4 |
| casual_topopt | COMBO | random | 13 options: random, t_shirt, tank_top, blouse, sweater, hoodie, +7 |
| casual_bottomopt | COMBO | random | 12 options: random, jeans, shorts, skirt, dress, pants, +6 |
| casual_dressopt | COMBO | random | 10 options: random, sundress, maxi_dress, mini_dress, cocktail_dress, shift_dress, +4 |
| formal_topopt | COMBO | random | 9 options: random, dress_shirt, blouse, blazer, suit_jacket, vest, +3 |
| formal_bottomopt | COMBO | random | 5 options: random, dress_pants, pencil_skirt, a_line_skirt, formal_shorts |
| formal_dressopt | COMBO | random | 7 options: random, evening_gown, cocktail_dress, formal_dress, ball_gown, business_dress, +1 |
| accessoriesopt | COMBO | random | 21 options: random, hat, cap, beanie, headband, hair_clip, +15 |
| underwear_topopt | COMBO | random | 1 options: random |
| underwear_top_coloropt | COMBO | random | 1 options: random |
| underwear_bottomopt | COMBO | random | 1 options: random |
| underwear_bottom_coloropt | COMBO | random | 1 options: random |
| qualityopt | COMBO | random | 1 options: random |
| compositionopt | COMBO | random | 1 options: random |
| color_schemeopt | COMBO | random | 1 options: random |
| time_periodopt | COMBO | random | 1 options: random |
| weatheropt | COMBO | random | 1 options: random |
| special_effectsopt | COMBO | random | 1 options: random |
| image_styleopt | COMBO | random | 1 options: random |
| character_emphasisopt | COMBO | medium | 4 options: low, medium, high, very_high |
| pose_emphasisopt | COMBO | medium | 4 options: low, medium, high, very_high |
| clothing_emphasisopt | COMBO | medium | 4 options: low, medium, high, very_high |
| location_emphasisopt | COMBO | medium | 4 options: low, medium, high, very_high |
| art_style_emphasisopt | COMBO | medium | 4 options: low, medium, high, very_high |
| custom_elementsopt | STRING | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| positive_prompt | STRING | — |
| selection_summary | STRING | — |