layer 1.0.42__tar.gz → 1.0.45__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.42 → layer-1.0.45}/PKG-INFO +1 -1
  2. {layer-1.0.42 → layer-1.0.45}/pyproject.toml +1 -1
  3. {layer-1.0.42 → layer-1.0.45}/pyproject.toml.orig +1 -1
  4. {layer-1.0.42 → layer-1.0.45}/src/layer/_api/models.py +206 -0
  5. {layer-1.0.42 → layer-1.0.45}/README.md +0 -0
  6. {layer-1.0.42 → layer-1.0.45}/src/layer/__init__.py +0 -0
  7. {layer-1.0.42 → layer-1.0.45}/src/layer/__main__.py +0 -0
  8. {layer-1.0.42 → layer-1.0.45}/src/layer/_api/__init__.py +0 -0
  9. {layer-1.0.42 → layer-1.0.45}/src/layer/_api/client.py +0 -0
  10. {layer-1.0.42 → layer-1.0.45}/src/layer/_cli/__init__.py +0 -0
  11. {layer-1.0.42 → layer-1.0.45}/src/layer/_cli/auth_commands.py +0 -0
  12. {layer-1.0.42 → layer-1.0.45}/src/layer/_cli/base_model_commands.py +0 -0
  13. {layer-1.0.42 → layer-1.0.45}/src/layer/_cli/context.py +0 -0
  14. {layer-1.0.42 → layer-1.0.45}/src/layer/_cli/context_commands.py +0 -0
  15. {layer-1.0.42 → layer-1.0.45}/src/layer/_cli/generate_commands.py +0 -0
  16. {layer-1.0.42 → layer-1.0.45}/src/layer/_cli/main.py +0 -0
  17. {layer-1.0.42 → layer-1.0.45}/src/layer/_cli/output.py +0 -0
  18. {layer-1.0.42 → layer-1.0.45}/src/layer/auth.py +0 -0
  19. {layer-1.0.42 → layer-1.0.45}/src/layer/catalog.py +0 -0
  20. {layer-1.0.42 → layer-1.0.45}/src/layer/config.py +0 -0
  21. {layer-1.0.42 → layer-1.0.45}/src/layer/credentials.py +0 -0
  22. {layer-1.0.42 → layer-1.0.45}/src/layer/download.py +0 -0
  23. {layer-1.0.42 → layer-1.0.45}/src/layer/exit_codes.py +0 -0
  24. {layer-1.0.42 → layer-1.0.45}/src/layer/generate.py +0 -0
  25. {layer-1.0.42 → layer-1.0.45}/src/layer/oauth.py +0 -0
  26. {layer-1.0.42 → layer-1.0.45}/src/layer/params.py +0 -0
  27. {layer-1.0.42 → layer-1.0.45}/src/layer/sessions.py +0 -0
  28. {layer-1.0.42 → layer-1.0.45}/src/layer/sse.py +0 -0
  29. {layer-1.0.42 → layer-1.0.45}/src/layer/uploads.py +0 -0
  30. {layer-1.0.42 → layer-1.0.45}/src/layer/workspaces.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: layer
3
- Version: 1.0.42
3
+ Version: 1.0.45
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.42"
3
+ version = "1.0.45"
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.42"
3
+ version = "1.0.45"
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" }]
@@ -402,6 +402,86 @@ class PromptStrength1(RootModel[float]):
402
402
  )
403
403
 
404
404
 
405
+ class VectorizationFilterSpeckle(RootModel[int]):
406
+ root: int = Field(
407
+ ...,
408
+ description="Drop specks smaller than this many pixels. Honored by the models whose capabilities report `vectorization_controls`.",
409
+ ge=0,
410
+ le=20,
411
+ title="Vectorization Filter Speckle",
412
+ )
413
+
414
+
415
+ class VectorizationColorPrecision(RootModel[int]):
416
+ root: int = Field(
417
+ ...,
418
+ description="Color quantization level; lower merges more colors. Honored by the models whose capabilities report `vectorization_controls`.",
419
+ ge=1,
420
+ le=10,
421
+ title="Vectorization Color Precision",
422
+ )
423
+
424
+
425
+ class VectorizationLayerDifference(RootModel[int]):
426
+ root: int = Field(
427
+ ...,
428
+ description="Color difference that splits gradient layers. Honored by the models whose capabilities report `vectorization_controls`.",
429
+ ge=1,
430
+ le=32,
431
+ title="Vectorization Layer Difference",
432
+ )
433
+
434
+
435
+ class VectorizationCornerThreshold(RootModel[int]):
436
+ root: int = Field(
437
+ ...,
438
+ description="Minimum angle, in degrees, kept as a sharp corner (spline mode). Honored by the models whose capabilities report `vectorization_controls`.",
439
+ ge=0,
440
+ le=180,
441
+ title="Vectorization Corner Threshold",
442
+ )
443
+
444
+
445
+ class VectorizationLengthThreshold(RootModel[float]):
446
+ root: float = Field(
447
+ ...,
448
+ description="Longest curve segment before it is subdivided (spline mode). Honored by the models whose capabilities report `vectorization_controls`.",
449
+ ge=0.0,
450
+ le=10.0,
451
+ title="Vectorization Length Threshold",
452
+ )
453
+
454
+
455
+ class VectorizationSpliceThreshold(RootModel[int]):
456
+ root: int = Field(
457
+ ...,
458
+ description="Angle, in degrees, at which a curve is split (spline mode). Honored by the models whose capabilities report `vectorization_controls`.",
459
+ ge=0,
460
+ le=90,
461
+ title="Vectorization Splice Threshold",
462
+ )
463
+
464
+
465
+ class VectorizationMaxIterations(RootModel[int]):
466
+ root: int = Field(
467
+ ...,
468
+ description="Curve-fitting passes. Honored by the models whose capabilities report `vectorization_controls`.",
469
+ ge=1,
470
+ le=20,
471
+ title="Vectorization Max Iterations",
472
+ )
473
+
474
+
475
+ class VectorizationPathPrecision(RootModel[int]):
476
+ root: int = Field(
477
+ ...,
478
+ description="Decimal places kept in SVG path coordinates. Honored by the models whose capabilities report `vectorization_controls`.",
479
+ ge=1,
480
+ le=10,
481
+ title="Vectorization Path Precision",
482
+ )
483
+
484
+
405
485
  class CameraTrajectory(RootModel[list[CameraTrajectoryKeyframe]]):
406
486
  root: list[CameraTrajectoryKeyframe] = Field(
407
487
  ...,
@@ -778,6 +858,13 @@ class InferenceUseCase(Enum):
778
858
  background_removal = "background_removal"
779
859
  vectorization = "vectorization"
780
860
  virtual_try_on = "virtual_try_on"
861
+ restyle = "restyle"
862
+ pixelate = "pixelate"
863
+ colorize = "colorize"
864
+ change_expression = "change_expression"
865
+ erase_object = "erase_object"
866
+ edit_text = "edit_text"
867
+ dub_video = "dub_video"
781
868
  generate_pbr_materials = "generate_pbr_materials"
782
869
  complete_draft = "complete_draft"
783
870
 
@@ -1464,6 +1551,21 @@ class ValidationError(BaseModel):
1464
1551
  ctx: dict[str, Any] | None = Field(None, title="Context")
1465
1552
 
1466
1553
 
1554
+ class VectorizationColorMode(Enum):
1555
+ color = "color"
1556
+ binary = "binary"
1557
+
1558
+
1559
+ class VectorizationLayering(Enum):
1560
+ stacked = "stacked"
1561
+ cutout = "cutout"
1562
+
1563
+
1564
+ class VectorizationMode(Enum):
1565
+ spline = "spline"
1566
+ polygon = "polygon"
1567
+
1568
+
1467
1569
  class VideoEffectType(Enum):
1468
1570
  general = "general"
1469
1571
  orbit_360 = "orbit_360"
@@ -3341,6 +3443,58 @@ class EstimateInferencePriceV2Request(BaseModel):
3341
3443
  title="Color Preservation",
3342
3444
  )
3343
3445
  vectorize: bool | None = Field(None, description="Vectorize the output image.", title="Vectorize")
3446
+ vectorization_mode: VectorizationMode | None = Field(
3447
+ None,
3448
+ description="SVG path mode: `spline` (curves) or `polygon` (straight lines). Honored by the models whose capabilities report `vectorization_controls`.",
3449
+ )
3450
+ vectorization_color_mode: VectorizationColorMode | None = Field(
3451
+ None,
3452
+ description="SVG color output: `color` or `binary` (black and white). Honored by the models whose capabilities report `vectorization_controls`.",
3453
+ )
3454
+ vectorization_layering: VectorizationLayering | None = Field(
3455
+ None,
3456
+ description="SVG shape layering in color output: `stacked` (shapes overlap) or `cutout` (no overlap). Honored by the models whose capabilities report `vectorization_controls`.",
3457
+ )
3458
+ vectorization_filter_speckle: VectorizationFilterSpeckle | None = Field(
3459
+ None,
3460
+ description="Drop specks smaller than this many pixels. Honored by the models whose capabilities report `vectorization_controls`.",
3461
+ title="Vectorization Filter Speckle",
3462
+ )
3463
+ vectorization_color_precision: VectorizationColorPrecision | None = Field(
3464
+ None,
3465
+ description="Color quantization level; lower merges more colors. Honored by the models whose capabilities report `vectorization_controls`.",
3466
+ title="Vectorization Color Precision",
3467
+ )
3468
+ vectorization_layer_difference: VectorizationLayerDifference | None = Field(
3469
+ None,
3470
+ description="Color difference that splits gradient layers. Honored by the models whose capabilities report `vectorization_controls`.",
3471
+ title="Vectorization Layer Difference",
3472
+ )
3473
+ vectorization_corner_threshold: VectorizationCornerThreshold | None = Field(
3474
+ None,
3475
+ description="Minimum angle, in degrees, kept as a sharp corner (spline mode). Honored by the models whose capabilities report `vectorization_controls`.",
3476
+ title="Vectorization Corner Threshold",
3477
+ )
3478
+ vectorization_length_threshold: VectorizationLengthThreshold | None = Field(
3479
+ None,
3480
+ description="Longest curve segment before it is subdivided (spline mode). Honored by the models whose capabilities report `vectorization_controls`.",
3481
+ title="Vectorization Length Threshold",
3482
+ )
3483
+ vectorization_splice_threshold: VectorizationSpliceThreshold | None = Field(
3484
+ None,
3485
+ description="Angle, in degrees, at which a curve is split (spline mode). Honored by the models whose capabilities report `vectorization_controls`.",
3486
+ title="Vectorization Splice Threshold",
3487
+ )
3488
+ vectorization_max_iterations: VectorizationMaxIterations | None = Field(
3489
+ None,
3490
+ description="Curve-fitting passes. Honored by the models whose capabilities report `vectorization_controls`.",
3491
+ title="Vectorization Max Iterations",
3492
+ )
3493
+ vectorization_path_precision: VectorizationPathPrecision | None = Field(
3494
+ None,
3495
+ description="Decimal places kept in SVG path coordinates. Honored by the models whose capabilities report `vectorization_controls`.",
3496
+ title="Vectorization Path Precision",
3497
+ )
3344
3498
  transparency: bool | None = Field(
3345
3499
  None,
3346
3500
  description="Put the output on a transparent background. Also accepted as `remove_background`.",
@@ -3748,6 +3902,58 @@ class ExecuteInferenceV2Request(BaseModel):
3748
3902
  title="Color Preservation",
3749
3903
  )
3750
3904
  vectorize: bool | None = Field(None, description="Vectorize the output image.", title="Vectorize")
3905
+ vectorization_mode: VectorizationMode | None = Field(
3906
+ None,
3907
+ description="SVG path mode: `spline` (curves) or `polygon` (straight lines). Honored by the models whose capabilities report `vectorization_controls`.",
3908
+ )
3909
+ vectorization_color_mode: VectorizationColorMode | None = Field(
3910
+ None,
3911
+ description="SVG color output: `color` or `binary` (black and white). Honored by the models whose capabilities report `vectorization_controls`.",
3912
+ )
3913
+ vectorization_layering: VectorizationLayering | None = Field(
3914
+ None,
3915
+ description="SVG shape layering in color output: `stacked` (shapes overlap) or `cutout` (no overlap). Honored by the models whose capabilities report `vectorization_controls`.",
3916
+ )
3917
+ vectorization_filter_speckle: VectorizationFilterSpeckle | None = Field(
3918
+ None,
3919
+ description="Drop specks smaller than this many pixels. Honored by the models whose capabilities report `vectorization_controls`.",
3920
+ title="Vectorization Filter Speckle",
3921
+ )
3922
+ vectorization_color_precision: VectorizationColorPrecision | None = Field(
3923
+ None,
3924
+ description="Color quantization level; lower merges more colors. Honored by the models whose capabilities report `vectorization_controls`.",
3925
+ title="Vectorization Color Precision",
3926
+ )
3927
+ vectorization_layer_difference: VectorizationLayerDifference | None = Field(
3928
+ None,
3929
+ description="Color difference that splits gradient layers. Honored by the models whose capabilities report `vectorization_controls`.",
3930
+ title="Vectorization Layer Difference",
3931
+ )
3932
+ vectorization_corner_threshold: VectorizationCornerThreshold | None = Field(
3933
+ None,
3934
+ description="Minimum angle, in degrees, kept as a sharp corner (spline mode). Honored by the models whose capabilities report `vectorization_controls`.",
3935
+ title="Vectorization Corner Threshold",
3936
+ )
3937
+ vectorization_length_threshold: VectorizationLengthThreshold | None = Field(
3938
+ None,
3939
+ description="Longest curve segment before it is subdivided (spline mode). Honored by the models whose capabilities report `vectorization_controls`.",
3940
+ title="Vectorization Length Threshold",
3941
+ )
3942
+ vectorization_splice_threshold: VectorizationSpliceThreshold | None = Field(
3943
+ None,
3944
+ description="Angle, in degrees, at which a curve is split (spline mode). Honored by the models whose capabilities report `vectorization_controls`.",
3945
+ title="Vectorization Splice Threshold",
3946
+ )
3947
+ vectorization_max_iterations: VectorizationMaxIterations | None = Field(
3948
+ None,
3949
+ description="Curve-fitting passes. Honored by the models whose capabilities report `vectorization_controls`.",
3950
+ title="Vectorization Max Iterations",
3951
+ )
3952
+ vectorization_path_precision: VectorizationPathPrecision | None = Field(
3953
+ None,
3954
+ description="Decimal places kept in SVG path coordinates. Honored by the models whose capabilities report `vectorization_controls`.",
3955
+ title="Vectorization Path Precision",
3956
+ )
3751
3957
  transparency: bool | None = Field(
3752
3958
  None,
3753
3959
  description="Put the output on a transparent background. Also accepted as `remove_background`.",
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