Nodes/Ultra Tools/Ultra Tools Prompt Composer
ComfyUI Node

Ultra Tools Prompt Composer

Build a scene prompt from menus instead of a blank text box

By Yamoon-jjang·Created 14 days ago·Updated 9 days ago· 5
Ultra Tools Prompt Composer
    • positive_prompt
    • negative_prompt
    ◄model_profileZ-Image Natural►
    ◄mood_familyDefault / None►
    ◄style_dnaAuto by Mood►
    ◄style_strengthstrong►
    ◄style_conflict_cleanupoff►
    ◄scene_framingauto►
    ◄lens_presetauto►
    ◄adult_tonedefault►
    ◄adult_wardrobeauto►
    ◄prompt_source_modeAuto►
    ◄builder_detail_modesimple►
    ◄external_prompt_modePrepend style before external prompt►
    ◄subject_profileauto►
    ◄subject_ageauto►
    ◄subject_appearanceauto►
    ◄subject_ethnicityauto►
    ◄subject_hairauto►
    ◄subject_outfitauto►
    ◄subject_expressionauto►
    ◄subject_poseauto►
    ◄subject_actionauto►
    ◄location_typeauto►
    ◄location_detailauto►
    ◄time_of_dayauto►
    ◄weather_lightauto►
    ◄scene_propsauto►
    ◄auto_extra_detailauto►
    ◄adult_menu_levelessential►
    ◄adult_exposure_levelauto►
    ◄adult_scene_privacyauto►
    ◄adult_scene_moodauto►
    ◄adult_pose_styleauto►
    ◄adult_lightingauto►
    ◄adult_scene_propsauto►
    ◄adult_body_focusauto►
    ◄adult_framing_biasauto►
    ◄seed0►
    ◄custom_text►
    ◄external_positive_in—►
    ◄external_negative_in—►

    What it's for

    Prompting in 2026 is not one skill. A Pony tag list and a Z-Image instruction are different languages, and the same sentence that sings on an LLM-encoded model does nothing on Illustrious. If you switch models - and you switch models - you spend half your time re-learning syntax instead of making pictures.

    Ultra Tools Prompt Composer is a scene builder. You pick subject, action, location, time of day, framing, lens and style from menus, and it assembles a prompt written in the syntax the model family you selected actually understands. Nine profiles: Z-Image, Krea2, Qwen and Flux in natural-language mode; SDXL, ILXL/Illustrious, Pony and SD 1.5 in tag mode; Anima as a mixed case.

    It is, bluntly, a very opinionated set of dropdowns. That's the feature. It's for the person who knows what image they want and not what to type, and it's a decent teaching tool for the reverse: flip the profile from Z-Image Natural to Pony Tag with everything else identical and watch the same scene get rewritten.

    What's actually inside

    The menus are large. mood_family has 26 entries (noir, gothic romance, fashion editorial, classical, dreamlike, plus three randomisers). style_dna has 35 - the physical-medium half includes watercolour, oil, charcoal, ink wash, pixel art, miniature diorama - with an Auto by Mood default that picks something that fits. scene_framing has 16 options from headshot to wide shot, lens_preset 18 focal-length presets from 18mm to long-lens compression.

    Then the subject block, which is where most of the value sits: subject_profile (adult woman, couple, group, background only, product), age, appearance, ethnicity, hair, outfit, expression, pose, action. And the scene block: location, location detail, time of day, weather, props.

    builder_detail_mode (simple / advanced / professional) controls how much of that menu surface is visible at once - start on simple, because 40 dropdowns on one node is paralysing.

    Three mechanisms are worth knowing:

    • style_conflict_cleanup (off / soft / strong). If you asked for watercolour and your text also says "photorealistic, DSLR", the style loses. This dials down the contradicting language.
    • style_strength (subtle / balanced / strong) sets how much of the final string is style versus content.
    • prompt_source_mode decides the mode of the whole node: build a scene from scratch, style an incoming prompt, or style only. With an external_positive_in wired, external_prompt_mode controls whether the style goes before or after your text.

    And seed, which matters more than it looks: the random mood and style picks are seeded, so a combination you like can be reproduced.

    Inputs and outputs

    Nothing is required to be wired. The optional inputs are external_positive_in and external_negative_in (both STRING). custom_text is a free-text field the author promises never to reinterpret - it goes in as written.

    Outputs are positive_prompt and negative_prompt, both STRING. Positive goes into your CLIP Text Encode, or straight into Ultra Tools Image + PiD's positive_prompt. Negative goes wherever your model wants it - and on a CFG-1 model that's nowhere, which is fine; wire it into a tag-model graph and it starts earning its keep.

    One thing to be aware of: the node includes optional adult prompt menus, off by default and gated behind separate adult_* widgets. They're documented as adult-subject-only. If you don't want to see them, leave adult_tone on default and don't raise adult_menu_level.

    Install

    cd ComfyUI/custom_nodes
    git clone https://github.com/Yamoon-jjang/comfyui-Ultra-Tools
    

    Or Manager → Ultra Tools. Restart and hard-refresh; the menu labels are localised via web/prompt_composer_locale.js and follow your ComfyUI language setting (Korean or English). No pip dependencies at all - this is pure data plus string assembly, no models and no network.

    If an older standalone pack was installed alongside, remove it. Duplicate class names are the pack's most common install injury.

    Honest limits

    The generated prompt is a prompt, not a photograph. Every menu is a taste decision made by one person in Korean, and some of the vocabulary sits between natural language and tag soup - you'll want to edit custom_text on top of the output, which is exactly how the author expects it to be used.

    And because the model profiles carry hardcoded assumptions, a checkpoint that's based on one family but retrained oddly will not follow the profile's syntax perfectly. The general rule from the KB holds: check what your checkpoint is actually built on, not what year it says. If a composer-tuned prompt underperforms, the thing to test first is the profile, not the mood.

    CategoryUltra Tools

    Inputs (40)

    NameTypeDefaultDescription
    model_profileCOMBOZ-Image Natural9 options: Z-Image Natural, Krea2 Natural, Qwen Natural, Flux Natural, Anima Mixed, SDXL Tag, +3
    mood_familyCOMBODefault / None26 options: Default / None, 🎲 Random All, 🎲 Random Transformative Style, 🎲 Random Traditional Media Style, Erotic / Sensual, Lyrical / Poetic, +20
    style_dnaCOMBOAuto by Mood35 options: Auto by Mood, Neutral / Minimal Carryover, Neon Melancholy / Rain Glass, Classical Studio Glamour, Baroque Operatic Atmosphere, Noir Chiaroscuro, +29
    style_strengthCOMBOstrong3 options: subtle, balanced, strong
    style_conflict_cleanupCOMBOoff3 options: off, soft, strong
    scene_framingCOMBOauto16 options: auto, headshot (face-focused), close-up, upper body, waist-up, three-quarter body, +10
    lens_presetCOMBOauto18 options: auto, 18mm ultra-wide dramatic, 24mm wide cinematic, 28mm documentary wide, 35mm environmental, 40mm cinematic natural, +12
    adult_toneCOMBOdefault8 options: default, safe, suggestive, sensual, bold sensual, nsfw, +2
    adult_wardrobeCOMBOauto56 options: auto, nude, topless, lingerie, bikini, one-piece swimsuit, +50
    prompt_source_modeCOMBOAuto4 options: Auto, External Prompt Composer, Standalone Scene Builder, Style Only
    builder_detail_modeCOMBOsimple3 options: simple, advanced, professional
    external_prompt_modeCOMBOPrepend style before external prompt3 options: Append style after external prompt, Prepend style before external prompt, Output style only
    subject_profileCOMBOauto9 options: auto, adult woman, adult man, adult couple, two adult women, two adult men, +3
    subject_ageCOMBOauto6 options: auto, 20s, 30s, 40s, 50s, 60s+
    subject_appearanceCOMBOauto10 options: auto, natural-looking, cute, beautiful, elegant, glamorous, +4
    subject_ethnicityCOMBOauto10 options: auto, Korean, East Asian, Southeast Asian, South Asian, Western, +4
    subject_hairCOMBOauto24 options: auto, short hair, long dark hair, long hair, wavy hair, bob cut, +18
    subject_outfitCOMBOauto38 options: auto, casual jeans and t-shirt, white blouse and dark skirt, knit sweater and skirt, summer dress, elegant long dress, +32
    subject_expressionCOMBOauto33 options: auto, natural expression, gentle smile, broad smile, bright happy smile, laughing face, +27
    subject_poseCOMBOauto24 options: auto, standing, sitting, leaning, walking, looking back, +18
    subject_actionCOMBOauto45 options: auto, standing still, sitting at a table, walking naturally, looking out the window, looking at the camera, +39
    location_typeCOMBOauto56 options: auto, cozy living room, modern apartment, bedroom, bathroom, hotel room, +50
    location_detailCOMBOauto21 options: auto, minimal modern, luxury, vintage classic, dark intimate, bright spacious, +15
    time_of_dayCOMBOauto10 options: auto, dawn, morning, daytime, afternoon, late afternoon, +4
    weather_lightCOMBOauto22 options: auto, clear, cloudy, rainy, snowy, foggy, +16
    scene_propsCOMBOauto48 options: auto, none, plants, book / magazine, cup / drink, smartphone, +42
    auto_extra_detailCOMBOauto4 options: auto, light auto fill, balanced auto fill, rich auto fill
    adult_menu_levelCOMBOessential2 options: essential, professional
    adult_exposure_levelCOMBOauto11 options: auto, clothed sensual, revealing outfit, lingerie / underwear, swimwear, implied nude / covered, +5
    adult_scene_privacyCOMBOauto11 options: auto, private indoor, bedroom / hotel room, boudoir bedroom, luxury hotel suite, private lounge, +5
    adult_scene_moodCOMBOauto23 options: auto, soft boudoir, romantic warm intimacy, fashion editorial sensual, luxury hotel evening, private mirror moment, +17
    adult_pose_styleCOMBOauto30 options: auto, relaxed sensual pose, reclining sensual pose, seated sensual pose, standing confident pose, looking over shoulder, +24
    adult_lightingCOMBOauto19 options: auto, warm bedside light, low-key shadow, soft window backlight, candlelit glow, studio rim light, +13
    adult_scene_propsCOMBOauto26 options: auto, satin sheets, sheer curtains, bedside lamp, large mirror, velvet chair, +20
    adult_body_focusCOMBOauto15 options: auto, face and expression, upper body elegance, full body silhouette, legs-focused fashion framing, back and shoulder silhouette, +9
    adult_framing_biasCOMBOauto10 options: auto, portrait safe, close portrait, upper body, waist-up, full body, +4
    seedINT00–18446744073709550000—
    custom_textSTRING—
    external_positive_inoptSTRING—
    external_negative_inoptSTRING—

    Outputs (2)

    NameTypeDescription
    positive_promptSTRING—
    negative_promptSTRING—