diff --git a/.release-please-manifest.json b/.release-please-manifest.json index b29b3b6..4101074 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "5.2.0" + ".": "5.3.0" } \ No newline at end of file diff --git a/.stats.yml b/.stats.yml index 2ac9ca5..9fff147 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 49 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/runwayml/runwayml-ae784dbc3407e86a6458d2848f2e9720eea6b3c534c3bbe101b614e3eb547dac.yml -openapi_spec_hash: e84013ce9a3d7c14175ba3050cbb5bc1 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/runwayml/runwayml-a71b15907f45c6c7b3cf9a277bfc7483817c1596130abd497e95b761bb14bd42.yml +openapi_spec_hash: dd22cae2258805fbe0b4ddf9632f9ffb config_hash: 702846e1d30f519e56e425ca5455febe diff --git a/CHANGELOG.md b/CHANGELOG.md index 4889d3a..e1447cf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## 5.3.0 (2026-06-25) + +Full Changelog: [v5.2.0...v5.3.0](https://github.com/runwayml/sdk-python/compare/v5.2.0...v5.3.0) + +### Features + +* **api:** document product_ad 2026-07 ([e1e5eeb](https://github.com/runwayml/sdk-python/commit/e1e5eeb6245f58b3709e2e40e105ecec2c6913ae)) + ## 5.2.0 (2026-06-17) Full Changelog: [v5.1.0...v5.2.0](https://github.com/runwayml/sdk-python/compare/v5.1.0...v5.2.0) diff --git a/pyproject.toml b/pyproject.toml index 6e7c386..493d691 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "runwayml" -version = "5.2.0" +version = "5.3.0" description = "The official Python library for the runwayml API" dynamic = ["readme"] license = "Apache-2.0" diff --git a/src/runwayml/_version.py b/src/runwayml/_version.py index dfda955..9caaa23 100644 --- a/src/runwayml/_version.py +++ b/src/runwayml/_version.py @@ -1,4 +1,4 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. __title__ = "runwayml" -__version__ = "5.2.0" # x-release-please-version +__version__ = "5.3.0" # x-release-please-version diff --git a/src/runwayml/resources/image_to_video.py b/src/runwayml/resources/image_to_video.py index 695b11d..fed95b6 100644 --- a/src/runwayml/resources/image_to_video.py +++ b/src/runwayml/resources/image_to_video.py @@ -302,6 +302,12 @@ def create( "1440:1440", "1248:1664", "1080:1920", + "3840:1646", + "3840:2160", + "3840:2880", + "3840:3840", + "2880:3840", + "2160:3840", ] | Omit = omit, reference_audio: Iterable[image_to_video_create_params.Seedance2ReferenceAudio] | Omit = omit, @@ -489,6 +495,12 @@ def create( "1440:1440", "1248:1664", "1080:1920", + "3840:1646", + "3840:2160", + "3840:2880", + "3840:3840", + "2880:3840", + "2160:3840", ] | Literal[ "992:432", @@ -817,6 +829,12 @@ async def create( "1440:1440", "1248:1664", "1080:1920", + "3840:1646", + "3840:2160", + "3840:2880", + "3840:3840", + "2880:3840", + "2160:3840", ] | Omit = omit, reference_audio: Iterable[image_to_video_create_params.Seedance2ReferenceAudio] | Omit = omit, @@ -1004,6 +1022,12 @@ async def create( "1440:1440", "1248:1664", "1080:1920", + "3840:1646", + "3840:2160", + "3840:2880", + "3840:3840", + "2880:3840", + "2160:3840", ] | Literal[ "992:432", diff --git a/src/runwayml/resources/recipes.py b/src/runwayml/resources/recipes.py index 2fbb794..31adbc5 100644 --- a/src/runwayml/resources/recipes.py +++ b/src/runwayml/resources/recipes.py @@ -263,7 +263,7 @@ def product_ad( self, *, product_images: Iterable[recipe_product_ad_params.ProductImage], - version: Literal["2026-06", "unsafe-latest"], + version: Literal["2026-06", "2026-07", "unsafe-latest"], audio: bool | Omit = omit, duration: int | Omit = omit, product_info: str | Omit = omit, @@ -290,7 +290,7 @@ def product_ad( primary product reference in the storyboard grid. See [our docs](/assets/inputs#images) on image inputs. - version: Workflow version. Use a dated version (e.g. "2026-06") to pin behavior, or + version: Workflow version. Use a dated version (e.g. "2026-07") to pin behavior, or "unsafe-latest" to track the newest stable version (may break without notice). audio: Whether to generate audio for the video. @@ -754,7 +754,7 @@ async def product_ad( self, *, product_images: Iterable[recipe_product_ad_params.ProductImage], - version: Literal["2026-06", "unsafe-latest"], + version: Literal["2026-06", "2026-07", "unsafe-latest"], audio: bool | Omit = omit, duration: int | Omit = omit, product_info: str | Omit = omit, @@ -781,7 +781,7 @@ async def product_ad( primary product reference in the storyboard grid. See [our docs](/assets/inputs#images) on image inputs. - version: Workflow version. Use a dated version (e.g. "2026-06") to pin behavior, or + version: Workflow version. Use a dated version (e.g. "2026-07") to pin behavior, or "unsafe-latest" to track the newest stable version (may break without notice). audio: Whether to generate audio for the video. diff --git a/src/runwayml/resources/text_to_image.py b/src/runwayml/resources/text_to_image.py index 8b82bfc..b1f5673 100644 --- a/src/runwayml/resources/text_to_image.py +++ b/src/runwayml/resources/text_to_image.py @@ -307,8 +307,7 @@ def create( This endpoint will start a new task to generate images from text and/or image(s) Args: - prompt_text: A non-empty string up to 5,500 characters (measured in UTF-16 code units). This - should describe in detail what should appear in the output. + prompt_text: This should describe in detail what should appear in the output. ratio: The resolution of the output image. @@ -409,8 +408,7 @@ def create( This endpoint will start a new task to generate images from text and/or image(s) Args: - prompt_text: A non-empty string up to 1000 characters (measured in UTF-16 code units). This - should describe in detail what should appear in the output. + prompt_text: This should describe in detail what should appear in the output. ratio: The resolution of the output image. @@ -464,8 +462,7 @@ def create( This endpoint will start a new task to generate images from text and/or image(s) Args: - prompt_text: A non-empty string up to 1000 characters (measured in UTF-16 code units). This - should describe in detail what should appear in the output. + prompt_text: This should describe in detail what should appear in the output. ratio: The resolution of the output image. @@ -967,8 +964,7 @@ async def create( This endpoint will start a new task to generate images from text and/or image(s) Args: - prompt_text: A non-empty string up to 5,500 characters (measured in UTF-16 code units). This - should describe in detail what should appear in the output. + prompt_text: This should describe in detail what should appear in the output. ratio: The resolution of the output image. @@ -1069,8 +1065,7 @@ async def create( This endpoint will start a new task to generate images from text and/or image(s) Args: - prompt_text: A non-empty string up to 1000 characters (measured in UTF-16 code units). This - should describe in detail what should appear in the output. + prompt_text: This should describe in detail what should appear in the output. ratio: The resolution of the output image. @@ -1124,8 +1119,7 @@ async def create( This endpoint will start a new task to generate images from text and/or image(s) Args: - prompt_text: A non-empty string up to 1000 characters (measured in UTF-16 code units). This - should describe in detail what should appear in the output. + prompt_text: This should describe in detail what should appear in the output. ratio: The resolution of the output image. diff --git a/src/runwayml/resources/text_to_video.py b/src/runwayml/resources/text_to_video.py index 5f0e4df..a3be537 100644 --- a/src/runwayml/resources/text_to_video.py +++ b/src/runwayml/resources/text_to_video.py @@ -250,6 +250,12 @@ def create( "1440:1440", "1248:1664", "1080:1920", + "3840:1646", + "3840:2160", + "3840:2880", + "3840:3840", + "2880:3840", + "2160:3840", ] | Omit = omit, reference_audio: Iterable[text_to_video_create_params.Seedance2ReferenceAudio] | Omit = omit, @@ -446,6 +452,12 @@ def create( "1440:1440", "1248:1664", "1080:1920", + "3840:1646", + "3840:2160", + "3840:2880", + "3840:3840", + "2880:3840", + "2160:3840", ] | Literal[ "992:432", @@ -725,6 +737,12 @@ async def create( "1440:1440", "1248:1664", "1080:1920", + "3840:1646", + "3840:2160", + "3840:2880", + "3840:3840", + "2880:3840", + "2160:3840", ] | Omit = omit, reference_audio: Iterable[text_to_video_create_params.Seedance2ReferenceAudio] | Omit = omit, @@ -921,6 +939,12 @@ async def create( "1440:1440", "1248:1664", "1080:1920", + "3840:1646", + "3840:2160", + "3840:2880", + "3840:3840", + "2880:3840", + "2160:3840", ] | Literal[ "992:432", diff --git a/src/runwayml/resources/video_to_video.py b/src/runwayml/resources/video_to_video.py index ac68f45..e30a2e6 100644 --- a/src/runwayml/resources/video_to_video.py +++ b/src/runwayml/resources/video_to_video.py @@ -130,6 +130,12 @@ def create( "1440:1440", "1248:1664", "1080:1920", + "3840:1646", + "3840:2160", + "3840:2880", + "3840:3840", + "2880:3840", + "2160:3840", ] | Omit = omit, reference_audio: Iterable[video_to_video_create_params.Seedance2ReferenceAudio] | Omit = omit, @@ -276,6 +282,12 @@ def create( "1440:1440", "1248:1664", "1080:1920", + "3840:1646", + "3840:2160", + "3840:2880", + "3840:3840", + "2880:3840", + "2160:3840", ] | Literal[ "992:432", @@ -441,6 +453,12 @@ async def create( "1440:1440", "1248:1664", "1080:1920", + "3840:1646", + "3840:2160", + "3840:2880", + "3840:3840", + "2880:3840", + "2160:3840", ] | Omit = omit, reference_audio: Iterable[video_to_video_create_params.Seedance2ReferenceAudio] | Omit = omit, @@ -587,6 +605,12 @@ async def create( "1440:1440", "1248:1664", "1080:1920", + "3840:1646", + "3840:2160", + "3840:2880", + "3840:3840", + "2880:3840", + "2160:3840", ] | Literal[ "992:432", diff --git a/src/runwayml/types/image_to_video_create_params.py b/src/runwayml/types/image_to_video_create_params.py index 35e3da8..9fb609a 100644 --- a/src/runwayml/types/image_to_video_create_params.py +++ b/src/runwayml/types/image_to_video_create_params.py @@ -296,6 +296,12 @@ class Seedance2(TypedDict, total=False): "1440:1440", "1248:1664", "1080:1920", + "3840:1646", + "3840:2160", + "3840:2880", + "3840:3840", + "2880:3840", + "2160:3840", ] """The resolution of the output video.""" diff --git a/src/runwayml/types/recipe_product_ad_params.py b/src/runwayml/types/recipe_product_ad_params.py index 3b72e39..08aa0ba 100644 --- a/src/runwayml/types/recipe_product_ad_params.py +++ b/src/runwayml/types/recipe_product_ad_params.py @@ -20,10 +20,10 @@ class RecipeProductAdParams(TypedDict, total=False): inputs. """ - version: Required[Literal["2026-06", "unsafe-latest"]] + version: Required[Literal["2026-06", "2026-07", "unsafe-latest"]] """Workflow version. - Use a dated version (e.g. "2026-06") to pin behavior, or "unsafe-latest" to + Use a dated version (e.g. "2026-07") to pin behavior, or "unsafe-latest" to track the newest stable version (may break without notice). """ diff --git a/src/runwayml/types/text_to_image_create_params.py b/src/runwayml/types/text_to_image_create_params.py index 2d9d9b9..28f629a 100644 --- a/src/runwayml/types/text_to_image_create_params.py +++ b/src/runwayml/types/text_to_image_create_params.py @@ -251,10 +251,7 @@ class GeminiImage3Pro(TypedDict, total=False): model: Required[Literal["gemini_image3_pro"]] prompt_text: Required[Annotated[str, PropertyInfo(alias="promptText")]] - """A non-empty string up to 5,500 characters (measured in UTF-16 code units). - - This should describe in detail what should appear in the output. - """ + """This should describe in detail what should appear in the output.""" ratio: Required[ Literal[ @@ -330,10 +327,7 @@ class GeminiImage3_1Flash(TypedDict, total=False): model: Required[Literal["gemini_image3.1_flash"]] prompt_text: Required[Annotated[str, PropertyInfo(alias="promptText")]] - """A non-empty string up to 1000 characters (measured in UTF-16 code units). - - This should describe in detail what should appear in the output. - """ + """This should describe in detail what should appear in the output.""" ratio: Required[ Literal[ @@ -435,10 +429,7 @@ class Gemini2_5Flash(TypedDict, total=False): model: Required[Literal["gemini_2.5_flash"]] prompt_text: Required[Annotated[str, PropertyInfo(alias="promptText")]] - """A non-empty string up to 1000 characters (measured in UTF-16 code units). - - This should describe in detail what should appear in the output. - """ + """This should describe in detail what should appear in the output.""" ratio: Required[ Literal[ diff --git a/src/runwayml/types/text_to_video_create_params.py b/src/runwayml/types/text_to_video_create_params.py index d6841cb..d294de1 100644 --- a/src/runwayml/types/text_to_video_create_params.py +++ b/src/runwayml/types/text_to_video_create_params.py @@ -165,6 +165,12 @@ class Seedance2(TypedDict, total=False): "1440:1440", "1248:1664", "1080:1920", + "3840:1646", + "3840:2160", + "3840:2880", + "3840:3840", + "2880:3840", + "2160:3840", ] """The resolution of the output video.""" @@ -204,13 +210,6 @@ class Seedance2Reference(TypedDict, total=False): uri: Required[str] """A HTTPS URL.""" - position: Literal["first", "last"] - """The position of the image in the output video. - - "first" will use the image as the first frame, "last" as the last frame. Omit - for a reference image. - """ - class Seedance2ReferenceVideo(TypedDict, total=False): """ @@ -293,13 +292,6 @@ class Seedance2FastReference(TypedDict, total=False): uri: Required[str] """A HTTPS URL.""" - position: Literal["first", "last"] - """The position of the image in the output video. - - "first" will use the image as the first frame, "last" as the last frame. Omit - for a reference image. - """ - class Seedance2FastReferenceVideo(TypedDict, total=False): """ diff --git a/src/runwayml/types/video_to_video_create_params.py b/src/runwayml/types/video_to_video_create_params.py index 4156d31..45b50c0 100644 --- a/src/runwayml/types/video_to_video_create_params.py +++ b/src/runwayml/types/video_to_video_create_params.py @@ -137,6 +137,12 @@ class Seedance2(TypedDict, total=False): "1440:1440", "1248:1664", "1080:1920", + "3840:1646", + "3840:2160", + "3840:2880", + "3840:3840", + "2880:3840", + "2160:3840", ] """The resolution of the output video.""" @@ -176,13 +182,6 @@ class Seedance2Reference(TypedDict, total=False): uri: Required[str] """A HTTPS URL.""" - position: Literal["first", "last"] - """The position of the image in the output video. - - "first" will use the image as the first frame, "last" as the last frame. Omit - for a reference image. - """ - class Seedance2ReferenceVideo(TypedDict, total=False): """ @@ -268,13 +267,6 @@ class Seedance2FastReference(TypedDict, total=False): uri: Required[str] """A HTTPS URL.""" - position: Literal["first", "last"] - """The position of the image in the output video. - - "first" will use the image as the first frame, "last" as the last frame. Omit - for a reference image. - """ - class Seedance2FastReferenceVideo(TypedDict, total=False): """ diff --git a/tests/api_resources/test_text_to_video.py b/tests/api_resources/test_text_to_video.py index f1ad7d2..45257ca 100644 --- a/tests/api_resources/test_text_to_video.py +++ b/tests/api_resources/test_text_to_video.py @@ -231,12 +231,7 @@ def test_method_create_with_all_params_overload_5(self, client: RunwayML) -> Non "uri": "https://example.com/file", } ], - references=[ - { - "uri": "https://example.com/file", - "position": "first", - } - ], + references=[{"uri": "https://example.com/file"}], reference_videos=[ { "type": "video", @@ -294,12 +289,7 @@ def test_method_create_with_all_params_overload_6(self, client: RunwayML) -> Non "uri": "https://example.com/file", } ], - references=[ - { - "uri": "https://example.com/file", - "position": "first", - } - ], + references=[{"uri": "https://example.com/file"}], reference_videos=[ { "type": "video", @@ -595,12 +585,7 @@ async def test_method_create_with_all_params_overload_5(self, async_client: Asyn "uri": "https://example.com/file", } ], - references=[ - { - "uri": "https://example.com/file", - "position": "first", - } - ], + references=[{"uri": "https://example.com/file"}], reference_videos=[ { "type": "video", @@ -658,12 +643,7 @@ async def test_method_create_with_all_params_overload_6(self, async_client: Asyn "uri": "https://example.com/file", } ], - references=[ - { - "uri": "https://example.com/file", - "position": "first", - } - ], + references=[{"uri": "https://example.com/file"}], reference_videos=[ { "type": "video", diff --git a/tests/api_resources/test_video_to_video.py b/tests/api_resources/test_video_to_video.py index 10a6894..4710c50 100644 --- a/tests/api_resources/test_video_to_video.py +++ b/tests/api_resources/test_video_to_video.py @@ -93,12 +93,7 @@ def test_method_create_with_all_params_overload_2(self, client: RunwayML) -> Non "uri": "https://example.com/file", } ], - references=[ - { - "uri": "https://example.com/file", - "position": "first", - } - ], + references=[{"uri": "https://example.com/file"}], reference_videos=[ { "type": "video", @@ -157,12 +152,7 @@ def test_method_create_with_all_params_overload_3(self, client: RunwayML) -> Non "uri": "https://example.com/file", } ], - references=[ - { - "uri": "https://example.com/file", - "position": "first", - } - ], + references=[{"uri": "https://example.com/file"}], reference_videos=[ { "type": "video", @@ -280,12 +270,7 @@ async def test_method_create_with_all_params_overload_2(self, async_client: Asyn "uri": "https://example.com/file", } ], - references=[ - { - "uri": "https://example.com/file", - "position": "first", - } - ], + references=[{"uri": "https://example.com/file"}], reference_videos=[ { "type": "video", @@ -344,12 +329,7 @@ async def test_method_create_with_all_params_overload_3(self, async_client: Asyn "uri": "https://example.com/file", } ], - references=[ - { - "uri": "https://example.com/file", - "position": "first", - } - ], + references=[{"uri": "https://example.com/file"}], reference_videos=[ { "type": "video",