π BV Image Caption Saver
Save your batch with matching .txt captions and names that make sense
- image_pipe
Every dataset-prep pipeline ends the same way: a folder full of images that needs a matching .txt caption file per image, named so your trainer can pair them up. That last mile is exactly what BV Image Caption Saver automates. Feed it the pipe, tell it where to write, and it drops each image alongside a caption text file - no manual renaming, no forgetting the 47th caption.
This is the payoff node of the whole BV pipeline. The Loader, Splitter, and Junction are all setup; the saver is where a folder of training-ready images actually materializes on disk. Given how much the community leans on good captioning for training quality, a node that just handles the bookkeeping cleanly is quietly worth a lot.
What you set
- image_pipe (required) - the
BV_IMAGE_PIPEyou've built and captioned. - folder (required) - where files land. Use an absolute path; the node won't guess.
- filename (default
%count_%res) - the naming template, with two placeholders:%count- the image's count as assigned back at the Loader (sozero_paddingandstart_indexpropagate all the way here).%res- the image's resolution, e.g.768x1024.
- make_resolution_sub_folder (default true) - split saved images into subfolders by resolution, bucketed in steps of 256. So a 768Γ1024 image and a 1024Γ1024 image land in different buckets, which is genuinely handy if you're curating by quality tier later.
It's an output node - no outputs, terminal, saves to disk.
The name game
The default %count_%res gives you files like 001_768x1024.png plus 001_768x1024.txt sitting next to it. That's the pairing most trainers want: image and caption share a base name, caption is the .txt. If your trainer expects a different convention, that's what the filename template is for - it's the one input worth getting right before you run a big batch.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/BlackVortexAI/ComfyUI-BVortexNodes.git
or ComfyUI Manager β search "BV Nodes". Restart. No dependencies, no models.
Where people get burned
Two things. First, the folder must exist or be writable - ComfyUI won't silently create deep nested paths for you, and a bad path just produces nothing with a console error. Second, make_resolution_sub_folder is on by default, so if you expected one flat folder and got several, that toggle is why. And remember it writes caption files from whatever captions are in the pipe at that moment - if you skipped the captioning step, you'll get empty or missing .txt files, and that's a pipeline problem, not a saver bug.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| image_pipe | BV_IMAGE_PIPE | β | |
| folder | STRING | β | |
| filename | STRING | %count_%res | β |
| make_resolution_sub_folder | BOOLEAN | true | β |
Outputs (0)
No outputs