Skip to content

Dubbing: add lipsync, defaulting to on - #37

Merged
steven-panxd merged 1 commit into
mainfrom
feat/dubbing-lipsync
Sep 5, 2026
Merged

steven-panxd merged 1 commit into
mainfrom
feat/dubbing-lipsync

Conversation

@steven-panxd

Copy link
Copy Markdown
Member

lipsync=False (--no-lipsync on the CLI) asks the backend to translate the
audio without re-rendering the speaker's mouth. The video comes back at its
original resolution and frame rate rather than re-rendered, and only the audio
is replaced — so the mouths keep moving to the original language.

Backend side: sonilo-ai/sonilo-api-dashboard#329, which in turn needs
sonilo-ai/sonilo-dubbing-pipeline#26 deployed first. Until then the parameter
is accepted and has no effect, so this is safe to merge but not worth
releasing ahead of them.

Omitted from the form body when unset, like every other optional field here,
so the server keeps owning the default and this package does not need
republishing if that default ever moves.

The CLI gets the negative flag only. Unlike --ducking, which is default-off
server-side and so only useful in the positive direction, lipsync is
default-on and the only direction worth spelling is turning it off.

Threaded through both submit() and generate() on Dubbing and
AsyncDubbing. Tests cover all three states at the form-body level; 290 SDK
tests and 154 CLI tests pass.

🤖 Generated with Claude Code

https://claude.ai/code/session_014Y2tCTSPesvLbw3hcnQ5ct

@lightsage-app

lightsage-app Bot commented Sep 4, 2026 •

Copy link
Copy Markdown

Lightsage docs evals

Waiting for the staging docs URL before running evals.

Lightsage will start the selected PR evals automatically when GitHub reports a successful docs deployment for this PR. This usually happens within 15 minutes.

Commit: 115842b
Status: waiting for staging docs URL

`lipsync=False` (`--no-lipsync` on the CLI) asks the backend to translate the
audio without re-rendering the speaker's mouth. The video comes back at its
original resolution and frame rate rather than re-rendered, and only the audio
is replaced — so the mouths keep moving to the original language.

Omitted from the form body when unset, like every other optional field here,
so the server keeps owning the default and this package does not need
republishing if that default ever moves.

The CLI gets the negative flag only. Unlike `--ducking`, which is default-off
server-side and so only useful in the positive direction, lipsync is
default-on and the only direction worth spelling is turning it off.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Y2tCTSPesvLbw3hcnQ5ct
@steven-panxd
steven-panxd merged commit 9670ff4 into main Sep 5, 2026
2 checks passed
steven-panxd added a commit that referenced this pull request Sep 5, 2026
Both packages gained the dubbing `lipsync` parameter in #37, so both get a
minor bump.

_version.py moves with pyproject.toml, which the guard added in #39 now
enforces: `__version__` ships as the x-sonilo-client-version header, so a
release that bumped only pyproject would have every client on 0.16.0
identifying itself as 0.15.4.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Y2tCTSPesvLbw3hcnQ5ct
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant