ComfyUI Node
Character Architect
Builds a structured character prompt with independent deterministic randomization, guided clothing families, and compatibility-aware layering. Hover individual controls for their hidden rules.
Character Architect
- Prompt
- Face Prompt
- Inspected Value
◄media_typephotograph►
◄genderwoman►
◄content_ratingnormal►
◄portrait_styleNone►
◄settingNone►
◄lens_styleNone►
◄shot_compositionNone►
◄pose_moodNone►
◄poseNone►
◄camera_directionNone►
◄lighting_styleNone►
◄optical_effectNone►
◄origin_ageNone►
◄origin_ethnicityNone►
◄body_typeNone►
◄body_physiqueNone►
◄body_feminine_curvesNone►
◄body_hairNone►
◄skin_finishNone►
◄bustNone►
◄cleavage_depthNone►
◄cleavage_typeNone►
◄butt_shapeNone►
◄thigh_shapeNone►
◄expressionNone►
◄eye_expressionNone►
◄face_shapeNone►
◄jawlineNone►
◄chin_shapeNone►
◄eye_shapeNone►
◄eye_colorNone►
◄eyelashesNone►
◄eyebrowsNone►
◄nose_shapeNone►
◄lip_shapeNone►
◄facial_hairNone►
◄hair_colorNone►
◄hair_textureNone►
◄hair_styleNone►
◄hair_cutNone►
◄hair_lengthNone►
◄bangs_styleNone►
◄tattoo_styleNone►
◄makeup_eyeNone►
◄makeup_complexionNone►
◄makeup_lipsNone►
◄nail_styleNone►
◄clothing_archetypeNone►
◄outfit_styleNone►
◄top_typeNone►
◄top_colorNone►
◄bottom_typeNone►
◄bottom_lengthNone►
◄bottom_colorNone►
◄lingerie_typeNone►
◄lingerie_colorNone►
◄sleepwear_typeNone►
◄sleepwear_colorNone►
◄cosplay_typeNone►
◄cosplay_franchise_westernNone►
◄cosplay_franchise_asianNone►
◄cosplay_colorNone►
◄hosieryNone►
◄hosiery_colorNone►
◄dress_typeNone►
◄dress_colorNone►
◄outerwearNone►
◄outerwear_colorNone►
◄outerwear_wearing_styleNone►
◄beltNone►
◄belt_colorNone►
◄footwearNone►
◄footwear_colorNone►
◄head_accessoryNone►
◄accessories_scarfNone►
◄accessories_jewelryNone►
◄accessories_necklaceNone►
◄accessories_earringsNone►
◄accessories_braceletNone►
◄accessories_ringsNone►
◄accessories_glassesNone►
◄armwearNone►
◄accessories_bagNone►
◄lock_media_typetrue►
◄lock_gendertrue►
◄lock_content_ratingtrue►
◄ethnicity_guidancefalse►
◄enhance_realismfalse►
◄species_modeHuman►
◄seed0►
◄control_after_generaterandomize►
◄free_prompt►
◄free_prompt_positionAfter introduction►
◄override_fieldNone►
◄override_text—►
◄inspect_propertyNone►
Categoryprompt
Inputs (96)
| Name | Type | Default | Description |
|---|---|---|---|
| media_type | COMBO | photograph | Defines the base medium at the very beginning of the prompt. Lock it to protect it from section and global randomization. |
| gender | COMBO | woman | Defines the subject wording. It never hides or forbids body, clothing, makeup, or facial-hair choices. |
| content_rating | COMBO | normal | Adds a styling direction only; it does not hide categories or prohibit manual choices. |
| portrait_style | COMBO | None | Controls framing and portrait intent. Under ordinary Random, close-up and headshot receive one-third weight when body details call for visibility. Close-up, headshot, bust, and half-body framing suppress ordinary Random footwear; manual and Forced Random footwear remain free. |
| setting | COMBO | None | Adds a contextual environment. Ordinary Random is suppressed when a bicycle, horse, car, carousel, or skateboard pose already supplies its own scene context. Manual choices, Forced Random, and text override remain authoritative. |
| lens_style | COMBO | None | Adds optical and depth-of-field characteristics after the scene description. Ordinary Random only softens a few known harsh lens/lighting collisions; 20% remain deliberately wild. |
| shot_composition | COMBO | None | Controls spatial framing and subject placement. Tight crop suppresses ordinary Random footwear to avoid detached shoes; manual and Forced Random footwear remain free. |
| pose_mood | COMBO | None | Adds the overall attitude of the pose without replacing the concrete body position. |
| pose | COMBO | None | Defines a concrete body action or position. Cycling, horse riding, driving, carousel riding, and skateboarding suppress an ordinary Random setting to prevent incompatible scenery; manual settings, Forced Random, and text override still apply. Dancing keeps its normal setting. Gaze wording is minimized to avoid contradicting Eye expression. |
| camera_direction | COMBO | None | Controls the camera-facing angle. Complex back-facing directions live in Pose to reduce random contradictions. |
| lighting_style | COMBO | None | Describes the light independently from the setting. Ordinary Random softens a few known clashes with duotone, infrared, disposable, and cheap-digital treatments while preserving a 20% wild-card share. |
| optical_effect | COMBO | None | Opt-in photographic treatment placed before Media type for stronger adherence. Protected from global random buttons; manual Random yields no effect 70% of the time, while Forced Random always selects an effect. |
| origin_age | COMBO | None | Adds an adult age range near the subject introduction. |
| origin_ethnicity | COMBO | None | With Ethnicity guidance enabled, this supplies the phenotype anchor and weighted eye, hair, and skin pools. Manual and Forced Random choices remain free. |
| body_type | COMBO | None | General stature and frame. Combine it with Body physique for independent weight or muscularity, such as very petite + plump physique. |
| body_physique | COMBO | None | Weight, softness, fitness, or muscular development. It is independent from Body type and feminine curves. |
| body_feminine_curves | COMBO | None | Adds a curve distribution independently from stature and physique. It is never restricted by gender. |
| body_hair | COMBO | None | Protected from one-click randomization because explicit presence or absence strongly changes the result. Manual Random and Forced Random remain available. |
| skin_finish | COMBO | None | Protected from one-click randomization. Ethnicity guidance may use a neutral compatible pool when this field is manually set to Random. |
| bust | COMBO | None | Independent morphological descriptor; no gender or content-rating restriction is applied. |
| cleavage_depth | COMBO | None | Works with Cleavage type and clothing. When either neckline field is on ordinary Random, compatible depth/type pairs are favored 90% of the time; manual and Forced Random choices stay free. |
| cleavage_type | COMBO | None | Neckline shape combined with Neckline depth. Ordinary Random favors coherent pairs; halter and off-shoulder are also suppressed when a complete cosplay already specifies a structured jacket, coat, blazer, uniform, or robe. Manual and Forced Random remain free. |
| butt_shape | COMBO | None | Independent lower-body descriptor; combines with Body type, physique, curves, and thighs. |
| thigh_shape | COMBO | None | Independent thigh descriptor; combines with the other body controls. |
| expression | COMBO | None | General facial expression. Keep Eye expression separate when you want a specific gaze quality. |
| eye_expression | COMBO | None | Adds only the gaze quality; pose descriptions avoid duplicating it wherever possible. |
| face_shape | COMBO | None | With Ethnicity guidance enabled, Random is drawn from the selected ethnicity's compatible pool. |
| jawline | COMBO | None | With Ethnicity guidance enabled, Random is drawn from a compatible pool. Manual values are never overridden. |
| chin_shape | COMBO | None | With Ethnicity guidance enabled, Random is drawn from a compatible pool. Manual values are never overridden. |
| eye_shape | COMBO | None | Morphological eye shape. Ethnicity guidance can constrain Random; Eye expression remains independent. |
| eye_color | COMBO | None | With Ethnicity guidance active, None and Random use a weighted ethnicity-specific pool. Forced Random or a manual color deliberately overrides that pool. |
| eyelashes | COMBO | None | Independent from eye shape, color, and makeup. |
| eyebrows | COMBO | None | Ethnicity guidance can constrain Random. Manual eyebrow choices remain untouched. |
| nose_shape | COMBO | None | Ethnicity guidance can constrain Random. Manual nose choices remain untouched. |
| lip_shape | COMBO | None | Ethnicity guidance can constrain Random. Manual lip choices remain untouched. |
| facial_hair | COMBO | None | Protected from one-click randomization because it strongly changes identity. Manual Random and Forced Random remain available. |
| hair_color | COMBO | None | Ethnicity guidance can constrain Random. Manual hair colors remain untouched. |
| hair_texture | COMBO | None | Ethnicity guidance can constrain Random. Ordinary Random softly reduces only the strongest material clashes; 25% of unusual combinations remain untouched. |
| hair_style | COMBO | None | Combined with texture, cut, length, and bangs. Length-dependent styles are softly guided, while experimental undercuts and mixed constructions remain possible. |
| hair_cut | COMBO | None | Independent from length and styling. Ordinary Random favors workable geometry 75% of the time rather than forbidding unconventional cuts. |
| hair_length | COMBO | None | Modifies cut and styling. Ordinary Random usually supplies enough length for buns, ponytails, braids, and locs, but keeps a deliberate wild-card share. |
| bangs_style | COMBO | None | Optional fringe descriptor. Ordinary Random only reduces the clearest cropped-hair conflicts; manual and Forced Random choices are untouched. |
| tattoo_style | COMBO | None | Tattoo coverage and style; independent from clothing and content rating. |
| makeup_eye | COMBO | None | Eye makeup is independent from eye expression and eyelashes. |
| makeup_complexion | COMBO | None | Protected from one-click randomization to avoid forcing makeup onto every subject. Manual Random remains available. |
| makeup_lips | COMBO | None | Lip makeup is independent from lip shape. |
| nail_style | COMBO | None | Automatically suppressed when the resolved outfit contains full hand-covering gloves. Fingerless gloves and open handwear keep nail prompts. |
| clothing_archetype | COMBO | None | Guides only fields left on Random and silently casts a compatible Outfit style. Manual choices are never overwritten; cosplay is not selected automatically by archetypes. |
| outfit_style | COMBO | None | When Random under an archetype, it uses that archetype's style pool. A fixed manual value remains authoritative. |
| top_type | COMBO | None | A concrete top activates the separates family and suppresses competing ordinary Random garment families. Forced Random bypasses that protection. |
| top_color | COMBO | None | Colors modify an active top; a color alone does not activate the separates family. |
| bottom_type | COMBO | None | A concrete bottom activates the separates family. Ordinary Random softly favors a workable length for that garment while retaining 15% atypical combinations. |
| bottom_length | COMBO | None | Controls leg coverage. Ordinary Random uses hidden type-compatible pools; manual and Forced Random lengths remain unrestricted. Long and mid-length bottoms partially conceal hosiery. |
| bottom_color | COMBO | None | Colors modify an active bottom; a color alone does not activate the separates family. |
| lingerie_type | COMBO | None | Can be the main outfit or a rare underlayer. Ordinary/Casual/most archetype Random layering is 10%; Emo is 50%; Forced Random is always honored. Under cosplay, automatic layering is limited to Casual and Emo. |
| lingerie_color | COMBO | None | Colors the selected lingerie or swimwear. A color alone does not activate lingerie. |
| sleepwear_type | COMBO | None | A complete main garment family. When selected, ordinary Random dress, separates, lingerie, and cosplay families are suppressed. |
| sleepwear_color | COMBO | None | Colors active sleepwear; a color alone does not activate it. |
| cosplay_type | COMBO | None | Complete generic costume. Its source draw is weighted for fair per-costume probability. Ordinary Random hosiery, outfit styling, outerwear, belts, and footwear are suppressed; manual choices, Forced Random, and text override remain available. |
| cosplay_franchise_western | COMBO | None | Complete Western franchise outfit. All cosplay sources share one family and are weighted for fair per-costume probability. |
| cosplay_franchise_asian | COMBO | None | Complete Asian franchise outfit. All cosplay sources share one family and are weighted for fair per-costume probability. |
| cosplay_color | COMBO | None | Applies only to generic cosplay. Franchise costumes keep their authored colors unless you make an explicit manual color choice elsewhere. |
| hosiery | COMBO | None | Layers beneath bottoms when both are active. Ordinary Random is suppressed under cosplay; Forced Random bypasses this rule. |
| hosiery_color | COMBO | None | Colors active hosiery. Long and mid-length bottoms mark it as partly visible. Every cosplay suppresses ordinary Random hosiery and its color; manual and Forced Random remain valid. |
| dress_type | COMBO | None | A concrete dress activates the dress family and suppresses competing ordinary Random main garments. |
| dress_color | COMBO | None | Colors an active dress; a color alone does not activate the dress family. |
| outerwear | COMBO | None | An optional layer placed over the resolved main outfit. Ordinary Random is suppressed for every cosplay; manual, Forced Random, and override remain available. |
| outerwear_color | COMBO | None | Colors active outerwear. Every cosplay neutralizes ordinary Random outerwear and its color unless explicitly forced or selected. |
| outerwear_wearing_style | COMBO | None | Controls how active outerwear is worn. New nodes start on None; an active outerwear without a selected style is worn conventionally. Ordinary Random favors conventional wear, while Forced Random gives every supported position an equal chance. |
| belt | COMBO | None | An optional accessory layer. Ordinary Random is suppressed for every cosplay; manual, Forced Random, and override remain available. |
| belt_color | COMBO | None | Colors an active belt. Every cosplay suppresses an ordinary Random belt and its color; manual and Forced Random choices remain valid. |
| footwear | COMBO | None | Optional footwear. Ordinary Random is suppressed for every cosplay and through three-quarter framing; it remains probabilistic in wider portraits. Manual, Forced Random, franchise-authored footwear, and text override remain valid. |
| footwear_color | COMBO | None | Colors active footwear. When probabilistic Random footwear is omitted, its Random color is removed atomically. Manual footwear/colors, Forced Random, and text override remain valid. |
| head_accessory | COMBO | None | Optional hair/head item. Ordinary Random is suppressed when a complete cosplay already specifies headwear; manual and Forced Random can deliberately layer both. Loc cuffs remain possible everywhere and receive a gentle boost with dreadlocks and braids. |
| accessories_scarf | COMBO | None | Protected from one-click randomization. When deliberately left on ordinary Random, a scarf appears about 30% of the time; Forced Random always adds one. |
| accessories_jewelry | COMBO | None | General jewelry styling; combines with the more specific necklace, earrings, bracelet, and rings fields. |
| accessories_necklace | COMBO | None | Specific necklace choice; can be combined deliberately with general jewelry styling. |
| accessories_earrings | COMBO | None | Specific earrings choice; independent from other jewelry. |
| accessories_bracelet | COMBO | None | Specific wrist jewelry; full gloves may visually obscure it but do not silently remove a manual choice. |
| accessories_rings | COMBO | None | Specific hand jewelry; full gloves may visually obscure it but do not silently remove a manual choice. |
| accessories_glasses | COMBO | None | Ordinary Random produces no glasses 67% of the time and a concrete pair 33% of the time. Forced Random always selects concrete glasses. |
| armwear | COMBO | None | Full hand-covering gloves automatically suppress Random nail styling. Fingerless and transparent/open armwear do not. |
| accessories_bag | COMBO | None | Optional bag. Ordinary Random adds one about 40% of the time; archetypes guide its type. Forced Random and manual choices remain authoritative. |
| lock_media_typeopt | BOOLEAN | true | Protects Media type from the global and section randomization buttons. |
| lock_genderopt | BOOLEAN | true | Protects Gender from the global and section randomization buttons. |
| lock_content_ratingopt | BOOLEAN | true | Protects Content rating from the global and section randomization buttons. |
| ethnicity_guidanceopt | BOOLEAN | false | When activated, facial anatomy uses a strong anchor; Eye color on None or Random uses its weighted ethnicity pool. Forced Random and manual values deliberately override guidance. |
| enhance_realismopt | BOOLEAN | false | Appends a realism suffix about plausible lighting, exposure, texture, composition, and natural photographic imperfections. |
| species_modeopt | COMBO | Human | Anthro Furry adds a furry subject prefix. It does not remove human-oriented clothing or morphology controls. |
| seedopt | INT | 00–18446744073709550000 | Every Random field has its own deterministic stream derived from this seed. Fixing one field no longer changes unrelated random fields. |
| control_after_generateopt | COMBO | randomize | ComfyUI seed behavior after each run. Use fixed to preserve all resolved Random choices while editing selected fields. |
| free_promptopt | STRING | Free text inserted at the selected position without changing any structured category. | |
| free_prompt_positionopt | COMBO | After introduction | Places Free prompt after the introduction, after makeup, or at the very end. |
| override_fieldopt | COMBO | None | Selects the structured property replaced by Override text. A non-empty connected string has absolute priority over manual choices, Forced Random, guidance, archetypes, probabilities, and compatibility rules. Overriding a main garment type also clears competing main garment families so the text is guaranteed to appear. |
| override_textopt | STRING | Connect one STRING here. When non-empty, it replaces the property selected by Override field exactly as written. | |
| inspect_propertyopt | COMBO | None | Selects one resolved property to expose through Inspected Value for overlays, comparisons, and statistics. It reports the final value after every rule and override. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| Prompt | STRING | — |
| Face Prompt | STRING | — |
| Inspected Value | STRING | — |