🍌 普通生视频(单输出)
Text to a product video file — the lean, single-output Banana video node
- image_1
- image_2
- image_3
- image_4
- image_5
- image_6
- image_7
- image_8
- image_9
- image_10
- video
The "🍌 普通生视频(单输出)" node is the video side of the Hrio-Commerce pack in its most minimal form: one prompt, one model dropdown, one string output. You type "a slow orbiting product video on a clean white background," it sends that to a cloud video backend, and you get back a file path to an actual mp4 that you can preview or drop into your listing pipeline.
What makes this node interesting under the hood: the video_model dropdown shows a single option, Omni - and per the node's own tooltip, that display name actually sends veo3.1, i.e. Google's Veo 3.1, the closed model from the KB's closed-source-models coverage. This pack is a reseller layer over closed frontier models, which is exactly the pattern external-api-nodes.md describes: no local weights exist for Veo, so if you want it in your graph, someone's API is the only door. The tradeoffs come with it - per-call cost that gets expensive fast with video, and your prompt and reference images leaving your machine.
How it works
It's an HTTP call with extra steps. The node takes your prompt, plus up to ten optional reference images (image_1…image_10), pads them to your target aspect ratio, uploads them to the vendor's OSS/COS storage, and sends everything through an OpenAI-compatible /v1/chat/completions endpoint to the video model. When the response contains an mp4/mov/webm URL, the node downloads it to ComfyUI's temp folder and returns the local path - that's the video output, and why the tooltip says "本地路径可直接预览" (the local path can be previewed directly).
video_resolution (1080p default, also 720p and 4k) and aspect_ratio (16:9 or 9:16) ride along in the JSON payload.
Inputs and the one output
prompt- the actual creative work. The default is a clean product-showcase phrasing in Chinese; keep the structure (subject clear, stable camera, clean lighting) and the results track it.video_model- locked to Omni (sends veo3.1).api_key- required; blank reads the pack'sconfig.ini.video_resolution/aspect_ratio- the two knobs that change what comes back.
The single output is video, a STRING - a local file path to the downloaded mp4. That's the whole contract. You wire it into a Save String or just copy the path.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/moki-flank/Hrio-Commerce
or search Hrio-Commerce in ComfyUI Manager and restart. Dependencies are minimal - requests, numpy, pillow - and there's nothing to download because the model isn't yours to download. The only setup is the vendor's API key, in the node or in config.ini's [banana] section.
Common issues
- No key, no video. Missing API key produces an error rather than a file - check the console log, since the node returns a bare string.
- Video generation is slow and metered. A Veo-class clip is minutes of polling (the config even has a
veo_poll_timeout_secof 1800 - half an hour) and costs real money per second of output. Don't treat it as a fast iteration loop. - The "Omni" label is a lie on purpose. It sends veo3.1. Fine - just know the display names in this pack are cosmetics over the backend's real model map.
- It's proprietary and phones home. Closed-source pack, credential-holding, network-calling by design. The KB's advice for this whole node category applies: inspect before you trust, and know your footage and prompts go to the vendor's server.
Want the same thing but with richer outputs - info, the local video path and the remote mp4url? That's the pack's other video node, "🍌 Banana|生视频".
Inputs (16)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | 一段高质感电商产品展示视频,主体清晰,镜头稳定,光影干净,真实自然。 | 视频提示词。此节点只输出一个 video 字符串,本地路径可直接预览。 |
| video_model | COMBO | Omni | 视频模型。界面显示 Omni,实际发送 veo3.1。 |
| api_key | STRING | 填入 API Key;留空时尝试读取 config.ini 的 api_key。 | |
| video_resolution | COMBO | 1080p | 视频分辨率,会随 JSON 一起发送给后端。 |
| aspect_ratio | COMBO | 16:9 (横屏宽幅) | 横屏 16:9 或竖屏 9:16,会随 JSON 一起发送给后端。 |
| automation_payloadopt | STRING | 自动化 JSON。前端默认隐藏,只在点击节点上的自动化折叠按钮后显示;后台仍会序列化并参与运行。 | |
| image_1opt | IMAGE | 视频参考图 1;会先按目标画幅处理并上传到 OSS/COS,再通过 OpenAI 兼容 /v1/chat/completions 发送给视频模型。 | |
| image_2opt | IMAGE | 视频参考图 2;会先按目标画幅处理并上传到 OSS/COS,再通过 OpenAI 兼容 /v1/chat/completions 发送给视频模型。 | |
| image_3opt | IMAGE | 视频参考图 3;会先按目标画幅处理并上传到 OSS/COS,再通过 OpenAI 兼容 /v1/chat/completions 发送给视频模型。 | |
| image_4opt | IMAGE | 视频参考图 4;会先按目标画幅处理并上传到 OSS/COS,再通过 OpenAI 兼容 /v1/chat/completions 发送给视频模型。 | |
| image_5opt | IMAGE | 视频参考图 5;会先按目标画幅处理并上传到 OSS/COS,再通过 OpenAI 兼容 /v1/chat/completions 发送给视频模型。 | |
| image_6opt | IMAGE | 视频参考图 6;会先按目标画幅处理并上传到 OSS/COS,再通过 OpenAI 兼容 /v1/chat/completions 发送给视频模型。 | |
| image_7opt | IMAGE | 视频参考图 7;会先按目标画幅处理并上传到 OSS/COS,再通过 OpenAI 兼容 /v1/chat/completions 发送给视频模型。 | |
| image_8opt | IMAGE | 视频参考图 8;会先按目标画幅处理并上传到 OSS/COS,再通过 OpenAI 兼容 /v1/chat/completions 发送给视频模型。 | |
| image_9opt | IMAGE | 视频参考图 9;会先按目标画幅处理并上传到 OSS/COS,再通过 OpenAI 兼容 /v1/chat/completions 发送给视频模型。 | |
| image_10opt | IMAGE | 视频参考图 10;会先按目标画幅处理并上传到 OSS/COS,再通过 OpenAI 兼容 /v1/chat/completions 发送给视频模型。 |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| video | STRING | — |