Wujiai 通用文件夹批量处理 (CSV/Excel)
Point it at a folder of images + a CSV, get a folder of results back
- images_preview_15
- status_report
Most batch nodes read a spreadsheet and call it a day. This one reads a spreadsheet and a folder of images, zips them together, and runs image-to-image style generations across the whole set - the "scan a local folder of images, combine with CSV prompts, concurrent batch img2img, auto-save to a target directory" feature from the pack README. If you have 300 reference photos and a CSV of 300 prompts and you want a consistent edit applied to all of them, this is the node. It's the heavyweight of the Wujiai Universal family.
Inputs:
- model_name - any Wujiai image model, default
gemini-3.1-flash-image-preview. - directory_path - the folder to scan for images.
- csv_file_path - the CSV/XLSX with per-file prompts.
- column_name - the prompt column (default
prompt). - aspect_ratio, image_size, sequential_mode, max_images, n - the usual generation knobs, applied per job.
- executions_per_prompt - variations per row.
- max_concurrent_files - 1–100, how many folder images are processed in parallel (default 3). This is the speed-versus-rate-limit dial.
- fixed_prompt - optional; overrides the per-row prompts with one fixed prompt applied to every image.
- api_key - optional, pack-wide fallback.
Outputs:
- images_preview_15 - a preview IMAGE batch (capped around 15 images) so you can eyeball what came out without hunting through folders.
- status_report - STRING with per-file results, counts, and the usual credit balance.
Mechanically it matches folder images to CSV rows (by order or index), launches concurrent image-to-image jobs through the Wujiai gateway, and saves results to the target directory with the filename/ordering from your inputs. The max_concurrent_files throttle matters more here than anywhere else in the pack: a folder of hundreds of images is exactly the load that gets you rate-limited or auto-banned on a paid gateway, and 3 is a sane default for that reason.
Install is pack-wide:
cd ComfyUI/custom_nodes
git clone https://github.com/jieg9341-lab/ComfyUI-nkxx
Restart; auto-install covers pandas, openpyxl, requests, yt-dlp, opencv-python, aiohttp. Register at wujiai.org for the key.
Grounded gotchas:
- Folder size × cost. This node will happily process hundreds of paid generations. Budget before you run, not after.
- Prompt/image pairing is positional - if your CSV rows and folder files are out of order, you get edits applied to the wrong subjects. Sort both before pointing the node at them.
- The preview batch is a convenience, not the deliverable; the real outputs are written to disk. Don't build downstream nodes off the preview and expect all 300 files there.
max_concurrent_filesis your rate-limit insurance. Crank it to 100 only if you're sure the gateway can take it; start at the default and watch thestatus_reportfor errors.
Inputs (13)
| Name | Type | Default | Description |
|---|---|---|---|
| model_name | STRING | gemini-3.1-flash-image-preview | — |
| directory_path | STRING | — | |
| csv_file_path | STRING | — | |
| column_name | STRING | prompt | — |
| aspect_ratio | COMBO | 1:1 | 9 options: 1:1, 16:9, 9:16, 3:4, 4:3, 2:3, +3 |
| image_size | COMBO | 默认 | 5 options: 默认, 1K, 2K, 3K, 4K |
| sequential_mode | COMBO | disabled | 组图模式 |
| max_images | INT | 151–15 | — |
| n | INT | 11–10 | — |
| executions_per_prompt | INT | 11–10 | — |
| max_concurrent_files | INT | 31–100 | — |
| fixed_promptopt | STRING | — | |
| api_keyopt | STRING | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| images_preview_15 | IMAGE | — |
| status_report | STRING | — |