sync.so Talking Image
A still portrait that starts talking
- image
- audio
- VIDEO
Hand it a face, hand it a voice, get a talking video. This node animates a single still portrait into a person who speaks - lip-synced to whatever audio you feed it, with natural motion rather than a frozen puppet. It's the sync.so version of "make this photo come alive," driven by their sync-3 model, and it's genuinely one of the better talking-image tools available in ComfyUI right now.
It's a partner node: sync-3 renders on sync.so's servers through Comfy's proxy, billed per second of output through your Comfy account. sync-3 image support landed in ComfyUI core in July 2026. The pipeline that makes it useful: generate a character portrait locally (Flux, SDXL, whatever), synthesize a script with any TTS node, and chain both into this. Your GPU made the face, the cloud made it talk.
How it works
The image and audio are uploaded to sync.so, a generation job runs, and the output comes back. The output duration simply matches the audio length - no clip-length guessing, the voice sets the runtime. The prompt is an optional director's note: "make the subject smile and look at the camera" changes the performance; leaving it empty gives natural talking motion.
The model dropdown (sync-3 only - image input is exclusive to it) holds speaker_selection for multi-face images: default lets the model choose, coordinates targets the face at a specific pixel using speaker_x/speaker_y. There's also auto_downscale, on by default, which shrinks oversized images to the 4K limit and rescales your coordinates to match - turn it off if you'd rather get an error than a surprise downscale.
The inputs that matter
image- a single image with a clearly visible face, up to 4K.audio- the speech; the output's duration matches it. Chain any TTS node here.prompt- optional performance guidance.model- sync-3 with speaker selection and auto-downscale inside.seed- re-run control; results are nondeterministic regardless.
Output is a single VIDEO.
Gotchas
It's exactly one image - a batched input errors out, so if your portrait node outputs a batch, pick a single frame first. The result is only as good as the face: a clear, front-facing, well-lit portrait animates beautifully; tiny or heavily angled faces degrade fast. And because output length equals audio length, a long script is a long bill - sync.so pricing is per second of output, so keep the voiceover tight unless you're ready to pay for the run-on version.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | A single image with a clearly visible face, up to 4K (4096x2160). | |
| audio | AUDIO | Speech audio driving the talking video; the output duration matches it. Chain any TTS node here to drive the animation from text. | |
| prompt | STRING | Optional guidance for how the portrait comes to life, e.g. 'make the subject smile and look at the camera'. Leave empty for natural talking motion. | |
| seed | INT | 00–2147483647 | Seed controls whether the node should re-run; results are non-deterministic regardless of seed. |
| model | COMBO | sync.so generation model. Image input is exclusive to sync-3. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| VIDEO | VIDEO | — |