Output as Input
Feed your last generation back into the graph (and why the native node already won)
- IMAGE
- MASK
The use case this node exists for: you generated a batch, culled the duds, and now you want only the keepers fed back into a second pass - an upscale, an img2img refine, a face-fix. In a normal image editor you'd just drag a file in. In ComfyUI that means LoadImage, which reads from input/, which means dragging the file in yourself. This tiny node skips that step: it lists whatever is already in your output/ folder and hands a file straight back to the graph.
Here's the honest part up front. The README, in its very first note, tells you to use ComfyUI's built-in "Load Image (from Outputs)" node instead, and the repo hasn't been touched since mid-2025. OutputAsInput is a genuinely useful idea that got superseded by the platform. That doesn't make it useless - you may already have it installed, and it's a nice minimal example of how output-folder feeding works - but for a new install, the native node is the better pick.
What it actually does
OutputAsInput scans ComfyUI/output/, collects every .png, .jpg, .jpeg, and .webp in there, sorts them by modification time (newest first), and presents them as a single dropdown. Pick one, and the node loads it and returns it as an image. That's the whole thing. There's no file upload on purpose - the author's design call is that this node is only ever a pipeline between your own output and your own next pass, so it refuses to pull from anywhere else.
How it works
The mechanism is nearly embarrassing in its simplicity: the node doesn't decode images itself at all. It takes the filename you chose from the dropdown, builds a path in output/, and calls the built-in LoadImage node's loader under the hood, then passes its results straight through. No dependencies beyond what ComfyUI already ships - requirements.txt is empty - and no model files to download. The one input, image, is an enum dropdown that refreshes each time ComfyUI re-evaluates the node's inputs, so a freshly saved file appears in the list on the next run.
The outputs
Two, both free from the underlying LoadImage call:
- IMAGE - the pixels, ready to wire into a
VAEEncodefor img2img, a ControlNet reference input, or an upscale model. - MASK - the alpha channel as a mask, which you mostly ignore but is handy if you're feeding in an image with transparency.
That MASK output costs you nothing, which is handy if you're feeding in an image with transparency and a downstream node wants a mask.
Installing it
ComfyUI Manager: search for "ComfyUI_Output_as_Input" and install. Or the classic route:
cd ComfyUI/custom_nodes
git clone https://github.com/a-und-b/ComfyUI_Output_as_Input
Then restart ComfyUI. No pip install step, no requirements.txt to run - it genuinely has zero dependencies beyond core ComfyUI. The README even offers a manual path of dropping the single output_as_input_node.py file into custom_nodes/ directly, which works fine because the pack is one file.
Where people get burned
- It only reads
output/, nottemp/orinput/. If you saved withPreviewImage, the file is intemp/and will never show up in the dropdown - swap inSaveImagefirst. This is the number-one "why is my image not in the list" complaint, and it's pure directory convention, not a bug. - Subfolders are invisible. The scan is a flat
os.listdir, so anything saved with afilename_prefixlikeportraits/run_alives in a subdirectory and won't appear. Keep prefixes flat if you want the file listed. - It caches like every node. There's no
IS_CHANGEDoverride, so if the dropdown value doesn't change, ComfyUI treats the node as unchanged and won't re-grab the newest file for you. Switch the selection (or toggle it) to force a reload. - It's unmaintained. The author recommends the native replacement, so don't build a workflow you expect the pack to keep updating. If the native node appears in your node list, that's the future.
The verdict
For 2023-era ComfyUI, this was a neat trick. Today it's a solved problem in the core app, and the pack's own README says so. Keep it if it's already installed and doing the job; if you're starting fresh, search for "Load Image (from Outputs)" and save yourself a custom node. Either way, the mental model - output folder as a hand-off point between generation and refinement - is one you'll keep using.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| image | COMBO | 0 options: |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |
| MASK | MASK | — |