心宝❤失败链接汇总
BananaV2 said 'success' but no image arrived — this node goes and gets it
- 汇总文本
- 下载图片
- 下载结果
The Gemini image API has a maddening failure mode: sometimes a batch request reports success, you get billed, and the image download still fails. The pack's own README calls it out - "request succeeded but no image returned" - and up until recently there was nothing to do but re-run the batch and hope.
This node is the fix. It's new (added in early 2026) and its job is tiny: collect the failed_urls outputs from a bunch of BananaV2 nodes, then optionally retry downloading them.
How it works
Every BananaV2 node spits out a failed_urls string when a generated image's download fails. If you're running a batch of, say, six V2 nodes, you'd have six loose failed_urls wires going nowhere. This node gives you a place to park them: failed_urls_1 through failed_urls_20 - twenty inputs, each an optional STRING. Wire as many or as few as you have. Each input's tooltip spells it out: connect it to a BananaV2's failed_urls output.
Then it gives you three outputs:
汇总文本(aggregated text) - the collected list of failed URLs as one string.下载图片(downloaded images) - an IMAGE list. When the aggregator successfully re-downloads a URL, the image lands here.下载结果(download result) - a string telling you what actually happened for each URL.
The two controls:
下载尝试(download retry), default off. Off, the node just aggregates the URLs into the text output for you to deal with. On, it actually re-attempts to download them, concurrently.下载超时(download timeout), 5–600 seconds, default 60. How long each download read can hang before giving up. The default matches the BananaV2 node's own timeout, which is the right starting point.
It's an output node, so it's meant to sit at the end of the graph as a sink for the failure information - not to feed a sampler.
When you'd actually use it
Two scenarios. The boring one: you want a single human-readable list of what failed so you can re-run just those. The useful one: downloads fail transiently all the time (flaky reseller channel, a slow image host, a dropped connection), and a retry a few seconds later often just works. Turn on 下载尝试, and the images that failed at generation time get quietly rescued into the 下载图片 output, ready to wire to a save node.
It's honest plumbing - the KB's node-plumbing doc calls this the "one source, many consumers" pattern - and it exists because the failure mode it handles is real and recurring with this API. Wire it up before you need it; the first time a batch drops three of eight images and the aggregator recovers them, you'll be glad it's there.
Installing
It ships in the same pack as the Banana nodes:
cd ComfyUI/custom_nodes
git clone https://github.com/98624017/comfyui-banana-li-linux
Restart ComfyUI and it appears with the rest of the 心宝 nodes. No extra dependencies beyond the pack's standard set (requests, Pillow, etc.) - this node is pure HTTP and image handling.
One gotcha: it only helps if V2's failed_urls actually fires, which requires the V2 nodes to be the ones generating. The older V1 node has no failed_urls output at all - if you're on V1, the fix is to switch those nodes to V2. And keep the timeout sane: setting it to 600 seconds means a dead URL can stall the end of your graph for ten minutes while it waits.
Inputs (22)
| Name | Type | Default | Description |
|---|---|---|---|
| 下载尝试 | BOOLEAN | false | 开启后会对下载失败的链接进行再度并发下载尝试 |
| 下载超时 | INT | 605–600 | 下载读取超时时间(秒),默认 60s 与 BananaV2 节点一致 |
| failed_urls_1opt | STRING | 连接 BananaV2 的 failed_urls 输出 #1 | |
| failed_urls_2opt | STRING | 连接 BananaV2 的 failed_urls 输出 #2 | |
| failed_urls_3opt | STRING | 连接 BananaV2 的 failed_urls 输出 #3 | |
| failed_urls_4opt | STRING | 连接 BananaV2 的 failed_urls 输出 #4 | |
| failed_urls_5opt | STRING | 连接 BananaV2 的 failed_urls 输出 #5 | |
| failed_urls_6opt | STRING | 连接 BananaV2 的 failed_urls 输出 #6 | |
| failed_urls_7opt | STRING | 连接 BananaV2 的 failed_urls 输出 #7 | |
| failed_urls_8opt | STRING | 连接 BananaV2 的 failed_urls 输出 #8 | |
| failed_urls_9opt | STRING | 连接 BananaV2 的 failed_urls 输出 #9 | |
| failed_urls_10opt | STRING | 连接 BananaV2 的 failed_urls 输出 #10 | |
| failed_urls_11opt | STRING | 连接 BananaV2 的 failed_urls 输出 #11 | |
| failed_urls_12opt | STRING | 连接 BananaV2 的 failed_urls 输出 #12 | |
| failed_urls_13opt | STRING | 连接 BananaV2 的 failed_urls 输出 #13 | |
| failed_urls_14opt | STRING | 连接 BananaV2 的 failed_urls 输出 #14 | |
| failed_urls_15opt | STRING | 连接 BananaV2 的 failed_urls 输出 #15 | |
| failed_urls_16opt | STRING | 连接 BananaV2 的 failed_urls 输出 #16 | |
| failed_urls_17opt | STRING | 连接 BananaV2 的 failed_urls 输出 #17 | |
| failed_urls_18opt | STRING | 连接 BananaV2 的 failed_urls 输出 #18 | |
| failed_urls_19opt | STRING | 连接 BananaV2 的 failed_urls 输出 #19 | |
| failed_urls_20opt | STRING | 连接 BananaV2 的 failed_urls 输出 #20 |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| 汇总文本 | STRING | — |
| 下载图片 | IMAGE | — |
| 下载结果 | STRING | — |