layer 1.0.45__tar.gz → 1.0.50__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.
- {layer-1.0.45 → layer-1.0.50}/PKG-INFO +1 -1
- {layer-1.0.45 → layer-1.0.50}/pyproject.toml +1 -1
- {layer-1.0.45 → layer-1.0.50}/pyproject.toml.orig +1 -1
- {layer-1.0.45 → layer-1.0.50}/src/layer/_api/models.py +74 -0
- {layer-1.0.45 → layer-1.0.50}/README.md +0 -0
- {layer-1.0.45 → layer-1.0.50}/src/layer/__init__.py +0 -0
- {layer-1.0.45 → layer-1.0.50}/src/layer/__main__.py +0 -0
- {layer-1.0.45 → layer-1.0.50}/src/layer/_api/__init__.py +0 -0
- {layer-1.0.45 → layer-1.0.50}/src/layer/_api/client.py +0 -0
- {layer-1.0.45 → layer-1.0.50}/src/layer/_cli/__init__.py +0 -0
- {layer-1.0.45 → layer-1.0.50}/src/layer/_cli/auth_commands.py +0 -0
- {layer-1.0.45 → layer-1.0.50}/src/layer/_cli/base_model_commands.py +0 -0
- {layer-1.0.45 → layer-1.0.50}/src/layer/_cli/context.py +0 -0
- {layer-1.0.45 → layer-1.0.50}/src/layer/_cli/context_commands.py +0 -0
- {layer-1.0.45 → layer-1.0.50}/src/layer/_cli/generate_commands.py +0 -0
- {layer-1.0.45 → layer-1.0.50}/src/layer/_cli/main.py +0 -0
- {layer-1.0.45 → layer-1.0.50}/src/layer/_cli/output.py +0 -0
- {layer-1.0.45 → layer-1.0.50}/src/layer/auth.py +0 -0
- {layer-1.0.45 → layer-1.0.50}/src/layer/catalog.py +0 -0
- {layer-1.0.45 → layer-1.0.50}/src/layer/config.py +0 -0
- {layer-1.0.45 → layer-1.0.50}/src/layer/credentials.py +0 -0
- {layer-1.0.45 → layer-1.0.50}/src/layer/download.py +0 -0
- {layer-1.0.45 → layer-1.0.50}/src/layer/exit_codes.py +0 -0
- {layer-1.0.45 → layer-1.0.50}/src/layer/generate.py +0 -0
- {layer-1.0.45 → layer-1.0.50}/src/layer/oauth.py +0 -0
- {layer-1.0.45 → layer-1.0.50}/src/layer/params.py +0 -0
- {layer-1.0.45 → layer-1.0.50}/src/layer/sessions.py +0 -0
- {layer-1.0.45 → layer-1.0.50}/src/layer/sse.py +0 -0
- {layer-1.0.45 → layer-1.0.50}/src/layer/uploads.py +0 -0
- {layer-1.0.45 → layer-1.0.50}/src/layer/workspaces.py +0 -0
|
@@ -52,6 +52,15 @@ class AudioEditSection(BaseModel):
|
|
|
52
52
|
anchor: AudioAnchor | None = "START"
|
|
53
53
|
|
|
54
54
|
|
|
55
|
+
class AudioExtension(BaseModel):
|
|
56
|
+
"""
|
|
57
|
+
Outpaint: how much audio to add before/after the source clip.
|
|
58
|
+
"""
|
|
59
|
+
|
|
60
|
+
before_seconds: float | None = Field(0.0, ge=0.0, title="Before Seconds")
|
|
61
|
+
after_seconds: float | None = Field(0.0, ge=0.0, title="After Seconds")
|
|
62
|
+
|
|
63
|
+
|
|
55
64
|
class AudioOutputFormat(Enum):
|
|
56
65
|
"""
|
|
57
66
|
Container for a delivered audio file.
|
|
@@ -80,6 +89,23 @@ class BlueprintRunStatus(Enum):
|
|
|
80
89
|
cancelled = "cancelled"
|
|
81
90
|
|
|
82
91
|
|
|
92
|
+
class BodyExchangeToken(BaseModel):
|
|
93
|
+
grant_type: str = Field(..., description="Must be `client_credentials`.", title="Grant Type")
|
|
94
|
+
client_id: str | None = Field(None, description="The service account's id.", title="Client Id")
|
|
95
|
+
client_secret: str | None = Field(None, description="One of the service account's keys.", title="Client Secret")
|
|
96
|
+
scope: str | None = Field(
|
|
97
|
+
None,
|
|
98
|
+
description="Space-delimited scopes to narrow the token to.",
|
|
99
|
+
title="Scope",
|
|
100
|
+
)
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
class BodyRevokeToken(BaseModel):
|
|
104
|
+
token: str = Field(..., description="The service account key to revoke.", title="Token")
|
|
105
|
+
client_id: str | None = Field(None, description="The service account's id.", title="Client Id")
|
|
106
|
+
client_secret: str | None = Field(None, description="One of the service account's keys.", title="Client Secret")
|
|
107
|
+
|
|
108
|
+
|
|
83
109
|
class CameraRotationDelta(BaseModel):
|
|
84
110
|
pitch_delta: float | None = Field(None, title="Pitch Delta")
|
|
85
111
|
yaw_delta: float | None = Field(None, title="Yaw Delta")
|
|
@@ -852,6 +878,7 @@ class InferenceUseCase(Enum):
|
|
|
852
878
|
denoise_video = "denoise_video"
|
|
853
879
|
denoise_audio = "denoise_audio"
|
|
854
880
|
audio_separation = "audio_separation"
|
|
881
|
+
audio_isolation = "audio_isolation"
|
|
855
882
|
deblur_video = "deblur_video"
|
|
856
883
|
restore_image = "restore_image"
|
|
857
884
|
sdr_to_hdr_video = "sdr_to_hdr_video"
|
|
@@ -865,6 +892,7 @@ class InferenceUseCase(Enum):
|
|
|
865
892
|
erase_object = "erase_object"
|
|
866
893
|
edit_text = "edit_text"
|
|
867
894
|
dub_video = "dub_video"
|
|
895
|
+
extend_audio = "extend_audio"
|
|
868
896
|
generate_pbr_materials = "generate_pbr_materials"
|
|
869
897
|
complete_draft = "complete_draft"
|
|
870
898
|
|
|
@@ -900,6 +928,11 @@ class ModelCapabilitiesREST(BaseModel):
|
|
|
900
928
|
)
|
|
901
929
|
text_prompt: bool | None = Field(False, title="Text Prompt")
|
|
902
930
|
text_prompt_required: bool | None = Field(False, title="Text Prompt Required")
|
|
931
|
+
max_prompt_chars: int | None = Field(
|
|
932
|
+
None,
|
|
933
|
+
description="Longest prompt, in characters, the model accepts; null when unbounded.",
|
|
934
|
+
title="Max Prompt Chars",
|
|
935
|
+
)
|
|
903
936
|
negative_prompt: bool | None = Field(False, title="Negative Prompt")
|
|
904
937
|
seed: bool | None = Field(False, title="Seed")
|
|
905
938
|
inpainting: bool | None = Field(False, title="Inpainting")
|
|
@@ -1214,6 +1247,8 @@ class Role(Enum):
|
|
|
1214
1247
|
art_director = "art_director"
|
|
1215
1248
|
artist = "artist"
|
|
1216
1249
|
member = "member"
|
|
1250
|
+
installation = "installation"
|
|
1251
|
+
provisioning = "provisioning"
|
|
1217
1252
|
|
|
1218
1253
|
|
|
1219
1254
|
class RotateWebhookSecretResponse(BaseModel):
|
|
@@ -1406,6 +1441,17 @@ class TargetRegion(Enum):
|
|
|
1406
1441
|
background = "background"
|
|
1407
1442
|
|
|
1408
1443
|
|
|
1444
|
+
class TokenResponse(BaseModel):
|
|
1445
|
+
access_token: str = Field(
|
|
1446
|
+
...,
|
|
1447
|
+
description="A signed JWT access token (RFC 9068), sent as `Authorization: Bearer <token>`. Treat it as opaque.",
|
|
1448
|
+
title="Access Token",
|
|
1449
|
+
)
|
|
1450
|
+
token_type: str = Field(..., description="Always `Bearer`.", title="Token Type")
|
|
1451
|
+
expires_in: int = Field(..., description="Seconds until the token expires.", title="Expires In")
|
|
1452
|
+
scope: str = Field(..., description="The space-delimited scopes the token carries.", title="Scope")
|
|
1453
|
+
|
|
1454
|
+
|
|
1409
1455
|
class ToolGuidanceFileTypeSupport(BaseModel):
|
|
1410
1456
|
type: str = Field(
|
|
1411
1457
|
...,
|
|
@@ -1931,6 +1977,11 @@ class BaseModelCapabilitiesREST(BaseModel):
|
|
|
1931
1977
|
)
|
|
1932
1978
|
text_prompt: bool | None = Field(False, title="Text Prompt")
|
|
1933
1979
|
text_prompt_required: bool | None = Field(False, title="Text Prompt Required")
|
|
1980
|
+
max_prompt_chars: int | None = Field(
|
|
1981
|
+
None,
|
|
1982
|
+
description="Longest prompt, in characters, the model accepts; null when unbounded.",
|
|
1983
|
+
title="Max Prompt Chars",
|
|
1984
|
+
)
|
|
1934
1985
|
negative_prompt: bool | None = Field(False, title="Negative Prompt")
|
|
1935
1986
|
seed: bool | None = Field(False, title="Seed")
|
|
1936
1987
|
inpainting: bool | None = Field(False, title="Inpainting")
|
|
@@ -3220,6 +3271,17 @@ class EstimateInferencePriceRequest(BaseModel):
|
|
|
3220
3271
|
)
|
|
3221
3272
|
reframe: bool | None = Field(None, description="Reframe/extend the image.", title="Reframe")
|
|
3222
3273
|
refill: bool | None = Field(None, description="Outpaint/refill transparent areas.", title="Refill")
|
|
3274
|
+
guidance_files: list[ForgeGuidanceFileInput] | None = Field(
|
|
3275
|
+
[],
|
|
3276
|
+
description="The guidance files the execute call will pass. An upscale or a per-megapixel background removal is priced by its source file's size, and on some models an input image bills the edit rate.",
|
|
3277
|
+
max_length=20,
|
|
3278
|
+
title="Guidance Files",
|
|
3279
|
+
validate_default=True,
|
|
3280
|
+
)
|
|
3281
|
+
mask: ForgeMaskInput | None = Field(
|
|
3282
|
+
None,
|
|
3283
|
+
description="The mask the execute call will pass. Some models bill a masked edit at a different rate.",
|
|
3284
|
+
)
|
|
3223
3285
|
|
|
3224
3286
|
|
|
3225
3287
|
class EstimateInferencePriceV2Request(BaseModel):
|
|
@@ -3536,6 +3598,10 @@ class EstimateInferencePriceV2Request(BaseModel):
|
|
|
3536
3598
|
title="Audio Sections",
|
|
3537
3599
|
validate_default=True,
|
|
3538
3600
|
)
|
|
3601
|
+
audio_extension: AudioExtension | None = Field(
|
|
3602
|
+
None,
|
|
3603
|
+
description="Extend the init audio: `after_seconds` of new audio past its end (and, where the model allows it, `before_seconds` ahead of its start). Honored by the audio models listed for the `extend_audio` use case.",
|
|
3604
|
+
)
|
|
3539
3605
|
video_section: VideoSection | None = Field(
|
|
3540
3606
|
None,
|
|
3541
3607
|
description="Replace a span of the init video with a generated scene: the source cuts at `start_seconds` and picks up again at `end_seconds`, both from the clip's start, while `duration_seconds` sets the new scene's length. Required by the video models listed for the `insert_video` use case.",
|
|
@@ -3547,6 +3613,10 @@ class EstimateInferencePriceV2Request(BaseModel):
|
|
|
3547
3613
|
title="Guidance Files",
|
|
3548
3614
|
validate_default=True,
|
|
3549
3615
|
)
|
|
3616
|
+
mask: ForgeMaskInput | None = Field(
|
|
3617
|
+
None,
|
|
3618
|
+
description="The mask the execute call will pass. Some models bill a masked edit at a different rate.",
|
|
3619
|
+
)
|
|
3550
3620
|
|
|
3551
3621
|
|
|
3552
3622
|
class ExecuteInferenceRequest(BaseModel):
|
|
@@ -3995,6 +4065,10 @@ class ExecuteInferenceV2Request(BaseModel):
|
|
|
3995
4065
|
title="Audio Sections",
|
|
3996
4066
|
validate_default=True,
|
|
3997
4067
|
)
|
|
4068
|
+
audio_extension: AudioExtension | None = Field(
|
|
4069
|
+
None,
|
|
4070
|
+
description="Extend the init audio: `after_seconds` of new audio past its end (and, where the model allows it, `before_seconds` ahead of its start). Honored by the audio models listed for the `extend_audio` use case.",
|
|
4071
|
+
)
|
|
3998
4072
|
video_section: VideoSection | None = Field(
|
|
3999
4073
|
None,
|
|
4000
4074
|
description="Replace a span of the init video with a generated scene: the source cuts at `start_seconds` and picks up again at `end_seconds`, both from the clip's start, while `duration_seconds` sets the new scene's length. Required by the video models listed for the `insert_video` use case.",
|
|
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
|
|
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
|