Agent skill · Frontend

sync-labs-lipsync

Generate AI lip sync and visual dubbing with Sync Labs (sync.so) — choose the right model (sync-3, lipsync-2, lipsync-2-pro, lipsync-1.9.0-beta, react-1), build the POST /v2/generate request, host inputs, handle async jobs via polling or webhooks, run batch dubbing/localization, and review output for sync accuracy and identity preservation. Use when an agent must re-voice, dub, translate, personalize, or re-time the mouth of a talking-head video (or animate a still face from audio), or must debug a failed/rejected Sync generation. Also covers consent, likeness, and rights obligations for ed

Calesthio43,316★ · +2,384/wk · 2 repos on radarProfile →
claude-codecodexcopilotcursorMIT
Install
npx skills add calesthio/generative-media-skills --skill sync-labs-lipsync --agent claude-code

Same command for any agent — swap --agent for codex, cursor, copilot.

Facts
Files in the skill folder: 2
SKILL.md size: 23 KB
Bundled scripts: none
Path: skills/providers/lip-sync/sync-labs-lipsync/SKILL.md
Open the folder on GitHub →
Where it comes from
Stars: 112 · +8 this week
Language: Python
Read our review of the source →

Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.

Review
written from the skill's own SKILL.md · Aug 5, 2026

What it does

Generates AI lip sync and visual dubbing for talking-head video by selecting a Sync Labs model, constructing a POST /v2/generate request, hosting inputs, and managing async job results via polling or webhooks. It supports batch dubbing/localization, per-segment audio mapping, and output review for sync accuracy and identity preservation. It is intended for re-voicing, dubbing, translation, personalization, or re-timing mouth movement, including animating a still face from audio, and for debugging failed or rejected Sync generations. It also covers consent, likeness, and rights obligations for editing a real person’s face.

How it works

  • Choose a model from: sync-3, lipsync-2, lipsync-2-pro, lipsync-1.9.0-beta, or react-1, based on input and quality needs; prepare a request to POST https://api.sync.so/v2/generate with a body containing model, input (one visual item and one audio source, plus optional dubParams or TTS), options (sync_mode, temperature, active_speaker_detection, occlusion_detection_enabled, model_mode, prompt for react-1), outputFileName, and optional webhookUrl.
  • The input array must have exactly one visual item (video or image for sync-3) and one audio source; other inputs are rejected. Segment-level overrides and dubParams allow per-segment audio or translation dubbing.
  • Use the provided fields to control alignment (sync_mode), motion expressiveness (temperature), and face selection (active_speaker_detection or coordinates). For images, use sync-3 and ignore sync_mode.
  • For translations/dubbing, you may supply dubParams with providerName, sourceLang, targetLang, and numSpeakers; the system will extract audio, translate, and re-voice.
  • Results are returned with an id and status; poll with GET /v2/generate/{id} or receive webhook deliveries, verifying the Sync-Signature header; if delivery fails, rely on polling for reconciliation.
  • Batch/localization supports a JSONL file with multiple /v2/generate bodies and unique request_id values, limited by plan.

When to use it

Use when dubbing/localizing a video, re-timing lips to corrected audio, personalizing a base video, or animating a portrait from audio. Use to debug a failed or rejected Sync generation. Do not use to generate a face from scratch or to swap identities; this tool edits an existing face region only.

What it can touch

  • Endpoint: POST https://api.sync.so/v2/generate
  • SDKs: Python (pip install syncsdk) importing Sync, and TypeScript (SyncClient) wrapping generations.create()/generations.get()
  • Webhook delivery with header Sync-Signature: t={timestamp},v1={hmac}
  • Optional assets via Assets API for input items (assetId) rather than direct URLs

Caveats

  • Model choice depends on input: lipsync-2 is default for general cases; sync-3 supports still images and 4K inputs; lipsync-2-pro handles fine details; lip-sync-1.9.0-beta is for low-budget throwaway work; react-1 is for acting and has a 15-second input limit.
  • Active Speaker Detection is a paid-tier feature; occlusion_detection_enabled is automatic on sync-3 and optional on lipsync-2/2-pro.
  • Per-generation duration is plan-bound; input duration and per-generation limits apply (e.g., react-1 <= 15 s, audio up to 300 s, etc.).
  • Output pricing is per second of output at 25 fps; exact rates vary by model and plan.
From the SKILL.md

# Sync Labs lip sync and visual dubbing Sync Labs (product domain `sync.so`, API host `api.sync.so`) is a hosted API and web studio that regenerates a speaker's mouth (and, on newer models, jaw/expression/head) to match a new audio track. It does not generate whole people or scenes: the input is an existing talking-head video (or, on `sync-3`, a single still face), plus target audio (a file, a hos

More from generative-media-skills
All skills →
About this skill
What does the sync-labs-lipsync skill do?

Generate AI lip sync and visual dubbing with Sync Labs (sync.so) — choose the right model (sync-3, lipsync-2, lipsync-2-pro, lipsync-1.9.0-beta, react-1), build the POST /v2/generate request, host inputs, handle async jobs via polling or webhooks, run batch dubbing/localization, and review output for sync accuracy and identity preservation. Use when an agent must re-voice, dub, translate, personalize, or re-time the mouth of a talking-head video (or animate a still face from audio), or must debug a failed/rejected Sync generation. Also covers consent, likeness, and rights obligations for ed

How do I install it?

Run `npx skills add calesthio/generative-media-skills --skill sync-labs-lipsync --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.

Where does this skill come from?

From calesthio/generative-media-skills, a repository with 112 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.

Is a popular skill a good skill?

Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.

Keep going