Nodes/Excel Styles Loader/Load Styles from Excel (.xlsx)
ComfyUI Node

Load Styles from Excel (.xlsx)

Stop Copy-Pasting Style Prompts — Read Them From Excel Instead

By SencneS·Created 3 months ago·Updated 23 days ago· 0
Load Styles from Excel (.xlsx)
    • positive prompt
    • negative prompt
    tab_name
    style_name

    Every ComfyUI regular ends up with the same pile of junk: a notes node of lighting prompts, a wildcard file of art movements, a text file of photography styles you keep pasting into CLIPTextEncode. ExcelStylesLoader is the tidy version of that mess. It turns one .xlsx file into a set of dropdowns - pick a category, pick a style, and out come ready-to-use positive and negative prompt strings. It's a prompt-preset manager, not a style model, and it does that one job well.

    What it is

    The node reads a workbook called Styles.xlsx from its own folder and turns every sheet into a dropdown section. It ships preloaded with A1111's entire styles list (roughly 1,700 entries in MasterStylesList, plus an alphabetized copy) - a deep library if you came from Stable Diffusion WebUI. On top of that are tabs built for the Ideogram 4 Settings Node: Art_Style, Aesthetics, Lighting, Medium. Since Krea 2 uses that same node, the tabs serve it too. That's the origin story in one line: the author loved theUpsider's CSV styles loader, wanted more granular control, and this is the "I needed more" version.

    You don't need Excel installed, despite the name - openpyxl reads the file, and you can edit it in LibreOffice or Google Sheets if you prefer.

    How it actually works

    openpyxl loads the workbook in read-only mode, each sheet becomes a tab, and the first row is scanned for columns named name, prompt, and negative_prompt. The matching is case-insensitive and fuzzy, so positive or positive prompt both count and extra columns are ignored. Every row after that is one style: a name and its prompt pair. When you create the node, it registers two HTTP endpoints on ComfyUI's server, a small JS extension populates the dropdowns from them, and picking a tab refills the style list. Outputs are plain strings, so this is pure data-in/data-out - no models, no VRAM.

    One thoughtful touch: the workbook is copied to a hidden ._styles_cache.xlsx shadow file, tracked by MD5 hash, before parsing - because Excel locks files while open on Windows, so the node serves the last saved version instead of crashing.

    The inputs and outputs that matter

    There are only two inputs and you'll set both:

    • tab_name - the category. The shipped tabs are Art_Style, Aesthetics, Lighting, Medium, MasterStylesList, and alphabetized_cells_styles; the first four map onto Ideogram 4 / Krea 2 settings, the last two are the full A1111 library.
    • style_name - the specific style inside that tab. It starts as a "Select a Tab" placeholder until you pick one.

    The two outputs are exactly what the name advertises: positive prompt and negative prompt, both STRING. Wire them into your CLIPTextEncode nodes (or the prompt fields of an Ideogram 4 Settings Node) and you're done.

    Installing it

    The easy way: open ComfyUI Manager, search for "Excel Styles Loader", install, restart.

    The manual way, which is the honest one for a pack this small:

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

    The only dependency is openpyxl - no model downloads, nothing to weigh on your GPU. That's the whole appeal.

    Making it yours

    This is where the node earns its keep. Add a sheet to Styles.xlsx, give it name | prompt | negative_prompt headers, fill in rows, save it into the node folder - and the styles hot-reload without restarting ComfyUI. One caveat: the README tells you to press "R" to refresh, but the shipped frontend actually refreshes on double-clicking the node, right-clicking → "Refresh Excel Styles", or opening the tab dropdown. The source is newer than the README here. The author cheerfully admits it was "vibe coded with Gemini," which explains both the documentation drift and why the code is refreshingly uncomplicated.

    People repurpose it too - one user runs it as plain positive/negative prompt dropdowns rather than "styles." Tabs are just categories, so it scales to whatever you want to store.

    Where people get stuck

    • "No Tabs Found" - Styles.xlsx is missing from the node folder or unreadable. Check ComfyUI/custom_nodes/ComfyUI-ExcelStylesLoader/Styles.xlsx actually exists.
    • Edits don't show up - remember the refresh step (double-click or right-click → "Refresh Excel Styles"). If Excel still has the file open, you get the last saved version via the shadow copy; save or close it first.
    • Wrong style comes out - if the exact style name isn't found in the tab, the node quietly falls back to the first style in that tab. Worth knowing when you rename rows.
    • The dropdown is huge - MasterStylesList is over a thousand rows. That's the tradeoff of Excel-as-database; the Ideogram/Krea tabs are the curated, sane-sized ones.

    It won't change your life, but if you live in ComfyUI and keep a style library, this is the cleanest way to actually use it.

    Categoryloaders

    Inputs (2)

    NameTypeDefaultDescription
    tab_nameCOMBO7 options: Photo, Art_Style, Aesthetics, Lighting, Medium, MasterStylesList, +1
    style_nameCOMBO1 options: Select a Tab

    Outputs (2)

    NameTypeDescription
    positive promptSTRING
    negative promptSTRING