layer 1.0.2__tar.gz → 1.0.5__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.
Files changed (27) hide show
  1. {layer-1.0.2 → layer-1.0.5}/PKG-INFO +3 -3
  2. {layer-1.0.2 → layer-1.0.5}/README.md +2 -2
  3. {layer-1.0.2 → layer-1.0.5}/pyproject.toml +1 -1
  4. {layer-1.0.2 → layer-1.0.5}/pyproject.toml.orig +1 -1
  5. {layer-1.0.2 → layer-1.0.5}/src/layer/_api/models.py +92 -0
  6. {layer-1.0.2 → layer-1.0.5}/src/layer/__init__.py +0 -0
  7. {layer-1.0.2 → layer-1.0.5}/src/layer/__main__.py +0 -0
  8. {layer-1.0.2 → layer-1.0.5}/src/layer/_api/__init__.py +0 -0
  9. {layer-1.0.2 → layer-1.0.5}/src/layer/_api/client.py +0 -0
  10. {layer-1.0.2 → layer-1.0.5}/src/layer/_cli/__init__.py +0 -0
  11. {layer-1.0.2 → layer-1.0.5}/src/layer/_cli/auth_commands.py +0 -0
  12. {layer-1.0.2 → layer-1.0.5}/src/layer/_cli/base_model_commands.py +0 -0
  13. {layer-1.0.2 → layer-1.0.5}/src/layer/_cli/context.py +0 -0
  14. {layer-1.0.2 → layer-1.0.5}/src/layer/_cli/context_commands.py +0 -0
  15. {layer-1.0.2 → layer-1.0.5}/src/layer/_cli/generate_commands.py +0 -0
  16. {layer-1.0.2 → layer-1.0.5}/src/layer/_cli/main.py +0 -0
  17. {layer-1.0.2 → layer-1.0.5}/src/layer/_cli/output.py +0 -0
  18. {layer-1.0.2 → layer-1.0.5}/src/layer/_cli/workspaces.py +0 -0
  19. {layer-1.0.2 → layer-1.0.5}/src/layer/auth.py +0 -0
  20. {layer-1.0.2 → layer-1.0.5}/src/layer/catalog.py +0 -0
  21. {layer-1.0.2 → layer-1.0.5}/src/layer/config.py +0 -0
  22. {layer-1.0.2 → layer-1.0.5}/src/layer/credentials.py +0 -0
  23. {layer-1.0.2 → layer-1.0.5}/src/layer/download.py +0 -0
  24. {layer-1.0.2 → layer-1.0.5}/src/layer/exit_codes.py +0 -0
  25. {layer-1.0.2 → layer-1.0.5}/src/layer/generate.py +0 -0
  26. {layer-1.0.2 → layer-1.0.5}/src/layer/oauth.py +0 -0
  27. {layer-1.0.2 → layer-1.0.5}/src/layer/params.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: layer
3
- Version: 1.0.2
3
+ Version: 1.0.5
4
4
  Summary: Command-line interface for Layer — AI asset generation for game studios.
5
5
  Keywords: layer,ai,generative,game-development,cli
6
6
  Author: Layer
@@ -50,7 +50,7 @@ task -d apps/cli-py install-cli
50
50
  layer login # opens a browser
51
51
  layer login --device # for SSH sessions and containers
52
52
  layer whoami
53
- layer use zynga-solitaire
53
+ layer use my-studio
54
54
  ```
55
55
 
56
56
  For CI and other unattended runs, set `LAYER_API_KEY` to a personal access token instead
@@ -70,7 +70,7 @@ Committing a `layer.toml` pins a checkout to its workspace, so two repos open in
70
70
  terminals cannot generate into each other's:
71
71
 
72
72
  ```toml
73
- workspace = "zynga-solitaire"
73
+ workspace = "my-studio"
74
74
  project = "season-12-art"
75
75
  ```
76
76
 
@@ -24,7 +24,7 @@ task -d apps/cli-py install-cli
24
24
  layer login # opens a browser
25
25
  layer login --device # for SSH sessions and containers
26
26
  layer whoami
27
- layer use zynga-solitaire
27
+ layer use my-studio
28
28
  ```
29
29
 
30
30
  For CI and other unattended runs, set `LAYER_API_KEY` to a personal access token instead
@@ -44,7 +44,7 @@ Committing a `layer.toml` pins a checkout to its workspace, so two repos open in
44
44
  terminals cannot generate into each other's:
45
45
 
46
46
  ```toml
47
- workspace = "zynga-solitaire"
47
+ workspace = "my-studio"
48
48
  project = "season-12-art"
49
49
  ```
50
50
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "layer"
3
- version = "1.0.2"
3
+ version = "1.0.5"
4
4
  description = "Command-line interface for Layer — AI asset generation for game studios."
5
5
  readme = "README.md"
6
6
  license = "Apache-2.0"
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "layer"
3
- version = "1.0.2"
3
+ version = "1.0.5"
4
4
  description = "Command-line interface for Layer — AI asset generation for game studios."
5
5
  readme = "README.md"
6
6
  authors = [{ name = "Layer", email = "info@layer.ai" }]
@@ -1495,6 +1495,38 @@ class BaseModelCapabilitiesREST(BaseModel):
1495
1495
  generate_parts: bool | None = Field(False, title="Generate Parts")
1496
1496
  text_to_speech: bool | None = Field(False, title="Text To Speech")
1497
1497
  sound_effect: bool | None = Field(False, title="Sound Effect")
1498
+ music: bool | None = Field(
1499
+ False,
1500
+ description="Composes music. Distinguishes a music model from a sound-effect model, which the modality and the duration range alone do not.",
1501
+ title="Music",
1502
+ )
1503
+ lyrics: bool | None = Field(
1504
+ False,
1505
+ description="Takes sung words in a dedicated lyrics input, separate from the text prompt. This describes the input shape, not whether the model can sing: some families read lyrics written into the prompt instead, so a false value is not a reason to rule a model out for a song.",
1506
+ title="Lyrics",
1507
+ )
1508
+ auto_duration: bool | None = Field(
1509
+ False,
1510
+ description="The model sets the output length itself, from the text or the input file. It has no duration control, so duration_seconds is ignored: do not promise a requested length.",
1511
+ title="Auto Duration",
1512
+ )
1513
+ instrumental: bool | None = Field(
1514
+ False,
1515
+ description="Takes a flag that guarantees no vocals. On other music models, asking for an instrumental in the prompt is only a suggestion.",
1516
+ title="Instrumental",
1517
+ )
1518
+ loop: bool | None = Field(
1519
+ False,
1520
+ description="Composes the clip to repeat with no audible seam when the `loop` parameter is set.",
1521
+ title="Loop",
1522
+ )
1523
+ audio_inpaint: bool | None = Field(False, title="Audio Inpaint")
1524
+ audio_outpaint: bool | None = Field(False, title="Audio Outpaint")
1525
+ voice_reference_set_required: bool | None = Field(
1526
+ False,
1527
+ description="Speaks only in a trained voice, so a generation needs a reference set holding one. Without it the provider falls back to its own default voice.",
1528
+ title="Voice Reference Set Required",
1529
+ )
1498
1530
  camera_transform: bool | None = Field(False, title="Camera Transform")
1499
1531
  voice_changer: bool | None = Field(False, title="Voice Changer")
1500
1532
  audio_isolation: bool | None = Field(False, title="Audio Isolation")
@@ -2179,6 +2211,21 @@ class EstimateInferencePriceRequest(BaseModel):
2179
2211
  )
2180
2212
  generate_audio: bool | None = Field(None, description="Generate audio with video.", title="Generate Audio")
2181
2213
  keep_audio: bool | None = Field(None, description="Keep audio from input video.", title="Keep Audio")
2214
+ instrumental: bool | None = Field(
2215
+ None,
2216
+ description="Guarantee a track with no vocals, on models whose capabilities report instrumental. Asking for one in the prompt is only a suggestion.",
2217
+ title="Instrumental",
2218
+ )
2219
+ loop: bool | None = Field(
2220
+ None,
2221
+ description="Compose the clip to repeat with no audible seam, on models whose capabilities report loop.",
2222
+ title="Loop",
2223
+ )
2224
+ lyrics: str | None = Field(
2225
+ None,
2226
+ description="Words to be sung, for models whose capabilities report lyrics. A separate input from the prompt, which describes the music itself.",
2227
+ title="Lyrics",
2228
+ )
2182
2229
  fps: Fps | None = Field(None, description="FPS for LTX video generation (e.g. 25 or 50).", title="Fps")
2183
2230
  video_effects: list[ForgeVideoEffectInput] | None = Field(
2184
2231
  [], description="Video effects to apply.", title="Video Effects"
@@ -2287,6 +2334,21 @@ class EstimateInferencePriceV2Request(BaseModel):
2287
2334
  )
2288
2335
  generate_audio: bool | None = Field(None, description="Generate audio with video.", title="Generate Audio")
2289
2336
  keep_audio: bool | None = Field(None, description="Keep audio from input video.", title="Keep Audio")
2337
+ instrumental: bool | None = Field(
2338
+ None,
2339
+ description="Guarantee a track with no vocals, on models whose capabilities report instrumental. Asking for one in the prompt is only a suggestion.",
2340
+ title="Instrumental",
2341
+ )
2342
+ loop: bool | None = Field(
2343
+ None,
2344
+ description="Compose the clip to repeat with no audible seam, on models whose capabilities report loop.",
2345
+ title="Loop",
2346
+ )
2347
+ lyrics: str | None = Field(
2348
+ None,
2349
+ description="Words to be sung, for models whose capabilities report lyrics. A separate input from the prompt, which describes the music itself.",
2350
+ title="Lyrics",
2351
+ )
2290
2352
  fps: Fps | None = Field(None, description="FPS for LTX video generation (e.g. 25 or 50).", title="Fps")
2291
2353
  video_effects: list[ForgeVideoEffectInput] | None = Field(
2292
2354
  [], description="Video effects to apply.", title="Video Effects"
@@ -2389,6 +2451,21 @@ class ExecuteInferenceRequest(BaseModel):
2389
2451
  )
2390
2452
  generate_audio: bool | None = Field(None, description="Generate audio with video.", title="Generate Audio")
2391
2453
  keep_audio: bool | None = Field(None, description="Keep audio from input video.", title="Keep Audio")
2454
+ instrumental: bool | None = Field(
2455
+ None,
2456
+ description="Guarantee a track with no vocals, on models whose capabilities report instrumental. Asking for one in the prompt is only a suggestion.",
2457
+ title="Instrumental",
2458
+ )
2459
+ loop: bool | None = Field(
2460
+ None,
2461
+ description="Compose the clip to repeat with no audible seam, on models whose capabilities report loop.",
2462
+ title="Loop",
2463
+ )
2464
+ lyrics: str | None = Field(
2465
+ None,
2466
+ description="Words to be sung, for models whose capabilities report lyrics. A separate input from the prompt, which describes the music itself.",
2467
+ title="Lyrics",
2468
+ )
2392
2469
  fps: Fps | None = Field(None, description="FPS for LTX video generation (e.g. 25 or 50).", title="Fps")
2393
2470
  video_effects: list[ForgeVideoEffectInput] | None = Field(
2394
2471
  [], description="Video effects to apply.", title="Video Effects"
@@ -2506,6 +2583,21 @@ class ExecuteInferenceV2Request(BaseModel):
2506
2583
  )
2507
2584
  generate_audio: bool | None = Field(None, description="Generate audio with video.", title="Generate Audio")
2508
2585
  keep_audio: bool | None = Field(None, description="Keep audio from input video.", title="Keep Audio")
2586
+ instrumental: bool | None = Field(
2587
+ None,
2588
+ description="Guarantee a track with no vocals, on models whose capabilities report instrumental. Asking for one in the prompt is only a suggestion.",
2589
+ title="Instrumental",
2590
+ )
2591
+ loop: bool | None = Field(
2592
+ None,
2593
+ description="Compose the clip to repeat with no audible seam, on models whose capabilities report loop.",
2594
+ title="Loop",
2595
+ )
2596
+ lyrics: str | None = Field(
2597
+ None,
2598
+ description="Words to be sung, for models whose capabilities report lyrics. A separate input from the prompt, which describes the music itself.",
2599
+ title="Lyrics",
2600
+ )
2509
2601
  fps: Fps | None = Field(None, description="FPS for LTX video generation (e.g. 25 or 50).", title="Fps")
2510
2602
  video_effects: list[ForgeVideoEffectInput] | None = Field(
2511
2603
  [], description="Video effects to apply.", title="Video Effects"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes