Nodes/ComfyUI-OC-Generator/OC Presentation Expression Block
ComfyUI Node

OC Presentation Expression Block

D to ahegao, ninety-four expressions on tap

By Zhuozhuo-219·Created 3 months ago·Updated 2 months ago· 0
OC Presentation Expression Block
    • oc_block
    • prompt_preview
    • debug_text
    group__all_groups__
    modefixed
    option笑 | 眨眼笑 -> ;d
    enabledtrue
    seed0
    step1

    A character's face does most of the storytelling, and the booru tags for it are a minefield of near-duplicates - ;d vs :d vs :>, blush variants, and the occasional tag that means something very different than it reads. OC Presentation Expression Block wraps ninety-four of them in a single dropdown so you pick the mood and let the pack worry about spelling. It's the face slot in the ComfyUI-OC-Generator presentation layer, sitting alongside the pose, interaction, and camera blocks.

    The catalog is organized into six emotional subgroups: (smiling), (crying), 不开心 (unhappy), 蔑视 (contempt), 生气 (angry), and 其他表情 (everything else - blush, bored, confused, and the entries that made the dataset fun to build). Every option carries a Chinese label and its English tag, so the dropdown reads like 笑 | 眨眼笑 -> ;d and you know exactly what the model will receive.

    Same engine as the other blocks

    If you've used any OC block before, this one needs zero new learning. Three required inputs:

    • mode - fixed keeps your chosen expression, randomize samples from the current group pool, and increment/decrement walk the pool in order (useful for stepping through moods across runs).
    • option - the static full-catalog dropdown.
    • group - narrows the active pool to one emotional subgroup.

    Optional: enabled (off silences the block), seed (makes randomize reproducible), and step (how many options increment/decrement jump per run). The oc_block output feeds OC Generator, which slots the expression into the Face part of the assembled prompt; prompt_preview shows the raw fragment like blush or ahegao.

    The one trap that costs people an afternoon

    The option dropdown is static and never re-filters when you change group. If the option you've selected isn't inside the group you just picked, execution falls back to the first valid item in that group - silently, from the UI's point of view. You'll catch it in debug_text, which prints requested option not in current group; fallback applied. So when your "smug" character suddenly renders as "anguish," the answer is usually that you set a group and left the option pointing elsewhere.

    Install

    This is the pack's standard zero-friction story: no models, no pip dependencies (requirements.txt declares none), just JSON tag catalogs and pure Python.

    cd ComfyUI/custom_nodes
    git clone https://github.com/Zhuozhuo-219/ComfyUI-OC-Generator
    

    …or find "ComfyUI-OC-Generator" in ComfyUI Manager and click Install. Restart, and the block appears under OC Generator → Blocks. Remember it's a prompt-builder - feed the final prompt to an anime SDXL model (Illustrious, NoobAI, Pony) where this tag vocabulary actually means something.

    CategoryOC Generator/Blocks

    Inputs (6)

    NameTypeDefaultDescription
    groupCOMBO__all_groups__Limit selection to one subgroup. The option dropdown itself is static and will not visually shrink when group changes.
    modeCOMBOfixedfixed keeps the chosen option when valid for the current group. randomize / increment / decrement operate only within the selected group pool.
    optionCOMBO笑 | 眨眼笑 -> ;dStatic dropdown for the whole catalog. If the chosen option does not belong to the current group, execution falls back to the first valid item in that group.
    enabledoptBOOLEANtrueDisable this block without deleting it from the workflow.
    seedoptINT00–4294967295Seed used by randomize mode to get reproducible results inside the current group pool.
    stepoptINT11–1024Step size for increment / decrement mode inside the current group pool.

    Outputs (3)

    NameTypeDescription
    oc_blockOC_BLOCKStructured OC block data for downstream aggregation in OC Generator.
    prompt_previewSTRINGThe prompt fragment resolved by this dimension node.
    debug_textSTRINGExecution details, including group filtering and selection behavior.