Nodes/zsq_prompt/Portrait Styler
ComfyUI Node

Portrait Styler

A 2,000-option portrait prompt machine — if you read Chinese

By windfancy·Created 2 years ago·Updated 5 months ago· 2
Portrait Styler
    • positive
    • negative
    GO_positive
    GO_negative
    GO_fooocusfooocus_styles
    GO_RandomNO
    GO_ImageNum1
    GO_Random_Item
    GO_gender-
    GO_age25
    01风格
    03场所
    09表情
    06发型
    03天气
    02国籍
    02视角
    06头发颜色
    01特征
    04服装
    08化妆
    10姿势
    05脸型
    07眼睛颜色

    Portrait Styler (PortraitStyler) is the flagship of the zsq_prompt pack and the reason the pack exists - the README is basically "comfyui prompt style," and this is the style. It's a massive portrait-prompt builder: fourteen category dropdowns (hairstyle, outfit, expression, pose, location, weather, eye color, nationality, and so on) whose thousands of choices get assembled into a finished English prompt, with optional random sampling for batch variety and an optional Fooocus style on top. If you've seen those enormous Chinese-community prompt-styler nodes from ComfyUi_PromptStylers or comfyui-sixgod_prompt, this is that lineage - and the data was literally sourced from them.

    How it works

    The category dropdowns are labeled in Chinese (风格/style, 场所/place, 表情/expression, 发型/hairstyle, 服装/clothing, 姿势/pose, 国籍/nationality, 视角/view, 特征/features, 化妆/makeup, 脸型/face shape, 天气/weather, 头发颜色/hair color, 眼睛颜色/eye color). Under the hood each option maps a Chinese label to an English prompt fragment via JSON dictionaries shipped in the repo, and the node concatenates your selections into one prompt. Some categories carry a weight from prompt_weight.json (nationality, features, and build get 1.2) - that's the pack's attention-weighting.

    You also get a GO_gender (Man/Woman) and GO_age (18–80) pair that emits a clause like (a (25-year-old:1.5) Man), a GO_fooocus toggle that can layer a Fooocus style template (Enhance, Masterpiece, Photograph…) onto the result, and - the fun one - GO_Random with modes like ONLY, EXCEPT, NOSELECT, SELECTED, and ALL, which randomize selected categories per image. GO_ImageNum sets how many prompts to generate (up to 100).

    The outputs are the two that matter: positive (a STRING list - one prompt per image when you're in random/multi mode) and negative (a single STRING). The pack's negative default is the standard quality-tag block, and your own GO_negative is appended.

    The honest reality check

    The big caveat: the entire UI is Chinese, from the category names to the option labels. If you don't read it, you'll be guessing what "01风格" vs "03天气" select. The generated output is English (usable by any model), but operating the node is a Chinese-reading experience. That's the single biggest factor in whether this node is for you.

    Also weigh this: on 2026-era LLM-encoded models, comma-tag prompts and (word:1.5) weights are largely inert - this styler is built for the CLIP-based SDXL/Illustrious/Pony lineage where tags and weights still sing. If your base model is newer, the effort-to-payoff math gets worse.

    Where it fits

    Portrait iteration, hard. Want to batch 20 portraits that all share a pose but randomize hairstyle, nationality, and weather? Set GO_ImageNum to 20, put the stable categories on "nothing", and use GO_Random with the right mode - the positive list gives you a prompt per image. Feed the list into the pack's BatchPromptJson or a sampler that accepts prompt lists, and you've got a variation farm. It's the one node in this pack with genuinely no core-ComfyUI equivalent.

    Installing zsq_prompt

    Shared pack install. ComfyUI Manager → search zsq_prompt → install, restart. Or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/windfancy/zsq_prompt
    

    Restart ComfyUI. Heavy shared deps (transformers, opencv-python, opencv-contrib-python, scikit-image, timm, onnx, ultralytics) come with the pack; if Manager flags "conflicting with zsq_prompt" on a workflow, that's dependency-overlap noise, only meaningful once the pack is installed. No model downloads - all the style data ships inside the repo, so it works offline.

    Gotchas

    • Chinese-only UI. Not "Chinese and English," Chinese-only. Budget for it.
    • GO_Random = "ALL" randomizes every category; "NO" assembles exactly what you picked. The SELECTED/EXCEPT modes randomize only the category named in GO_Random_Item. Worth a read of the mode list before you assume.
    • The positive output is a list, so a plain single-prompt sampler won't accept it directly - route it through something that consumes prompt lists.
    • The category dropdowns have hundreds to thousands of options each; the node can feel sluggish to open. That's the cost of the dataset, not a bug.
    CategoryZSQ/Prompt

    Inputs (22)

    NameTypeDefaultDescription
    GO_positiveSTRING
    GO_negativeSTRING
    GO_fooocusCOMBOfooocus_styles2 options: nothing, fooocus_styles
    GO_RandomCOMBONO6 options: NO, ONLY, EXCEPT, NOSELECT, SELECTED, ALL
    GO_ImageNumINT11–100
    GO_Random_ItemCOMBO14 options: 01风格, 03场所, 09表情, 06发型, 03天气, 02国籍, +8
    GO_genderCOMBO-3 options: -, Man, Woman
    GO_ageINT2518–80
    01风格COMBO202 options: nothing, 画质-简单起手, 画质-真实风格起手, 画质-提高质量, 画质-最佳质量, 画质-高分辨率, +196
    03场所COMBO931 options: nothing, 中国-故宫, 中国-长城, 中国-兵马俑, 中国-颐和园, 中国-天坛, +925
    09表情COMBO32 options: nothing, 开心, 伤心, 嘲笑, 生气, 紧张, +26
    06发型COMBO120 options: nothing, 辫子-辫子, 辫子-两条辫子, 辫子-双辫子, 辫子-短辫子, 辫子-长辫子, +114
    03天气COMBO95 options: nothing, 时间-日出, 时间-黎明, 时间-黄昏, 时间-午夜, 时间-清晨, +89
    02国籍COMBO182 options: nothing, 亚洲-阿富汗人, 亚洲-亚美尼亚人, 亚洲-阿塞拜疆人, 亚洲-巴林人, 亚洲-孟加拉国人, +176
    02视角COMBO9 options: nothing, 特写, 面部特写, 全身照, 全长肖像, 半长肖像, +3
    06头发颜色COMBO222 options: nothing, 矿物色-金色头发, 黑色-黑色头发, 矿物色-红宝石头发, 矿物色-蓝宝石头发, 矿物色-绿宝石头发, +216
    01特征COMBO58 options: nothing, 美丽, 猫耳, 熊耳, 兔耳, 狗耳, +52
    04服装COMBO424 options: nothing, 原神-北斗, 原神-安柏, 原神-凯亚, 原神-丽莎, 原神-罗莎莉亚, +418
    08化妆COMBO50 options: nothing, 复古妆, 烟熏妆, 清新淡妆, 哥特妆, 甜美妆, +44
    10姿势COMBO239 options: nothing, 运动-行走, 运动-转身, 运动-摆动, 运动-弯腰, 运动-高抬腿, +233
    05脸型COMBO19 options: nothing, 椭圆, 可爱, 菱形, 瘦, 扁平, +13
    07眼睛颜色COMBO11 options: nothing, 棕色眼睛, 蓝色眼睛, 绿色眼睛, 深褐色眼睛, 灰色眼睛, +5

    Outputs (2)

    NameTypeDescription
    positiveSTRING
    negativeSTRING