Image Bench: A Unified Workspace for WebUI and ComfyUI

Image Bench is a companion workspace for ComfyUI and SD WebUI (Forge / Forge Neo) that drives your host UI to automate repetitive post-generation tasks. Every generated image arrives in a unified window alongside its parameters, allowing you to curate results into persistent trays, compare model outputs or their cropped regions side-by-side, upscale with one click, and exchange layers or masks directly with Photoshop, Krita, and GIMP.
When generating images in WebUI or ComfyUI, my post-generation workflow used to be completely fragmented. I was constantly stashing good generations into separate folders, jumping to an external image viewer to sort through them, and even opening PNGs in a text editor just to pull prompts and seeds.
A couple of years ago, I started building an extension to handle image capture, routing, and comparison in a single interface without leaving the generation environment. It has finally reached a point where it is stable and complete enough to share.
Architecture and Layout
Image Bench can run in a separate browser window, or it can act as the main host by running WebUI or ComfyUI inside a background iframe.
I designed the layout specifically for a dual-monitor setup: it fits cleanly on a secondary 1200x800 display, leaving your primary monitor dedicated to your graphics editor (Photoshop, GIMP, Krita, etc.).
How the Workflow Operates
1. Stream Capture and Trays
Instead of digging through output directories, all outputs from WebUI or ComfyUI are captured into a single, common batch stream called Generated.
From that stream, you can filter and copy the images you want to keep into two separate containers called Trays:
Tray 1 (Permanent): For holding onto finalized assets or long-term reference images.
Tray 2 (Scratchpad): A temporary workspace meant to be cleared frequently as you iterate on a specific idea.
2. One-Click Routing and Upscaling
Every image in the stream or trays retains its generation metadata in the background. Because the extension already has this data:
Upscaling: You can upscale any image with a single click—no need to manually extract and re-enter prompts or seeds.
Internal Routing: With one click, any image can be sent directly to img2img, Inpaint Upload, ControlNet, or the comparison tools.
Project System: You can save your current generation parameters and trays as a project file and restore the exact state later.
3. External Editor Integration & Inpainting
Built-in browser canvases for drawing masks are often clunky. Image Bench is built around external graphics editors instead:
Images can be sent back and forth between the extension and your graphics editor with a single click.
For inpainting, the workflow relies exclusively on Inpaint Upload. You draw a precise mask in your dedicated graphics editor, and send both the image and the mask back to the extension in one click.
4. Model Exploration and Inspection
Multi-Model Matrix: Similar to the X/Y plot in WebUI, there is a tool to test what multiple models produce from the same parameters at once, but streamlined to require fewer clicks to set up.
Region Comparison: A side-by-side comparison tool lets you zoom in and inspect specific regions of different generations simultaneously to check details, hands, or textures.
I built this to solve my own UI bottlenecks, though I am curious what everyone else is currently using to manage local generation workflows.
If you try it out, let me know what features or adjustments you would want to see implemented next.
Image Bench is FOSS. You can find the source code and installation instructions on GitHub:
🔗 https://github.com/GChristensen/image-bench
See the extension site and its built-in manual for more details.