Stylebook Style
600 styles with previews, so you stop gambling on the prompt
- style_chain
- prompt
- negative
- style_chain
"Wet plate collodion" is a fun thing to type and a terrible thing to bet a render on. Stylebook Style stops that bet: 600+ visual styles, each with a rendered preview you can look at before you commit. Open the gallery, pick the look, and the node hands you the prompt text - plus a matching negative - ready to wire into a CLIPTextEncode.
It's the node you start every stylebook workflow from. You type your subject; it adds the style; the two travel down the graph together.
How it works
A Stylebook chain passes state along a style_chain socket, not through the prompt string. This node resolves one style - the medium: photography, painting, anime, print, whatever - and stores it on that chain. The chain is "exclusive" for styles: chain a second Style node and the downstream one wins, with a warning, rather than stacking two mediums nobody meant to stack.
Every style ships four things - a written description, a keyword list, a matching negative prompt, and a preview image - so the node isn't just appending a label, it's choosing how that label gets written.
The two knobs that decide how your model reads it:
format-prosewrites the style as a plain sentence;tagsas a comma-separated keyword list. Every style ships both, so switching costs nothing. If your model is LLM-encoded (prompts-as-instructions), prose is your friend; if it's SDXL-lineage tags,tagsoften lands harder.placement-append(the default) puts your subject first and introduces the style after it as a rendering instruction.prependleads with the style, which is what you want withtags, because a keyword list weights its leading terms most. This ordering is the whole game: lead with a paragraph of film grain and your model draws grain and vaguely gestures at a subject. The node even frames prose styles explicitly ("Rendered as a View-Master stereo slide…"), so the style reads as a process rather than another object in the picture.
You also get strength - subtle keeps only the defining phrase so your subject dominates, normal is the full description, strong repeats the defining term.
The inputs that matter
mode- defaults toRandom, so the node produces a style the moment you hit Run.Pickis for when you use the gallery button and choose one.Cyclesteps through the filtered pool by index, which is how you sweep a whole category.style- the pick, in Pick mode. Hit Open style gallery to browse with previews instead of guessing.categoryandtag_filter- narrow what Random and Cycle draw from.tag_filteris comma-separated and every term must match (ink, flatfinds styles that are both); it searches tags, descriptions, names and aliases, soreverse haremstill finds Otome Game.seed- for Random mode. Seeds are scored against each candidate rather than indexing a list, so your saved seed keeps producing the same style as the pack grows - roughly one seed in N changes, not all of them.user_prompt- your subject, or leave it empty to get style text only. You can connect another pack's text output here (the README wires Identity Forge's subject description in).
The outputs are prompt (full rendered text - wire into a CLIPTextEncode), negative (the style's hand-written negative, for a second encoder), and style_chain (feeds Stylebook Artist and Modifier).
Installing
In ComfyUI Manager, search for Stylebook. Or by hand:
cd ComfyUI/custom_nodes
git clone https://github.com/EnragedAntelope/comfyui-stylebook.git
Restart ComfyUI; the nodes live under conditioning/stylebook. That's the whole install - no third-party dependencies, no model downloads, no API keys, fully offline. One real gotcha: the pack is written against ComfyUI's newer V3 node API, so it needs ComfyUI 0.25.0 or newer (the pyproject.toml says so). If the nodes don't appear, update ComfyUI first - old installs silently won't register a V3 pack.
You can browse every style and its exact prompt in a browser without installing anything at https://enragedantelope.github.io/comfyui-stylebook/docs/gallery/.
Where people get burned
The two classic mistakes are both placement problems. Leading with the style and naming your subject last gets you "the style honoured and the subject ignored" - keep placement on append for prose. And some styles own a subject: Ikebana is an arrangement of flowers, Bonsai is a tree, and they'll assert themselves over your prompt by design. Want the look without the subject? Drop strength to subtle.
If you run at CFG 1 the negative does nothing (by design), so styles defined by what they exclude read softer - most are unaffected. And previews are one model's reading of one style at one seed: a guide, not a guarantee.
Right-click the node for two genuinely useful extras: Copy resolved prompt puts the full untruncated text on your clipboard, and Pin this pick saves whatever Random just landed on into the picker and switches you to Pick mode - the fastest way to keep a style you landed on.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| mode | COMBO | Random | Random: a seeded pick from the filtered pool, reproducible for a given seed. Pick: choose one style yourself. Cycle: step through the pool by index, which is how you sweep a whole category. |
| style | COMBO | None | The style to apply in Pick mode. Use the Open style gallery button to browse these with preview images. |
| category | COMBO | All categories | Narrows the pool that Random and Cycle draw from. Has no effect in Pick mode. |
| tag_filter | STRING | Narrows Random and Cycle further. Comma-separated, and every term must match, so 'ink, flat' finds styles that are both. Matches against tags, prose, label and aliases. | |
| seed | INT | 00–18446744073709550000 | Seed for Random mode. The same seed with the same filter gives the same style, and keeps giving it as the pack grows: seeds are scored against each candidate rather than indexing a list, so adding styles later re-rolls roughly one seed in N instead of all of them. |
| cycle_index | INT | 00–9999 | Which style to take in Cycle mode. 0 is the first match and the index wraps at the end of the pool. Unlike a seed, this is a position in an alphabetical list, so adding styles to the pack shifts what a given index returns. Use Cycle to sweep, and Random to reproduce. Cycle mode steps the index automatically each run (right-click the node to turn 'Auto-advance cycle' off if you want to hold a fixed index). |
| format | COMBO | prose | How the style is written. prose is a plain sentence describing the look. tags is a comma-separated keyword list. If your model responds better to keyword lists than to sentences, choose tags. Every style ships both, so switching costs nothing. |
| strength | COMBO | normal | How much style text to emit. subtle keeps only the defining phrase, so your subject dominates. normal is the full description. strong repeats the defining term so the style pushes harder. |
| placement | COMBO | append | Where the style sits relative to your subject. append puts your subject first and introduces the style after it as a rendering instruction, which is what you want with prose: a model reading a sentence follows that sentence's subject. prepend leads with the style, which is what you want with tags, because a keyword list weights its leading terms most. |
| style_chainopt | STYLEBOOK_CHAIN | Optional. Connect an upstream Stylebook node's style_chain output to build on it. | |
| user_promptopt | STRING | Your subject, for example 'a woman in a red coat on a rainy street'. Type here or connect a text source. Leave empty to output style text only. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| prompt | STRING | — |
| negative | STRING | — |
| style_chain | STYLEBOOK_CHAIN | — |