สร้างรูปภาพโดยใช้ Imagen 3

Gemini API ให้สิทธิ์เข้าถึง Imagen 3 ซึ่งเป็นโมเดลการสร้างรูปภาพล้ำสมัยของ Google เมื่อใช้ Imagen คุณสามารถสร้างรูปภาพใหม่ๆ จากพรอมต์ข้อความได้ การผสานรวม Gemini API กับ Imagen ออกแบบมาเพื่อช่วยคุณสร้างแอปพลิเคชัน AI รุ่นถัดไปที่เปลี่ยนพรอมต์ของผู้ใช้ให้เป็นเนื้อหาภาพคุณภาพสูงในเวลาไม่กี่วินาที

คู่มือนี้จะช่วยคุณเริ่มต้นใช้งาน Imagen โดยใช้ Gemini API Python SDK

เกี่ยวกับภาพ 3

Imagen 3 เป็นโมเดลการเปลี่ยนข้อความเป็นรูปภาพคุณภาพสูงสุดของ Google ซึ่งมีความสามารถใหม่ๆ และความสามารถที่ปรับปรุงแล้วมากมาย Imagen 3 สามารถทำสิ่งต่อไปนี้

  • สร้างรูปภาพที่มีรายละเอียดดีขึ้น แสงสว่างมากขึ้น และข้อบกพร่องที่รบกวนสายตาน้อยลงกว่าโมเดลก่อนหน้านี้
  • ทําความเข้าใจพรอมต์ที่เขียนเป็นภาษาธรรมชาติที่ใช้ในชีวิตประจำวัน ซึ่งช่วยให้สร้างเอาต์พุตที่สอดคล้องกับพรอมต์ได้ง่ายขึ้นโดยไม่ต้องมีการออกแบบพรอมต์ที่ซับซ้อน
  • สร้างรูปภาพในหลากหลายรูปแบบและสไตล์ ตั้งแต่ภาพทิวทัศน์แบบภาพถ่ายสมจริงไปจนถึงภาพวาดสีน้ำมันที่มีพื้นผิวสมจริง หรือฉากตัวการ์ตูนดินน้ำมันตลกๆ
  • แสดงผลข้อความได้อย่างมีประสิทธิภาพมากกว่ารุ่นก่อนหน้า ซึ่งเป็นการเปิดความเป็นไปได้ใหม่ๆ สำหรับกรณีการใช้งานต่างๆ เช่น การ์ดวันเกิดที่มีสไตล์ งานนำเสนอ และอื่นๆ

Imagen 3 สร้างขึ้นด้วยนวัตกรรมด้านความปลอดภัยและความรับผิดชอบล่าสุดของ Google ตั้งแต่การพัฒนาข้อมูลและโมเดลไปจนถึงการใช้งานจริง ทีม Google DeepMind ใช้การกรองและการติดป้ายกำกับข้อมูลอย่างละเอียดเพื่อลดเนื้อหาที่เป็นอันตรายในชุดข้อมูลและลดโอกาสที่จะมีเอาต์พุตที่เป็นอันตราย นอกจากนี้ ทีมยังทําการทดสอบกับทีมตรวจสอบและประเมินหัวข้อต่างๆ เช่น ความเป็นธรรม ความลำเอียง และความปลอดภัยของเนื้อหา

ดูข้อมูลเพิ่มเติมและดูตัวอย่างเอาต์พุตได้ที่ภาพรวมของ Google DeepMind Imagen 3

ก่อนเริ่มต้น: ตั้งค่าโปรเจ็กต์และคีย์ API

pip install -U git+https://github.com/google-gemini/generative-ai-python@imagen

คุณต้องตั้งค่าโปรเจ็กต์และกำหนดค่าคีย์ API ก่อนเรียกใช้ Gemini API

สร้างรูปภาพ

ส่วนนี้จะแสดงวิธีสร้างอินสแตนซ์โมเดล Imagen และสร้างรูปภาพ

หากต้องการเรียกใช้โค้ดตัวอย่าง คุณต้องติดตั้ง Pillow ก่อน

pip install --upgrade Pillow

จากนั้นเมื่อติดตั้ง Pillow และ Python SDK แล้ว คุณจะใช้โค้ดต่อไปนี้เพื่อสร้างรูปภาพได้

import os
import google.generativeai as genai

genai.configure(api_key=os.environ['API_KEY'])

imagen = genai.ImageGenerationModel("imagen-3.0-generate-001")

result = imagen.generate_images(
    prompt="Fuzzy bunnies in my kitchen",
    number_of_images=4,
    safety_filter_level="block_only_high",
    person_generation="allow_adult",
    aspect_ratio="3:4",
    negative_prompt="Outside",
)

for image in result.images:
  print(image)

# The output should look similar to this:
# <vertexai.preview.vision_models.GeneratedImage object at 0x78f3396ef370>
# <vertexai.preview.vision_models.GeneratedImage object at 0x78f3396ef700>
# <vertexai.preview.vision_models.GeneratedImage object at 0x78f33953c2b0>
# <vertexai.preview.vision_models.GeneratedImage object at 0x78f33953c280>

for image in result.images:
  # Open and display the image using your local operating system.
  image._pil_image.show()

โน้ตบุ๊กควรแสดงรูปภาพ 4 รูปที่คล้ายกับรูปภาพนี้

รูปภาพกระต่ายขนปุกปุย 2 ตัวในครัวที่ AI สร้างขึ้น

พารามิเตอร์โมเดลอิมเมจ

พารามิเตอร์ต่อไปนี้พร้อมใช้งานสําหรับ generate_images()

  • prompt: ข้อความพรอมต์สำหรับรูปภาพ
  • negative_prompt: คำอธิบายสิ่งที่คุณต้องการละเว้นในรูปภาพที่สร้างขึ้น ค่าเริ่มต้นคือไม่มี

    เช่น ลองพิจารณาการแจ้งเตือน "ถนนในเมืองที่ฝนตกตอนกลางคืนไม่มีคนอยู่" โมเดลอาจตีความ "people" เป็นคำสั่งว่าให้รวมสิ่งใดแทนการละเว้น เพื่อให้ได้ผลลัพธ์ที่ดีขึ้น คุณสามารถใช้พรอมต์ "ถนนในเมืองที่ฝนตกตอนกลางคืน" พร้อมพรอมต์เชิงลบ "ผู้คน"

  • number_of_images: จำนวนรูปภาพที่จะสร้าง ตั้งแต่ 1 ถึง 4 (รวม) ค่าเริ่มต้นคือ 4

  • aspect_ratio: เปลี่ยนสัดส่วนภาพของรูปภาพที่สร้างขึ้น ค่าที่รองรับคือ "1:1", "3:4", "4:3", "9:16" และ "16:9" โดยมีค่าเริ่มต้นเป็น "1:1"

  • safety_filter_level: เพิ่มระดับตัวกรองให้กับการกรองเพื่อความปลอดภัย ค่าที่ใช้ได้มีดังนี้

    • "block_low_and_above": บล็อกเมื่อคะแนนความน่าจะเป็นหรือคะแนนความรุนแรงเป็น LOW, MEDIUM หรือ HIGH
    • "block_medium_and_above": บล็อกเมื่อคะแนนความน่าจะเป็นหรือคะแนนความรุนแรงเป็น MEDIUM หรือ HIGH
    • "block_only_high": บล็อกเมื่อคะแนนความน่าจะเป็นหรือคะแนนความรุนแรงเท่ากับ HIGH
  • person_generation: อนุญาตให้โมเดลสร้างรูปภาพคน ค่าที่รองรับมีดังนี้

    • "dont_allow": บล็อกการสร้างรูปภาพคน
    • "allow_adult": สร้างรูปภาพผู้ใหญ่ แต่ไม่ใช่รูปภาพเด็ก

ภาษาของข้อความพรอมต์

ระบบรองรับภาษาพรอมต์ข้อความอินพุตต่อไปนี้

  • จีน (ตัวย่อ) (zh/zh-CN)
  • จีน (ดั้งเดิม) (zh-TW)
  • อังกฤษ (en)
  • ฮินดี (hi)
  • ญี่ปุ่น (ja)
  • เกาหลี (ko)
  • โปรตุเกส (pt)
  • สเปน (es)

ขั้นตอนถัดไป

Imagen 3 ใน Gemini API อยู่ในช่วงทดลองใช้ก่อนเปิดตัว โปรดติดตามการประกาศเกี่ยวกับสถานะของฟีเจอร์