Nodes/Spreadsheet2Video/Spreadsheet2Video Input Image
ComfyUI Node

Spreadsheet2Video Input Image

The marker node that feeds one spreadsheet column to your whole workflow

By niknah·Created 4 months ago·Updated 16 days ago· 9
Spreadsheet2Video Input Image
    • IMAGE
    COLUMN1

    Spreadsheet2Video Input Image is the node that tells the pack which part of your workflow runs for which spreadsheet row. In the niknah/Spreadsheet2Video-ComfyUI pack, this node doesn't process anything itself - it's a marker and a junction. It sits at the top of a group of nodes, its name matches a value in the spreadsheet's first column, and every column of that row pours into your workflow through it.

    You can have as many of these as you want, one per workflow segment. The catch, straight from the README: they must be separate, and the groups they define can't depend on each other to run. Each Input Image node's downstream block is what gets copied and executed per row; if one group needs another group's output, you're back to manual wiring.

    The one input that matters

    • COLUMN1 - a string that names this workflow part. This must exactly match the value in the first column of a spreadsheet row (the README calls it "the name of the part of the workflow you want to execute for that row"). Duplicate names throw an error, so keep them unique.

    Outputs: the part that's easy to miss

    The node always has an IMAGE output - that's how the previous row's image (or last video frame) gets pulled into this group. But the genuinely useful outputs are the ones that appear as you wire things up: COLUMN2, COLUMN3, and so on, added dynamically by the pack's frontend JavaScript as you connect them. Link COLUMN2 to, say, a prompt text field or a Load Image dropdown and that row's second column value flows in. The connection order matters: spreadsheet column 2 → COLUMN2, column 3 → COLUMN3, and so on. The pack even auto-converts values on the way in, turning strings into integers, floats, or booleans to match whatever input type it lands on - so a column of 1.5 values really does drive a FLOAT widget.

    How to use it in practice

    A minimal loop setup looks like this: put the Spreadsheet2Video main node somewhere, give it your CSV, then for each segment you want to run add an Input Image node, name it (say shot1), and connect everything that belongs to that segment downstream of it. Put an Output Image node at the end of the segment so the row's result is captured for the next row. Then in your spreadsheet, every row whose first column says shot1 executes that block.

    Gotchas

    • Column values are positional: if your CSV row has fewer values than the header, the missing columns come through as blanks. The frontend will also complain in the console if it spots a column gap, so keep your columns in order.
    • Because this node never actually executes (it returns an execution blocker), the errors you'd expect from it just don't happen - a missing or misspelled group name shows up as a "Could not find Spreadsheet2VideoInputImage node with name" error from the main node instead.

    It's a small node that does a strange job, and it only makes sense inside the loop the pack builds around it. Use it as the anchor of one workflow segment, wire its COLUMN2+ outputs into your prompt, seed, and file dropdowns, and your CSV becomes the entire control panel.

    CategorySpreadsheet2Video

    Inputs (1)

    NameTypeDefaultDescription
    COLUMN1STRINGName of this part of the workflow. Use the same name in the spreadsheet's first column.

    Outputs (1)

    NameTypeDescription
    IMAGEIMAGE