🍌 Banana|图像生成
Pick a template, get front/side/back shots — no GPU, no sampler
- image_1
- image_2
- image_3
- image_4
- image_5
- image_6
- image_7
- image_8
- image_9
- image_10
- front_image
- side_image
- back_image
- images
- info
- mp4url
This is the flagship node of the Hrio-Commerce pack, and it has nothing to do with Google's Nano Banana. Same fruit, different tree. This "🍌 Banana|图像生成" node is an API wrapper: it packages up your reference images and a prompt, sends them to a proprietary e-commerce image backend, and drops three finished product shots back onto your canvas. No model download, no sampler, no VRAM. It's the "one node, paste your key, it just works" convenience that the external-API-node crowd both loves and eyes warily.
Why you'd reach for it: you need clean, consistent product photography - front, side, and back of a garment or item - and you don't want to hand-write the prompt engineering for it. The node's whole trick is that the prompt work is already baked in as templates.
How it works
Under the hood it's an HTTP client with better marketing. Pick a mode template, wire in up to ten reference images, hit Run. The node uploads your images to the backend's object storage, composes a full prompt from the mode's template (image roles, global task, per-view instruction, consistency rules, negative constraints), and fires three concurrent API requests - one each for front, side, and back. If a view comes back missing or broken, auto_retry_until_success retries it automatically up to max_retry_per_view times (default 8).
The mode dropdown is where the product domain lives, and it's the part worth actually understanding:
- 动作迁移 (pose transfer) - keep the subject identical, only change its pose
- 服装迁移 (fashion replace) - swap the clothing from one reference onto the subject of another
- 服装穿戴 (model try-on) - dress a model with every product image you feed in
- 印花面料迁移 (texture/pattern transfer) - move a print or fabric onto a target garment
- 单品三视图 (product three-view) - one product, three angles
- 白底主图精修 (white-bg refine) - clean commercial white-background hero shots
The node's frontend panel (the "冬之韵" popup) can also automate whole folders, scanning input directories and grouping by sequence. For a single shot, just use the node.
The inputs that matter
api_key- required. Blank falls back toconfig.ini'sapi_key.mode- the template. Note the tooltip: this is not the model. The panel syncs this field but leavesmodelalone.model- the backend model: Banano (default), Banano Pro, or Gemini 3.5 Flash. These are display names for the backend's actual endpoints.image_size/aspect_ratio- one size and ratio for all three views. Panel defaults are 4K and 16:9.generate_scope- regenerate all three, or just one view (the others reuse the node's last successful cache). This is the killer feature: retry the side view without burning two more API calls.
The three IMAGE outputs (front_image, side_image, back_image) plus an images batch are what you wire into a Save Image. info is a status string; mp4url is for the pack's video nodes and comes back empty here.
Install
Two ways, same result:
cd ComfyUI/custom_nodes
git clone https://github.com/moki-flank/Hrio-Commerce
…or search Hrio-Commerce in ComfyUI Manager and hit install, then restart. Dependencies are light (requests, numpy, pillow - torch comes from ComfyUI itself). There are no model files to download because there's nothing local. You do need an API key from the vendor - the pack creates a config.ini in its own folder on first load, and the key lives in its [banana] section (or in the node field).
Where people get burned
- The key. Every failure path in this pack funnels through "no API key." If you get an error image that says so, the node literally returns a red error picture as its output.
- Retries stack up.
max_retry_per_view = 8on three concurrent views can make a run drag. The tooltip's advice - 5 to 12 - is honest; don't crank it to 999. - It phones home. This is arbitrary Python that carries a credential and calls a Chinese cloud backend by design - the exact shape of node the KB warns about since the LLMVISION incident. It's proprietary and closed, so read it before you trust it, and know your product images are leaving your machine.
- After updates, the pack tells you to delete old Banana nodes and hard-refresh (Ctrl+F5); stale cached nodes have caused panel-load failures in past releases.
If you just want three views with your own prompts and no template ceremony, this pack's sibling - the "普通三视图并发" node - is the leaner choice.
Inputs (23)
| Name | Type | Default | Description |
|---|---|---|---|
| api_key | STRING | 填入 API Key;留空时尝试读取 config.ini 的 api_key | |
| mode | COMBO | 动作迁移 | 提示词模板。注意:这里不是大模型 model,前端同步只会改这个字段,不会修改 model。 |
| model | COMBO | Banano | 大模型 model。提示词模板同步不会修改这个字段。 |
| image_size | COMBO | 4K | 三张图使用同一尺寸。 |
| aspect_ratio | COMBO | 16:9 (横屏宽幅) | 三张图使用同一宽高比。 |
| generate_scope | COMBO | 全部并发生成 | 质量不满意时可只重新生成某一个视图;其他视图会使用本节点上一次成功缓存结果。 |
| auto_retry_until_success | BOOLEAN | true | 开启后,单个视图失败或不出图会自动重试,直到成功或达到最大重试次数。 |
| max_retry_per_view | INT | 81–999 | 每个视图最多自动重试次数。建议 5-12;填太大会导致节点运行很久。 |
| retry_interval_sec | FLOAT | 1.50.1–30 | 单路失败后的重试间隔秒数。 |
| mode_actualopt | STRING | 前端同步用的模板内部 key;通常留空。 | |
| cache_keyopt | STRING | 可选缓存 key;留空则按当前节点 ID 和模板隔离。 | |
| labels_prefixopt | STRING | 可选输出标题前缀;留空自动使用模板名。 | |
| automation_payloadopt | STRING | 自动化文件夹映射 JSON。由右下角自动化面板写入;不影响普通单次生成。 | |
| image_1opt | IMAGE | 参考图 1;同一批上传图会复用到正面/侧面/背面三个并发请求 | |
| image_2opt | IMAGE | 参考图 2;同一批上传图会复用到正面/侧面/背面三个并发请求 | |
| image_3opt | IMAGE | 参考图 3;同一批上传图会复用到正面/侧面/背面三个并发请求 | |
| image_4opt | IMAGE | 参考图 4;同一批上传图会复用到正面/侧面/背面三个并发请求 | |
| image_5opt | IMAGE | 参考图 5;同一批上传图会复用到正面/侧面/背面三个并发请求 | |
| image_6opt | IMAGE | 参考图 6;同一批上传图会复用到正面/侧面/背面三个并发请求 | |
| image_7opt | IMAGE | 参考图 7;同一批上传图会复用到正面/侧面/背面三个并发请求 | |
| image_8opt | IMAGE | 参考图 8;同一批上传图会复用到正面/侧面/背面三个并发请求 | |
| image_9opt | IMAGE | 参考图 9;同一批上传图会复用到正面/侧面/背面三个并发请求 | |
| image_10opt | IMAGE | 参考图 10;同一批上传图会复用到正面/侧面/背面三个并发请求 |
Outputs (6)
| Name | Type | Description |
|---|---|---|
| front_image | IMAGE | — |
| side_image | IMAGE | — |
| back_image | IMAGE | — |
| images | IMAGE | — |
| info | STRING | — |
| mp4url | STRING | — |