Tested 15 October 2026 · RTX 3090 · Hindi TTS

SadTalker with Hindi audio

A 15.19-second Hindi narration, one fixed portrait, and a recorded ComfyUI render. Listen to the input and watch the output before choosing settings for your own clip.

The portrait, Hindi voice and output

AI-generated Indian female portrait used for this Hindi test
A fictional Indian woman generated for this demo, paired with the same female Hindi narration. The portrait and talking animation are synthetic.
Original portrait

Listen to the input

Svara TTS · Hindi · Female · 16 kHz mono PCM WAV prepared from the original 24 kHz download.

1024 × 1024 px · 15.16 seconds · 25 fps. Playback starts with a 338 KB preview. The original MP4 is 2.05 MB.
Hindi script

नमस्ते। यह हिंदी आवाज़ और चेहरे के तालमेल का एक छोटा परीक्षण है। मेरा नाम रीना है। मैं धीरे और साफ़ बोल रही हूँ। आप मेरे होंठों की हरकत और आवाज़ के बीच तालमेल देख सकते हैं।

Meaning: Hello. This is a short test of Hindi voice and facial coordination. My name is Reena. I am speaking slowly and clearly. You can observe the coordination between my lip movements and voice.

Prepared WAVOriginal TTS WAVOriginal output MP4Hindi script

Recorded settings and timing

Hindi render settings and performance
Measurement or settingThis run
GPUNVIDIA GeForce RTX 3090 · 24 GB
Input audio15.189 s · 16,000 Hz · mono
ComfyUI execution time208.254 seconds
Sampled peak device memory11,750 MiB
Base rendering size512
Preprocesscrop
Still modeON
EnhancerGFPGAN ON
Batch / expression / pose2 / 1.0 / 0
Worker CPU thread limits4 each: OMP, MKL, OpenBLAS, NumExpr

One measured run on the already running ComfyUI server. The isolated SadTalker worker starts for each render. Timing covers ComfyUI execution from input loading through worker/model startup, inference and export. It excludes software installation, TTS generation, transfers and queue waiting. Memory is the highest whole-device reading sampled roughly once per second; it can miss shorter peaks and includes other GPU allocations.

The 512 setting is the base face-rendering size. GFPGAN produces a 1024 × 1024 output here. This single run is not a speed comparison between languages.

Run data and hashesCompleted ComfyUI historyWorker logSoftware versions

Make a Hindi talking-head clip

  1. Generate and check the voice first

    In the Svara TTS Space, choose Hindi and a voice, enter a short Devanagari script, then generate and download the WAV. This sample used Female, temperature 0.7, top-p 0.8, repetition penalty 1.1 and a max-new-tokens input of 2048. Listen for missing words, repeated phrases, unnatural pauses and pronunciation before animating.

  2. Prepare the audio without changing its pace

    The original download was 24 kHz mono PCM. We converted it to 16 kHz mono PCM without trimming, denoising, normalization or speed changes. You can use our prepared WAV to reproduce this run.

    Prepare the downloaded narration
    bash
    ffmpeg -i hindi-svara-original.wav -ac 1 -ar 16000 -c:a pcm_s16le hindi-input.wav

    For another recording, check it with the input quality checker. Level warnings are heuristics; they do not establish that the speech is clean.

  3. Load the portrait and audio in ComfyUI

    Follow our ComfyUI setup guide to install the isolated SadTalker node and checkpoints. Download the Hindi workflow and drag it onto the canvas. Select indian-female-portrait.png in LoadImage and hindi-input.wav in LoadAudio. Both feed the SadTalker node.

  4. Apply the tested settings and run

    Use crop, 512, still ON and GFPGAN ON, with batch size 2, expression scale 1.0 and pose style 0. Run the workflow and inspect the output around consonants, pauses, teeth and face edges. SadTalker receives the audio waveform; this workflow has no Hindi language selector or text input.

  5. Review the MP4 before using it

    The isolated node saves the MP4 and worker log under ComfyUI/output/sadtalker/<run-id>/. Listen at normal speed, then replay short sections while watching the mouth. Use the original output when judging detail; the page preview is compressed.

Raw ComfyUI canvas showing the generated Indian female portrait, same Hindi female narration and tested SadTalker settings
Imported ComfyUI workflow showing the portrait, Hindi audio, node connections and tested settings. Watch the measured output in the demo above.
Run the same settings from the command line

Run from the pinned SadTalker repository with its separate environment active and models installed. The command uses the same settings; its elapsed time is not the ComfyUI measurement above.

SadTalker inference.py
bash
OMP_NUM_THREADS=4 MKL_NUM_THREADS=4 OPENBLAS_NUM_THREADS=4 NUMEXPR_NUM_THREADS=4 \
python inference.py \
  --source_image indian-female-portrait.png \
  --driven_audio hindi-input.wav \
  --result_dir results/hindi \
  --preprocess crop --size 512 --still --enhancer gfpgan \
  --batch_size 2 --expression_scale 1.0 --pose_style 0

ComfyUI API graph · Checkpoint setup

What to check in this output

Mouth movement and head pose

Frames sampled every two seconds show changing lip openings and visible teeth while the head stays close to the source pose. These frame checks confirm animation, but do not measure the alignment of individual Hindi sounds.

Face detail and expression

The face outline and hair remain recognizable in the sampled frames. The eyes appear more open than in the source in several frames, the skin looks smoother, and teeth and inner-mouth shapes change with the expression. Inspect the moving original MP4 at full size for brief artifacts. GFPGAN was enabled; this run does not isolate its effect.

Audio and video duration

The MP4 contains both video and audio streams lasting 15.16 seconds. The prepared WAV is 15.189 seconds, a difference of about 29 milliseconds at a 25 fps output cadence. Matching durations is an export check, not a lip-sync accuracy measurement.

Before a longer Hindi narration

  • Check the TTS pronunciation and pauses first. SadTalker does not repair spoken words.
  • Keep the portrait and audio fixed when comparing settings. This template has no seed control, so blinking and expression may vary between runs.
  • Review teeth, closed-lip sounds, jaw edges and identity throughout the clip.
  • This is one AI-generated Indian female portrait and one synthetic female Hindi voice. Natural speech, regional accents, singing, background music and longer clips were not tested here.