@@ -143,6 +143,8 @@ print(response.text)
143143
144144### # 04. Image generation
145145Returns images generated by Gemini.
146+ > [ !NOTE]
147+ > Use GeminiImage for image processing. ` web_images ` works without cookies, but for images like ` generated_image ` from Gemini, pass cookies. Cookies are needed to download images from Google's storage. Check the response or use existing cookies variable.
146148
147149* Sync*
148150``` python
@@ -151,30 +153,39 @@ from gemini import Gemini, GeminiImage
151153response = GeminiClient.generate_content(" Create illustrations of Seoul, South Korea." )
152154generated_images = response.generated_images # Check generated images [Dict]
153155
154- GeminiImage.save_sync(generated_images, save_path = " cached " )
156+ GeminiImage.save_sync(generated_images, save_path = " save_dir " , cookies = cookies )
155157
156158# You can use byte type image dict for printing images as follow:
157- bytes_images_dict = GeminiImage.fetch_images_dict_sync(generated_images, cookies) # Get bytes images dict
158- from IPython.display import display, Image
159- import io
159+ # bytes_images_dict = GeminiImage.fetch_images_dict_sync(generated_images, cookies=cookies) # Get bytes images dict
160+ # GeminiImage.save_images_sync(bytes_images_dict, path="save_dir", cookies=cookies) # Save to path
161+ ```
162+
163+ <details ><summary >Display images in IPython</summary >
164+
165+ ``` python
166+ bytes_images_dict = GeminiImage.fetch_images_dict_sync(generated_images, cookies) # Get bytes images dict
167+ from IPython.display import display, Image
168+ import io
169+
170+ for image_name, image_bytes in bytes_images_dict.items():
171+ print (image_name)
172+ image = Image(data = image_bytes)
173+ display(image)
174+ ```
175+
176+ </details >
160177
161- for image_name, image_bytes in bytes_images_dict.items():
162- print (image_name)
163- image = Image(data = image_bytes)
164- display(image)
165178
166- # GeminiImage.save_images_sync(bytes_images_dict, path="cached") # Save to path
167- ```
168179* Async*
169180
170181``` python
171182response = GeminiClient.generate_content(" Create illustrations of Seoul, South Korea." )
172183
173184generated_images = response.generated_images # Check generated images [Dict]
174185
175- await GeminiImage.save(generated_images, " cached " )
176- # image_data_dict = await GeminiImage.fetch_images_dict(generated_images)
177- # await GeminiImage.save_images(image_data_dict, "cached ")
186+ await GeminiImage.save(generated_images, " save_dir " , cookies = cookies )
187+ # image_data_dict = await GeminiImage.fetch_images_dict(generated_images, cookies=cookies )
188+ # await GeminiImage.save_images(image_data_dict, "save_dir ")
178189```
179190
180191<details ><summary >Async wrapper</summary >
@@ -183,11 +194,11 @@ await GeminiImage.save(generated_images, "cached")
183194import asyncio
184195from gemini import Gemini, GeminiImage
185196
186- async def fetch_and_save_images_async(prompt: str, save_path: str="cached" ):
197+ async def fetch_and_save_images_async(prompt: str, save_path: str="save_dir", cookies=cookies ):
187198 response = await GeminiClient.generate_content_async(prompt)
188199
189200 generated_images = response.generated_images # Check response images [Dict]
190- await GeminiImage.save(generated_images, save_path=save_path)
201+ await GeminiImage.save(generated_images, save_path=save_path, cookies=cookies )
191202
192203# Run the async function
193204if __name__ == "__main__":
@@ -201,11 +212,11 @@ if __name__ == "__main__":
201212import asyncio
202213from gemini import Gemini, GeminiImage
203214
204- async def fetch_and_save_images_async(prompt: str, save_path: str="cached" ):
215+ async def fetch_and_save_images_async(prompt: str, save_path: str="save_dir", cookies ):
205216 response = await GeminiClient.generate_content_async(prompt)
206217
207218 generated_images = response.generated_images # Check response images [Dict]
208- image_data_dict = await GeminiImage.fetch_images_dict(generated_images) # Get bytes images dict asynchronously
219+ image_data_dict = await GeminiImage.fetch_images_dict(generated_images, cookies=cookies ) # Get bytes images dict asynchronously
209220 await GeminiImage.save_images(image_data_dict, save_path=save_path) # Save to path asynchronously
210221
211222# Run the async function
@@ -229,21 +240,21 @@ from gemini import Gemini, GeminiImage
229240response = GeminiClient.generate_content(" Please recommend a travel itinerary for Seoul." )
230241response_images = response.web_images # Check response images [Dict]
231242
232- GeminiImage.save_sync(response_images, save_path = " cached " )
243+ GeminiImage.save_sync(response_images, save_path = " save_dir " )
233244
234245# You can use byte type image dict as follow:
235246# bytes_images_dict = GeminiImage.fetch_bytes_sync(response_images, cookies) # Get bytes images dict
236- # GeminiImage.save_images_sync(bytes_images_dict, path="cached ") # Save to path
247+ # GeminiImage.save_images_sync(bytes_images_dict, path="save_dir ") # Save to path
237248```
238249* Async*
239250``` python
240251response = GeminiClient.generate_content(" Create illustrations of Seoul, South Korea." )
241252
242253response_images = response.web_images # Check generated images [Dict]
243254
244- await GeminiImage.save(response_images, " cached " )
255+ await GeminiImage.save(response_images, " save_dir " )
245256# image_data_dict = await GeminiImage.fetch_images_dict(response_images)
246- # await GeminiImage.save_images(image_data_dict, "cached ")
257+ # await GeminiImage.save_images(image_data_dict, "save_dir ")
247258```
248259
249260<details ><summary >Async wrapper</summary >
@@ -252,11 +263,11 @@ await GeminiImage.save(response_images, "cached")
252263import asyncio
253264from gemini import Gemini, GeminiImage
254265
255- async def fetch_and_save_images_async(prompt: str, save_path: str="cached" ):
266+ async def fetch_and_save_images_async(prompt: str, save_path: str="save_dirs", cookies=cookies ):
256267 response = await GeminiClient.generate_content_async(prompt)
257268
258269 response_images = response.web_images # Check response images [Dict]
259- await GeminiImage.save(response_images, save_path=save_path)
270+ await GeminiImage.save(response_images, save_path=save_path, cookies=cookies )
260271
261272# Run the async function
262273if __name__ == "__main__":
@@ -270,11 +281,11 @@ if __name__ == "__main__":
270281import asyncio
271282from gemini import Gemini, GeminiImage
272283
273- async def fetch_and_save_images_async(prompt: str, save_path: str="cached" ):
284+ async def fetch_and_save_images_async(prompt: str, save_path: str="save_dir", cookies=cookies ):
274285 response = await GeminiClient.generate_content_async(prompt)
275286
276287 response_images = response.web_images # Check response images [Dict]
277- image_data_dict = await GeminiImage.fetch_images_dict(response_images) # Get bytes images dict asynchronously
288+ image_data_dict = await GeminiImage.fetch_images_dict(response_images, cookies=cookies ) # Get bytes images dict asynchronously
278289 await GeminiImage.save_images(image_data_dict, save_path=save_path) # Save to path asynchronously
279290
280291# Run the async function
0 commit comments