Nodes/Replicate Select/Pruna Video Avatar (Replicate)
ComfyUI Node

Pruna Video Avatar (Replicate)

Pruna Video Avatar — a photo, a script, and a talking head walks out

By Pharma-Lobby·Created 2 months ago·Updated 2 months ago· 0
Pruna Video Avatar (Replicate)
  • image
  • audio
  • video_path
resolution720p
voiceZephyr (Female)
voice_script
voice_promptSay the following.
voice_languageEnglish (US)
seed0
video_promptThe person is talking.
negative_prompt
strength_negative_prompt0.50
disable_safety_filtertrue
disable_prompt_upsamplingfalse
no_opfalse

Pruna Video Avatar is the most complete "talking avatar from a still photo" node in Replicate Select, because it does the whole job itself. Feed it a headshot and it can synthesize the speech too - you give it a voice_script, pick one of 30 voices, and it generates the narration and the lip-synced video in one call. Or, if you already have an audio file, hand it that instead and it just animates the lips. Two modes, one node, no separate TTS step required.

That's the thing that sets it apart from VEED Fabric (which demands audio as an input) and from Sync (which needs an existing video). Pruna's avatar is the "here's a person, here's what they should say, go" option. The catch is it's the fiddliest node in the pack - fourteen inputs, and a couple of them (the negative-prompt system) are genuinely experimental.

How it works

Standard engine around prunaai/p-video-avatar. Your image goes up as PNG; if you provided audio, it goes up as WAV and drives the speech; otherwise the model synthesizes speech from voice_script + voice settings. Output MP4 lands in output/video/, and video_path comes back as a STRING.

The inputs that matter

  • image (required) - the first frame / source face.
  • audio - optional. If provided, it's used instead of voice_script and voice settings.
  • voice_script - required when no audio is given: the exact words the avatar says.
  • voice - 30 choices, default Zephyr (Female). The full roster is in the dropdown.
  • voice_prompt - style instructions for how to speak the script (tone, pacing, accent, emotion). Default "Say the following." - the note that matters: these instructions are not spoken.
  • voice_language - English (US) default, up to 10 language/accent targets.
  • video_prompt - visual behavior while speaking; default "The person is talking." This is where you'd add "gesturing," "looking at the camera," etc.
  • negative_prompt - empty by default, and the tooltip is explicit: disabled if empty. When you do fill it, the model recommends keyword lists like "subtitles, text, blurry, low quality, frames, watermark, scene change."
  • strength_negative_prompt - 0–4, default 0.5, flagged as experimental; tune per video length.
  • resolution - 720p (default) or 1080p.
  • seed - set for reproducibility.
  • disable_safety_filter - defaults to true here, which is unusual for this pack. Flip it on/off deliberately.
  • disable_prompt_upsampling - when false (default), the model auto-enhances video_prompt; enable to use it verbatim.
  • no_op - a health-check mode that returns status without running inference. Exactly what it sounds like.

Output: video_path, a STRING.

Install

cd ComfyUI/custom_nodes
git clone https://github.com/Pharma-Lobby/ComfyUI-Replicate-Select

Or ComfyUI Manager → Install Custom Nodes → "Replicate Select", restart. Dependency: replicate>=1.0.7. Token via environment variable:

export REPLICATE_API_TOKEN=r8_...

Where people get burned

  • Audio vs. script mode is exclusive. Provide both and audio wins. Decide which you're driving before you wire it.
  • The negative prompt is off until you fill it. "Disabled if empty" is the tooltip's own words - empty means the model ignores the whole system, not that it uses a default.
  • Not a great input image, not a great avatar. Same rule as every still-image avatar: clean, front-facing, decent resolution or the result looks worse than the input deserved.
  • 14 inputs is a trap for over-tuning. The defaults are sane. Change video_prompt and voice_prompt first; leave the negative-prompt strength experiments until a render actually disappoints you.
CategoryReplicate Select/lipsync

Inputs (14)

NameTypeDefaultDescription
imageIMAGEInput image (first frame). Supports jpg, jpeg, png, webp.
resolutionoptCOMBO720pResolution of the video.
audiooptAUDIOOptional uploaded audio to drive avatar speech. If provided, this is used instead of voice_script and voice settings.
voiceoptCOMBOZephyr (Female)Voice to use when generating speech from voice_script.
voice_scriptoptSTRINGExact words the avatar should say. Required when no audio file is uploaded.
voice_promptoptSTRINGSay the following.Optional style instructions for how to speak voice_script, such as tone, pacing, accent, or emotion. These instructions are not spoken.
voice_languageoptCOMBOEnglish (US)Language/accent target for generated speech.
seedoptINT0-2147483648–2147483647Random seed. Set for reproducible generation.
video_promptoptSTRINGThe person is talking.Optional visual prompt describing how the person should appear or behave while speaking.
negative_promptoptSTRINGDisabled if empty.Mention what you do NOT want in the video, e.g. "subtitles, text, blurry, low quality, frames, watermark, titles, scene change". We recommend using multiple keywords at once.
strength_negative_promptoptFLOAT0.500–4Strength of the Negative Prompt. Optimal value can differ for different video lengths (Experimental Feature)
disable_safety_filteroptBOOLEANtrueDisable safety filter for prompts and input image. When disabled, prompts are not checked for unsafe content before generation.
disable_prompt_upsamplingoptBOOLEANfalseWhen true, skip automatic enhancement of the visual video prompt and use video_prompt directly.
no_opoptBOOLEANfalseHealth check mode - returns status without inference.

Outputs (1)

NameTypeDescription
video_pathSTRING