P-Video-Avatar
Make a still image talk — P-Video-Avatar turns one face into a lip-synced clip
- frameImages
- speech
- video
P-Video-Avatar is a talking-head generator from Pruna AI, and it does one very specific job: take a single image of a person and animate them speaking. You feed it a face, tell it what to say (and how to say it), and get back a video where the mouth moves in sync with audio. If you've been assembling the same result out of a local I2V model plus a separately-synced voice track, this collapses the whole pipeline into one node.
It runs on Runware's cloud, so the VRAM question never comes up - Pruna's models are typically optimized for fast, cheap inference, which is the whole brand. The trade is the usual one for this pack: it's a billed API call per generation, and everything is sent to their servers.
What you set
frameImages is required - one or more IMAGE inputs of the person to animate. After that:
speech- aRUNWARE_SPEECHinput with the text to say (this is a builder-socket type; a text string alone isn't enough, you'll want the Runware speech/params node upstream).audio- alternatively, a URL or UUID of a real audio track to lip-sync against, if you already have the voice recorded.settings.voicePrompt- delivery instructions: tone, pacing, emotion. Defaults to "Say the following." so yourpositivePrompttext becomes the script. This is how you get a flat read vs. an excited one.resolution- 720p or 1080p; when you feed input media it auto-matches the input's aspect ratio.seed- exposed here, so unlike some Runware video nodes you can reproduce a take. Set it, keepnumberResultsat 1, and the output is deterministic.
settings.promptUpsampling rewrites your prompt for better results, and settings.safetyFilter (default on) screens the prompt and input image before generation - turn it off only if you're hitting false flags on legit content.
Output is video (VIDEO socket) - wire it into a video preview/save node.
Installing
This is one node in the Runware/ComfyUI-Runware pack; install the pack and it appears under Runware/Video/prunaai.
ComfyUI Manager: search Runware, install, restart. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/Runware/ComfyUI-Runware
pip install -r ComfyUI-Runware/requirements.txt
No models to download (runware-sdk, pillow, soundfile are the whole dependency list). You need a Runware API key - runware.ai/api-keys, then ComfyUI Settings → Runware API key or RUNWARE_API_KEY.
Where people get burned
Two things trip people up. First, the required speech socket is easy to ignore - pasting text into positivePrompt alone doesn't drive the avatar unless it's wired through a RUNWARE_SPEECH input or you supply audio. Second, don't expect a documentary-grade clone: avatar models like this are great for explainers, characters, and quick dubs, and noticeably less great at preserving a specific real person's exact mannerisms. Also, since the whole thing runs remotely, don't feed it anything you wouldn't upload to a cloud service.
Inputs (17)
| Name | Type | Default | Description |
|---|---|---|---|
| frameImages | IMAGE | — | |
| speechopt | RUNWARE_SPEECH | — | |
| audioopt | STRING | Audio input (UUID or URL). | |
| positivePromptopt | STRING | Text prompt describing elements to include in the generated output. | |
| resolutionopt | COMBO | 720p | Resolution preset for the output. When used with input media, automatically matches the aspect ratio from the input. |
| seedopt | INT | 00–2147483647 | Random seed for reproducible generation. When not provided, a random seed is generated in the unsigned 32-bit range. |
| numberResultsopt | INT | 11–4 | Number of results to generate. Each result uses a different seed, producing variations of the same parameters. |
| settings.promptUpsamplingopt | BOOLEAN | false | Automatically enhance the prompt for improved results. |
| safetyopt | BOOLEAN | false | Enable to set safety. Off uses the model's default. |
| safety.checkContentopt | BOOLEAN | false | Enable or disable content safety checking. |
| safety.modeopt | COMBO | fast | Safety checking mode for video generation. |
| settings.safetyFilteropt | BOOLEAN | true | Content safety filtering on prompts and input image. |
| settings.voicePromptopt | STRING | Say the following. | Speaking style, tone, pacing, or emotion instructions for delivery. |
| ttlopt | BOOLEAN | false | Enable to set ttl. Off uses the model's default. |
| ttl_valueopt | INT | 60 | Time-to-live (TTL) in seconds for generated content. Only applies when `outputType` is `URL`. |
| outputFormatopt | COMBO | MP4 | File format for the generated video. |
| outputQualityopt | INT | 9520–99 | Compression quality of the output. Higher values preserve quality but increase file size. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |