πΎ Bawk Image Saver
Save, organize, and optionally shout your renders into Discord
- images
The pack's output node, and where the "organized" part of the pitch lands. Bawk Image Saver takes the images from Bawk Sampler, names them, files them under model-and-date folders, saves a sidecar text file of the exact prompt that made them, and - if you want - posts them to a Discord channel via webhook. For batch content work, that last bit is what turns "generate 50 images" into "generate 50 images and they show up in my team's channel."
How it works
It saves into ComfyUI/output/ under a folder named [modelname]-DD-MM-YYYY, built from the model_string you pass in (that's the MODEL_STRING output of Bawk Model Loader or Z-Image Loader) and today's date. Files are named prefix_DD-MM-YYYY_HH-MM-SS_NNN.ext, with a counter so you never overwrite. It writes PNG metadata when save_metadata is on, drops a _prompt.txt beside the image when save_prompt is on, and if send_to_discord is true it posts the saved files to your discord_webhook_url via a plain HTTP POST.
The inputs that matter
images- from Bawk Sampler'simagesoutput.model_string- from the loader'sMODEL_STRINGoutput. Wire it or your folders get ugly.processed_prompt- from Bawk Wildcard Encoder'sPROMPT_OUT. This is the resolved prompt (post-wildcard), so the saved text file reflects what actually rendered, not the{random|template}.prefix- filename prefix, defaultflux_image.format-png,jpg, orwebp, withquality(1β100, default 95) for the lossy ones.save_metadata/save_prompt- both default true. Turnsave_promptoff if your batch floods your disk with .txt files.send_to_discord+discord_webhook_url- the webhook only matters when the toggle is on. Empty URL + toggle on = a logged failure, no crash.
It has no outputs - it's a terminal node, the last thing in your graph. The images show up in the ComfyUI UI preview from its ui result.
Install
Same pack install - ComfyUI Manager β search "Bawk Nodes" β install β restart, or:
cd ComfyUI/custom_nodes
git clone https://github.com/juddisjudd/ComfyUI-BawkNodes.git
It uses requests (in the pack's requirements) for the Discord post; everything else is stock.
Gotchas
- Discord needs a webhook URL, created in a Discord server's channel settings (Integrations β Webhooks). The node won't create one for you.
model_stringis optional-looking but not optional in spirit. Leave it empty and your folder name degrades to[]-16-08-2026. Feed it and you get[flux1-dev]-16-08-2026. One wire, worth it.- Metadata travels differently per format. PNG gets proper embedded metadata via
pnginfo; for JPG/WebP the node writes a JSON metadata file alongside instead. - Batch-aware: each image in a multi-image batch gets its own file with a
_001,_002counter, so nothing collides.
It's the least glamorous node in the pack and the one you'll thank yourself for when you're digging through 400 renders looking for the good seed.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | β | |
| prefix | STRING | flux_image | β |
| format | COMBO | png | 3 options: png, jpg, webp |
| quality | INT | 951β100 | jpg / webp quality |
| save_metadata | BOOLEAN | true | Embed the workflow in PNG files (drag back into ComfyUI). jpg / webp get a .json sidecar |
| save_prompt | BOOLEAN | true | Also write the final prompt to a .txt file |
| send_to_discord | BOOLEAN | false | Post the images to a Discord webhook |
| discord_webhook_url | STRING | β | |
| model_stringopt | STRING | MODEL_STRING from Bawk Model Loader (used for the folder name) | |
| processed_promptopt | STRING | PROMPT_OUT from Bawk Wildcard Encoder | |
| lora_infoopt | STRING | LORA_INFO from Bawk Wildcard Encoder |
Outputs (0)
No outputs