Send to Eagle With Metadata
Save your render, keep the recipe, and file it in Eagle in one node
- images
- extra_metadata
- filepath
- filepath_count
- image
If you generate a lot of images and organize them in Eagle - the paid image manager that's basically a DAM for AI art and reference material - this is the node you've been missing. ComfyUI ships a Save Image node and Eagle has a local API, but nothing in between. This node is the bridge: it saves your render to disk with the full generation recipe embedded as PNGInfo, then files it straight into Eagle. No export, no drag-and-drop, no separate "move files" chore. Run the graph and the image is in Eagle before you've finished glancing at the preview.
How it works
The mechanism is worth understanding because it explains most of the troubleshooting. The pack hooks into node execution and, when this node runs, walks the graph back to the farthest-up KSampler that produced the image. From that sampler's inputs and the nodes executed before it, it assembles the recipe: positive and negative prompt, steps, sampler, CFG scale, seed, clip skip (only if you used a CLIP Set Last Layer node), image size, checkpoint name, every LoRA's name and strengths, embeddings, and batch info. It writes that as a standard parameters text chunk in the PNG - the same convention A1111 used and Civitai reads, so anything that understands PNGInfo understands this image. Then it saves the file and tells Eagle's local server (port 41595 by default) to pull it from ComfyUI's /api/view endpoint. That's why Eagle has to actually be running for sends to work.
Two things the simple node decides for you: sampler names are converted to Civitai notation (dpmpp_2m + karras becomes DPM++ 2M Karras), and model hashes are left out - hashing a multi-gig checkpoint is slow, so the extended node keeps that behind a switch. Filenames are yyyyMMdd-hhmmss_SSSSSS, with a batch index appended when your batch is two or more.
What you set
The only required input is images - wire your VAE Decode straight into it. The settings a beginner actually touches:
file_format-png,jpeg, orwebp. PNG keeps the workflow embedded, so it's the safe default.tag_pattern- what becomes Eagle tags.Positive prompt, Negative prompttags every prompt token (negative tags get ann:prefix so they don't collide), or pickCustomand usecustom_tag_patternto decide exactly which metadata lines become tags.memo- free text appended to Eagle's notes field, handy for "this one's for the client" context.save_only_no_send- write to disk but skip Eagle, which is perfect for dry runs.
The optional positive/negative inputs override the workflow-extracted prompts when automatic detection fails or you want to relabel. Outputs are filepath (the full saved paths, as a list), filepath_count (how many), and image - the input passed through untouched so you can keep chaining nodes after it.
Install
Install is the standard dance:
cd <ComfyUI>/custom_nodes
git clone https://github.com/watarika/ComfyUI-SendToEagle-w-Metadata.git
Restart ComfyUI, or install via ComfyUI Manager (search "Send to Eagle"). Only dependency is piexif, and there are no model files to fetch.
Common issues
Where people get burned: nothing arrives in Eagle - the Eagle app must be open, since the node talks to http://localhost:41595 (set EAGLE_SERVER_URL and EAGLE_COMFYUI_URL if Eagle or ComfyUI live on another machine). If Eagle keeps asking for permission, set EAGLE_API_TOKEN from Eagle's Preferences → Developer Settings. JPEG gets saved with a .jpg extension so Eagle doesn't name it .jpeg.jpg. And webp with lossless on may silently drop the embedded workflow - the author's still chasing that one, so use lossy webp or png if you rely on workflow-in-image.
The filename scheme and the destination folder are locked down here by design. The moment you want per-model folders or readable file names, the Extended node in the same pack is the upgrade - same install, all the dials.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — | |
| file_format | COMBO | 3 options: png, jpeg, webp | |
| lossless_webp | BOOLEAN | true | — |
| quality | INT | 951–100 | — |
| save_only_no_send | BOOLEAN | false | — |
| tag_pattern | COMBO | 5 options: None, Positive prompt, Positive prompt, Negative prompt, Memo, Custom | |
| custom_tag_pattern | STRING | — | |
| memoopt | STRING | — | |
| extra_metadataopt | EXTRA_METADATA | — | |
| positiveopt | STRING | — | |
| negativeopt | STRING | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| filepath | STRING | — |
| filepath_count | INT | — |
| image | IMAGE | — |