Nodes/ComfyUI-Zero2JSON/🎨 Z2J Style
ComfyUI Node

🎨 Z2J Style

The style knob that never repeats β€” Z2J Style for reproducible look exploration

By MushroomFleetΒ·Created 7 months agoΒ·Updated 5 months agoΒ· 1
🎨 Z2J Style
    • text
    β—„seed0β–Ί
    β—„prompt_index0β–Ί
    β—„profilestyle_default.jsonβ–Ί
    β—„prefixβ–Ί
    β—„suffixβ–Ί
    β—„style_categoryanyβ–Ί

    Style words are the easiest thing to overpromise and the hardest to keep consistent across a run. Z2J Style gives you a repeatable way to generate them: same seed, same prompt_index, same style sentence - every time, on any machine. That reproducibility is the entire point of the ComfyUI-Zero2JSON pack, and style is where it shows up most visibly, because "medium, technique, aesthetic, quality" reads like a recipe the model can actually follow.

    It's the style member of the pack, meant to feed the custom_style input of a FLUX2_StyleSelector in the FLUX2-JSON workflow. The generated phrase bundles a medium (oil paint, film grain, ink…), a technique, an aesthetic, and a quality word into one structured sentence. For FLUX2's LLM-style encoder, that structure lands better than a pile of style tags - the community's finding is that structured, descriptive prompting reduces ambiguity and concept bleed.

    How it works

    Position-as-seed hashing: (seed, prompt_index, slot) through xxhash32, hash picks a template and one word per pool. The style_default.json profile ships 4 templates over four pools - medium (15), technique (12), aesthetic (16), quality (9) - about 104,000 combinations. Enough to keep style from going stale across a big batch, with the deterministic guarantee that you can always come back to the exact style that produced a keeper.

    The inputs that matter

    • seed - world seed.
    • prompt_index - position coordinate; this is your style-farming dial.
    • profile - dropdown of style_*.json files; drop a custom one into profiles/ and restart.
    • prefix / suffix - anchors around the style line, useful for forcing "digital painting" at the front.
    • style_category - a filter dropdown (photorealistic / artistic / cinematic / anime / illustration / vintage). Honest note: in v1.0.0 as shipped, this input is declared in the UI but ignored by the generator. It doesn't filter yet. Check for a newer release before leaning on it.

    Output is a single text string.

    Install

    All seventeen nodes live in one repo:

    cd ComfyUI/custom_nodes
    git clone https://github.com/MushroomFleet/ComfyUI-Zero2JSON
    cd ComfyUI-Zero2JSON
    pip install -r requirements.txt
    

    Restart after. Requirements are one line - xxhash>=3.0.0. No models, no keys. ComfyUI Manager: search "ComfyUI-Zero2JSON".

    Where people get burned

    Style is a concentration game: stack too many generated style phrases and the model starts averaging them into mush. One style node per image, and let the mood node carry the emotional layer while lighting carries the look - otherwise you're asking the encoder to reconcile "watercolor, airy" with "neon, harsh" in the same breath. The other thing to remember is that generated style text is a suggestion layer: if your checkpoint is a strong anime model, a photorealistic style phrase fights the model's baked-in look and usually loses. Keep style words aligned with what your model already does best.

    CategoryZero2JSON/Style

    Inputs (6)

    NameTypeDefaultDescription
    seedINT00–4294967295World seed for deterministic generation
    prompt_indexINT00–4294967295Position in infinite prompt space
    profileoptCOMBOstyle_default.jsonSelect vocabulary profile
    prefixoptSTRINGText to prepend to generated prompt
    suffixoptSTRINGText to append to generated prompt
    style_categoryoptCOMBOanyFilter by style category

    Outputs (1)

    NameTypeDescription
    textSTRINGβ€”