Skip to content
This repository was archived by the owner on Jun 12, 2024. It is now read-only.

Commit 9050a0c

Browse files
authored
doc: update readme
1 parent dc227a7 commit 9050a0c

File tree

1 file changed

+36
-25
lines changed

1 file changed

+36
-25
lines changed

README.md

Lines changed: 36 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,8 @@ print(response.text)
143143

144144
### # 04. Image generation
145145
Returns 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
151153
response = GeminiClient.generate_content("Create illustrations of Seoul, South Korea.")
152154
generated_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
171182
response = GeminiClient.generate_content("Create illustrations of Seoul, South Korea.")
172183

173184
generated_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")
183194
import asyncio
184195
from 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
193204
if __name__ == "__main__":
@@ -201,11 +212,11 @@ if __name__ == "__main__":
201212
import asyncio
202213
from 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
229240
response = GeminiClient.generate_content("Please recommend a travel itinerary for Seoul.")
230241
response_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
240251
response = GeminiClient.generate_content("Create illustrations of Seoul, South Korea.")
241252

242253
response_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")
252263
import asyncio
253264
from 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
262273
if __name__ == "__main__":
@@ -270,11 +281,11 @@ if __name__ == "__main__":
270281
import asyncio
271282
from 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

Comments
 (0)