EagleFeeder (PNG)
Your ComfyUI generations, filed straight into Eagle — tags and all
- images
If you run a serious generation library, you already know Eagle: it's the designer's image organizer, and half the people in r/StableDiffusion keep their good gens there instead of in a folder of 4,000 untitled PNGs. This node is what the manual workflow - save image, drag it into Eagle, retype the tags, pick the folder - always should have been. EagleFeeder (PNG) is a drop-in replacement for ComfyUI's standard SaveImage that sends the file to a running Eagle app instead of leaving it in your output folder, with your tags attached and a destination folder you chose. It's part of the ComfyUI Eagle Feeder pack, which covers PNG, animated WebP, and MP4.
The name is worth reading twice: "feeder." The node doesn't generate anything, doesn't need a model, and doesn't call any remote service. It feeds local files to your own Eagle installation through Eagle's local API, which listens on a fixed port (41595). That's the whole job, and it does it quietly.
How it works
Here's the part that's smarter than it looks. Eagle's API accepts images by URL, so the pack spins up a tiny local HTTP file server (http.server on port 8000, bound to 0.0.0.0) the first time any of its nodes loads. When you run the node it saves your PNG into that server's directory, looks up your target folder via Eagle's /api/folder/list, then calls /api/item/addFromURL pointing at http://localhost:8000/<filename> - Eagle fetches it and files it. Files older than two days get cleaned up automatically, so the pack doesn't turn into a second junk directory.
Why bother with a file server at all? Because it lets Eagle run somewhere else. Existing "send to Eagle" nodes usually only work when Eagle and ComfyUI share a machine. Here, the server listens on all interfaces, so with an SSH tunnel (or a shared container network) making localhost:8000 on Eagle's machine reach the ComfyUI box, a remote setup just works. Keep in mind the URL handed to Eagle is always localhost:8000 - so if Eagle is on another machine, you have to bridge that port. Same-machine setups need nothing.
The inputs that matter
images- your IMAGE tensor, same as SaveImage. The node batches cleanly and tags each image separately.tags- comma-separated text. This field isforceInput, which is ComfyUI's way of saying "wire me up": feed it your prompt, or the output of WD14-Tagger, instead of typing.folder_name- the Eagle folder to save into. It must already exist - no auto-create. Leave it empty and the image lands without a folder. Duplicate folder names? It picks one arbitrarily, so don't do that.eagle_host/eagle_token- defaults tohttp://localhost:41595with an empty token. The token lives in Eagle under Preferences → Developer. Eagle has to be running, full stop; if it's not, the folder lookup fails on the first run.embed_workflow- on by default, and it's a gift: it stamps the full workflow into the PNG's metadata. That's the "workflow included" culture ComfyUI runs on, so you can drag the Eagle copy straight back into the graph later.
Install
Via ComfyUI Manager, search "ComfyUI Eagle Feeder." Or the manual route:
cd ComfyUI/custom_nodes
git clone https://github.com/tighug/comfyui-eagle-feeder.git
Restart ComfyUI. No model downloads, no heavy weights. One honest warning: the pack's requirements.txt pins torch==2.6.0 and torchvision==0.21.0 exactly. If Manager decides to install dependencies and you're on a different torch build (ROCm, a newer CUDA wheel), that pin can try to drag your torch down. Since ComfyUI already provides torch, skip the dependency install if it fights you - the nodes only use what's already loaded.
Where people get burned
Nothing about this node is dramatic, but three things bite: Eagle not running (it must be open, not just installed), a wrong or missing token (check Preferences → Developer), and port 8000 already occupied - there's no fallback port, and the file server quietly fails, leaving uploads dead. If you get a connection-refused vibe on localhost:8000, that's the first thing to check. Otherwise: it's an output node with no outputs, so wire it last and let it be the end of the line.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — | |
| tags | STRING | — | |
| folder_name | STRING | — | |
| eagle_host | STRING | http://localhost:41595 | — |
| eagle_token | STRING | — | |
| embed_workflow | BOOLEAN | true | — |
Outputs (0)
No outputs