sonilo-cli 0.14.2__tar.gz → 0.15.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: sonilo-cli
3
- Version: 0.14.2
3
+ Version: 0.15.0
4
4
  Summary: Command-line interface for the Sonilo API: generate music and sound effects from text or video
5
5
  Project-URL: Repository, https://github.com/sonilo-ai/sonilo-python
6
6
  Author: Sonilo AI
@@ -8,7 +8,7 @@ License-Expression: MIT
8
8
  License-File: LICENSE
9
9
  Keywords: ai,cli,music,sfx,sonilo,text-to-music,video-to-music
10
10
  Requires-Python: >=3.9
11
- Requires-Dist: sonilo<0.16,>=0.15.0
11
+ Requires-Dist: sonilo<0.17,>=0.16.0
12
12
  Provides-Extra: dev
13
13
  Requires-Dist: pytest>=8; extra == 'dev'
14
14
  Requires-Dist: respx>=0.21; extra == 'dev'
@@ -289,10 +289,15 @@ command that produces no media file — nothing is generated:
289
289
  # writes dubbed.es.mp4 and dubbed.fr.mp4
290
290
 
291
291
  - `--languages` is comma-separated; omit it to use the server default `zh_cn,es,fr`. Supported
292
- codes: `en, zh_cn, ja, ko, pt, pt_br, es, es_419, de, fr, it, ru, th`
293
- (`pt_br` is Brazilian Portuguese and `es_419` Latin American Spanish; plain
294
- `pt` and `es` stay unqualified).
292
+ codes: `en, zh_cn, ja, ko, pt, pt_br, es, es_419, de, fr, it, ru, th, ar,
293
+ tr, vi, id` (`pt_br` is Brazilian Portuguese and `es_419` Latin American
294
+ Spanish; plain `pt` and `es` stay unqualified, as does `ar`).
295
295
  - Source videos may be at most 300 seconds long.
296
+ - `--no-lipsync` leaves the picture completely untouched. By default the speaker's mouth is
297
+ re-rendered to match the dubbed speech; with this flag the video comes back at its original
298
+ resolution and frame rate and only the audio is replaced, so the mouths keep moving to the
299
+ original language. Use it for footage with no on-camera speaker, or when preserving the exact
300
+ original picture matters more than matching lip movement.
296
301
  - `--output` is a filename template, not a single destination: a dubbing task returns one video
297
302
  per language, so `--output clip.mp4` writes `clip.es.mp4`, `clip.fr.mp4`, etc.
298
303
  - Billing is per language, and dubbing has **no free trial runs** — see [Free trial](#free-trial)
@@ -273,10 +273,15 @@ command that produces no media file — nothing is generated:
273
273
  # writes dubbed.es.mp4 and dubbed.fr.mp4
274
274
 
275
275
  - `--languages` is comma-separated; omit it to use the server default `zh_cn,es,fr`. Supported
276
- codes: `en, zh_cn, ja, ko, pt, pt_br, es, es_419, de, fr, it, ru, th`
277
- (`pt_br` is Brazilian Portuguese and `es_419` Latin American Spanish; plain
278
- `pt` and `es` stay unqualified).
276
+ codes: `en, zh_cn, ja, ko, pt, pt_br, es, es_419, de, fr, it, ru, th, ar,
277
+ tr, vi, id` (`pt_br` is Brazilian Portuguese and `es_419` Latin American
278
+ Spanish; plain `pt` and `es` stay unqualified, as does `ar`).
279
279
  - Source videos may be at most 300 seconds long.
280
+ - `--no-lipsync` leaves the picture completely untouched. By default the speaker's mouth is
281
+ re-rendered to match the dubbed speech; with this flag the video comes back at its original
282
+ resolution and frame rate and only the audio is replaced, so the mouths keep moving to the
283
+ original language. Use it for footage with no on-camera speaker, or when preserving the exact
284
+ original picture matters more than matching lip movement.
280
285
  - `--output` is a filename template, not a single destination: a dubbing task returns one video
281
286
  per language, so `--output clip.mp4` writes `clip.es.mp4`, `clip.fr.mp4`, etc.
282
287
  - Billing is per language, and dubbing has **no free trial runs** — see [Free trial](#free-trial)
@@ -4,13 +4,13 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "sonilo-cli"
7
- version = "0.14.2"
7
+ version = "0.15.0"
8
8
  description = "Command-line interface for the Sonilo API: generate music and sound effects from text or video"
9
9
  readme = "README.md"
10
10
  license = "MIT"
11
11
  requires-python = ">=3.9"
12
12
  authors = [{ name = "Sonilo AI" }]
13
- dependencies = ["sonilo>=0.15.0,<0.16"]
13
+ dependencies = ["sonilo>=0.16.0,<0.17"]
14
14
  keywords = ["sonilo", "cli", "music", "sfx", "text-to-music", "video-to-music", "ai"]
15
15
 
16
16
  [project.urls]
@@ -1,3 +1,3 @@
1
- __version__ = "0.14.2"
1
+ __version__ = "0.14.3"
2
2
 
3
3
  __all__ = ["__version__"]
@@ -635,6 +635,9 @@ def cmd_dubbing(client: Sonilo, args: argparse.Namespace) -> None:
635
635
  video=args.video,
636
636
  video_url=args.video_url,
637
637
  languages=languages,
638
+ # Only sent when the flag is present, so the server keeps owning the
639
+ # default (lip sync on).
640
+ lipsync=False if args.no_lipsync else None,
638
641
  timeout=args.timeout,
639
642
  )
640
643
  if not result.outputs:
@@ -1006,8 +1009,19 @@ def build_parser() -> argparse.ArgumentParser:
1006
1009
  "--languages", default=None,
1007
1010
  help="Comma-separated target languages. Default: zh_cn,es,fr. "
1008
1011
  "Supported: en, zh_cn, ja, ko, pt, pt_br, es, es_419, de, fr, "
1009
- "it, ru, th. pt_br is Brazilian Portuguese and es_419 Latin "
1010
- "American Spanish; plain pt and es stay unqualified.",
1012
+ "it, ru, th, ar, tr, vi, id. pt_br is Brazilian Portuguese and "
1013
+ "es_419 Latin American Spanish; plain pt and es stay "
1014
+ "unqualified, as does ar.",
1015
+ )
1016
+ p_dub.add_argument(
1017
+ "--no-lipsync", dest="no_lipsync", action="store_true",
1018
+ help="Leave the picture completely untouched. By default the speaker's "
1019
+ "mouth is re-rendered to match the dubbed speech; with this the "
1020
+ "video comes back at its original resolution and frame rate and "
1021
+ "only the audio is replaced, so the mouths keep moving to the "
1022
+ "original language. Use it for footage with no on-camera speaker, "
1023
+ "or when preserving the exact original picture matters more than "
1024
+ "matching lip movement.",
1011
1025
  )
1012
1026
  p_dub.add_argument(
1013
1027
  "--output", default=None,
File without changes
File without changes