Nodes/SDVN_Comfy_node/πŸ“‹ Load Google Sheet
ComfyUI Node

πŸ“‹ Load Google Sheet

Pull prompts and parameters straight from a spreadsheet

By StableDiffusionVNΒ·Created 2 years agoΒ·Updated about a month agoΒ· 118
πŸ“‹ Load Google Sheet
    • any
    β—„Urlβ–Ί
    β—„CellA1:A1β–Ί

    Here's the use case that makes this click: you keep a Google Sheet of prompts - one per row, maybe columns for style, seed, negative - and you want ComfyUI to read from it instead of you pasting text into a box every time. This node does exactly that. Give it the URL of a publicly shared sheet and a cell range, and it reads those cells back into your workflow as data you can feed downstream.

    It's a batch-and-collaboration node at heart. A whole team can maintain a prompt list in a shared sheet, and the workflow picks it up live - no re-exporting CSVs, no editing the graph. For anyone running structured, repeatable generation (product shots, a series, a prompt-testing matrix) it turns the spreadsheet you were already keeping into the actual input.

    How it works

    Google Sheets can serve a publicly shared sheet's contents over a plain URL. This node hits that, reads the range of cells you asked for, and returns their values. Because a range can be many cells, the output comes back as a list - one entry per cell - which is exactly what you want for batch work: wire it into a prompt encoder and ComfyUI iterates the list, generating once per row.

    The output type is a wildcard (*), so it'll carry whatever's in the cells - strings for prompts, numbers for seeds or steps - and hand them to whatever node you connect. Pair it with the SDVN list and switch nodes and you can build a spreadsheet-driven pipeline.

    The inputs that matter

    • Url - the link to your Google Sheet. The sheet has to be shared publicly (anyone-with-the-link can view); a private sheet the node can't reach will just fail.
    • Cell - the range to read, in normal spreadsheet notation (default A1:A1, a single cell). A1:A20 grabs the first twenty rows of column A; A2:C10 grabs a block. Skip the header row if you have one - start at A2, not A1.

    The single output is any (a list) - the cell values, ready to feed into text encoders, seed inputs, or the pack's list-handling nodes.

    Common issues

    It reads nothing / errors on the URL. The sheet isn't public. Google Sheets defaults to private; you have to set sharing to "Anyone with the link β†’ Viewer" for the node to pull it. This is the number-one gotcha.

    I got my header text as a prompt. Your range started at row 1 and included the column title. Start the range one row down (A2:...) to skip headers.

    Only one cell came back. Your Cell range is a single cell (A1:A1). Widen it to a real range like A1:A50 to pull a column of values.

    The values came back as strings when I wanted numbers. Spreadsheet cells are text-ish by nature; if a downstream node needs a strict INT or FLOAT, run the values through one of SDVN's type-conversion nodes (Simple Any Input / Any Input Type) to coerce them.

    Installing SDVN_Comfy_node

    ComfyUI Manager: search "SDVN_Comfy_node" β†’ install β†’ restart. Manual:

    cd ComfyUI/custom_nodes
    git clone https://github.com/StableDiffusionVN/SDVN_Comfy_node
    

    Then pip install -r custom_nodes/SDVN_Comfy_node/requirements.txt from the ComfyUI root and restart. The node appears under πŸ“‚ SDVN / πŸ’‘ Creative. No models needed - just an internet connection and a public sheet.

    CategoryπŸ“‚ SDVN/πŸ’‘ Creative

    Inputs (2)

    NameTypeDefaultDescription
    UrlSTRINGβ€”
    CellSTRINGA1:A1β€”

    Outputs (1)

    NameTypeDescription
    any*β€”