Nodes/comfyui-kpu-utils/KPU Wailustrious Prompt Generator
ComfyUI Node

KPU Wailustrious Prompt Generator

Why This Prompt Node Puts Character Tags First

By kpucha·Created 7 months ago·Updated 7 months ago· 0
KPU Wailustrious Prompt Generator
    • positive_prompt
    • negative_prompt
    character_count
    character_type
    hair_colorblack
    hair_lengthlong
    hair_stylestraight
    eye_colorblue
    eye_shape
    body_typeslim
    body_feature
    clothingschool uniform
    clothing_color
    accessories
    posestanding
    actionlooking at viewer
    expressionsmiling
    camera_angleeye level
    composition
    locationbedroom
    lightingsoft lighting
    time_of_daydaytime
    background_detail
    art_styleanime
    quality_tagshigh quality, masterpiece, detailed
    negative_promptugly, deformed, blurry, lowres, watermark, text, extra fingers
    custom_tags
    weight_emphasis

    This is the big one - the node the rest of the pack points at. KPU Wailustrious Prompt Generator takes a full scene description and assembles it into a structured, Danbooru-tag prompt in the exact order the models want it, plus a sensible negative. If you're only going to install one node from comfyui-kpu-utils, it's this one.

    The reason the ordering matters is a real, testable property of CLIP-encoded models (which is what every Illustrious-family checkpoint is): earlier tags get stronger attention. Put the count and the character first and they land harder. This node does that ordering for you, in the same order an experienced tag-writer would hand-type it: character count → character type → hair → eyes → body → clothing → pose/action/expression → camera → composition → location/lighting/time → art style → quality tags → your custom tags. That's the whole job, done as a form.

    How it works

    Twenty-three required inputs and three optional ones - this is the kitchen-sink node. It's still friendly because most fields are free-text with sane defaults (black hair, long length, straight style, blue eyes, slim body, school uniform, bedroom, soft lighting, daytime). The enums are the things that benefit from being enums: character_count (1girl, 2girls, 1girl, 1boy, group, etc.), hair_length (4 options), camera_angle (9 options), and art_style (anime/manga/illustration/pixelart).

    It also does the small bookkeeping that keeps prompts clean: if hair_color is left at black, it emits black hair rather than the redundant black hair, black hair you might expect from stacked fields; the default eye level camera angle is skipped instead of written into the prompt; and a few tags get normalized as it goes. When it's done it returns both positive_prompt and negative_prompt strings, so a single node feeds both sides of your CLIP Text Encode.

    The three optional inputs are worth knowing:

    • negative_prompt - defaults to ugly, deformed, blurry, lowres, watermark, text, extra fingers. Short on purpose; see the warning below.
    • custom_tags - appended near the end, after quality. Your place for artist names, series tags, or anything the form doesn't cover.
    • weight_emphasis - appended last, raw. This is where (very beautiful:1.5)-style emphasis goes. On these CLIP-based checkpoints that syntax works; keep values in the 0.5–1.5 band or you get artifacts.

    The inputs that matter

    For a first generation, you can leave almost everything at its default and change just three things: character_count (who's in the shot), character_type (girl, boy, or free text like demon girl, maid), and location. Then run a couple of seeds before you start tuning hair and clothing. Quality comes from the model and settings, not from piling on tags.

    The two things that bite people

    Free-text fields are free text. There's no dropdown stopping you from typing longhair or red hair, blue eyes into the wrong slot. Danbooru tags are specific - twintails, not twin tails, and it's long hair with a space. When a tag isn't landing, that's usually why. (The Character Builder, with its curated dropdowns, is the safer path if you're not confident; this node is the flexible path.)

    Keep quality tags and negatives short. WAI's model page is explicit: on Illustrious-family checkpoints, too many quality/aesthetic tags and overly long negative prompts reduce image quality and add blur. The defaults here are already in the right ballpark - high quality, masterpiece, detailed - so resist the SD 1.5 instinct to stack best quality, amazing quality, 8k, ultra detailed, trending on artstation. It makes things worse, and WAI is one of the models where the community has measured it.

    Installing

    Pack is comfyui-kpu-utils by kpucha - a young, Spanish-authored, hobby-scale project with essentially zero community footprint, so do the standard glance at the repo before installing (the code is plain string assembly; no network calls, no model loading). ComfyUI Manager → search "comfyui-kpu-utils", or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/kpucha/comfyui-kpu-utils
    

    Restart and it appears under KPU Utils. Ignore the phantom comfyui>=0.9.0 pip dependency (not on PyPI); nothing else needs installing and there are no model downloads. The prompts target the "Wailustrious XL" line, which in practice means any Illustrious-family checkpoint - WAI-illustrious-SDXL being the one most people run.

    A sane starting config

    Wire the two outputs into CLIP Text Encode (positive and negative), load your checkpoint, and use the family settings: CLIP skip 2 (a Clip Set Last Layer node at -2), CFG 5–7, Euler a, 20–30 steps, no external VAE (baked in). One fixed seed, one changed variable at a time - that's how you figure out which of your tags are actually doing anything.

    CategoryKPU Utils

    Inputs (26)

    NameTypeDefaultDescription
    character_countCOMBO9 options: 1girl, 1boy, 2girls, 2boys, 1girl, 1boy, 3girls, +3
    character_typeSTRING
    hair_colorSTRINGblack
    hair_lengthCOMBOlong4 options: short, shoulder-length, long, very long
    hair_styleSTRINGstraight
    eye_colorSTRINGblue
    eye_shapeSTRING
    body_typeSTRINGslim
    body_featureSTRING
    clothingSTRINGschool uniform
    clothing_colorSTRING
    accessoriesSTRING
    poseSTRINGstanding
    actionSTRINGlooking at viewer
    expressionSTRINGsmiling
    camera_angleCOMBOeye level9 options: eye level, dutch angle, low angle, high angle, overhead, POV, +3
    compositionSTRING
    locationSTRINGbedroom
    lightingSTRINGsoft lighting
    time_of_daySTRINGdaytime
    background_detailSTRING
    art_styleCOMBOanime4 options: anime, manga, illustration, pixelart
    quality_tagsSTRINGhigh quality, masterpiece, detailed
    negative_promptoptSTRINGugly, deformed, blurry, lowres, watermark, text, extra fingers
    custom_tagsoptSTRING
    weight_emphasisoptSTRING

    Outputs (2)

    NameTypeDescription
    positive_promptSTRING
    negative_promptSTRING