Nodes/PopNow/Vidu Q4 Preview · Reference to Video
ComfyUI Node

Vidu Q4 Preview · Reference to Video

Cast a character from 15 reference images, no LoRA, no training run

By popnow-ai·Created 24 days ago·Updated about 20 hours ago· 0
Vidu Q4 Preview · Reference to Video
  • reference_image_urls
  • reference_audio_urls
  • video
  • task id
◄prompt►
◄aspect_ratio16:9►
◄resolution720p►
◄duration_seconds5►
◄generate_audiotrue►
◄seed0►

Keeping a character recognisable is the most complained-about problem in this whole hobby, and by 2026 the community's answer had quietly changed: stop trying to inject identity into a sampler, and hand the model a picture to look at instead. Reference-conditioned generation is that reroute, applied to video. This node is the fullest version of it in the pack - one to fifteen reference images and up to three reference audio clips, and the model builds a shot out of them.

Why references beat a LoRA here

A LoRA is the right tool when you need a character in hundreds of shots. Training one for a thirty-second video idea is absurd - and most video models have no local weights to train against anyway. Reference conditioning skips all of it: bring existing images, a face, an outfit, a product, a location, and the model holds them in context while it generates.

The KB's blunt finding is also the reason this node exists: multi-character scenes with two specific people are "largely unsolved without spatial scaffolding" locally. Reference slots are the greedy version of scaffolding. Ask for two characters from two images and you're making the model do the hard part, but the slots at least let you name them separately.

How the reference inputs work

reference_image_urls is an autogrow socket. Connect one image and the node grows another socket; keep going up to fifteen. Order matters absolutely - the model's only handle on "which one" is position, and the author's tooltip spells out the grammar you're supposed to write in: "the woman from the first image", "the robe from the second image". Prompt without those ordinals and you have given the model a pile of pictures and no idea what to do with them.

reference_audio_urls is optional, up to three clips, MP3, 3 to 12 seconds each, for a voice or a sound the shot should follow. That's the interesting one for dialogue: it means a generated shot can inherit a timbre rather than inventing one. It's also where this node pairs with PopNow_xai_grok_tts_text_to_speech - an AUDIO output feeding an audio reference socket, so a voice you made becomes a voice the video performs with.

There is no opening frame here, so shape comes from a widget: aspect_ratio, one of 16:9, 9:16, 1:1, 3:4, 4:3.

The rest of the fields

prompt - describe the scene and cast it by position, then the action and camera.

resolution - 540p, 720p, 1080p, 2k, 4k, priced per second with steep steps: 720p roughly doubles 540p, 1080p is a modest bump over it, then 2k and 4k jump hard. Draft low; the tooltip also warns that 2k and 4k arrive as 10-bit HEVC.

duration_seconds - 3 to 16, billed per second. The whole timeline multiplies.

generate_audio - dialogue, effects and ambience, on by default, and turning it off gives a silent clip at the same price. If you fed reference audio, this is the switch that decides whether the shot has sound around it at all.

seed - fixed by default; re-queueing repeats rather than re-bills.

Outputs: video and task id.

Install

cd ComfyUI/custom_nodes
git clone https://github.com/popnow-ai/popnow-comfyui

Manager route: search PopNow, install, restart. No model files, no dependency stack - this is a client for api.popnow.ai, and the pack only uses packages ComfyUI already ships. Key from popnow.ai/api/console/keys into Settings > PopNow or POPNOW_API_KEY, then restart once more so the node list rebuilds from your account's catalog. If you still have the standalone popnow_api.py from the docs page, remove it.

On trust, since it's the obvious question with any pack that holds a key: this is the vendor's own MIT-licensed pack calling the vendor's own API, and the key lives in user/popnow/config.json rather than in your workflow or PNG metadata - or in POPNOW_API_KEY if you'd rather it never touch disk.

Where it goes wrong

References without ordinals. The number one failure. If the prompt says "a woman in a robe" and you gave it two images, you get a blend. Say "first" and "second".

Too many references, each doing nothing. Fifteen slots is a capacity, not a target. Three or four well-chosen images - face, full body, outfit - beat a dozen near-duplicates; near-duplicates just average into a face nobody chose.

Multi-character merges. Two people, one scene, occasional swapped haircuts. The KB calls this largely unsolved and it stays unsolved here; keep the framing tight and expect retries.

Cost per attempt. Per-second pricing × duration × retries, and at 2k/4k the multiplier is brutal. Set Settings > PopNow > Max credits per run before you first queue, and remember no-credit errors arrive as PopNow 40201 after the quote. 40004 means the combination isn't servable - read the field the message names.

Cancelling stops the wait, not the job. The render continues, is billed if it succeeds, and lands in the API console instead of ComfyUI/output. Failures and content rejections are refunded.

CategoryPopNow/Video/Vidu

Inputs (8)

NameTypeDefaultDescription
promptSTRINGDescribe the scene and refer to each reference by its position: "the woman from the first image", "the robe from the second image".
reference_image_urlsCOMFY_AUTOGROW_V3One to 15 reference images: people, outfits, products or places, in the order your prompt refers to them.
aspect_ratioCOMBO16:9Output aspect ratio.
resolutionCOMBO720pOutput resolution. 2k and 4k come back as 10-bit HEVC.
duration_secondsINT53–16Output length in whole seconds, from 3 to 16. Billed per second.
generate_audioBOOLEANtrueGenerate sound with the picture: dialogue, effects and ambience. Off gives a silent clip at the same price.
seedINT00–2147483647Same seed and settings, same result. Set 'control after generate' to randomize to get a new result on every run; every run is billed.
reference_audio_urlsoptCOMFY_AUTOGROW_V3Up to three reference audio clips (MP3, 3 to 12 seconds each) for a voice or a sound the clip should follow.

Outputs (2)

NameTypeDescription
videoVIDEO—
task idSTRINGThe PopNow task id, for the API console logs or support.