Vidu Q4 Preview · Image to Video
4K video with dialogue for the price of a coffee, if you skip the 4K
- image_url
- video
- task id
Vidu Q4 Preview is the node in this pack that produces spoken dialogue straight out of an image - the model generates the voice, the lip movement and the ambience together, so a character in your still frame can say a line and it lands on the right frame. That is a genuinely different capability from "add sound effects", and it's why this node is worth its premium over the Q3 line.
The honest shape of it
The resolution dropdown runs 540p, 720p, 1080p, 2k, 4k, and the pricing steps between those are not linear. From the table: 720p is roughly double 540p, 1080p is a modest bump over 720p - and then 4k is over three times the 1080p rate. So the sane ladder is 540p to draft the performance, 1080p for the shot you keep, and 4k only when the deliverable actually requires a master, because a 16-second 4k take at that rate is the most expensive single run in this drawer of the pack.
One more thing about 4k and 2k, straight from the tooltip: they come back as 10-bit HEVC. That's a distribution format, not an editing one - check that your player and your downstream nodes handle it before you build a workflow around it.
Mechanism
The pack builds this node from Vidu's published input schema at startup, per model, so the widgets you see are exactly the fields the endpoint accepts. Your image_url tensor is uploaded once and cached by content hash for twelve hours, so re-running with a new prompt doesn't re-send the same picture. Fields left at their defaults are omitted, letting the model choose. The result is downloaded and decoded into ComfyUI's VIDEO type, which is why Save Video and further VIDEO nodes just work.
The inputs that matter
image_url is the opening frame and, per the tooltip, the clip keeps its shape - there's no aspect-ratio widget here because the frame decides.
prompt is where the dialogue goes, in quotes. The author's framing: describe the action, the dialogue, the camera and the sound. This node is unusually literal about quoted speech, so write the line as a line and put the delivery note outside the quotes.
duration_seconds is 3 to 16 in whole seconds, billed per second. Note the floor is 3, not 1 - the shorter end of the Q3 nodes isn't available here.
generate_audio defaults on, and the tooltip is refreshingly blunt: turning it off gives you a silent clip at the same price. There's no discount for silence, so only switch it off if audio would get in the way - you're scoring it yourself, or you'll dub it later.
enable_prompt_expansion is off by default and that's the right place for it. Letting the model rewrite your prompt is useful when you have a vague idea and no shot list; it's actively harmful when you wrote a precise line of dialogue you want spoken as written. Turn it on for vibes, off for scripts.
seed is fixed by default - queueing twice returns the same clip rather than a second charge.
Outputs: video, and task id.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/popnow-ai/popnow-comfyui
Manager users: search PopNow, install, restart. Either way there are no model downloads and no dependency installs, because nothing runs on your GPU - the pack is a client for api.popnow.ai with an MIT licence, and it only relies on packages ComfyUI already ships. You need a key from popnow.ai/api/console/keys in Settings > PopNow or POPNOW_API_KEY, then one more restart for the catalog to populate the node list.
Where it goes wrong
A 2k/4k result that plays black. Those tiers come back as 10-bit HEVC, which several players and preview widgets handle badly and which re-encodes slowly. If your export chain chokes on it, render at 1080p and upscale on your own side.
Dialogue that ignores your script. Quoted lines get read, but long lines get truncated or rushed at 5 seconds. If the performance matters, give it 8–12 seconds and fewer words.
Lip-sync drift on faces that are small in frame. This isn't a bug, it's the model: a wide shot with six people in it doesn't have the pixels to phoneme-match. Push in.
PopNow 40201 - out of credits, and at 2k/4k rates this arrives fast. Set Settings > PopNow > Max credits per run before you first press queue.
PopNow 40004 - the combination isn't servable. Read which field the message names rather than tweaking everything.
Cancelling only stops the wait. The render continues on PopNow and is billed if it succeeds; the output lands in the API console logs, not in ComfyUI/output. Failed or content-rejected runs are refunded, which is the one case where you get your credits back.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | Describe what happens after the opening frame: the action, the dialogue in quotes, the camera and the sound. | |
| image_url | IMAGE | Opening frame. The clip starts from this image and keeps its shape. | |
| resolution | COMBO | 720p | Output resolution. 2k and 4k come back as 10-bit HEVC. |
| duration_seconds | INT | 53–16 | Output length in whole seconds, from 3 to 16. Billed per second. |
| generate_audio | BOOLEAN | true | Generate sound with the picture: dialogue, effects and ambience. Off gives a silent clip at the same price. |
| enable_prompt_expansion | BOOLEAN | false | Let the model rewrite and expand your prompt before generating. |
| seed | INT | 00–2147483647 | Same seed and settings, same result. Set 'control after generate' to randomize to get a new result on every run; every run is billed. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |
| task id | STRING | The PopNow task id, for the API console logs or support. |