Nodes/ComfyUI-nkxx/🍌 Grsai Nano Banana Batch (CSV/Excel)
ComfyUI Node

🍌 Grsai Nano Banana Batch (CSV/Excel)

A spreadsheet, a concurrency slider, and 50 images later

By nkxx188·Created 11 months ago·Updated 6 months ago· 14
🍌 Grsai Nano Banana Batch (CSV/Excel)
  • image_1
  • image_2
  • image_3
  • image_4
  • images_batch
  • status
file_path
column_nameprompt
prompt_prefix
modelnano-banana-fast
concurrency10
max_count50
aspect_ratioauto
image_size默认
executions_per_prompt1
api_key

The single GrsaiNanoBanana node is for one image. This is the one for "I have a CSV of 200 prompts and I want 200 images before lunch." It reads prompts from a .csv, .xls, or .xlsx column, optionally prefixes every one with shared styling text, attaches up to four reference images to all of them, and runs the batch with a concurrency slider you actually control. Output is a single big IMAGE batch plus a status string with the credit tally.

This is the node the pack's README is bragging about when it says "deep CSV/Excel batch automation." It's also the node that will teach you the most expensive lesson in cloud-model land if you're careless: every row is a billed render. The defaults are sane (concurrency 10, max_count 50) but "50 renders in one click" is a real credit event. Check your balance before, not after.

The inputs that matter

  • file_path - your CSV/Excel. Drag or paste the path.
  • column_name (default prompt) - the column holding the prompt text. Exact match or every row fails.
  • prompt_prefix - text prepended to each prompt (e.g. "cinematic, 4k, ").
  • model - the same nano-banana-fastnano-banana-2-cl family; default nano-banana-fast (the cheap one - the batch default knows what it's doing).
  • concurrency (1–50, default 10) - parallel renders. High is fast, and fast is expensive if a runaway loop is involved.
  • max_count (1–100, default 50) - hard cap on rows processed. This is your safety valve.
  • executions_per_prompt (1–10, default 1) - how many times each prompt renders. rows × executions = total bill.
  • aspect_ratio, image_size - as in the single node.
  • api_key + image_1image_4 (optional) - reference images shared by every job.

Outputs: images_batch (IMAGE) and status (STRING with per-run counts).

How it works

Readable source, Grsai side: pandas loads the file, prompts are assembled (prompt_prefix + cell), the row count is clamped to max_count, and a ThreadPoolExecutor with max_workers=concurrency fires nano_banana_generate_image per prompt. Failures are collected per row, not fatal to the batch, and the status line reports success/failure/credits at the end. It's synchronous - the node blocks until the whole batch finishes.

Install

cd ComfyUI/custom_nodes
git clone https://github.com/jieg9341-lab/ComfyUI-nkxx

restart (or ComfyUI Manager, "ComfyUI-nkxx"). Auto-installs requests, pandas, openpyxl, yt-dlp, opencv-python, aiohttp. Get a Grsai key at nkxx.grsai.ai.

Common issues

  • "列 'prompt' 不存在": header mismatch with column_name. Open the file and check.
  • Whole batch fails fast: usually a dead key or zero credits, not 200 bad prompts. Read the first error, check 积分 in status.
  • Credit shock: always test with max_count: 2 first. executions_per_prompt and concurrency are both multipliers; change one at a time.
  • Filtering follows the model: Google refuses what it refuses, per row. The batch can't bypass it, it just logs it.
CategoryNkxx/Grsai/图像

Inputs (14)

NameTypeDefaultDescription
file_pathSTRING
column_nameSTRINGprompt
prompt_prefixSTRING
modelCOMBOnano-banana-fast6 options: nano-banana-fast, nano-banana-pro, nano-banana-pro-vt, nano-banana-pro-cl, nano-banana-2, nano-banana-2-cl
concurrencyINT101–50
max_countINT501–100
aspect_ratioCOMBOauto11 options: auto, 1:1, 16:9, 9:16, 4:3, 3:4, +5
image_sizeCOMBO默认4 options: 默认, 1K, 2K, 4K
executions_per_promptINT11–10
api_keyoptSTRING
image_1optIMAGE
image_2optIMAGE
image_3optIMAGE
image_4optIMAGE

Outputs (2)

NameTypeDescription
images_batchIMAGE
statusSTRING