Nodes/arkennemasis Nodes/arkennemasis Catalogue Load (CSV in, one row per image)
ComfyUI Node

arkennemasis Catalogue Load (CSV in, one row per image)

Checking every reference before you pay for a single image

By Hishamahmer·Created about a month ago·Updated a day ago· 6
arkennemasis Catalogue Load (CSV in, one row per image)
    • rows_json
    • count
    • report
    csv_path
    only
    limit0
    offset0
    output_dircatalogue
    skip_existingtrue
    stricttrue

    ArkCatalogueLoad is the front door to the pack's short CSV catalogue path - the one for when the prompts already exist and one row means one image. It reads a catalogue spreadsheet and turns it into the rows that a fan-out node renders. But its real job is cheaper than reading: it validates that every referenced file actually exists before anything is generated, because a missing reference discovered at row 60 has already cost you 59 images.

    That ordering is the whole point. Catalogue generation is paid per image, and this node exists to make the expensive part fail-safe. The tooltip frames it as a design rule: validate first, generate second.

    How it works

    Point csv_path at a catalogue CSV with the columns output_filename, input_1_model_ref, input_2_cloth_ref, and full_prompt. One row is one output image - the model reference, the cloth reference, and the prompt are all right there in the row. The node loads the rows, applies your filters, and - the important bit - verifies on disk that every model and cloth reference exists. With strict on (the default), a single missing reference fails the whole run before anything is billed. With strict off, those rows are skipped and the rest carry on.

    The knobs you'll actually use:

    • only - a filter, one column=value per line. shot=front renders every front shot; garment_code=m01 renders one product. Blank runs everything.
    • limit - render at most this many rows. 0 = all. The tooltip's suggestion is the right one: set 1 for the first end-to-end test, because a one-row run proves the whole chain cheaply.
    • offset - skip that many matching rows first. With limit it renders a deliberate slice.
    • output_dir - where results are written, under ComfyUI/output (default catalogue).
    • skip_existing - on by default. Rows whose output file already exists are left out. This is how a part-finished run resumes without paying twice.

    Outputs: rows_json (the ready-to-fan-out rows), count, and a report.

    Installing

    Standard pack install:

    cd ComfyUI/custom_nodes
    git clone https://github.com/Hishamahmer/comfyui-arkennemasis
    pip install replicate httpx
    

    Restart ComfyUI (ComfyUI Manager finds it as arkennemasis). No models or keys for this node - the generation nodes downstream are where the money goes.

    Troubleshooting

    • "Every row is already delivered" - skip_existing saw existing files. That's resume working, not a bug.
    • A strict failure on a missing reference is the feature: fix the path in the CSV, don't flip strict off and hope. You can, but you're choosing to discover the miss at the save stage instead.
    • Remember the pack's own warning about this path: it gives up the ten-stage pipeline's measurement, bounded retry, job records, drift audit, and human gate. Use the short path when the answers are already written, not when they still need working out.
    Categoryarkennemasis/Variation

    Inputs (7)

    NameTypeDefaultDescription
    csv_pathSTRINGThe catalogue CSV. Needs the columns output_filename, input_1_model_ref, input_2_cloth_ref, full_prompt.
    onlyoptSTRINGFilter, one 'column=value' per line. e.g. 'shot=front' to render every front shot, or 'garment_code=m01' to render one product. Blank runs everything.
    limitoptINT00–100000Render at most this many rows. 0 = all. Set 1 for the first end-to-end test.
    offsetoptINT00–100000Skip this many matching rows first. With limit, renders a deliberate slice.
    output_diroptSTRINGcatalogueWhere results are written, under ComfyUI/output. Also what skip_existing looks in.
    skip_existingoptBOOLEANtrueLeave out rows whose output file already exists. This is how a part-finished run resumes without paying twice.
    strictoptBOOLEANtrueFail the run if any row's model or cloth reference is missing from disk. Off = skip those rows and carry on.

    Outputs (3)

    NameTypeDescription
    rows_jsonSTRING
    countINT
    reportSTRING