Nodes/Character Architect/Character Architect
ComfyUI Node

Character Architect

Stop hand-typing character prompts. This node writes the whole card for you

By InspectaGadget·Created 2 months ago·Updated 10 days ago· 0
Character Architect
    • Prompt
    • Face Prompt
    • Inspected Value
    • Pre-gen Text
    media_typephotograph
    genderwoman
    content_ratingnormal
    composition_archetypeNone
    portrait_styleNone
    capture_styleNone
    settingNone
    scene_scenarioNone
    lens_styleNone
    shot_compositionNone
    pose_moodNone
    poseNone
    camera_directionNone
    head_directionNone
    camera_angleNone
    lighting_styleNone
    optical_effectNone
    origin_ageNone
    origin_ethnicityNone
    body_archetypeNone
    body_typeNone
    body_physiqueNone
    body_feminine_curvesNone
    body_hairNone
    skin_finishNone
    bustNone
    cleavage_depthNone
    cleavage_typeNone
    butt_shapeNone
    thigh_shapeNone
    body_detail_1None
    body_detail_2None
    body_detail_3None
    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
    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
    enforce_portrait_framingfalse
    seed0
    control_after_generaterandomize
    free_prompt
    free_prompt_positionAfter introduction
    override_fieldNone
    override_text
    identity_forge_json
    inspect_propertyNone
    eye_focusNone
    mouth_expressionNone
    setting_text_override
    pose_text_override
    face_hair_text_override
    custom_color_overrides
    wildcard_subject
    wildcard_clothing
    wildcard_pose
    wildcard_setting
    wildcard_photography

    Character Architect isn't a LoRA trainer and it isn't a character-consistency model. It's a giant, opinionated prompt-writing machine: 83 dropdowns covering appearance, ethnicity, pose, clothing families, cosplay, accessories and composition, all assembled into one coherent natural-language prompt that drops out as a plain STRING. You wire that into your text encoder instead of a text box, and suddenly "batch 40 variations of the same character skeleton" stops meaning hand-editing prose forty times.

    The name "Character Architect" is doing a lot of work - but it's honest. This is the kind of thing that ships with the workflows the author actually runs, and the ones bundled in the repo are Krea 2 graphs using ClownsharkBatwing samplers. That tells you the target: LLM-encoded photoreal models that read sentences, not booru tags. If your pipeline is Illustrious or Pony, this will underperform a tag-based prompter - it emits blocks of prose, which is exactly what a Qwen or Krea-style encoder wants (see the block-structure findings in the KB's prompt-engineering notes).

    How it actually works

    Every dropdown offers None, Random, Forced Random, plus its concrete values. Here's the clever bit: each field marked Random resolves deterministically from the seed via a blake2b hash of (seed, field_name). Every field gets its own independent stream, so locking one property no longer reshuffles the unrelated ones around it - a real quality-of-life win over the {a|b|c} bracket wildcard trick the A1111 crowd used to live on.

    The distinction between Random and Forced Random matters and trips everyone up. Ordinary Random is subject to all the hidden compatibility filters - no shoes in a close-up crop, no contradictory ethnic anatomy, one main clothing family at a time. Forced Random deliberately bypasses all of them for that one field. The frontend also adds section headers with RANDOMIZE ALL ONCE (bakes concrete values now) and SET ALL RANDOM (leaves them resolving per seed) - not the same thing, and worth keeping straight.

    There's a deliberate 20% wild-card share baked into Random. Some outputs will look "off" on purpose; that's the design, not a bug.

    The inputs that actually matter

    Don't panic at the scroll. You set a handful, the rest can ride on Random:

    • media_type, gender, content_rating - the pivot inputs, locked by default (lock_media_type, lock_gender, lock_content_rating). Note the tooltip: content rating adds a styling direction only; it never hides categories or blocks manual choices. This is an adult-content-oriented pack, handled tastefully - set it to normal if you want zero NSFW flavor.
    • origin_ethnicity + ethnicity_guidance - flipping guidance on replaces the broad label with a concrete 13-profile phenotype anchor, draws eye color from an ethnicity-weighted pool, and stops random anatomy from contradicting the anchor.
    • clothing_archetype - 11 style directions (Classy Chic, Streetwear, Kawaii…) that guide any row left on Random without touching your manual picks.
    • seed / control_after_generate - defaults to randomize, which means every queued run re-rolls your Random rows. Set it to fixed while you tweak a single field.
    • free_prompt with free_prompt_position, and the override_field + override_text pair - override is the final authority, applied after every rule, and clearing competing garment families so your connected text always shows up.

    The three STRING outputs: Prompt (the full thing), Face Prompt (a face-only subset - perfect for a face-detail pass), and Inspected Value (one resolved field's final text, handy for labels, grids and stats without parsing the whole prompt).

    Installation

    No model downloads, no requirements.txt, no API key - it's pure Python plus a JavaScript frontend. ComfyUI Manager, search "Character Architect," or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/InspectaGadget/ComfyUI-CharacterArchitect
    

    Restart ComfyUI. Because there's a JS frontend that reorganizes the widgets into sections, force-refresh the browser (Ctrl+F5) after updating, or you'll see stale UI.

    Where people get burned

    The randomness being seed-driven is the big one: if you leave control_after_generate on randomize, your carefully locked outfit gets re-rolled every run. Lock what you care about, then fixed the seed.

    Second: this is an obscure pack - there's essentially no Reddit support thread for it, so the README and the built-in tooltips are your docs. Hover any widget: every control carries its own interaction rules, probabilities and suppression logic as metadata. That's genuinely the fastest way to understand why a Random row didn't appear.

    Third: the output is long by design, and LLM-encoded models have a real attention cap around 75–100 effective tokens. If a distilled model drifts with the full Prompt, trim categories or feed it the Face Prompt instead - the block structure this node produces is exactly what those encoders want, but even good structure has a budget.

    Categoryprompt

    Inputs (117)

    NameTypeDefaultDescription
    media_typeCOMBOphotographDefines the base medium at the very beginning of the prompt. Lock it to protect it from section and global randomization.
    genderCOMBOwomanDefines the subject wording. It never hides or forbids body, clothing, makeup, or facial-hair choices.
    content_ratingCOMBOnormalControls presentation intensity with two concrete outcomes: normal produces a neutral, non-sexualized, non-explicit treatment; glamour/sexy/explicit produces a glamorous, sexualized, explicit treatment. It is included in both Prompt and Pre-gen Text.
    composition_archetypeCOMBONoneOptional coherent composition recipe. It coordinates framing, pose, horizontal camera direction, head direction, eye focus, vertical camera angle, and frame placement while preserving manual and Forced Random choices. A manual archetype suppresses an ordinary Random Scene scenario; a manual or Forced Random scenario remains authoritative.
    portrait_styleCOMBONoneControls only subject framing, from close-up to full body. Under ordinary Random it adapts to the visibility required by a random pose. Manual and Forced Random framing remain free.
    capture_styleCOMBONoneControls photographic treatment independently from framing. Selfie is now an explicit Pose action, so Capture style no longer silently overrides camera geometry.
    settingCOMBONoneAdds 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.
    scene_scenarioCOMBONoneRare complete action-and-setting unit. None keeps the classic Pose + Setting path. Ordinary Random selects a scenario ten percent of the time and otherwise keeps Pose + Setting. Forced Random guarantees a scenario. A manually selected scenario replaces Pose and Setting; camera, framing, lighting, and styling remain independent.
    lens_styleCOMBONoneAdds 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_compositionCOMBONoneControls placement inside the frame, not camera height. Ordinary Random follows Capture style and avoids placing the subject high with a high camera, or low with a low camera. Manual and Forced Random remain free.
    pose_moodCOMBONoneAdds attitude or emotional bearing without duplicating the concrete body position.
    poseCOMBONoneControls body mechanics and only keeps an orientation when that orientation is intrinsic to the pose, such as a side squat. Ordinary Random then coordinates with Camera direction; explicit combinations remain authoritative. Vehicle actions suppress only an ordinary Random setting.
    camera_directionCOMBONoneControls the horizontal relationship between camera and subject. Ordinary Random follows intrinsically side-oriented poses and favors readable views for gestures or movement; manual and Forced Random choices remain unrestricted.
    head_directionCOMBONoneControls the head orientation independently from body pose, camera height, and Eye Focus. Looking downward no longer implies looking toward the camera.
    camera_angleCOMBONoneControls only camera height: eye level, low angle, worm's-eye, high angle, or overhead bird's-eye. Ordinary Random keeps it distinct from subject placement in the frame and reserves extreme angles for occasional variation; manual and Forced Random remain unrestricted.
    lighting_styleCOMBONoneDescribes 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_effectCOMBONoneOpt-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_ageCOMBONoneAdds an adult age range near the subject introduction.
    origin_ethnicityCOMBONoneThe resolved broad category is included in Pre-gen Text. With Ethnicity guidance enabled, Full Prompt additionally receives the detailed phenotype anchor and weighted eye, hair, and skin pools; that detailed guidance stays out of Pre-gen.
    body_archetypeCOMBONoneOptional coherent body recipe. It fills only body controls left on None or ordinary Random. Manual selections and Forced Random remain authoritative, and every phrase an archetype can produce is also available in the regular body widgets.
    body_typeCOMBONoneHeight only. Ordinary Random excludes the exceptional 'a person with dwarfism' and 'a person of giant stature' values. Forced Random includes the complete list, and a manual choice always remains authoritative. Height is written separately from physique, so short + obese or tall + extremely underweight remains unambiguous.
    body_physiqueCOMBONoneWeight, softness, fitness, or muscular development, independently weighted by broad families under ordinary Random. Forced Random remains uniform across concrete choices.
    body_feminine_curvesCOMBONoneCurve intensity and broad silhouette independently from height and weight. Leg proportions and lumbar curvature now live in Body Detail, with legacy workflows migrated automatically. It is never restricted by gender.
    body_hairCOMBONoneProtected from one-click randomization because explicit presence or absence strongly changes the result. Manual Random and Forced Random remain available.
    skin_finishCOMBONoneProtected from one-click randomization. Ethnicity guidance may use a neutral compatible pool when this field is manually set to Random.
    bustCOMBONoneIndependent morphological descriptor; no gender or content-rating restriction is applied.
    cleavage_depthCOMBONoneWorks 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_typeCOMBONoneNeckline 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_shapeCOMBONoneIndependent lower-body descriptor; combines with Body type, physique, curves, and thighs.
    thigh_shapeCOMBONoneIndependent thigh descriptor; combines with the other body controls.
    body_detail_1COMBONoneOptional morphological refinement. Ordinary Random and Body Archetype avoid contradictory axes across the three detail slots; manual and Forced Random choices remain authoritative.
    body_detail_2COMBONoneSecond refinement using the same complete Body Detail vocabulary and precedence rules.
    body_detail_3COMBONoneThird refinement using the same complete Body Detail vocabulary and precedence rules.
    expressionCOMBONoneGeneral facial expression. Keep Eye expression separate when you want a specific gaze quality.
    eye_expressionCOMBONoneAdds only the gaze quality; pose descriptions avoid duplicating it wherever possible.
    face_shapeCOMBONoneWith Ethnicity guidance enabled, Random is drawn from the selected ethnicity's compatible pool.
    jawlineCOMBONoneWith Ethnicity guidance enabled, Random is drawn from a compatible pool. Manual values are never overridden.
    chin_shapeCOMBONoneWith Ethnicity guidance enabled, Random is drawn from a compatible pool. Manual values are never overridden.
    eye_shapeCOMBONoneMorphological eye shape. Ethnicity guidance can constrain Random; Eye expression remains independent.
    eye_colorCOMBONoneWith Ethnicity guidance active, None and Random use a weighted ethnicity-specific pool. Forced Random or a manual color deliberately overrides that pool.
    eyelashesCOMBONoneIndependent from eye shape, color, and makeup.
    eyebrowsCOMBONoneEthnicity guidance can constrain Random. Manual eyebrow choices remain untouched.
    nose_shapeCOMBONoneEthnicity guidance can constrain Random. Manual nose choices remain untouched.
    lip_shapeCOMBONoneEthnicity guidance can constrain Random. Manual lip choices remain untouched.
    facial_hairCOMBONoneProtected from one-click randomization because it strongly changes identity. Manual Random and Forced Random remain available.
    hair_colorCOMBONoneEthnicity guidance can constrain Random. Manual hair colors remain untouched.
    hair_textureCOMBONoneEthnicity guidance can constrain Random. Ordinary Random softly reduces only the strongest material clashes; 25% of unusual combinations remain untouched.
    hair_styleCOMBONoneCombined with texture, cut, length, and bangs. Length-dependent styles are softly guided, while experimental undercuts and mixed constructions remain possible.
    hair_cutCOMBONoneIndependent from length and styling. Ordinary Random favors workable geometry 75% of the time rather than forbidding unconventional cuts.
    hair_lengthCOMBONoneModifies cut and styling. Ordinary Random usually supplies enough length for buns, ponytails, braids, and locs, but keeps a deliberate wild-card share.
    bangs_styleCOMBONoneOptional fringe descriptor. Ordinary Random only reduces the clearest cropped-hair conflicts; manual and Forced Random choices are untouched.
    tattoo_styleCOMBONoneTattoo coverage and style; independent from clothing and content rating.
    makeup_eyeCOMBONoneEye makeup is independent from eye expression and eyelashes.
    makeup_complexionCOMBONoneProtected from one-click randomization to avoid forcing makeup onto every subject. Manual Random remains available.
    makeup_lipsCOMBONoneLip makeup is independent from lip shape.
    nail_styleCOMBONoneAutomatically suppressed when the resolved outfit contains full hand-covering gloves. Fingerless gloves and open handwear keep nail prompts.
    clothing_archetypeCOMBONoneGuides clothing fields left on Random with concrete compatible garments. Manual choices are never overwritten; cosplay is not selected automatically by archetypes.
    top_typeCOMBONoneA concrete top activates the separates family. When a full-body jumpsuit is drawn, an ordinary Random top is suppressed; a manual or Forced Random top remains authoritative and is described as worn over the jumpsuit.
    top_colorCOMBONoneColors modify an active top; a color alone does not activate the separates family.
    bottom_typeCOMBONoneA concrete bottom activates the separates family, including full-body jumpsuits. An ordinary Random jumpsuit suppresses an ordinary Random top; a manual or Forced Random top is retained and worn over it. Ordinary Random also softly favors a workable garment length.
    bottom_lengthCOMBONoneControls leg coverage. Ordinary Random uses hidden type-compatible pools; manual and Forced Random lengths remain unrestricted. Mid-length trousers show hosiery below their hems; long trousers confine it to the ankles. Skirts, dresses, and short bottoms describe hosiery normally.
    bottom_colorCOMBONoneColors modify an active bottom; a color alone does not activate the separates family.
    lingerie_typeCOMBONoneCan 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_colorCOMBONoneColors the selected lingerie or swimwear. A color alone does not activate lingerie.
    sleepwear_typeCOMBONoneA complete main garment family. When selected, ordinary Random dress, separates, lingerie, and cosplay families are suppressed.
    sleepwear_colorCOMBONoneColors active sleepwear; a color alone does not activate it.
    cosplay_typeCOMBONoneComplete generic costume. Its source draw is weighted for fair per-costume probability. Ordinary Random hosiery, outerwear, belts, and footwear are suppressed; manual choices, Forced Random, and text override remain available.
    cosplay_franchise_westernCOMBONoneComplete Western franchise outfit. All cosplay sources share one family and are weighted for fair per-costume probability.
    cosplay_franchise_asianCOMBONoneComplete Asian franchise outfit. All cosplay sources share one family and are weighted for fair per-costume probability.
    cosplay_colorCOMBONoneApplies only to generic cosplay. Franchise costumes keep their authored colors unless you make an explicit manual color choice elsewhere.
    hosieryCOMBONoneWith skirts, dresses, and short bottoms, hosiery is described normally. Mid-length trousers show it below the trouser hems; long trousers use the deliberately compact ankle-only wording validated in image tests. Ordinary Random is suppressed under cosplay; manual and Forced Random remain valid.
    hosiery_colorCOMBONoneColors active hosiery and follows the same garment-length wording. Every cosplay suppresses ordinary Random hosiery and its color; manual and Forced Random remain valid.
    dress_typeCOMBONoneA concrete dress activates the dress family and suppresses competing ordinary Random main garments.
    dress_colorCOMBONoneColors an active dress; a color alone does not activate the dress family.
    outerwearCOMBONoneAn optional layer placed over the resolved main outfit. Ordinary Random is suppressed for every cosplay; manual, Forced Random, and override remain available.
    outerwear_colorCOMBONoneColors active outerwear. Every cosplay neutralizes ordinary Random outerwear and its color unless explicitly forced or selected.
    outerwear_wearing_styleCOMBONoneControls 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.
    beltCOMBONoneAn optional accessory layer. Ordinary Random is suppressed for every cosplay; manual, Forced Random, and override remain available.
    belt_colorCOMBONoneColors an active belt. Every cosplay suppresses an ordinary Random belt and its color; manual and Forced Random choices remain valid.
    footwearCOMBONoneOptional footwear. Ordinary Random estimates whether feet are likely to appear from pose, framing, and vertical camera angle; visible hosiery adds a small coherence bonus. Close-up and headshot suppress it, low angles strongly reduce it, while high and worm's-eye views favor it. Manual, Forced Random, franchise-authored footwear, and text override remain valid.
    footwear_colorCOMBONoneColors active footwear. When visibility-aware Random footwear is omitted, its Random color is removed atomically. Manual footwear/colors, Forced Random, and text override remain valid.
    head_accessoryCOMBONoneOptional 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_scarfCOMBONoneProtected from one-click randomization. When deliberately left on ordinary Random, a scarf appears about 30% of the time; Forced Random always adds one.
    accessories_jewelryCOMBONoneGeneral jewelry fallback. With specific necklace, earrings, bracelet, or rings, gold/silver tone becomes a compatible material modifier and other broad jewelry labels stand down to prevent merged objects.
    accessories_necklaceCOMBONoneSpecific necklace choice; can be combined deliberately with general jewelry styling.
    accessories_earringsCOMBONoneSpecific earrings choice; independent from other jewelry.
    accessories_braceletCOMBONoneSpecific wrist jewelry; full gloves may visually obscure it but do not silently remove a manual choice.
    accessories_ringsCOMBONoneSpecific hand jewelry; full gloves may visually obscure it but do not silently remove a manual choice.
    accessories_glassesCOMBONoneOrdinary Random produces no glasses 67% of the time and a concrete pair 33% of the time. Forced Random always selects concrete glasses.
    armwearCOMBONoneFull hand-covering gloves automatically suppress Random nail styling. Fingerless and transparent/open armwear do not.
    accessories_bagCOMBONoneOptional bag. Ordinary Random adds one about 40% of the time; archetypes guide its type. Forced Random and manual choices remain authoritative.
    lock_media_typeoptBOOLEANtrueProtects Media type from the global and section randomization buttons.
    lock_genderoptBOOLEANtrueProtects Gender from the global and section randomization buttons.
    lock_content_ratingoptBOOLEANtrueProtects Content rating from global randomization. Content rating is outside every local section randomizer.
    ethnicity_guidanceoptBOOLEANfalseWhen 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_realismoptBOOLEANfalseAppends a realism suffix about plausible lighting, exposure, texture, composition, and natural photographic imperfections.
    species_modeoptCOMBOHumanAnthro Furry adds a furry subject prefix. It does not remove human-oriented clothing or morphology controls.
    enforce_portrait_framingoptBOOLEANfalseWhen activated, Pre-gen Text becomes one minimal introductory sentence containing only media type, resolved portrait/capture style, age, simple ethnicity category, gender, and any fundamental nonhuman subject type. This lets a close framing establish the first-pass composition before clothing and body detail are introduced later.
    seedoptINT00–18446744073709550000Every Random field has its own deterministic stream derived from this seed. Fixing one field no longer changes unrelated random fields.
    control_after_generateoptCOMBOrandomizeComfyUI seed behavior after each run. Use fixed to preserve all resolved Random choices while editing selected fields.
    free_promptoptSTRINGFree text inserted at the selected position without changing any structured category.
    free_prompt_positionoptCOMBOAfter introductionPlaces Free prompt after the introduction, after makeup, or at the very end.
    override_fieldoptCOMBONoneSelects 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_textoptSTRINGConnect one STRING here. When non-empty, it replaces the property selected by Override field exactly as written.
    identity_forge_jsonoptSTRINGOptional JSON from Identity Forge Archetype, Cosplayer, Creature, or Modifier. Character Architect keeps its own interface and rendering order while importing the preset. Archetype/Cosplayer identity remains anchored even when manual clothing replaces the imported outfit. Manual choices and Forced Random stay above imported JSON; ordinary Random stays below it. Creature anatomy activates the nonhuman-safe renderer.
    inspect_propertyoptCOMBONoneSelects one resolved property to expose through Inspected Value for overlays, comparisons, and statistics. It reports the final value after every rule and override.
    eye_focusoptCOMBONoneControls what the eyes are actually focused on, independently from Head direction and gaze mood. Manual and Forced Random choices are authoritative; ordinary Random favors the active action when it clearly involves a person or held object.
    mouth_expressionoptCOMBONoneAdds a concrete mouth action independently from the general facial expression. Ordinary Random uses a compatible pool; manual and Forced Random combinations remain unrestricted.
    setting_text_overrideoptSTRINGOptional exact text replacing Setting and Scene scenario. Connect or paste a description produced from a reference image by ComfyUI Generate Text; Character Architect itself loads no vision model and adds no dependency.
    pose_text_overrideoptSTRINGOptional exact text replacing Pose and Scene scenario while preserving Setting. It can receive a pose description generated from a reference image without adding a vision-model dependency to Character Architect.
    face_hair_text_overrideoptSTRINGOptional structured face-reference description from Generate Text. Use semicolon-separated key=value pairs for the supported Face and Hair fields. Manual and Forced Random selections remain authoritative per field; this input then leads over Identity Forge, Subject wildcard, and ordinary Random. A valid description suspends the indivisible Subject wildcard and detailed Ethnicity Guidance, while preserving the simple origin category. Face traits stay out of Pre-gen; resolved hair remains included.
    custom_color_overridesoptSTRINGArbitrary color replacements using target=value pairs separated by semicolons or new lines. Example: top=fuchsia; hosiery=salmon pink; hair=teal. Clothing colors modify only an active garment.
    wildcard_subjectoptSTRINGOptional expanded wildcard text replacing the node's subject identity and appearance blocks. Supply already-expanded text or connect a wildcard processor; Character Architect does not require or bundle a wildcard engine.
    wildcard_clothingoptSTRINGOptional expanded wildcard text replacing the node's Clothes and Shoes block. Standalone accessories remain available unless the supplied text includes them.
    wildcard_poseoptSTRINGOptional expanded wildcard text replacing Pose and Scene scenario while preserving the node's Setting.
    wildcard_settingoptSTRINGOptional expanded wildcard text replacing Setting and Scene scenario while preserving the node's Pose.
    wildcard_photographyoptSTRINGOptional expanded wildcard text replacing Media type, framing, camera, composition, lens, lighting, and optical-effect controls.

    Outputs (4)

    NameTypeDescription
    PromptSTRING
    Face PromptSTRING
    Inspected ValueSTRING
    Pre-gen TextSTRING