ComfyUI Node
Batch Save Multi
Saves up to 8 variants of one picture into their own folders, optionally gated by detections, then keeps, moves or deletes the original.
Batch Save Multi
- image_1
- gate_1
- image_2
- gate_2
- image_3
- gate_3
- image_4
- gate_4
- image_5
- gate_5
- image_6
- gate_6
- image_7
- gate_7
- image_8
- gate_8
- saved_paths
- matched
- matched_count
- report
◄slots2►
◄routeall_matches►
◄base_dir►
◄fallback_dirunsorted►
◄originalkeep►
◄original_whenalways►
◄original_dirdone►
◄formatkeep►
◄quality95►
◄mask_min_area0.001►
◄overwritefalse►
◄source_path►
◄subdir_1refined►
◄subdir_2slot_2►
◄subdir_3slot_3►
◄subdir_4slot_4►
◄subdir_5slot_5►
◄subdir_6slot_6►
◄subdir_7slot_7►
◄subdir_8slot_8►
CategoryFVM Tools/Batch
Inputs (36)
| Name | Type | Default | Description |
|---|---|---|---|
| slots | INT | 21–8 | How many slots are in use. |
| route | COMBO | all_matches | all_matches: every slot whose gate fires gets the picture. first_match: only the first gated slot that fires. Slots without a gate always write. |
| base_dir | STRING | Where relative folders live. Empty = the folder the source picture came from. | |
| fallback_dir | STRING | unsorted | Gets a copy of the original when gates are wired but none fired. Empty = do nothing. |
| original | COMBO | keep | What happens to the source file once every slot is written. keep: stays. move/copy: into original_dir. delete: removed for good (no recycle bin). |
| original_when | COMBO | always | always: handle the original on every run. on_match: only when at least one gate fired — pictures without a hit stay where they are. |
| original_dir | STRING | done | Target for original = move/copy. |
| format | COMBO | keep | Encoding for slots with an image input. keep: the source file's extension, PNG if unknown. |
| quality | INT | 951–100 | JPEG/WebP quality. |
| mask_min_area | FLOAT | 0.0010–1 | Share of set pixels a MASK gate needs to fire. 0.001 = 0.1 % of the picture. |
| overwrite | BOOLEAN | false | Off: a colliding name gets _001, _002, … |
| source_pathopt | STRING | The loader's source_path. Needed for slots without an image, for the original handling and as the base of relative folders. | |
| image_1opt | IMAGE | Slot 1: picture to save. Unconnected = copy the original file untouched. | |
| gate_1opt | * | Slot 1: condition. BOOLEAN, a count (> 0), or a MASK (fires above mask_min_area). Unconnected = always write. | |
| subdir_1opt | STRING | refined | Slot 1: target folder. Relative to base_dir (or the source folder), or an absolute path. |
| image_2opt | IMAGE | Slot 2: picture to save. Unconnected = copy the original file untouched. | |
| gate_2opt | * | Slot 2: condition. BOOLEAN, a count (> 0), or a MASK (fires above mask_min_area). Unconnected = always write. | |
| subdir_2opt | STRING | slot_2 | Slot 2: target folder. Relative to base_dir (or the source folder), or an absolute path. |
| image_3opt | IMAGE | Slot 3: picture to save. Unconnected = copy the original file untouched. | |
| gate_3opt | * | Slot 3: condition. BOOLEAN, a count (> 0), or a MASK (fires above mask_min_area). Unconnected = always write. | |
| subdir_3opt | STRING | slot_3 | Slot 3: target folder. Relative to base_dir (or the source folder), or an absolute path. |
| image_4opt | IMAGE | Slot 4: picture to save. Unconnected = copy the original file untouched. | |
| gate_4opt | * | Slot 4: condition. BOOLEAN, a count (> 0), or a MASK (fires above mask_min_area). Unconnected = always write. | |
| subdir_4opt | STRING | slot_4 | Slot 4: target folder. Relative to base_dir (or the source folder), or an absolute path. |
| image_5opt | IMAGE | Slot 5: picture to save. Unconnected = copy the original file untouched. | |
| gate_5opt | * | Slot 5: condition. BOOLEAN, a count (> 0), or a MASK (fires above mask_min_area). Unconnected = always write. | |
| subdir_5opt | STRING | slot_5 | Slot 5: target folder. Relative to base_dir (or the source folder), or an absolute path. |
| image_6opt | IMAGE | Slot 6: picture to save. Unconnected = copy the original file untouched. | |
| gate_6opt | * | Slot 6: condition. BOOLEAN, a count (> 0), or a MASK (fires above mask_min_area). Unconnected = always write. | |
| subdir_6opt | STRING | slot_6 | Slot 6: target folder. Relative to base_dir (or the source folder), or an absolute path. |
| image_7opt | IMAGE | Slot 7: picture to save. Unconnected = copy the original file untouched. | |
| gate_7opt | * | Slot 7: condition. BOOLEAN, a count (> 0), or a MASK (fires above mask_min_area). Unconnected = always write. | |
| subdir_7opt | STRING | slot_7 | Slot 7: target folder. Relative to base_dir (or the source folder), or an absolute path. |
| image_8opt | IMAGE | Slot 8: picture to save. Unconnected = copy the original file untouched. | |
| gate_8opt | * | Slot 8: condition. BOOLEAN, a count (> 0), or a MASK (fires above mask_min_area). Unconnected = always write. | |
| subdir_8opt | STRING | slot_8 | Slot 8: target folder. Relative to base_dir (or the source folder), or an absolute path. |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| saved_paths | STRING | — |
| matched | STRING | — |
| matched_count | INT | — |
| report | STRING | — |