BYOKey Vidu Text to Video
9, nine-sixteenths, or square, take your pick
- output
The text-to-video half of Vidu's two-node set. Where the image-to-video sibling takes a frame and animates it, this one builds the whole shot from your prompt on the viduq1 model. It's still deliberately minimal - 1080p only, five-second clips only - but it adds the one thing the i2v version can't: your choice of aspect ratio, at 16:9, 9:16, or 1:1. Pick the format your target platform wants and the rest of the node gets out of your way.
How it works. The standard submit-then-poll pattern this pack is built on: POST to api.vidu.com/ent/v2 (the default base_url, overridable for a relay) with your Vidu key, poll every poll_interval seconds until the clip is ready, download the mp4, and wrap it in ComfyUI's native VIDEO type.
The inputs that matter:
prompt- the whole creative input. Vidu handles plain descriptive language well, but it rewards a bit of specificity about motion and camera. It's optional in the schema, though a node that runs with an empty prompt is a node that's rolling dice.aspect_ratio-16:9,9:16, or1:1. Decide this first; you can't cheaply recrop a generated clip.movement_amplitude-auto,small,medium,large. Same knob as the i2v version: how much motion happens in the frame. It's the distinctive Vidu control, and worth experimenting with - small and large produce very different feels from the same prompt.duration- fixed at 5 seconds. Not configurable today; that's the current model contract.seed- 0 for random; honored if you set one.resolution-1080p, the only choice. The tooltip notes supported values may vary by model and duration, but today it's one.poll_interval/max_wait- the usual babysitters.
Output: one output (VIDEO) socket.
Install. Shared pack, one clone:
cd ComfyUI/custom_nodes
git clone https://github.com/MeteorAndy/comfyui-byokey.git
# restart ComfyUI; it's under api/byokey/video
No model downloads, no extra dependencies - ComfyUI's bundled torch, aiohttp, PIL, numpy and av cover it.
Gotchas. The fixed five-second duration is the thing people trip on; it's the API's current limit, not a misconfiguration. And the usual fresh-pack hygiene: it's new, no community consensus behind it, so give the source a once-over before handing it a key.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| api_key | STRING | — | |
| base_url | STRING | https://api.vidu.com/ent/v2 | — |
| model | COMBO | viduq1 | 1 options: viduq1 |
| prompt | STRING | A textual description for video generation | |
| durationopt | INT | 55–5 | Duration of the output video in seconds (fixed at 5) |
| seedopt | INT | 00–2147483647 | Seed for video generation (0 for random) |
| aspect_ratioopt | COMBO | 16:9 | The aspect ratio of the output video |
| resolutionopt | COMBO | 1080p | Supported values may vary by model & duration |
| movement_amplitudeopt | COMBO | auto | The movement amplitude of objects in the frame |
| poll_intervalopt | INT | 51–60 | — |
| max_waitopt | INT | 60030–3600 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| output | VIDEO | — |