Nodes/Factory Prompt Generator/Factory Prompts Generator (Positive)
ComfyUI Node

Factory Prompts Generator (Positive)

This is the main Factory Prompts node

By HWDigi·Created about a year ago·Updated about a year ago· 2
Factory Prompts Generator (Positive)
    • positive_prompt
    • selection_summary
    ◄quality_levelhigh►
    ◄source_styleanime►
    ◄character_count1girl►
    ◄character_preferencesingle►
    ◄clothing_stylecasual►
    ◄location_typeindoor►
    ◄include_artisttrue►
    ◄seed0►
    ◄hair_colorrandom►
    ◄hair_lengthrandom►
    ◄hair_stylerandom►
    ◄eye_colorrandom►
    ◄skin_colorrandom►
    ◄expressionrandom►
    ◄body_typerandom►
    ◄chest_typerandom►
    ◄hip_typerandom►
    ◄leg_typerandom►
    ◄poserandom►
    ◄multi_char_positionrandom►
    ◄character_1_actionrandom►
    ◄character_2_actionrandom►
    ◄character_3_actionrandom►
    ◄camera_shotrandom►
    ◄indoor_locationrandom►
    ◄outdoor_locationrandom►
    ◄fantasy_locationrandom►
    ◄lightingrandom►
    ◄emotionrandom►
    ◄school_uniform_toprandom►
    ◄school_uniform_bottomrandom►
    ◄school_uniform_footwearrandom►
    ◄casual_toprandom►
    ◄casual_bottomrandom►
    ◄casual_dressrandom►
    ◄formal_toprandom►
    ◄formal_bottomrandom►
    ◄formal_dressrandom►
    ◄accessoriesrandom►
    ◄underwear_toprandom►
    ◄underwear_top_colorrandom►
    ◄underwear_bottomrandom►
    ◄underwear_bottom_colorrandom►
    ◄qualityrandom►
    ◄compositionrandom►
    ◄color_schemerandom►
    ◄time_periodrandom►
    ◄weatherrandom►
    ◄special_effectsrandom►
    ◄image_stylerandom►
    ◄character_emphasismedium►
    ◄pose_emphasismedium►
    ◄clothing_emphasismedium►
    ◄location_emphasismedium►
    ◄art_style_emphasismedium►
    ◄custom_elements►

    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:

    • photorealistic source style maps to the tag source_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_artist defaults 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 offer random, because the JSON keys they read don't exist in factory_tags.json. Left on random, they add nothing to your prompt.
    • The location dropdowns are populated from the JSON's environments section, but the random pick reads a locations section that doesn't exist - so indoor_location and outdoor_location on random also 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.

    CategoryPrompt Factory

    Inputs (56)

    NameTypeDefaultDescription
    quality_levelCOMBOhigh3 options: high, medium, varied
    source_styleCOMBOanime6 options: anime, cartoon, realistic, photorealistic, furry, mixed
    character_countCOMBO1girl18 options: 1girl, 1boy, 2girls, 2boys, 1girl_1boy, 3girls, +12
    character_preferenceCOMBOsingle4 options: single, couple, group, crowd
    clothing_styleCOMBOcasual6 options: school, casual, formal, traditional, fantasy, mixed
    location_typeCOMBOindoor3 options: indoor, outdoor, mixed
    include_artistBOOLEANtrue—
    seedINT00–18446744073709550000—
    hair_coloroptCOMBOrandom42 options: random, blonde_hair, brown_hair, black_hair, white_hair, silver_hair, +36
    hair_lengthoptCOMBOrandom17 options: random, long_hair, short_hair, medium_hair, very_long_hair, shoulder_length_hair, +11
    hair_styleoptCOMBOrandom41 options: random, twintails, ponytail, side_ponytail, twin_braids, single_braid, +35
    eye_coloroptCOMBOrandom25 options: random, blue_eyes, brown_eyes, green_eyes, red_eyes, purple_eyes, +19
    skin_coloroptCOMBOrandom61 options: random, none, pale_skin, fair_skin, light_skin, medium_skin, +55
    expressionoptCOMBOrandom43 options: random, smile, grin, laugh, giggle, smirk, +37
    body_typeoptCOMBOrandom46 options: random, petite, slim, slender, thin, skinny, +40
    chest_typeoptCOMBOrandom17 options: random, small_chest, medium_chest, large_chest, flat_chest, modest_chest, +11
    hip_typeoptCOMBOrandom13 options: random, narrow_hips, wide_hips, curvy_hips, straight_hips, athletic_hips, +7
    leg_typeoptCOMBOrandom21 options: random, long_legs, short_legs, slender_legs, athletic_legs, toned_legs, +15
    poseoptCOMBOrandom63 options: random, standing, sitting, walking, running, jumping, +57
    multi_char_positionoptCOMBOrandom133 options: random, standing_together, sitting_together, walking_side_by_side, talking, chatting, +127
    character_1_actionoptCOMBOrandom52 options: random, leading, following, initiating, responding, dominant_pose, +46
    character_2_actionoptCOMBOrandom52 options: random, following, leading, responding, initiating, submissive_pose, +46
    character_3_actionoptCOMBOrandom31 options: random, watching, participating, waiting_turn, assisting, supporting, +25
    camera_shotoptCOMBOrandom1 options: random
    indoor_locationoptCOMBOrandom21 options: random, bedroom, living_room, kitchen, bathroom, office, +15
    outdoor_locationoptCOMBOrandom19 options: random, park, garden, beach, forest, mountain, +13
    fantasy_locationoptCOMBOrandom15 options: random, castle, dungeon, tower, throne_room, magical_forest, +9
    lightingoptCOMBOrandom24 options: random, natural_light, sunlight, moonlight, starlight, candlelight, +18
    emotionoptCOMBOrandom33 options: random, happy, sad, angry, surprised, disgusted, +27
    school_uniform_topoptCOMBOrandom17 options: random, school_uniform_top, sailor_uniform_top, blazer, cardigan, sweater_vest, +11
    school_uniform_bottomoptCOMBOrandom9 options: random, school_skirt, pleated_skirt, school_shorts, uniform_pants, dress_pants, +3
    school_uniform_footwearoptCOMBOrandom10 options: random, school_shoes, loafers, mary_janes, sneakers, dress_shoes, +4
    casual_topoptCOMBOrandom13 options: random, t_shirt, tank_top, blouse, sweater, hoodie, +7
    casual_bottomoptCOMBOrandom12 options: random, jeans, shorts, skirt, dress, pants, +6
    casual_dressoptCOMBOrandom10 options: random, sundress, maxi_dress, mini_dress, cocktail_dress, shift_dress, +4
    formal_topoptCOMBOrandom9 options: random, dress_shirt, blouse, blazer, suit_jacket, vest, +3
    formal_bottomoptCOMBOrandom5 options: random, dress_pants, pencil_skirt, a_line_skirt, formal_shorts
    formal_dressoptCOMBOrandom7 options: random, evening_gown, cocktail_dress, formal_dress, ball_gown, business_dress, +1
    accessoriesoptCOMBOrandom21 options: random, hat, cap, beanie, headband, hair_clip, +15
    underwear_topoptCOMBOrandom1 options: random
    underwear_top_coloroptCOMBOrandom1 options: random
    underwear_bottomoptCOMBOrandom1 options: random
    underwear_bottom_coloroptCOMBOrandom1 options: random
    qualityoptCOMBOrandom1 options: random
    compositionoptCOMBOrandom1 options: random
    color_schemeoptCOMBOrandom1 options: random
    time_periodoptCOMBOrandom1 options: random
    weatheroptCOMBOrandom1 options: random
    special_effectsoptCOMBOrandom1 options: random
    image_styleoptCOMBOrandom1 options: random
    character_emphasisoptCOMBOmedium4 options: low, medium, high, very_high
    pose_emphasisoptCOMBOmedium4 options: low, medium, high, very_high
    clothing_emphasisoptCOMBOmedium4 options: low, medium, high, very_high
    location_emphasisoptCOMBOmedium4 options: low, medium, high, very_high
    art_style_emphasisoptCOMBOmedium4 options: low, medium, high, very_high
    custom_elementsoptSTRING—

    Outputs (2)

    NameTypeDescription
    positive_promptSTRING—
    selection_summarySTRING—