Tạo hình ảnh bằng Imagen 3

API Gemini cung cấp quyền truy cập vào Imagen 3, mô hình tạo hình ảnh hiện đại của Google. Khi sử dụng Imagen, bạn có thể tạo hình ảnh mới lạ từ các câu lệnh dạng văn bản. Việc tích hợp API Gemini với Imagen được thiết kế để giúp bạn xây dựng các ứng dụng AI thế hệ mới, giúp chuyển đổi lời nhắc của người dùng thành các thành phần hình ảnh chất lượng cao chỉ trong vài giây.

Hướng dẫn này sẽ giúp bạn bắt đầu sử dụng Imagen bằng SDK Gemini API Python.

Giới thiệu về Imagen 3

Imagen 3 là mô hình chuyển văn bản thành hình ảnh chất lượng cao nhất của Google, có một số tính năng mới và cải tiến. Imagen 3 có thể làm những việc sau:

  • Tạo hình ảnh có chi tiết tốt hơn, ánh sáng phong phú hơn và ít cấu trúc lạ gây mất tập trung hơn so với các mô hình trước.
  • Hiểu được câu lệnh được viết bằng ngôn ngữ tự nhiên, hằng ngày, giúp dễ dàng tạo ra kết quả được căn chỉnh mà không cần kỹ thuật câu lệnh phức tạp.
  • Tạo hình ảnh ở nhiều định dạng và phong cách, từ phong cảnh chân thực đến tranh sơn dầu có hoạ tiết phong phú hoặc cảnh hoạt hình đất sét độc đáo.
  • Kết xuất văn bản hiệu quả hơn so với các mô hình trước, mở ra nhiều khả năng mới cho các trường hợp sử dụng như thiệp sinh nhật, bản trình bày được tạo kiểu, v.v.

Imagen 3 được xây dựng bằng các cải tiến mới nhất của Google về sự an toàn và trách nhiệm, từ việc phát triển dữ liệu và mô hình cho đến hoạt động sản xuất. Nhóm Google DeepMind đã sử dụng tính năng lọc và gắn nhãn dữ liệu rộng rãi để giảm thiểu nội dung gây hại trong các tập dữ liệu và giảm khả năng xuất ra kết quả gây hại. Nhóm này cũng tiến hành quy trình đội nhóm đỏ và đánh giá về các chủ đề như sự công bằng, thiên kiến và an toàn về nội dung.

Để tìm hiểu thêm và xem kết quả mẫu, hãy xem Tổng quan về Google DeepMind Imagen 3.

Trước khi bắt đầu: Thiết lập dự án và khoá API

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

Trước khi gọi API Gemini, bạn cần thiết lập dự án và định cấu hình khoá API.

Tạo hình ảnh

Phần này hướng dẫn bạn cách tạo bản sao của mô hình Imagen và tạo hình ảnh.

Để chạy mã ví dụ, trước tiên, bạn phải cài đặt Pillow:

pip install --upgrade Pillow

Sau đó, khi đã cài đặt Pillow và SDK Python, bạn có thể sử dụng mã sau để tạo hình ảnh:

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()

Sổ tay sẽ hiển thị 4 hình ảnh tương tự như hình ảnh sau:

Hình ảnh do AI tạo về hai chú thỏ nhồi bông trong bếp

Thông số mô hình Imagen

generate_images() có các tham số sau:

  • prompt: Lời nhắc văn bản cho hình ảnh.
  • negative_prompt: Nội dung mô tả những gì bạn muốn bỏ qua trong hình ảnh được tạo. Giá trị mặc định là không có.

    Ví dụ: hãy xem xét câu lệnh "một con đường thành phố mưa vào ban đêm không có người". Mô hình có thể diễn giải "người" là một lệnh về nội dung cần đưa vào thay vì bỏ qua. Để tạo ra kết quả tốt hơn, bạn có thể sử dụng câu lệnh "một con đường thành phố vào ban đêm khi trời mưa" với câu lệnh phủ định "người".

  • number_of_images: Số lượng hình ảnh cần tạo, từ 1 đến 4 (bao gồm cả 1 và 4). Giá trị mặc định là 4.

  • aspect_ratio: Thay đổi tỷ lệ khung hình của hình ảnh đã tạo. Các giá trị được hỗ trợ là "1:1", "3:4", "4:3", "9:16""16:9". Giá trị mặc định là "1:1".

  • safety_filter_level: Thêm cấp độ bộ lọc vào tính năng lọc an toàn. Các giá trị sau đây là hợp lệ:

    • "block_low_and_above": Chặn khi điểm xác suất hoặc điểm mức độ nghiêm trọng là LOW, MEDIUM hoặc HIGH.
    • "block_medium_and_above": Chặn khi điểm xác suất hoặc điểm mức độ nghiêm trọng là MEDIUM hoặc HIGH.
    • "block_only_high": Chặn khi điểm xác suất hoặc điểm mức độ nghiêm trọng là HIGH.
  • person_generation: Cho phép mô hình tạo hình ảnh của con người. Các giá trị sau đây được hỗ trợ:

    • "dont_allow": Chặn việc tạo hình ảnh của con người.
    • "allow_adult": Tạo hình ảnh người lớn, chứ không phải trẻ em.

Ngôn ngữ của câu lệnh văn bản

Các ngôn ngữ lời nhắc nhập văn bản sau đây được hỗ trợ:

  • Tiếng Trung (giản thể) (zh/zh-CN)
  • Tiếng Trung (phồn thể) (zh-TW)
  • Tiếng Anh (en)
  • Tiếng Hindi (hi)
  • Tiếng Nhật (ja)
  • Tiếng Hàn (ko)
  • Tiếng Bồ Đào Nha (pt)
  • Tiếng Tây Ban Nha (es)

Bước tiếp theo

Imagen 3 trong Gemini API đang ở giai đoạn tiếp cận sớm. Hãy chú ý theo dõi thông báo về trạng thái của tính năng này.