diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 8ed0bbc..82fc926 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "5.9.0" + ".": "5.10.0" } \ No newline at end of file diff --git a/.stats.yml b/.stats.yml index b1f4800..8c6b27f 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 51 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/runwayml/runwayml-d934e6804620f70a9a7d88bb3acf27146b57860ed56691e390e46027b3c04d4a.yml -openapi_spec_hash: 132fc1ce816bcfd680a239dc1ed58c8e +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/runwayml/runwayml-391d899ffd246491c8d2a02adec62eb5fc1b00044e6704a7886d8e8e09d72484.yml +openapi_spec_hash: 475451c27bcc5721a02ee92c1898000e config_hash: 7caf94f26186e1ee432efcaa0b590bab diff --git a/CHANGELOG.md b/CHANGELOG.md index 0c3264c..612061a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,18 @@ # Changelog +## 5.10.0 (2026-07-13) + +Full Changelog: [v5.9.0...v5.10.0](https://github.com/runwayml/sdk-python/compare/v5.9.0...v5.10.0) + +### Features + +* **api:** Seedream 5 Pro/Lite + negativePrompt for Veo models ([f98699c](https://github.com/runwayml/sdk-python/commit/f98699c3142c2ed83fbdac7c70ea2042b698b352)) + + +### Bug Fixes + +* **client:** make seedream5_pro and seedream5_lite responses awaitable ([980b632](https://github.com/runwayml/sdk-python/commit/980b632959e3d352524d46375cd18c0666f5bac6)) + ## 5.9.0 (2026-07-06) Full Changelog: [v5.8.0...v5.9.0](https://github.com/runwayml/sdk-python/compare/v5.8.0...v5.9.0) diff --git a/pyproject.toml b/pyproject.toml index 05a4bc6..f6302c9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "runwayml" -version = "5.9.0" +version = "5.10.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 0160beb..de6cf6d 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.9.0" # x-release-please-version +__version__ = "5.10.0" # x-release-please-version diff --git a/src/runwayml/resources/image_to_video.py b/src/runwayml/resources/image_to_video.py index d3cb1ff..764d370 100644 --- a/src/runwayml/resources/image_to_video.py +++ b/src/runwayml/resources/image_to_video.py @@ -156,6 +156,7 @@ def create( ratio: Literal["1280:720", "720:1280", "1080:1920", "1920:1080"], audio: bool | Omit = omit, duration: Literal[4, 6, 8] | Omit = omit, + negative_prompt: str | Omit = omit, prompt_text: str | Omit = omit, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. @@ -178,6 +179,8 @@ def create( duration: The number of seconds of duration for the output video. + negative_prompt: Text describing what should not appear in the output video. + 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. @@ -200,6 +203,7 @@ def create( ratio: Literal["1280:720", "720:1280", "1080:1920", "1920:1080"], audio: bool | Omit = omit, duration: Literal[4, 6, 8] | Omit = omit, + negative_prompt: str | Omit = omit, prompt_text: str | Omit = omit, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. @@ -222,6 +226,8 @@ def create( duration: The number of seconds of duration for the output video. + negative_prompt: Text describing what should not appear in the output video. + 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. @@ -520,6 +526,7 @@ def create( model: Literal["veo3"], prompt_image: Union[str, Iterable[image_to_video_create_params.Veo3PromptImagePromptImage]], ratio: Literal["1280:720", "720:1280", "1080:1920", "1920:1080"], + negative_prompt: str | Omit = omit, prompt_text: str | Omit = omit, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. @@ -538,6 +545,8 @@ def create( ratio: The resolution of the output video. + negative_prompt: Text describing what should not appear in the output video. + 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. @@ -628,6 +637,7 @@ def create( | Omit = omit, seed: int | Omit = omit, audio: bool | Omit = omit, + negative_prompt: str | Omit = omit, resolution: Literal["720P", "1080P"] | Omit = omit, reference_audio: Iterable[image_to_video_create_params.Seedance2ReferenceAudio] | Iterable[image_to_video_create_params.Seedance2FastReferenceAudio] @@ -652,6 +662,7 @@ def create( "content_moderation": content_moderation, "seed": seed, "audio": audio, + "negative_prompt": negative_prompt, "resolution": resolution, "reference_audio": reference_audio, }, @@ -790,6 +801,7 @@ async def create( ratio: Literal["1280:720", "720:1280", "1080:1920", "1920:1080"], audio: bool | Omit = omit, duration: Literal[4, 6, 8] | Omit = omit, + negative_prompt: str | Omit = omit, prompt_text: str | Omit = omit, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. @@ -812,6 +824,8 @@ async def create( duration: The number of seconds of duration for the output video. + negative_prompt: Text describing what should not appear in the output video. + 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. @@ -834,6 +848,7 @@ async def create( ratio: Literal["1280:720", "720:1280", "1080:1920", "1920:1080"], audio: bool | Omit = omit, duration: Literal[4, 6, 8] | Omit = omit, + negative_prompt: str | Omit = omit, prompt_text: str | Omit = omit, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. @@ -856,6 +871,8 @@ async def create( duration: The number of seconds of duration for the output video. + negative_prompt: Text describing what should not appear in the output video. + 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. @@ -1154,6 +1171,7 @@ async def create( model: Literal["veo3"], prompt_image: Union[str, Iterable[image_to_video_create_params.Veo3PromptImagePromptImage]], ratio: Literal["1280:720", "720:1280", "1080:1920", "1920:1080"], + negative_prompt: str | Omit = omit, prompt_text: str | Omit = omit, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. @@ -1172,6 +1190,8 @@ async def create( ratio: The resolution of the output video. + negative_prompt: Text describing what should not appear in the output video. + 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. @@ -1262,6 +1282,7 @@ async def create( | Omit = omit, seed: int | Omit = omit, audio: bool | Omit = omit, + negative_prompt: str | Omit = omit, resolution: Literal["720P", "1080P"] | Omit = omit, reference_audio: Iterable[image_to_video_create_params.Seedance2ReferenceAudio] | Iterable[image_to_video_create_params.Seedance2FastReferenceAudio] @@ -1286,6 +1307,7 @@ async def create( "content_moderation": content_moderation, "seed": seed, "audio": audio, + "negative_prompt": negative_prompt, "resolution": resolution, "reference_audio": reference_audio, }, diff --git a/src/runwayml/resources/text_to_image.py b/src/runwayml/resources/text_to_image.py index b1f5673..3fa9199 100644 --- a/src/runwayml/resources/text_to_image.py +++ b/src/runwayml/resources/text_to_image.py @@ -432,6 +432,128 @@ def create( """ ... + @overload + def create( + self, + *, + model: Literal["seedream5_pro"], + prompt_text: str, + ratio: Literal[ + "1024:1024", + "1184:896", + "896:1184", + "1376:768", + "768:1376", + "1296:864", + "864:1296", + "2048:2048", + "2304:1728", + "1728:2304", + "2720:1530", + "1530:2720", + "2496:1664", + "1664:2496", + "auto_1k", + "auto_2k", + ], + output_count: int | Omit = omit, + output_format: Literal["png", "jpeg"] | Omit = omit, + reference_images: Iterable[text_to_image_create_params.Seedream5ProReferenceImage] | Omit = omit, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = not_given, + ) -> NewTaskCreatedResponse: + """ + 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 4,000 characters describing the desired image. + + ratio: The resolution of the output image, expressed as `:`. Use + `auto_1k` or `auto_2k` to let the model pick aspect ratio at a fixed resolution + tier. + + output_count: The number of images to generate. Increasing this number will affect the number + of credits consumed by the generation. + + output_format: The file format of the output image. Defaults to png. + + reference_images: An array of reference images for multi-image fusion and interactive editing. + Reference by upload order in prompt text (Figure 1, Figure 2, etc.). + + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + ... + + @overload + def create( + self, + *, + model: Literal["seedream5_lite"], + prompt_text: str, + ratio: Literal[ + "2048:2048", + "2304:1728", + "1728:2304", + "2848:1600", + "1600:2848", + "2496:1664", + "1664:2496", + "3136:1344", + "3072:3072", + "3456:2592", + "2592:3456", + "4096:2304", + "2304:4096", + "3744:2496", + "2496:3744", + "4704:2016", + ], + output_count: int | Omit = omit, + output_format: Literal["png", "jpeg"] | Omit = omit, + reference_images: Iterable[text_to_image_create_params.Seedream5LiteReferenceImage] | Omit = omit, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = not_given, + ) -> NewTaskCreatedResponse: + """ + 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 4,000 characters describing the desired image. + + ratio: The resolution of the output image, expressed as `:`. + + output_count: The number of images to generate. Increasing this number will affect the number + of credits consumed by the generation. + + output_format: The file format of the output image. Defaults to png. + + reference_images: An array of reference images for multi-image fusion and interactive editing. + Reference by upload order in prompt text (Figure 1, Figure 2, etc.). + + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + ... + @overload def create( self, @@ -488,6 +610,8 @@ def create( | Literal["gpt_image_2"] | Literal["gemini_image3_pro"] | Literal["gemini_image3.1_flash"] + | Literal["seedream5_pro"] + | Literal["seedream5_lite"] | Literal["gemini_2.5_flash"], prompt_text: str, ratio: Literal[ @@ -631,6 +755,42 @@ def create( "1408:11264", "11264:1408", ] + | Literal[ + "1024:1024", + "1184:896", + "896:1184", + "1376:768", + "768:1376", + "1296:864", + "864:1296", + "2048:2048", + "2304:1728", + "1728:2304", + "2720:1530", + "1530:2720", + "2496:1664", + "1664:2496", + "auto_1k", + "auto_2k", + ] + | Literal[ + "2048:2048", + "2304:1728", + "1728:2304", + "2848:1600", + "1600:2848", + "2496:1664", + "1664:2496", + "3136:1344", + "3072:3072", + "3456:2592", + "2592:3456", + "4096:2304", + "2304:4096", + "3744:2496", + "2496:3744", + "4704:2016", + ] | Literal[ "1344:768", "768:1344", @@ -648,6 +808,8 @@ def create( | Iterable[text_to_image_create_params.GptImage2ReferenceImage] | Iterable[text_to_image_create_params.GeminiImage3ProReferenceImage] | Iterable[text_to_image_create_params.GeminiImage3_1FlashReferenceImage] + | Iterable[text_to_image_create_params.Seedream5ProReferenceImage] + | Iterable[text_to_image_create_params.Seedream5LiteReferenceImage] | Iterable[text_to_image_create_params.Gemini2_5FlashReferenceImage] | Omit = omit, content_moderation: text_to_image_create_params.Gen4ImageTurboContentModeration @@ -657,6 +819,7 @@ def create( background: Literal["opaque", "auto"] | Omit = omit, output_count: int | Literal[1, 4] | Omit = omit, quality: Literal["low", "medium", "high", "auto"] | Omit = omit, + output_format: Literal["png", "jpeg"] | Omit = omit, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -677,6 +840,7 @@ def create( "background": background, "output_count": output_count, "quality": quality, + "output_format": output_format, }, text_to_image_create_params.TextToImageCreateParams, ), @@ -1089,6 +1253,128 @@ async def create( """ ... + @overload + async def create( + self, + *, + model: Literal["seedream5_pro"], + prompt_text: str, + ratio: Literal[ + "1024:1024", + "1184:896", + "896:1184", + "1376:768", + "768:1376", + "1296:864", + "864:1296", + "2048:2048", + "2304:1728", + "1728:2304", + "2720:1530", + "1530:2720", + "2496:1664", + "1664:2496", + "auto_1k", + "auto_2k", + ], + output_count: int | Omit = omit, + output_format: Literal["png", "jpeg"] | Omit = omit, + reference_images: Iterable[text_to_image_create_params.Seedream5ProReferenceImage] | Omit = omit, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = not_given, + ) -> AsyncNewTaskCreatedResponse: + """ + 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 4,000 characters describing the desired image. + + ratio: The resolution of the output image, expressed as `:`. Use + `auto_1k` or `auto_2k` to let the model pick aspect ratio at a fixed resolution + tier. + + output_count: The number of images to generate. Increasing this number will affect the number + of credits consumed by the generation. + + output_format: The file format of the output image. Defaults to png. + + reference_images: An array of reference images for multi-image fusion and interactive editing. + Reference by upload order in prompt text (Figure 1, Figure 2, etc.). + + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + ... + + @overload + async def create( + self, + *, + model: Literal["seedream5_lite"], + prompt_text: str, + ratio: Literal[ + "2048:2048", + "2304:1728", + "1728:2304", + "2848:1600", + "1600:2848", + "2496:1664", + "1664:2496", + "3136:1344", + "3072:3072", + "3456:2592", + "2592:3456", + "4096:2304", + "2304:4096", + "3744:2496", + "2496:3744", + "4704:2016", + ], + output_count: int | Omit = omit, + output_format: Literal["png", "jpeg"] | Omit = omit, + reference_images: Iterable[text_to_image_create_params.Seedream5LiteReferenceImage] | Omit = omit, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = not_given, + ) -> AsyncNewTaskCreatedResponse: + """ + 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 4,000 characters describing the desired image. + + ratio: The resolution of the output image, expressed as `:`. + + output_count: The number of images to generate. Increasing this number will affect the number + of credits consumed by the generation. + + output_format: The file format of the output image. Defaults to png. + + reference_images: An array of reference images for multi-image fusion and interactive editing. + Reference by upload order in prompt text (Figure 1, Figure 2, etc.). + + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + ... + @overload async def create( self, @@ -1145,6 +1431,8 @@ async def create( | Literal["gpt_image_2"] | Literal["gemini_image3_pro"] | Literal["gemini_image3.1_flash"] + | Literal["seedream5_pro"] + | Literal["seedream5_lite"] | Literal["gemini_2.5_flash"], prompt_text: str, ratio: Literal[ @@ -1288,6 +1576,42 @@ async def create( "1408:11264", "11264:1408", ] + | Literal[ + "1024:1024", + "1184:896", + "896:1184", + "1376:768", + "768:1376", + "1296:864", + "864:1296", + "2048:2048", + "2304:1728", + "1728:2304", + "2720:1530", + "1530:2720", + "2496:1664", + "1664:2496", + "auto_1k", + "auto_2k", + ] + | Literal[ + "2048:2048", + "2304:1728", + "1728:2304", + "2848:1600", + "1600:2848", + "2496:1664", + "1664:2496", + "3136:1344", + "3072:3072", + "3456:2592", + "2592:3456", + "4096:2304", + "2304:4096", + "3744:2496", + "2496:3744", + "4704:2016", + ] | Literal[ "1344:768", "768:1344", @@ -1305,6 +1629,8 @@ async def create( | Iterable[text_to_image_create_params.GptImage2ReferenceImage] | Iterable[text_to_image_create_params.GeminiImage3ProReferenceImage] | Iterable[text_to_image_create_params.GeminiImage3_1FlashReferenceImage] + | Iterable[text_to_image_create_params.Seedream5ProReferenceImage] + | Iterable[text_to_image_create_params.Seedream5LiteReferenceImage] | Iterable[text_to_image_create_params.Gemini2_5FlashReferenceImage] | Omit = omit, content_moderation: text_to_image_create_params.Gen4ImageTurboContentModeration @@ -1314,6 +1640,7 @@ async def create( background: Literal["opaque", "auto"] | Omit = omit, output_count: int | Literal[1, 4] | Omit = omit, quality: Literal["low", "medium", "high", "auto"] | Omit = omit, + output_format: Literal["png", "jpeg"] | Omit = omit, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -1334,6 +1661,7 @@ async def create( "background": background, "output_count": output_count, "quality": quality, + "output_format": output_format, }, text_to_image_create_params.TextToImageCreateParams, ), diff --git a/src/runwayml/resources/text_to_video.py b/src/runwayml/resources/text_to_video.py index bbe8422..dce89f3 100644 --- a/src/runwayml/resources/text_to_video.py +++ b/src/runwayml/resources/text_to_video.py @@ -106,6 +106,7 @@ def create( ratio: Literal["1280:720", "720:1280", "1080:1920", "1920:1080"], audio: bool | Omit = omit, duration: Literal[4, 6, 8] | Omit = omit, + negative_prompt: str | Omit = omit, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -126,6 +127,8 @@ def create( duration: The number of seconds of duration for the output video. + negative_prompt: Text describing what should not appear in the output video. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -145,6 +148,7 @@ def create( ratio: Literal["1280:720", "720:1280", "1080:1920", "1920:1080"], audio: bool | Omit = omit, duration: Literal[4, 6, 8] | Omit = omit, + negative_prompt: str | Omit = omit, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -165,6 +169,8 @@ def create( duration: The number of seconds of duration for the output video. + negative_prompt: Text describing what should not appear in the output video. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -479,6 +485,7 @@ def create( model: Literal["veo3"], prompt_text: str, ratio: Literal["1280:720", "720:1280", "1080:1920", "1920:1080"], + negative_prompt: str | Omit = omit, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -497,6 +504,8 @@ def create( ratio: The resolution of the output video. + negative_prompt: Text describing what should not appear in the output video. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -582,6 +591,7 @@ def create( content_moderation: text_to_video_create_params.Gen4_5ContentModeration | Omit = omit, seed: int | Omit = omit, audio: bool | Omit = omit, + negative_prompt: str | Omit = omit, reference_audio: Iterable[text_to_video_create_params.Seedance2ReferenceAudio] | Iterable[text_to_video_create_params.Seedance2FastReferenceAudio] | Iterable[text_to_video_create_params.Seedance2MiniReferenceAudio] @@ -612,6 +622,7 @@ def create( "content_moderation": content_moderation, "seed": seed, "audio": audio, + "negative_prompt": negative_prompt, "reference_audio": reference_audio, "references": references, "reference_videos": reference_videos, @@ -701,6 +712,7 @@ async def create( ratio: Literal["1280:720", "720:1280", "1080:1920", "1920:1080"], audio: bool | Omit = omit, duration: Literal[4, 6, 8] | Omit = omit, + negative_prompt: str | Omit = omit, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -721,6 +733,8 @@ async def create( duration: The number of seconds of duration for the output video. + negative_prompt: Text describing what should not appear in the output video. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -740,6 +754,7 @@ async def create( ratio: Literal["1280:720", "720:1280", "1080:1920", "1920:1080"], audio: bool | Omit = omit, duration: Literal[4, 6, 8] | Omit = omit, + negative_prompt: str | Omit = omit, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -760,6 +775,8 @@ async def create( duration: The number of seconds of duration for the output video. + negative_prompt: Text describing what should not appear in the output video. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -1074,6 +1091,7 @@ async def create( model: Literal["veo3"], prompt_text: str, ratio: Literal["1280:720", "720:1280", "1080:1920", "1920:1080"], + negative_prompt: str | Omit = omit, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -1092,6 +1110,8 @@ async def create( ratio: The resolution of the output video. + negative_prompt: Text describing what should not appear in the output video. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -1177,6 +1197,7 @@ async def create( content_moderation: text_to_video_create_params.Gen4_5ContentModeration | Omit = omit, seed: int | Omit = omit, audio: bool | Omit = omit, + negative_prompt: str | Omit = omit, reference_audio: Iterable[text_to_video_create_params.Seedance2ReferenceAudio] | Iterable[text_to_video_create_params.Seedance2FastReferenceAudio] | Iterable[text_to_video_create_params.Seedance2MiniReferenceAudio] @@ -1207,6 +1228,7 @@ async def create( "content_moderation": content_moderation, "seed": seed, "audio": audio, + "negative_prompt": negative_prompt, "reference_audio": reference_audio, "references": references, "reference_videos": reference_videos, diff --git a/src/runwayml/types/image_to_video_create_params.py b/src/runwayml/types/image_to_video_create_params.py index 8ad6bdd..efd0fdf 100644 --- a/src/runwayml/types/image_to_video_create_params.py +++ b/src/runwayml/types/image_to_video_create_params.py @@ -167,6 +167,9 @@ class Veo3_1(TypedDict, total=False): duration: Literal[4, 6, 8] """The number of seconds of duration for the output video.""" + negative_prompt: Annotated[str, PropertyInfo(alias="negativePrompt")] + """Text describing what should not appear in the output video.""" + prompt_text: Annotated[str, PropertyInfo(alias="promptText")] """A non-empty string up to 1000 characters (measured in UTF-16 code units). @@ -207,6 +210,9 @@ class Veo3_1Fast(TypedDict, total=False): duration: Literal[4, 6, 8] """The number of seconds of duration for the output video.""" + negative_prompt: Annotated[str, PropertyInfo(alias="negativePrompt")] + """Text describing what should not appear in the output video.""" + prompt_text: Annotated[str, PropertyInfo(alias="promptText")] """A non-empty string up to 1000 characters (measured in UTF-16 code units). @@ -541,6 +547,9 @@ class Veo3(TypedDict, total=False): ratio: Required[Literal["1280:720", "720:1280", "1080:1920", "1920:1080"]] """The resolution of the output video.""" + negative_prompt: Annotated[str, PropertyInfo(alias="negativePrompt")] + """Text describing what should not appear in the output video.""" + prompt_text: Annotated[str, PropertyInfo(alias="promptText")] """A non-empty string up to 1000 characters (measured in UTF-16 code units). diff --git a/src/runwayml/types/organization_retrieve_usage_response.py b/src/runwayml/types/organization_retrieve_usage_response.py index 84b1eee..fc617da 100644 --- a/src/runwayml/types/organization_retrieve_usage_response.py +++ b/src/runwayml/types/organization_retrieve_usage_response.py @@ -33,7 +33,10 @@ class ResultUsedCredit(BaseModel): "gemini_2.5_flash", "gemini_image3_pro", "gemini_image3.1_flash", + "seedream5_pro", + "gemini_omni_flash", "eleven_multilingual_v2", + "seed_audio", "eleven_v3", "eleven_text_to_sound_v2", "eleven_voice_isolation", @@ -46,6 +49,7 @@ class ResultUsedCredit(BaseModel): "voice_processing", "seedance2", "seedance2_fast", + "seedance2_mini", "magnific_precision_upscaler_v2", "magnific_video_upscaler_creative", "kling2.5_turbo_pro", @@ -96,7 +100,10 @@ class OrganizationRetrieveUsageResponse(BaseModel): "gemini_2.5_flash", "gemini_image3_pro", "gemini_image3.1_flash", + "seedream5_pro", + "gemini_omni_flash", "eleven_multilingual_v2", + "seed_audio", "eleven_v3", "eleven_text_to_sound_v2", "eleven_voice_isolation", @@ -109,6 +116,7 @@ class OrganizationRetrieveUsageResponse(BaseModel): "voice_processing", "seedance2", "seedance2_fast", + "seedance2_mini", "magnific_precision_upscaler_v2", "magnific_video_upscaler_creative", "kling2.5_turbo_pro", diff --git a/src/runwayml/types/text_to_image_create_params.py b/src/runwayml/types/text_to_image_create_params.py index 28f629a..39db1a3 100644 --- a/src/runwayml/types/text_to_image_create_params.py +++ b/src/runwayml/types/text_to_image_create_params.py @@ -21,6 +21,10 @@ "GeminiImage3ProReferenceImage", "GeminiImage3_1Flash", "GeminiImage3_1FlashReferenceImage", + "Seedream5Pro", + "Seedream5ProReferenceImage", + "Seedream5Lite", + "Seedream5LiteReferenceImage", "Gemini2_5Flash", "Gemini2_5FlashReferenceImage", ] @@ -425,6 +429,110 @@ class GeminiImage3_1FlashReferenceImage(TypedDict, total=False): """ +class Seedream5Pro(TypedDict, total=False): + model: Required[Literal["seedream5_pro"]] + + prompt_text: Required[Annotated[str, PropertyInfo(alias="promptText")]] + """A non-empty string up to 4,000 characters describing the desired image.""" + + ratio: Required[ + Literal[ + "1024:1024", + "1184:896", + "896:1184", + "1376:768", + "768:1376", + "1296:864", + "864:1296", + "2048:2048", + "2304:1728", + "1728:2304", + "2720:1530", + "1530:2720", + "2496:1664", + "1664:2496", + "auto_1k", + "auto_2k", + ] + ] + """The resolution of the output image, expressed as `:`. + + Use `auto_1k` or `auto_2k` to let the model pick aspect ratio at a fixed + resolution tier. + """ + + output_count: Annotated[int, PropertyInfo(alias="outputCount")] + """The number of images to generate. + + Increasing this number will affect the number of credits consumed by the + generation. + """ + + output_format: Annotated[Literal["png", "jpeg"], PropertyInfo(alias="outputFormat")] + """The file format of the output image. Defaults to png.""" + + reference_images: Annotated[Iterable[Seedream5ProReferenceImage], PropertyInfo(alias="referenceImages")] + """An array of reference images for multi-image fusion and interactive editing. + + Reference by upload order in prompt text (Figure 1, Figure 2, etc.). + """ + + +class Seedream5ProReferenceImage(TypedDict, total=False): + uri: Required[str] + """A HTTPS URL.""" + + +class Seedream5Lite(TypedDict, total=False): + model: Required[Literal["seedream5_lite"]] + + prompt_text: Required[Annotated[str, PropertyInfo(alias="promptText")]] + """A non-empty string up to 4,000 characters describing the desired image.""" + + ratio: Required[ + Literal[ + "2048:2048", + "2304:1728", + "1728:2304", + "2848:1600", + "1600:2848", + "2496:1664", + "1664:2496", + "3136:1344", + "3072:3072", + "3456:2592", + "2592:3456", + "4096:2304", + "2304:4096", + "3744:2496", + "2496:3744", + "4704:2016", + ] + ] + """The resolution of the output image, expressed as `:`.""" + + output_count: Annotated[int, PropertyInfo(alias="outputCount")] + """The number of images to generate. + + Increasing this number will affect the number of credits consumed by the + generation. + """ + + output_format: Annotated[Literal["png", "jpeg"], PropertyInfo(alias="outputFormat")] + """The file format of the output image. Defaults to png.""" + + reference_images: Annotated[Iterable[Seedream5LiteReferenceImage], PropertyInfo(alias="referenceImages")] + """An array of reference images for multi-image fusion and interactive editing. + + Reference by upload order in prompt text (Figure 1, Figure 2, etc.). + """ + + +class Seedream5LiteReferenceImage(TypedDict, total=False): + uri: Required[str] + """A HTTPS URL.""" + + class Gemini2_5Flash(TypedDict, total=False): model: Required[Literal["gemini_2.5_flash"]] @@ -466,5 +574,12 @@ class Gemini2_5FlashReferenceImage(TypedDict, total=False): TextToImageCreateParams: TypeAlias = Union[ - Gen4ImageTurbo, Gen4Image, GptImage2, GeminiImage3Pro, GeminiImage3_1Flash, Gemini2_5Flash + Gen4ImageTurbo, + Gen4Image, + GptImage2, + GeminiImage3Pro, + GeminiImage3_1Flash, + Seedream5Pro, + Seedream5Lite, + Gemini2_5Flash, ] diff --git a/src/runwayml/types/text_to_video_create_params.py b/src/runwayml/types/text_to_video_create_params.py index ff810b6..28c694c 100644 --- a/src/runwayml/types/text_to_video_create_params.py +++ b/src/runwayml/types/text_to_video_create_params.py @@ -89,6 +89,9 @@ class Veo3_1(TypedDict, total=False): duration: Literal[4, 6, 8] """The number of seconds of duration for the output video.""" + negative_prompt: Annotated[str, PropertyInfo(alias="negativePrompt")] + """Text describing what should not appear in the output video.""" + class Veo3_1Fast(TypedDict, total=False): model: Required[Literal["veo3.1_fast"]] @@ -108,6 +111,9 @@ class Veo3_1Fast(TypedDict, total=False): duration: Literal[4, 6, 8] """The number of seconds of duration for the output video.""" + negative_prompt: Annotated[str, PropertyInfo(alias="negativePrompt")] + """Text describing what should not appear in the output video.""" + class Happyhorse1_0(TypedDict, total=False): model: Required[Literal["happyhorse_1_0"]] @@ -422,6 +428,9 @@ class Veo3(TypedDict, total=False): ratio: Required[Literal["1280:720", "720:1280", "1080:1920", "1920:1080"]] """The resolution of the output video.""" + negative_prompt: Annotated[str, PropertyInfo(alias="negativePrompt")] + """Text describing what should not appear in the output video.""" + TextToVideoCreateParams: TypeAlias = Union[ Gen4_5, Veo3_1, Veo3_1Fast, Happyhorse1_0, Seedance2, Seedance2Fast, Seedance2Mini, GeminiOmniFlash, Veo3 diff --git a/tests/api_resources/test_image_to_video.py b/tests/api_resources/test_image_to_video.py index 85c1107..982e123 100644 --- a/tests/api_resources/test_image_to_video.py +++ b/tests/api_resources/test_image_to_video.py @@ -140,6 +140,7 @@ def test_method_create_with_all_params_overload_3(self, client: RunwayML) -> Non ratio="1280:720", audio=True, duration=4, + negative_prompt="x", prompt_text="x", ) assert_matches_type(ImageToVideoCreateResponse, image_to_video, path=["response"]) @@ -189,6 +190,7 @@ def test_method_create_with_all_params_overload_4(self, client: RunwayML) -> Non ratio="1280:720", audio=True, duration=4, + negative_prompt="x", prompt_text="x", ) assert_matches_type(ImageToVideoCreateResponse, image_to_video, path=["response"]) @@ -484,6 +486,7 @@ def test_method_create_with_all_params_overload_10(self, client: RunwayML) -> No model="veo3", prompt_image="https://example.com/file", ratio="1280:720", + negative_prompt="x", prompt_text="x", ) assert_matches_type(ImageToVideoCreateResponse, image_to_video, path=["response"]) @@ -647,6 +650,7 @@ async def test_method_create_with_all_params_overload_3(self, async_client: Asyn ratio="1280:720", audio=True, duration=4, + negative_prompt="x", prompt_text="x", ) assert_matches_type(ImageToVideoCreateResponse, image_to_video, path=["response"]) @@ -696,6 +700,7 @@ async def test_method_create_with_all_params_overload_4(self, async_client: Asyn ratio="1280:720", audio=True, duration=4, + negative_prompt="x", prompt_text="x", ) assert_matches_type(ImageToVideoCreateResponse, image_to_video, path=["response"]) @@ -991,6 +996,7 @@ async def test_method_create_with_all_params_overload_10(self, async_client: Asy model="veo3", prompt_image="https://example.com/file", ratio="1280:720", + negative_prompt="x", prompt_text="x", ) assert_matches_type(ImageToVideoCreateResponse, image_to_video, path=["response"]) diff --git a/tests/api_resources/test_text_to_image.py b/tests/api_resources/test_text_to_image.py index db58b64..a241fbd 100644 --- a/tests/api_resources/test_text_to_image.py +++ b/tests/api_resources/test_text_to_image.py @@ -293,6 +293,104 @@ def test_streaming_response_create_overload_5(self, client: RunwayML) -> None: @parametrize def test_method_create_overload_6(self, client: RunwayML) -> None: + text_to_image = client.text_to_image.create( + model="seedream5_pro", + prompt_text="x", + ratio="1024:1024", + ) + assert_matches_type(TextToImageCreateResponse, text_to_image, path=["response"]) + + @parametrize + def test_method_create_with_all_params_overload_6(self, client: RunwayML) -> None: + text_to_image = client.text_to_image.create( + model="seedream5_pro", + prompt_text="x", + ratio="1024:1024", + output_count=1, + output_format="png", + reference_images=[{"uri": "https://example.com/file"}], + ) + assert_matches_type(TextToImageCreateResponse, text_to_image, path=["response"]) + + @parametrize + def test_raw_response_create_overload_6(self, client: RunwayML) -> None: + response = client.text_to_image.with_raw_response.create( + model="seedream5_pro", + prompt_text="x", + ratio="1024:1024", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + text_to_image = response.parse() + assert_matches_type(TextToImageCreateResponse, text_to_image, path=["response"]) + + @parametrize + def test_streaming_response_create_overload_6(self, client: RunwayML) -> None: + with client.text_to_image.with_streaming_response.create( + model="seedream5_pro", + prompt_text="x", + ratio="1024:1024", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + text_to_image = response.parse() + assert_matches_type(TextToImageCreateResponse, text_to_image, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + def test_method_create_overload_7(self, client: RunwayML) -> None: + text_to_image = client.text_to_image.create( + model="seedream5_lite", + prompt_text="x", + ratio="2048:2048", + ) + assert_matches_type(TextToImageCreateResponse, text_to_image, path=["response"]) + + @parametrize + def test_method_create_with_all_params_overload_7(self, client: RunwayML) -> None: + text_to_image = client.text_to_image.create( + model="seedream5_lite", + prompt_text="x", + ratio="2048:2048", + output_count=1, + output_format="png", + reference_images=[{"uri": "https://example.com/file"}], + ) + assert_matches_type(TextToImageCreateResponse, text_to_image, path=["response"]) + + @parametrize + def test_raw_response_create_overload_7(self, client: RunwayML) -> None: + response = client.text_to_image.with_raw_response.create( + model="seedream5_lite", + prompt_text="x", + ratio="2048:2048", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + text_to_image = response.parse() + assert_matches_type(TextToImageCreateResponse, text_to_image, path=["response"]) + + @parametrize + def test_streaming_response_create_overload_7(self, client: RunwayML) -> None: + with client.text_to_image.with_streaming_response.create( + model="seedream5_lite", + prompt_text="x", + ratio="2048:2048", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + text_to_image = response.parse() + assert_matches_type(TextToImageCreateResponse, text_to_image, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + def test_method_create_overload_8(self, client: RunwayML) -> None: text_to_image = client.text_to_image.create( model="gemini_2.5_flash", prompt_text="x", @@ -301,7 +399,7 @@ def test_method_create_overload_6(self, client: RunwayML) -> None: assert_matches_type(TextToImageCreateResponse, text_to_image, path=["response"]) @parametrize - def test_method_create_with_all_params_overload_6(self, client: RunwayML) -> None: + def test_method_create_with_all_params_overload_8(self, client: RunwayML) -> None: text_to_image = client.text_to_image.create( model="gemini_2.5_flash", prompt_text="x", @@ -316,7 +414,7 @@ def test_method_create_with_all_params_overload_6(self, client: RunwayML) -> Non assert_matches_type(TextToImageCreateResponse, text_to_image, path=["response"]) @parametrize - def test_raw_response_create_overload_6(self, client: RunwayML) -> None: + def test_raw_response_create_overload_8(self, client: RunwayML) -> None: response = client.text_to_image.with_raw_response.create( model="gemini_2.5_flash", prompt_text="x", @@ -329,7 +427,7 @@ def test_raw_response_create_overload_6(self, client: RunwayML) -> None: assert_matches_type(TextToImageCreateResponse, text_to_image, path=["response"]) @parametrize - def test_streaming_response_create_overload_6(self, client: RunwayML) -> None: + def test_streaming_response_create_overload_8(self, client: RunwayML) -> None: with client.text_to_image.with_streaming_response.create( model="gemini_2.5_flash", prompt_text="x", @@ -625,6 +723,104 @@ async def test_streaming_response_create_overload_5(self, async_client: AsyncRun @parametrize async def test_method_create_overload_6(self, async_client: AsyncRunwayML) -> None: + text_to_image = await async_client.text_to_image.create( + model="seedream5_pro", + prompt_text="x", + ratio="1024:1024", + ) + assert_matches_type(TextToImageCreateResponse, text_to_image, path=["response"]) + + @parametrize + async def test_method_create_with_all_params_overload_6(self, async_client: AsyncRunwayML) -> None: + text_to_image = await async_client.text_to_image.create( + model="seedream5_pro", + prompt_text="x", + ratio="1024:1024", + output_count=1, + output_format="png", + reference_images=[{"uri": "https://example.com/file"}], + ) + assert_matches_type(TextToImageCreateResponse, text_to_image, path=["response"]) + + @parametrize + async def test_raw_response_create_overload_6(self, async_client: AsyncRunwayML) -> None: + response = await async_client.text_to_image.with_raw_response.create( + model="seedream5_pro", + prompt_text="x", + ratio="1024:1024", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + text_to_image = await response.parse() + assert_matches_type(TextToImageCreateResponse, text_to_image, path=["response"]) + + @parametrize + async def test_streaming_response_create_overload_6(self, async_client: AsyncRunwayML) -> None: + async with async_client.text_to_image.with_streaming_response.create( + model="seedream5_pro", + prompt_text="x", + ratio="1024:1024", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + text_to_image = await response.parse() + assert_matches_type(TextToImageCreateResponse, text_to_image, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + async def test_method_create_overload_7(self, async_client: AsyncRunwayML) -> None: + text_to_image = await async_client.text_to_image.create( + model="seedream5_lite", + prompt_text="x", + ratio="2048:2048", + ) + assert_matches_type(TextToImageCreateResponse, text_to_image, path=["response"]) + + @parametrize + async def test_method_create_with_all_params_overload_7(self, async_client: AsyncRunwayML) -> None: + text_to_image = await async_client.text_to_image.create( + model="seedream5_lite", + prompt_text="x", + ratio="2048:2048", + output_count=1, + output_format="png", + reference_images=[{"uri": "https://example.com/file"}], + ) + assert_matches_type(TextToImageCreateResponse, text_to_image, path=["response"]) + + @parametrize + async def test_raw_response_create_overload_7(self, async_client: AsyncRunwayML) -> None: + response = await async_client.text_to_image.with_raw_response.create( + model="seedream5_lite", + prompt_text="x", + ratio="2048:2048", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + text_to_image = await response.parse() + assert_matches_type(TextToImageCreateResponse, text_to_image, path=["response"]) + + @parametrize + async def test_streaming_response_create_overload_7(self, async_client: AsyncRunwayML) -> None: + async with async_client.text_to_image.with_streaming_response.create( + model="seedream5_lite", + prompt_text="x", + ratio="2048:2048", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + text_to_image = await response.parse() + assert_matches_type(TextToImageCreateResponse, text_to_image, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + async def test_method_create_overload_8(self, async_client: AsyncRunwayML) -> None: text_to_image = await async_client.text_to_image.create( model="gemini_2.5_flash", prompt_text="x", @@ -633,7 +829,7 @@ async def test_method_create_overload_6(self, async_client: AsyncRunwayML) -> No assert_matches_type(TextToImageCreateResponse, text_to_image, path=["response"]) @parametrize - async def test_method_create_with_all_params_overload_6(self, async_client: AsyncRunwayML) -> None: + async def test_method_create_with_all_params_overload_8(self, async_client: AsyncRunwayML) -> None: text_to_image = await async_client.text_to_image.create( model="gemini_2.5_flash", prompt_text="x", @@ -648,7 +844,7 @@ async def test_method_create_with_all_params_overload_6(self, async_client: Asyn assert_matches_type(TextToImageCreateResponse, text_to_image, path=["response"]) @parametrize - async def test_raw_response_create_overload_6(self, async_client: AsyncRunwayML) -> None: + async def test_raw_response_create_overload_8(self, async_client: AsyncRunwayML) -> None: response = await async_client.text_to_image.with_raw_response.create( model="gemini_2.5_flash", prompt_text="x", @@ -661,7 +857,7 @@ async def test_raw_response_create_overload_6(self, async_client: AsyncRunwayML) assert_matches_type(TextToImageCreateResponse, text_to_image, path=["response"]) @parametrize - async def test_streaming_response_create_overload_6(self, async_client: AsyncRunwayML) -> None: + async def test_streaming_response_create_overload_8(self, async_client: AsyncRunwayML) -> None: async with async_client.text_to_image.with_streaming_response.create( model="gemini_2.5_flash", prompt_text="x", diff --git a/tests/api_resources/test_text_to_video.py b/tests/api_resources/test_text_to_video.py index fdf5ed8..6ed201a 100644 --- a/tests/api_resources/test_text_to_video.py +++ b/tests/api_resources/test_text_to_video.py @@ -86,6 +86,7 @@ def test_method_create_with_all_params_overload_2(self, client: RunwayML) -> Non ratio="1280:720", audio=True, duration=4, + negative_prompt="x", ) assert_matches_type(TextToVideoCreateResponse, text_to_video, path=["response"]) @@ -134,6 +135,7 @@ def test_method_create_with_all_params_overload_3(self, client: RunwayML) -> Non ratio="1280:720", audio=True, duration=4, + negative_prompt="x", ) assert_matches_type(TextToVideoCreateResponse, text_to_video, path=["response"]) @@ -437,6 +439,17 @@ def test_method_create_overload_9(self, client: RunwayML) -> None: ) assert_matches_type(TextToVideoCreateResponse, text_to_video, path=["response"]) + @parametrize + def test_method_create_with_all_params_overload_9(self, client: RunwayML) -> None: + text_to_video = client.text_to_video.create( + duration=8, + model="veo3", + prompt_text="x", + ratio="1280:720", + negative_prompt="x", + ) + assert_matches_type(TextToVideoCreateResponse, text_to_video, path=["response"]) + @parametrize def test_raw_response_create_overload_9(self, client: RunwayML) -> None: response = client.text_to_video.with_raw_response.create( @@ -542,6 +555,7 @@ async def test_method_create_with_all_params_overload_2(self, async_client: Asyn ratio="1280:720", audio=True, duration=4, + negative_prompt="x", ) assert_matches_type(TextToVideoCreateResponse, text_to_video, path=["response"]) @@ -590,6 +604,7 @@ async def test_method_create_with_all_params_overload_3(self, async_client: Asyn ratio="1280:720", audio=True, duration=4, + negative_prompt="x", ) assert_matches_type(TextToVideoCreateResponse, text_to_video, path=["response"]) @@ -893,6 +908,17 @@ async def test_method_create_overload_9(self, async_client: AsyncRunwayML) -> No ) assert_matches_type(TextToVideoCreateResponse, text_to_video, path=["response"]) + @parametrize + async def test_method_create_with_all_params_overload_9(self, async_client: AsyncRunwayML) -> None: + text_to_video = await async_client.text_to_video.create( + duration=8, + model="veo3", + prompt_text="x", + ratio="1280:720", + negative_prompt="x", + ) + assert_matches_type(TextToVideoCreateResponse, text_to_video, path=["response"]) + @parametrize async def test_raw_response_create_overload_9(self, async_client: AsyncRunwayML) -> None: response = await async_client.text_to_video.with_raw_response.create(