layer 1.0.76__tar.gz → 1.0.77__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 (30) hide show
  1. {layer-1.0.76 → layer-1.0.77}/PKG-INFO +1 -1
  2. {layer-1.0.76 → layer-1.0.77}/pyproject.toml +1 -1
  3. {layer-1.0.76 → layer-1.0.77}/pyproject.toml.orig +1 -1
  4. {layer-1.0.76 → layer-1.0.77}/src/layer/_api/models.py +113 -0
  5. {layer-1.0.76 → layer-1.0.77}/README.md +0 -0
  6. {layer-1.0.76 → layer-1.0.77}/src/layer/__init__.py +0 -0
  7. {layer-1.0.76 → layer-1.0.77}/src/layer/__main__.py +0 -0
  8. {layer-1.0.76 → layer-1.0.77}/src/layer/_api/__init__.py +0 -0
  9. {layer-1.0.76 → layer-1.0.77}/src/layer/_api/client.py +0 -0
  10. {layer-1.0.76 → layer-1.0.77}/src/layer/_cli/__init__.py +0 -0
  11. {layer-1.0.76 → layer-1.0.77}/src/layer/_cli/auth_commands.py +0 -0
  12. {layer-1.0.76 → layer-1.0.77}/src/layer/_cli/base_model_commands.py +0 -0
  13. {layer-1.0.76 → layer-1.0.77}/src/layer/_cli/context.py +0 -0
  14. {layer-1.0.76 → layer-1.0.77}/src/layer/_cli/context_commands.py +0 -0
  15. {layer-1.0.76 → layer-1.0.77}/src/layer/_cli/generate_commands.py +0 -0
  16. {layer-1.0.76 → layer-1.0.77}/src/layer/_cli/main.py +0 -0
  17. {layer-1.0.76 → layer-1.0.77}/src/layer/_cli/output.py +0 -0
  18. {layer-1.0.76 → layer-1.0.77}/src/layer/auth.py +0 -0
  19. {layer-1.0.76 → layer-1.0.77}/src/layer/catalog.py +0 -0
  20. {layer-1.0.76 → layer-1.0.77}/src/layer/config.py +0 -0
  21. {layer-1.0.76 → layer-1.0.77}/src/layer/credentials.py +0 -0
  22. {layer-1.0.76 → layer-1.0.77}/src/layer/download.py +0 -0
  23. {layer-1.0.76 → layer-1.0.77}/src/layer/exit_codes.py +0 -0
  24. {layer-1.0.76 → layer-1.0.77}/src/layer/generate.py +0 -0
  25. {layer-1.0.76 → layer-1.0.77}/src/layer/oauth.py +0 -0
  26. {layer-1.0.76 → layer-1.0.77}/src/layer/params.py +0 -0
  27. {layer-1.0.76 → layer-1.0.77}/src/layer/sessions.py +0 -0
  28. {layer-1.0.76 → layer-1.0.77}/src/layer/sse.py +0 -0
  29. {layer-1.0.76 → layer-1.0.77}/src/layer/uploads.py +0 -0
  30. {layer-1.0.76 → layer-1.0.77}/src/layer/workspaces.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: layer
3
- Version: 1.0.76
3
+ Version: 1.0.77
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
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "layer"
3
- version = "1.0.76"
3
+ version = "1.0.77"
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.76"
3
+ version = "1.0.77"
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" }]
@@ -489,6 +489,24 @@ class SegmentPartNames(RootModel[list[str]]):
489
489
  )
490
490
 
491
491
 
492
+ class SegmentParts(RootModel[int]):
493
+ root: int = Field(
494
+ ...,
495
+ description="How many parts a CHARACTER split makes. Support varies by model.",
496
+ ge=1,
497
+ title="Segment Parts",
498
+ )
499
+
500
+
501
+ class SegmentStrength(RootModel[int]):
502
+ root: int = Field(
503
+ ...,
504
+ description="How aggressively a mesh split cuts: higher makes more parts. Support varies by model.",
505
+ ge=1,
506
+ title="Segment Strength",
507
+ )
508
+
509
+
492
510
  class FaceLimit(RootModel[int]):
493
511
  root: int = Field(..., description="Face/polygon limit for 3D mesh.", gt=0, title="Face Limit")
494
512
 
@@ -1033,6 +1051,7 @@ class InferenceUseCase(Enum):
1033
1051
  rig = "rig"
1034
1052
  segment = "segment"
1035
1053
  image_segment = "image_segment"
1054
+ image_mask = "image_mask"
1036
1055
  text_to_speech = "text_to_speech"
1037
1056
  sound_effects = "sound_effects"
1038
1057
  music = "music"
@@ -1641,6 +1660,28 @@ class SegmentBy(Enum):
1641
1660
  PARTS = "PARTS"
1642
1661
 
1643
1662
 
1663
+ class SegmentLevel(Enum):
1664
+ """
1665
+ Split granularity for a general-target segmentation (more parts as it
1666
+ rises). Only meaningful when the target is ``GENERAL``.
1667
+ """
1668
+
1669
+ LOW = "LOW"
1670
+ MEDIUM = "MEDIUM"
1671
+ HIGH = "HIGH"
1672
+
1673
+
1674
+ class SegmentTarget(Enum):
1675
+ """
1676
+ What a mesh-segmentation model treats the input as, selecting its split
1677
+ strategy. ``CHARACTER`` splits a humanoid mesh with a body-part template;
1678
+ ``GENERAL`` splits any mesh by granularity level (e.g. Hi3D Parts).
1679
+ """
1680
+
1681
+ CHARACTER = "CHARACTER"
1682
+ GENERAL = "GENERAL"
1683
+
1684
+
1644
1685
  class Kind(Enum):
1645
1686
  """
1646
1687
  Whether the object is a single file or a composite asset.
@@ -4000,6 +4041,24 @@ class EstimateInferencePriceRequest(BaseModel):
4000
4041
  description="Parts to split along when segment_by is PARTS, at most 10.",
4001
4042
  title="Segment Part Names",
4002
4043
  )
4044
+ segment_target: SegmentTarget | None = Field(
4045
+ None,
4046
+ description="What a mesh split treats the mesh as: CHARACTER, split by a body-part template, or GENERAL, split by segment_level. Support varies by model.",
4047
+ )
4048
+ segment_parts: SegmentParts | None = Field(
4049
+ None,
4050
+ description="How many parts a CHARACTER split makes. Support varies by model.",
4051
+ title="Segment Parts",
4052
+ )
4053
+ segment_level: SegmentLevel | None = Field(
4054
+ None,
4055
+ description="How finely a GENERAL split cuts the mesh: LOW, MEDIUM or HIGH. Support varies by model.",
4056
+ )
4057
+ segment_strength: SegmentStrength | None = Field(
4058
+ None,
4059
+ description="How aggressively a mesh split cuts: higher makes more parts. Support varies by model.",
4060
+ title="Segment Strength",
4061
+ )
4003
4062
  quad_mesh: bool | None = Field(None, description="Generate quad mesh.", title="Quad Mesh")
4004
4063
  pbr_materials: bool | None = Field(None, description="Generate PBR materials.", title="Pbr Materials")
4005
4064
  low_poly: bool | None = Field(None, description="Generate low-poly mesh.", title="Low Poly")
@@ -4212,6 +4271,24 @@ class EstimateInferencePriceV2Request(BaseModel):
4212
4271
  description="Parts to split along when segment_by is PARTS, at most 10.",
4213
4272
  title="Segment Part Names",
4214
4273
  )
4274
+ segment_target: SegmentTarget | None = Field(
4275
+ None,
4276
+ description="What a mesh split treats the mesh as: CHARACTER, split by a body-part template, or GENERAL, split by segment_level. Support varies by model.",
4277
+ )
4278
+ segment_parts: SegmentParts | None = Field(
4279
+ None,
4280
+ description="How many parts a CHARACTER split makes. Support varies by model.",
4281
+ title="Segment Parts",
4282
+ )
4283
+ segment_level: SegmentLevel | None = Field(
4284
+ None,
4285
+ description="How finely a GENERAL split cuts the mesh: LOW, MEDIUM or HIGH. Support varies by model.",
4286
+ )
4287
+ segment_strength: SegmentStrength | None = Field(
4288
+ None,
4289
+ description="How aggressively a mesh split cuts: higher makes more parts. Support varies by model.",
4290
+ title="Segment Strength",
4291
+ )
4215
4292
  quad_mesh: bool | None = Field(None, description="Generate quad mesh.", title="Quad Mesh")
4216
4293
  pbr_materials: bool | None = Field(None, description="Generate PBR materials.", title="Pbr Materials")
4217
4294
  low_poly: bool | None = Field(None, description="Generate low-poly mesh.", title="Low Poly")
@@ -4592,6 +4669,24 @@ class ExecuteInferenceRequest(BaseModel):
4592
4669
  description="Parts to split along when segment_by is PARTS, at most 10.",
4593
4670
  title="Segment Part Names",
4594
4671
  )
4672
+ segment_target: SegmentTarget | None = Field(
4673
+ None,
4674
+ description="What a mesh split treats the mesh as: CHARACTER, split by a body-part template, or GENERAL, split by segment_level. Support varies by model.",
4675
+ )
4676
+ segment_parts: SegmentParts | None = Field(
4677
+ None,
4678
+ description="How many parts a CHARACTER split makes. Support varies by model.",
4679
+ title="Segment Parts",
4680
+ )
4681
+ segment_level: SegmentLevel | None = Field(
4682
+ None,
4683
+ description="How finely a GENERAL split cuts the mesh: LOW, MEDIUM or HIGH. Support varies by model.",
4684
+ )
4685
+ segment_strength: SegmentStrength | None = Field(
4686
+ None,
4687
+ description="How aggressively a mesh split cuts: higher makes more parts. Support varies by model.",
4688
+ title="Segment Strength",
4689
+ )
4595
4690
  quad_mesh: bool | None = Field(None, description="Generate quad mesh.", title="Quad Mesh")
4596
4691
  pbr_materials: bool | None = Field(None, description="Generate PBR materials.", title="Pbr Materials")
4597
4692
  low_poly: bool | None = Field(None, description="Generate low-poly mesh.", title="Low Poly")
@@ -4803,6 +4898,24 @@ class ExecuteInferenceV2Request(BaseModel):
4803
4898
  description="Parts to split along when segment_by is PARTS, at most 10.",
4804
4899
  title="Segment Part Names",
4805
4900
  )
4901
+ segment_target: SegmentTarget | None = Field(
4902
+ None,
4903
+ description="What a mesh split treats the mesh as: CHARACTER, split by a body-part template, or GENERAL, split by segment_level. Support varies by model.",
4904
+ )
4905
+ segment_parts: SegmentParts | None = Field(
4906
+ None,
4907
+ description="How many parts a CHARACTER split makes. Support varies by model.",
4908
+ title="Segment Parts",
4909
+ )
4910
+ segment_level: SegmentLevel | None = Field(
4911
+ None,
4912
+ description="How finely a GENERAL split cuts the mesh: LOW, MEDIUM or HIGH. Support varies by model.",
4913
+ )
4914
+ segment_strength: SegmentStrength | None = Field(
4915
+ None,
4916
+ description="How aggressively a mesh split cuts: higher makes more parts. Support varies by model.",
4917
+ title="Segment Strength",
4918
+ )
4806
4919
  quad_mesh: bool | None = Field(None, description="Generate quad mesh.", title="Quad Mesh")
4807
4920
  pbr_materials: bool | None = Field(None, description="Generate PBR materials.", title="Pbr Materials")
4808
4921
  low_poly: bool | None = Field(None, description="Generate low-poly mesh.", title="Low Poly")
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