Nodes/D2 Send Eagle/D2 Send Eagle
ComfyUI Node

D2 Send Eagle

Your output folder is a landfill — D2 Send Eagle ships your keepers straight to Eagle

By da2el-ai·Created 2 years ago·Updated about a year ago· 21
D2 Send Eagle
  • images
  • d2_pipe
  • positive
  • negative
  • IMAGE
format
lossless_webptrue
compression90
save_tags
filename_template{model}-{seed}
eagle_folder
previewtrue
positive
negative
memo_text

If you batch a hundred gens a night, your ComfyUI/output folder turns into a landfill of near-identical webp files you can never find again. Eagle is the fix a lot of people land on: a paid image-organizer app with real folders, tags, and search, purpose-built for hoarding AI art. D2 Send Eagle is the bridge between them. It takes the image on its input, saves it to disk, then hands the file to Eagle's local HTTP API so the app ingests it into whatever folder you name - with the prompt, model, and generation settings written into its memo field. No API keys, no cloud, no subscription. It just talks to the Eagle running on your own machine.

It's an output node, so stick it at the end of a workflow where you'd normally put Save Image, wire your IMAGE in, and it does the rest. It's a fork of ComfyUI-send-eagle-slim by the same author as the D2 Nodes pack, and it drags along your generation metadata instead of just dumping files.

How it works

The clever part is where the metadata comes from. When the node runs, it gets ComfyUI's hidden prompt and extra_pnginfo - the JSON of your whole graph - and it walks backwards from the KSampler feeding your image, pulling out steps, sampler, scheduler, cfg, seed, and model name. It then traces the model input recursively to find the actual checkpoint (including Unet Loader). That only works for KSampler variants it recognizes - vanilla KSampler, KSamplerAdvanced, BNK_TiledKSampler, and a few others - and you can add more via config.yaml. If it can't find a KSampler, or you feed it from some exotic sampler, those fields just come back empty. It's a clever hack, not magic.

The format choice is where people get burned. PNG embeds the full ComfyUI workflow - drag the file back into ComfyUI and the whole graph reconstructs - but A1111's PNGInfo can't read it. WEBP/JPEG writes Exif that A1111's PNGInfo can display, but the workflow is gone. You can't have both.

The inputs that matter

The node fires one image through it at a time (batches get looped). Most of the knobs you can leave alone; these are the ones worth touching:

  • images - your IMAGE tensor from VAE Decode. This is the only required wire.
  • format - webp / png / jpeg, as above. Webp is the default and it's fine.
  • save_tags - None, "Prompt + Checkpoint", "Prompt", or "Checkpoint". This is the feature that makes Eagle searchable: it splits your prompt on commas into Eagle tags and/or adds the model name. None means your only search aid is the memo text.
  • filename_template - defaults to {model}-{seed}, and you can also use {width}, {height}, {steps}. A timestamp is always prepended.
  • eagle_folder - a folder name or folder ID. Give it a name and it creates the folder in Eagle if it doesn't exist. Leave it blank and files land in Eagle's default inbox.
  • Optional positive / negative wire in prompts directly (or come from d2_pipe if you use the author's D2 Nodes pack), and memo_text is a free-form note.

Outputs are just passthroughs - positive, negative, and the image - so you can chain further nodes after it. The preview toggle just hides the image preview in the UI.

Installing it

ComfyUI Manager → Custom Nodes Manager → search "D2 Send Eagle" → Install → restart. Or from a terminal:

cd ComfyUI/custom_nodes
git clone https://github.com/da2el-ai/ComfyUI-d2-send-eagle

Then restart ComfyUI. Its only real Python dependency is piexif (for the Exif writing); requests and yaml are already bundled with ComfyUI. No models to download, nothing heavy.

Common issues

The number one failure is obvious once you know it: Eagle has to be running for this node to work. It hits Eagle's local HTTP API on localhost:41595; if the app is closed, the node throws. Same if Eagle's HTTP server is off in its settings. The local save still happens, so check ComfyUI/output/YYYY-MM-DD/ if a run errors.

The other classic gotcha: metadata comes up empty. If you wired the node somewhere the KSampler isn't reachable, or your sampler type isn't in config.yaml, you'll get blank tags and a filename full of zeros. It won't crash - it'll just save ugly. And a heads-up if you're used to Save Image: this node's local save folder is fixed (ComfyUI/output/YYYY-MM-DD/) and can't be changed.

Eagle itself is paid (one-time license). If you're already happy with ComfyUI's own browser, this node buys you nothing - but if you're an Eagle user with a growing hoard, it's the difference between a searchable library and a folder of 40,000 00001.webp files.

CategoryD2

Inputs (12)

NameTypeDefaultDescription
imagesIMAGE
formatCOMBO3 options: webp, png, jpeg
lossless_webpBOOLEANtrue
compressionINT901–100
save_tagsCOMBO4 options: None, Prompt + Checkpoint, Prompt, Checkpoint
filename_templateSTRING{model}-{seed}
eagle_folderSTRING
previewBOOLEANtrue
positiveoptSTRING
negativeoptSTRING
memo_textoptSTRING
d2_pipeoptD2_TD2Pipe

Outputs (3)

NameTypeDescription
positiveSTRING
negativeSTRING
IMAGEIMAGE