From 52a5de54429b304c1ec61a921b9bb02619fa30ec Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 25 Jun 2026 16:15:56 +0000 Subject: [PATCH 1/5] feat(api): api update --- .stats.yml | 4 ++-- src/fashn/types/prediction_run_params.py | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.stats.yml b/.stats.yml index 96ebb52..44d9601 100644 --- a/.stats.yml +++ b/.stats.yml @@ -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-1177e5901870828c85c2c9605df5bf65992bc33771034c93ad88c749f7b82c0e.yml +openapi_spec_hash: 53667b163b707e3f0850a18600803332 config_hash: 6f35cc512a77534117eeac956e613816 diff --git a/src/fashn/types/prediction_run_params.py b/src/fashn/types/prediction_run_params.py index ac0bb6a..db06db4 100644 --- a/src/fashn/types/prediction_run_params.py +++ b/src/fashn/types/prediction_run_params.py @@ -837,7 +837,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,`). @@ -856,7 +856,7 @@ 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. From 5c5614cf8eab98ce8b572f4753dd0400e730f96a Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 2 Jul 2026 12:15:40 +0000 Subject: [PATCH 2/5] feat(api): api update --- .stats.yml | 4 ++-- src/fashn/types/prediction_run_params.py | 2 +- tests/api_resources/test_predictions.py | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.stats.yml b/.stats.yml index 44d9601..210816b 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 2 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/fashn/fashn-sdk-1177e5901870828c85c2c9605df5bf65992bc33771034c93ad88c749f7b82c0e.yml -openapi_spec_hash: 53667b163b707e3f0850a18600803332 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/fashn/fashn-sdk-31ba83f717aebba5e08862170d90af61e58b70be2540f8feda71886e49bb5a7d.yml +openapi_spec_hash: 5630d9cc11a497268128b3a6eb361812 config_hash: 6f35cc512a77534117eeac956e613816 diff --git a/src/fashn/types/prediction_run_params.py b/src/fashn/types/prediction_run_params.py index db06db4..46a1711 100644 --- a/src/fashn/types/prediction_run_params.py +++ b/src/fashn/types/prediction_run_params.py @@ -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 diff --git a/tests/api_resources/test_predictions.py b/tests/api_resources/test_predictions.py index 80ad6d7..219e5bf 100644 --- a/tests/api_resources/test_predictions.py +++ b/tests/api_resources/test_predictions.py @@ -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", @@ -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", From 01ba80315eb57c11e8831783ac03e6326f62b0e7 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 10 Jul 2026 18:15:48 +0000 Subject: [PATCH 3/5] feat(api): api update --- .stats.yml | 4 +- src/fashn/types/prediction_run_params.py | 55 ++++++++++-------------- 2 files changed, 24 insertions(+), 35 deletions(-) diff --git a/.stats.yml b/.stats.yml index 210816b..c3313e5 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 2 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/fashn/fashn-sdk-31ba83f717aebba5e08862170d90af61e58b70be2540f8feda71886e49bb5a7d.yml -openapi_spec_hash: 5630d9cc11a497268128b3a6eb361812 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/fashn/fashn-sdk-aedd41933d696c06374956143054b21acedb50236c3ad96fa3511a0cf5a976f3.yml +openapi_spec_hash: 2a49c10c228a8167f27552e402bb1fca config_hash: 6f35cc512a77534117eeac956e613816 diff --git a/src/fashn/types/prediction_run_params.py b/src/fashn/types/prediction_run_params.py index 46a1711..6d886eb 100644 --- a/src/fashn/types/prediction_run_params.py +++ b/src/fashn/types/prediction_run_params.py @@ -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. """ @@ -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 @@ -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. """ @@ -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. """ @@ -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. """ @@ -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. """ @@ -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. """ @@ -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. """ @@ -859,10 +851,9 @@ class ImageToVideoRequestInputs(TypedDict, total=False): """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. """ @@ -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. """ @@ -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. """ From 5ad607a25e6e577d566e04b73e9d63a277cff43e Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 18 Jul 2026 02:04:44 +0000 Subject: [PATCH 4/5] feat(stlc): configurable CI runner and private-production-repo support in workflow templates --- .github/workflows/ci.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 88ef801..9627a68 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -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 @@ -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 @@ -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 From c9bacb18acf5dc9b94d67cde9dff9b70d6ff5929 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 18 Jul 2026 02:05:07 +0000 Subject: [PATCH 5/5] release: 0.10.0 --- .release-please-manifest.json | 2 +- CHANGELOG.md | 11 +++++++++++ pyproject.toml | 2 +- src/fashn/_version.py | 2 +- 4 files changed, 14 insertions(+), 3 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 6d78745..091cfb1 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.9.0" + ".": "0.10.0" } \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 9a5cb3b..9666170 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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) diff --git a/pyproject.toml b/pyproject.toml index 44560ff..1b9ed33 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -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" diff --git a/src/fashn/_version.py b/src/fashn/_version.py index 5be31ce..7579609 100644 --- a/src/fashn/_version.py +++ b/src/fashn/_version.py @@ -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