心宝❤AI应用
Call the author's hosted ComfyUI apps — HD upscale, hand-fix, seedvr2 repair
- image_1
- image_2
- image
- message
This node is the pack's remote-workflow bridge. It calls a ComfyUI workflow that's not running on your machine - one hosted on the author's server, exposed as an API, and registered in a config file. You pick an app from a dropdown, feed it images and text, and the results come back as if a local node had made them. It's the "call somebody else's ComfyUI graph" pattern from the KB's external-api-nodes doc, with the twist that the remote graph is itself ComfyUI.
It was added in early 2026 alongside a comfy_api_apps.toml config file, and it ships with three apps configured out of the box:
- 高清放大 (HD upscale) - upscale an uploaded image, with a boolean to jump from 4K to 8K.
- 修手修脸 (hand/face fix) - the classic regional repair workflow: feed an image and optionally paint a mask, give it a Chinese prompt like "女生的手", and it denoises/repairs hands and faces with separate weight sliders for the mask region and skin detail.
- seedvr2高清修复 (seedvr2 HD repair) - a text-driven HD restoration pass with its own built-in repair prompt.
The generic input model
Rather than hard-coding a different node shape per app, the node exposes generic slots that the config file maps to the remote app's fields. In the node you see image_1/image_2, text_1/text_2, float_1–float_4, bool_1/bool_2, and combo_1/combo_2 - and which of those actually matter depends on the selected app_select. The config's [[apps.fields]] blocks say things like "高清放大 maps image_1 to remote node 308's image field and bool_1 to node 306's value field" - so you read the toml to learn which slot feeds what for the app you picked. For 修手修脸, for example, float_1 is the denoise weight (0 for pure de-AI, 0.35–0.5 for hand repair), float_2 is skin detail, and text_1 is the repair prompt.
The other inputs: banana_api_key (blank inherits config.ini), and 仅提交不等待 (submit-only) - same async idea as the V3 image node: submit the task, return immediately, check the task center for progress.
The two outputs
image(IMAGE) - the app's result, dropped back into the graph like any local node's output.message(STRING) - the remote job's message/status, which is where errors and progress text land.
How it's configured
The apps live in comfy_api_apps.toml in the pack directory. You can add your own app blocks - each one needs an id, display name, model, and a list of field mappings from the generic slots to the remote API's nodeInfoList node ids and field names. If you've ever written a ComfyUI workflow-to-API wrapper, this is that, but declarative and switchable at runtime instead of baked into a node. The Web UI extension (comfy-api-app-switch.js) also lets you flip apps from the frontend without touching the node's dropdown.
Installing
Same pack as the rest:
cd ComfyUI/custom_nodes
git clone https://github.com/98624017/comfyui-banana-li-linux
Restart ComfyUI. The node itself needs nothing beyond the pack's requests; the heavy lifting happens on the remote server.
The honest caveats: the three default apps are the author's hosted workflows, reachable only if your key has access to them - they're part of the commercial channel, not a public service. And this node, like every API wrapper, sends your images and prompts to a server you don't control. Fine for product shots you'd post publicly anyway; not the thing to route client-confidential work through. If an app errors, the message output is where the remote graph's complaint shows up - check it before assuming your input was wrong.
Inputs (15)
| Name | Type | Default | Description |
|---|---|---|---|
| app_select | COMBO | 高清放大 | 3 options: 高清放大, 修手修脸, seedvr2高清修复 |
| banana_api_key | STRING | 调用服务的 API Key;留空则读取 config.ini | |
| 仅提交不等待 | BOOLEAN | false | 仅提交任务并立即返回,不等待轮询与下载;进度请在右下角"🎬 心宝视频任务"查看 |
| image_1opt | IMAGE | 图片输入 1 | |
| image_2opt | IMAGE | 图片输入 2 | |
| text_1opt | STRING | 文本输入 1 | |
| text_2opt | STRING | 文本输入 2 | |
| float_1opt | FLOAT | 0.500–1 | 浮点输入 1 |
| float_2opt | FLOAT | 0.500–1 | 浮点输入 2 |
| float_3opt | FLOAT | 0.500–1 | 浮点输入 3 |
| float_4opt | FLOAT | 0.500–1 | 浮点输入 4 |
| bool_1opt | BOOLEAN | false | 布尔输入 1 |
| bool_2opt | BOOLEAN | false | 布尔输入 2 |
| combo_1opt | COMBO | 默认 | 选项输入 1 |
| combo_2opt | COMBO | 默认 | 选项输入 2 |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| message | STRING | — |