今天收到鐵人賽10天鼓勵通知,讓我今天又有一點動力繼續發文了,人還是需要多點鼓勵才有動力。
今天我想分享上課學習的side project-輸入提示詞,請Gemini幫你編輯圖片。
輸入:提示詞(text)、待編輯圖片(image)
輸出:Gemini回覆的訊息(text)、編輯完成圖片(image)
model:gemini-2.0-flash-exp-image-generation
程式碼:
def call_gemini(user_input):
text_input = (user_input,)
gemini_input = [text_input]
client = genai.Client(
api_key=config["Gemini"]["API_KEY"],
)
image = Image.open("static/images/input_image2.jpg")
gemini_input.append(image)
try:
response = client.models.generate_content(
model="gemini-2.0-flash-exp-image-generation",
contents=gemini_input,
config=types.GenerateContentConfig(
response_modalities=["Text", "Image"],
),
)
except Exception as e:
print(e)
return ["text", e["error"]["message"]]
if response.candidates is None:
return [["text", "我不想做這個~~"]]
elif len(response.candidates) == 0:
return [["text", "我並不想幫你做這個~~"]]
elif response.candidates[0].content is None:
return [["text", "我真的沒有想幫你做這個~~"]]
elif response.candidates[0].content.parts is None:
return [["text", "我真的真的不想這麼做~~"]]
else:
return_object = []
for part in response.candidates[0].content.parts:
print("part:", part)
if part.text is not None:
print(part.text)
return_object.append(["text", part.text])
elif part.inline_data is not None:
image = Image.open(BytesIO(part.inline_data.data))
image.save("static/images/gemini_output2.jpg")
filename = "gemini_output.jpg"
return_object.append(["image", filename])
return return_object
user_input = "請幫我在圖片加入粉紅透明愛心等浪漫元素"
call_gemini(user_input)
輸出結果:
我會在圖片中加入許多半透明的粉紅色愛心,讓畫面充滿浪漫的氛圍
坦白說,輸出結果我覺得好醜 XD 也許在提示詞的部分可以更完整,老師說model用高版本的會比較理想,下次再來玩看看。
又活過一天了 :)