zhenzhen-veo-omni
Google's omni-flash video, both modes in one node
- image
- video
- video
- response
- video_url
- task_id
Some nodes in the Comfyui-zhenzhen pack are single-purpose; this one is a two-in-one. Comfly_veo_omini wraps Google's omni_flash-10s video model, and the mode dropdown decides which half you're using: img2video (animate an image) or video_edit (take an existing video and regenerate it). Both come out as a VIDEO with audio, because it's a Google flash model and that's the family's signature.
It's one of the pack's older nodes - it's been around since the omni_flash-10s model showed up in the README's June updates, at roughly 1 credit per 10-second clip. Cheap, which is the pack's whole pitch: you're buying access to closed models through Zhenzhen's overseas AI工坊 at a fraction of the official rate.
How it works
Pick your mode. In img2video, the node uploads your connected image (or uses image_url) to the storefront's file endpoint, then submits a generation job. In video_edit, it does the same with a reference video - connect a VIDEO and video_way handles the upload, or paste a video_url. Then it polls until the clip's done and hands you video, video_url, and a task_id you can use to pull the result from the website's async-task list if the download ever fails.
The inputs you'll actually touch:
prompt- defaults to Chinese ("基于这张图片生成视频"), so swap it for what you actually want. It works in English fine.mode-img2videoorvideo_edit. This is the big switch.size- 1280x720 or 720x1280, your landscape/portrait choice.seconds- 4 / 5 / 6 / 8 / 10, default 10. Longer costs more.model- locked toomni_flash-10s, since that's what this storefront tier serves.watermark- off by default.
Installing and setting up
Install through ComfyUI Manager (search Comfyui-zhenzhen) or:
cd ComfyUI/custom_nodes
git clone https://github.com/T8mars/Comfyui-zhenzhen
Restart ComfyUI. No model files - this is pure API. You need a key from the overseas AI工坊 (the apikey field takes it). A connected image overrides image_url automatically, which the tooltip spells out and which saves you the classic "why is it using the old image" confusion.
Troubleshooting
The pack's standard network caveat applies harder here than most: the overseas server 443s without a proxy, and the README is explicit that TUN mode is the fix. The skip_error toggle returns an empty video on failure instead of throwing, which is handy in long queues. And if a job times out at the ComfyUI end, don't assume it died - grab the task_id, check the website's async-task page, and download from there. Video jobs on slow days genuinely outlast the default poll window, and the render usually completed anyway.
Inputs (16)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | 基于这张图片生成视频 | — |
| mode | COMBO | img2video | 2 options: img2video, video_edit |
| model | COMBO | omni_flash-10s | 1 options: omni_flash-10s |
| size | COMBO | 1280x720 | 2 options: 1280x720, 720x1280 |
| seconds | COMBO | 10 | 5 options: 4, 5, 6, 8, 10 |
| imageopt | IMAGE | — | |
| image_urlopt | STRING | Optional image reference URL for img2video. Ignored when image input is connected. | |
| videoopt | VIDEO | Reference video input for video_edit mode. | |
| video_urlopt | STRING | Optional video reference URL for video_edit mode. Ignored when video input already provides a URL. | |
| video_wayopt | COMBO | upload | upload: upload connected IO.VIDEO to /v1/files and submit its URL; video_url: prefer video_url when provided. |
| apikeyopt | STRING | — | |
| watermarkopt | BOOLEAN | false | — |
| poll_intervalopt | INT | 61–60 | — |
| max_poll_attemptsopt | INT | 6001–10000 | — |
| skip_erroropt | BOOLEAN | false | 开启后,节点失败时不报错、返回空视频;关闭时(默认)失败直接抛出错误。 |
| seedopt | INT | 00–18446744073709550000 | Execution seed for ComfyUI cache control. Fixed reuses the cached result; randomize/increment/decrement requests a new run. This compatibility seed is not sent to APIs that do not expose a native seed parameter. |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |
| response | STRING | — |
| video_url | STRING | — |
| task_id | STRING | — |