1212
1313from __future__ import annotations
1414
15+ from typing import Optional
16+ from typing_extensions import Literal , overload
17+
1518import httpx
1619
20+ from ..._types import NOT_GIVEN , NotGiven
1721from ..._base_client import make_request_options
1822from ..._utils ._utils import apikey_required , async_apikey_required
1923from ..._resource import SyncAPIResource , AsyncAPIResource
20- from ...types .images import ImagesResponse
24+ from ...types .images import SequentialImageGenerationOptions , ImagesResponse
25+ from ...types .images .image_gen_stream_event import ImageGenStreamEvent
2126from ..._types import Body , Query , Headers
27+ from ..._streaming import Stream
2228
2329
2430class Images (SyncAPIResource ):
31+ @overload
32+ def generate (
33+ self ,
34+ * ,
35+ model : str ,
36+ prompt : str ,
37+ image : str | list [str ] | None = None ,
38+ response_format : str | None = None ,
39+ size : str | None = None ,
40+ seed : int | None = None ,
41+ guidance_scale : float | None = None ,
42+ watermark : bool | None = None ,
43+ optimize_prompt : bool | None = None ,
44+ extra_headers : Headers | None = None ,
45+ extra_query : Query | None = None ,
46+ extra_body : Body | None = None ,
47+ timeout : float | httpx .Timeout | None = None ,
48+ sequential_image_generation : str | None = None ,
49+ sequential_image_generation_options : SequentialImageGenerationOptions | None = None ,
50+ stream : Optional [Literal [False ]] | NotGiven = NOT_GIVEN ,
51+ ) -> ImagesResponse :
52+ ...
53+
54+ """
55+ ImageSequenceGeneration:
56+ Controls whether the multi-image feature is enforced
57+ - Enum values:
58+ - auto: Automatic mode; the model decides whether to return multiple images and how many based on the user's prompt
59+ - disabled: Disables multi-image; the model generates only a single image
60+ """
61+
62+
63+ @overload
64+ def generate (
65+ self ,
66+ * ,
67+ model : str ,
68+ prompt : str ,
69+ image : str | list [str ] | None = None ,
70+ response_format : str | None = None ,
71+ size : str | None = None ,
72+ seed : int | None = None ,
73+ guidance_scale : float | None = None ,
74+ watermark : bool | None = None ,
75+ optimize_prompt : bool | None = None ,
76+ extra_headers : Headers | None = None ,
77+ extra_query : Query | None = None ,
78+ extra_body : Body | None = None ,
79+ timeout : float | httpx .Timeout | None = None ,
80+ sequential_image_generation : str | None = None ,
81+ sequential_image_generation_options : SequentialImageGenerationOptions | None = None ,
82+ stream : Literal [True ],
83+ ) -> Stream [ImageGenStreamEvent ]:
84+ ...
85+
86+ @overload
87+ def generate (
88+ self ,
89+ * ,
90+ model : str ,
91+ prompt : str ,
92+ image : str | list [str ] | None = None ,
93+ response_format : str | None = None ,
94+ size : str | None = None ,
95+ seed : int | None = None ,
96+ guidance_scale : float | None = None ,
97+ watermark : bool | None = None ,
98+ optimize_prompt : bool | None = None ,
99+ extra_headers : Headers | None = None ,
100+ extra_query : Query | None = None ,
101+ extra_body : Body | None = None ,
102+ timeout : float | httpx .Timeout | None = None ,
103+ sequential_image_generation : str | None = None ,
104+ sequential_image_generation_options : SequentialImageGenerationOptions | None = None ,
105+ stream : bool ,
106+ ) -> ImagesResponse | Stream [ImageGenStreamEvent ]:
107+ ...
108+
25109 @apikey_required
26110 def generate (
27111 self ,
28112 * ,
29113 model : str ,
30114 prompt : str ,
31- image : str | None = None ,
115+ image : str | list [ str ] | None = None ,
32116 response_format : str | None = None ,
33117 size : str | None = None ,
34118 seed : int | None = None ,
@@ -39,6 +123,9 @@ def generate(
39123 extra_query : Query | None = None ,
40124 extra_body : Body | None = None ,
41125 timeout : float | httpx .Timeout | None = None ,
126+ sequential_image_generation : str | None = None ,
127+ sequential_image_generation_options : SequentialImageGenerationOptions | None = None ,
128+ stream : Optional [Literal [False ]] | Literal [True ] | NotGiven = NOT_GIVEN ,
42129 ) -> ImagesResponse :
43130 resp = self ._post (
44131 "/images/generations" ,
@@ -52,6 +139,9 @@ def generate(
52139 "guidance_scale" : guidance_scale ,
53140 "watermark" : watermark ,
54141 "optimize_prompt" : optimize_prompt ,
142+ "sequential_image_generation" : sequential_image_generation ,
143+ "sequential_image_generation_options" : sequential_image_generation_options .model_dump (mode = 'json' ),
144+ "stream" : stream ,
55145 },
56146 options = make_request_options (
57147 extra_headers = extra_headers ,
@@ -60,19 +150,90 @@ def generate(
60150 timeout = timeout ,
61151 ),
62152 cast_to = ImagesResponse ,
153+ stream = stream or False ,
154+ stream_cls = Stream [ImageGenStreamEvent ],
63155 )
64156
65157 return resp
66158
67159
68160class AsyncImages (AsyncAPIResource ):
161+ @overload
162+ async def generate (
163+ self ,
164+ * ,
165+ model : str ,
166+ prompt : str ,
167+ image : str | list [str ] | None = None ,
168+ response_format : str | None = None ,
169+ size : str | None = None ,
170+ seed : int | None = None ,
171+ guidance_scale : float | None = None ,
172+ watermark : bool | None = None ,
173+ optimize_prompt : bool | None = None ,
174+ extra_headers : Headers | None = None ,
175+ extra_query : Query | None = None ,
176+ extra_body : Body | None = None ,
177+ timeout : float | httpx .Timeout | None = None ,
178+ sequential_image_generation : str | None = None ,
179+ sequential_image_generation_options : SequentialImageGenerationOptions | None = None ,
180+ stream : Optional [Literal [False ]] | NotGiven = NOT_GIVEN ,
181+ ) -> ImagesResponse :
182+ ...
183+
184+ @overload
185+ async def generate (
186+ self ,
187+ * ,
188+ model : str ,
189+ prompt : str ,
190+ image : str | list [str ] | None = None ,
191+ response_format : str | None = None ,
192+ size : str | None = None ,
193+ seed : int | None = None ,
194+ guidance_scale : float | None = None ,
195+ watermark : bool | None = None ,
196+ optimize_prompt : bool | None = None ,
197+ extra_headers : Headers | None = None ,
198+ extra_query : Query | None = None ,
199+ extra_body : Body | None = None ,
200+ timeout : float | httpx .Timeout | None = None ,
201+ sequential_image_generation : str | None = None ,
202+ sequential_image_generation_options : SequentialImageGenerationOptions | None = None ,
203+ stream : Literal [True ],
204+ ) -> Stream [ImageGenStreamEvent ]:
205+ ...
206+
207+ @overload
208+ async def generate (
209+ self ,
210+ * ,
211+ model : str ,
212+ prompt : str ,
213+ image : str | list [str ] | None = None ,
214+ response_format : str | None = None ,
215+ size : str | None = None ,
216+ seed : int | None = None ,
217+ guidance_scale : float | None = None ,
218+ watermark : bool | None = None ,
219+ optimize_prompt : bool | None = None ,
220+ extra_headers : Headers | None = None ,
221+ extra_query : Query | None = None ,
222+ extra_body : Body | None = None ,
223+ timeout : float | httpx .Timeout | None = None ,
224+ sequential_image_generation : str | None = None ,
225+ sequential_image_generation_options : SequentialImageGenerationOptions | None = None ,
226+ stream : bool ,
227+ ) -> ImagesResponse | Stream [ImageGenStreamEvent ]:
228+ ...
229+
69230 @async_apikey_required
70231 async def generate (
71232 self ,
72233 * ,
73234 model : str ,
74235 prompt : str ,
75- image : str | None = None ,
236+ image : str | list [ str ] | None = None ,
76237 response_format : str | None = None ,
77238 size : str | None = None ,
78239 seed : int | None = None ,
@@ -83,7 +244,10 @@ async def generate(
83244 extra_query : Query | None = None ,
84245 extra_body : Body | None = None ,
85246 timeout : float | httpx .Timeout | None = None ,
86- ) -> ImagesResponse :
247+ sequential_image_generation : str | None = None ,
248+ sequential_image_generation_options : SequentialImageGenerationOptions | None = None ,
249+ stream : Optional [Literal [False ]] | Literal [True ] | NotGiven = NOT_GIVEN ,
250+ ) -> ImagesResponse | Stream [ImageGenStreamEvent ]:
87251 return await self ._post (
88252 "/images/generations" ,
89253 body = {
@@ -96,6 +260,8 @@ async def generate(
96260 "guidance_scale" : guidance_scale ,
97261 "watermark" : watermark ,
98262 "optimize_prompt" : optimize_prompt ,
263+ "sequential_image_generation" : sequential_image_generation ,
264+ "sequential_image_generation_options" : sequential_image_generation_options ,
99265 },
100266 options = make_request_options (
101267 extra_headers = extra_headers ,
@@ -104,4 +270,6 @@ async def generate(
104270 timeout = timeout ,
105271 ),
106272 cast_to = ImagesResponse ,
273+ stream = stream or False ,
274+ stream_cls = Stream [ImageGenStreamEvent ],
107275 )
0 commit comments