Nodes/ComfyUI-CSV-Loader/Load Composition CSV
ComfyUI Node

Load Composition CSV

'Close-Up' without the typo

By Philip-Combs·Created 3 years ago·Updated about a year ago· 20
Load Composition CSV
    • positive prompt
    • negative prompt
    composition

    Camera framing is one of those things you mean to type and then mangle: is it "bird's eye view" or "birds eye view"? Does "close-up" need a hyphen? Load Composition CSV removes the question entirely. Pick "Bird's Eye View" from a dropdown and the correctly spelled framing term goes straight into your prompt.

    It's one of the ten CSV loader nodes in PCMonsterx/ComfyUI-CSV-Loader, and it works exactly like its siblings: read a CSV, turn it into a dropdown, paste the selected row into your prompt. The composition list is small but sensible - Beauty Shot, Candid Shot, Close-Up, Double Exposure Portrait, Environmental Portrait, and a few more, each ready to be dropped in front of your subject prompt.

    How it works

    At node-menu build time the node reads custom_nodes/ComfyUI-CSV-Loader/CSV/composition.csv, ignores the header, and parses each line into a name → [positive, negative] pair. The names become dropdown options; picking one returns its strings. The whole trick is the CSV file sitting next to the node, so the actual list is whatever you make it. It ships with ~20 framing terms, but the file is plain text - open it in any editor and add "Dutch Angle," "Rule of Thirds," whatever your model responds to.

    The format is name,prompt,negative_prompt, which is the same shape as Automatic1111's styles.csv - this pack was built partly so A1111 users could carry their prompt libraries over to ComfyUI. Your old saved prompts will slot straight into a row.

    Inputs and outputs

    One input, one dropdown:

    • composition - every entry is a framing term from the CSV. Refresh rebuilds the list from the file.

    Two STRING outputs:

    • positive prompt - the framing phrase. Wire it into the positive input of a CLIP Text Encode node, in front of your subject.
    • negative prompt - exists on every node in the pack for consistency, but in the shipped composition file this column is basically empty. Ignore it.

    Because it's just text, you can chain it with the pack's other loaders - a composition term from this node, a lighting term from its sibling - and they all merge at the CLIP encoder.

    Installing it

    Zero dependencies, zero downloads. It's pure Python that only imports ComfyUI's own folder_paths. The README says unzip-and-drop; the clone is the repeatable way:

    cd ComfyUI/custom_nodes
    git clone https://github.com/PCMonsterx/ComfyUI-CSV-Loader
    

    Restart ComfyUI and the nodes appear.

    Where people get burned

    • You edit the CSV and nothing changes. The file is read once when the menu builds, so hit Refresh after any edit or you're staring at a stale list.
    • "Error loading composition.csv, check the console." That message is the fallback when the file can't be read. The path is hardcoded with Windows-style separators, so on Linux and macOS this is the most common failure - make sure the folder is named exactly ComfyUI-CSV-Loader and the CSV lives in its CSV subfolder. A malformed row (a missing third column) does the same thing.
    • No updates coming. The README opens with the author calling it unsupported and pointing at Dr.Lata nodes and forks. It's simple enough that it keeps working regardless, but don't hold your breath for new features.

    Worth knowing: composition terms are one of the highest-leverage phrases you can add to a prompt, so this is a nicer pickup than it sounds. On the SDXL family especially, "Candid Shot" in front of your subject does more than ten quality tags behind it.

    CategoryCSV Loaders

    Inputs (1)

    NameTypeDefaultDescription
    compositionCOMBO1 options: Error loading composition.csv, check the console

    Outputs (2)

    NameTypeDescription
    positive promptSTRING
    negative promptSTRING