Shima Styler (Favorites)
Your style shortlist, addressed by ID instead of endless scrolling
- clip
- conditioning_positive
- conditioning_negative
- positive_clip_out
- negative_clip_out
- positive
- negative
The full Shima style library is hundreds of entries - great for discovery, miserable when you keep using the same eight. StyleFavorites is the pack's answer to that: instead of hunting through the browser every run, you type a shortlist of style IDs into one box and the node builds the prompt from exactly those. It's the "quick access" variant in the Styler family, sitting alongside Selector (single pick), Gallery (visual pick), and Iterator (batch).
The trick is the ID scheme. The style data is loaded into two lists: artists (A0, A1, …) and your user styles (U0, U1, …). You address favorites with those IDs - "A3, U5, 12" style syntax - and the node looks each up in the right list. A bare number (like 12) indexes the combined artist+user list. If that sounds fiddly, it is, a little; the payoff is a favorites box that's stable no matter how the library is reordered.
The inputs
favorites_list- the ID list, comma-separated. This is the heart of the node.active- bypass toggle; off passes conditioning through untouched.mode-SinglevsStack. Single picks one; Stack joins multiple selected styles together, which is where the connector matters.connector- how stacked styles join:", "(default)," and "," mixed with ", or" + ".filter_mode-Both(default),Artists, orUser Styles. Fair warning: in the shipped code this dropdown is declared but not actually enforced - IDs resolve against the combined lists regardless. Set it toArtistsand aUID still works. Treat it as a placeholder until a later version wires it up.style_strength- −10 to 10, default 1. Weights the style tokens (above/below 1 via(style:strength)weighting) so you can lean on or dial back the style.include_negatives- whether each style's optional negative tokens are pulled in.clip,conditioning_positive,conditioning_negative,base_string/negative_string,base_prompt- the conditioning inputs; the base prompt gets merged with the style.
Outputs: positive_clip_out, negative_clip_out (conditioning), and positive, negative (the raw strings).
How it builds prompts
Each resolved style becomes a "style of {name}" template (or the stored positive for user styles), gets its optional negatives collected, and the base prompt is injected. If a template has a {prompt} macro, injection happens structurally; otherwise the base and style are joined with the connector. Unknown IDs are simply skipped - a typo means a missing style, not an error.
Installing it
Part of KDB-USJP/shima_wf:
cd ComfyUI/custom_nodes
git clone https://github.com/KDB-USJP/shima_wf
Restart ComfyUI. The style data ships in the repo at assets/data/shima_sheets.xlsx (the pack auto-installs openpyxl to read it); no downloads needed. If the node reports no data, that file is missing or got renamed.
The honest advice
The ID scheme is the whole learning curve. Open the style browser once to see the IDs, save your shortlist, and this becomes the fastest way to get the same styles every time - especially in a workflow you're sharing, where a favorites list is more legible than a giant dropdown. The gotcha is that IDs are positional: if you edit the XLSX and insert an artist early in the sheet, every A index below it shifts. Keep your stylesheet stable and this node stays boring, which is exactly what you want.
Inputs (17)
| Name | Type | Default | Description |
|---|---|---|---|
| active | BOOLEAN | true | — |
| favorites_list | STRING | — | |
| mode | COMBO | Single | 2 options: Single, Stack |
| connector | COMBO | , | 4 options: and , mixed with , + , , |
| filter_mode | COMBO | Both | 3 options: Both, Artists, User Styles |
| style_strength | FLOAT | 1.00-10–10 | — |
| include_negatives | BOOLEAN | true | — |
| clipopt | CLIP | — | |
| conditioning_positiveopt | CONDITIONING | — | |
| conditioning_negativeopt | CONDITIONING | — | |
| selected_styles_idxopt | STRING | — | |
| base_stringopt | STRING | — | |
| negative_stringopt | STRING | — | |
| base_promptopt | STRING | — | |
| shima_base_prompt_internalopt | STRING | — | |
| use_commonparamsopt | BOOLEAN | false | — |
| allow_external_linkingopt | BOOLEAN | false | — |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| positive_clip_out | CONDITIONING | — |
| negative_clip_out | CONDITIONING | — |
| positive | STRING | — |
| negative | STRING | — |