Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ jobs:
lint:
timeout-minutes: 10
name: lint
runs-on: ${{ github.repository == 'stainless-sdks/fashn-sdk-python' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }}
runs-on: ${{ startsWith(github.repository, 'stainless-sdks/') && 'depot-ubuntu-24.04' || 'ubuntu-latest' }}
if: (github.event_name == 'push' || github.event.pull_request.head.repo.fork) && (github.event_name != 'push' || github.event.head_commit.message != 'codegen metadata')
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
Expand All @@ -44,7 +44,7 @@ jobs:
permissions:
contents: read
id-token: write
runs-on: ${{ github.repository == 'stainless-sdks/fashn-sdk-python' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }}
runs-on: ${{ startsWith(github.repository, 'stainless-sdks/') && 'depot-ubuntu-24.04' || 'ubuntu-latest' }}
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

Expand Down Expand Up @@ -84,7 +84,7 @@ jobs:
test:
timeout-minutes: 10
name: test
runs-on: ${{ github.repository == 'stainless-sdks/fashn-sdk-python' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }}
runs-on: ${{ startsWith(github.repository, 'stainless-sdks/') && 'depot-ubuntu-24.04' || 'ubuntu-latest' }}
if: github.event_name == 'push' || github.event.pull_request.head.repo.fork
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
Expand Down
2 changes: 1 addition & 1 deletion .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
".": "0.9.0"
".": "0.10.0"
}
4 changes: 2 additions & 2 deletions .stats.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
configured_endpoints: 2
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/fashn/fashn-sdk-c1e5a54d159efed8e9803ae5c34a94bad33a8c14a3fcef7331868db4d724ffc4.yml
openapi_spec_hash: 58c9627440e1c4a21f879fcb900e3bdc
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/fashn/fashn-sdk-aedd41933d696c06374956143054b21acedb50236c3ad96fa3511a0cf5a976f3.yml
openapi_spec_hash: 2a49c10c228a8167f27552e402bb1fca
config_hash: 6f35cc512a77534117eeac956e613816
11 changes: 11 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,16 @@
# Changelog

## 0.10.0 (2026-07-18)

Full Changelog: [v0.9.0...v0.10.0](https://github.com/fashn-AI/fashn-python-sdk/compare/v0.9.0...v0.10.0)

### Features

* **api:** api update ([01ba803](https://github.com/fashn-AI/fashn-python-sdk/commit/01ba80315eb57c11e8831783ac03e6326f62b0e7))
* **api:** api update ([5c5614c](https://github.com/fashn-AI/fashn-python-sdk/commit/5c5614cf8eab98ce8b572f4753dd0400e730f96a))
* **api:** api update ([52a5de5](https://github.com/fashn-AI/fashn-python-sdk/commit/52a5de54429b304c1ec61a921b9bb02619fa30ec))
* **stlc:** configurable CI runner and private-production-repo support in workflow templates ([5ad607a](https://github.com/fashn-AI/fashn-python-sdk/commit/5ad607a25e6e577d566e04b73e9d63a277cff43e))

## 0.9.0 (2026-05-25)

Full Changelog: [v0.8.0...v0.9.0](https://github.com/fashn-AI/fashn-python-sdk/compare/v0.8.0...v0.9.0)
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "fashn"
version = "0.9.0"
version = "0.10.0"
description = "The official Python library for the fashn API"
dynamic = ["readme"]
license = "Apache-2.0"
Expand Down
2 changes: 1 addition & 1 deletion src/fashn/_version.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.

__title__ = "fashn"
__version__ = "0.9.0" # x-release-please-version
__version__ = "0.10.0" # x-release-please-version
61 changes: 25 additions & 36 deletions src/fashn/types/prediction_run_params.py
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ class TryOnMaxRequestInputs(TypedDict, total=False):
aspect_ratio: Literal["21:9", "1:1", "4:3", "3:2", "2:3", "5:4", "4:5", "3:4", "16:9", "9:16"]
"""Optional aspect ratio for the output image."""

generation_mode: Literal["balanced", "quality"]
generation_mode: Literal["fast", "balanced", "quality"]
"""Sets the generation quality level.

'quality' produces the most detailed and realistic output but takes longer to
Expand Down Expand Up @@ -108,10 +108,9 @@ class TryOnMaxRequestInputs(TypedDict, total=False):
"""

seed: int
"""Sets random operations to a fixed state.
"""Controls generation randomness on a best-effort basis.

Use the same seed to reproduce results with the same inputs, or different seed
to force different results.
Exact reproducibility is not guaranteed.
"""


Expand Down Expand Up @@ -210,10 +209,9 @@ class TryOnRequestInputs(TypedDict, total=False):
"""

seed: int
"""Sets random operations to a fixed state.
"""Controls generation randomness on a best-effort basis.

Use the same seed to reproduce results with the same inputs, or different seed
to force different results.
Exact reproducibility is not guaranteed.
"""

segmentation_free: bool
Expand Down Expand Up @@ -314,10 +312,9 @@ class ProductToModelRequestInputs(TypedDict, total=False):
"""

seed: int
"""Seed for reproducible results.
"""Controls generation randomness on a best-effort basis.

Use the same seed to reproduce results with the same inputs, or different seed
to force different results. Must be between 0 and 2^32-1.
Must be between 0 and 2^32-1; exact reproducibility is not guaranteed.
"""


Expand Down Expand Up @@ -402,10 +399,9 @@ class FaceToModelRequestInputs(TypedDict, total=False):
"""

seed: int
"""Sets random operations to a fixed state.
"""Controls generation randomness on a best-effort basis.

Use the same seed to reproduce results with the same inputs, or different seed
to force different results.
Exact reproducibility is not guaranteed.
"""


Expand Down Expand Up @@ -519,10 +515,9 @@ class ModelCreateRequestInputs(TypedDict, total=False):
"""

seed: int
"""Sets random operations to a fixed state.
"""Controls generation randomness on a best-effort basis.

Use the same seed to reproduce results with the same inputs, or different seed
to force different results.
Exact reproducibility is not guaranteed.
"""


Expand Down Expand Up @@ -611,10 +606,9 @@ class ModelSwapRequestInputs(TypedDict, total=False):
"""

seed: int
"""Sets random operations to a fixed state.
"""Controls generation randomness on a best-effort basis.

Use the same seed to reproduce results with the same inputs, or different seed
to force different results.
Exact reproducibility is not guaranteed.
"""


Expand Down Expand Up @@ -705,10 +699,9 @@ class ReframeRequestInputs(TypedDict, total=False):
"""

seed: int
"""Sets random operations to a fixed state.
"""Controls generation randomness on a best-effort basis.

Use the same seed to reproduce results with the same inputs, or different seed
to force different results.
Exact reproducibility is not guaranteed.
"""


Expand Down Expand Up @@ -771,10 +764,9 @@ class BackgroundChangeRequestInputs(TypedDict, total=False):
"""

seed: int
"""Sets random operations to a fixed state.
"""Controls generation randomness on a best-effort basis.

Use the same seed to reproduce results with the same inputs, or different seed
to force different results.
Exact reproducibility is not guaranteed.
"""


Expand Down Expand Up @@ -837,7 +829,7 @@ class ImageToVideoRequestInputs(TypedDict, total=False):
When provided, the video smoothly transitions from the `image` (start frame) to
`end_image` (end frame) over the clip duration.

Only supported with `resolution: "1080p"`.
Supported with `resolution: "480p"`, `"720p"`, and `"1080p"`.

Base64 images must include the proper prefix (e.g.,
`data:image/jpg;base64,<YOUR_BASE64>`).
Expand All @@ -856,13 +848,12 @@ class ImageToVideoRequestInputs(TypedDict, total=False):
"""

resolution: Literal["480p", "720p", "1080p"]
"""Target video resolution used by the internal video engine."""
"""Target video resolution used by the video engine."""

seed: int
"""Sets random operations to a fixed state.
"""Controls generation randomness on a best-effort basis.

Use the same seed to reproduce results with the same inputs, or different seed
to force different results.
Exact reproducibility is not guaranteed.
"""


Expand Down Expand Up @@ -955,10 +946,9 @@ class EditRequestInputs(TypedDict, total=False):
"""

seed: int
"""Sets random operations to a fixed state.
"""Controls generation randomness on a best-effort basis.

Use the same seed to reproduce results with the same inputs, or different seed
to force different results.
Exact reproducibility is not guaranteed.
"""


Expand Down Expand Up @@ -1043,10 +1033,9 @@ class PackshotRequestInputs(TypedDict, total=False):
"""

seed: int
"""Sets random operations to a fixed state.
"""Controls generation randomness on a best-effort basis.

Use the same seed to reproduce results with the same inputs, or different seed
to force different results.
Exact reproducibility is not guaranteed.
"""


Expand Down
4 changes: 2 additions & 2 deletions tests/api_resources/test_predictions.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ def test_method_run_with_all_params_overload_1(self, client: Fashn) -> None:
"model_image": "https://example.com/model.jpg",
"product_image": "https://example.com/garment.jpg",
"aspect_ratio": "21:9",
"generation_mode": "balanced",
"generation_mode": "fast",
"num_images": 1,
"output_format": "png",
"prompt": "prompt",
Expand Down Expand Up @@ -813,7 +813,7 @@ async def test_method_run_with_all_params_overload_1(self, async_client: AsyncFa
"model_image": "https://example.com/model.jpg",
"product_image": "https://example.com/garment.jpg",
"aspect_ratio": "21:9",
"generation_mode": "balanced",
"generation_mode": "fast",
"num_images": 1,
"output_format": "png",
"prompt": "prompt",
Expand Down