Hướng dẫn tạo hình ảnh

Tác vụ của trình tạo hình ảnh

Tác vụ Trình tạo hình ảnh MediaPipe cho phép bạn tạo hình ảnh dựa trên câu lệnh dạng văn bản. Tác vụ này sử dụng mô hình chuyển văn bản sang hình ảnh để tạo hình ảnh bằng các kỹ thuật khuếch tán.

Tác vụ này chấp nhận câu lệnh dạng văn bản làm dữ liệu đầu vào, cùng với hình ảnh điều kiện không bắt buộc mà mô hình có thể mở rộng và sử dụng làm tham chiếu để tạo. Để biết thêm về việc tạo văn bản thành hình ảnh có điều kiện, hãy xem bài viết Trình bổ trợ khuếch tán trên thiết bị để tạo văn bản thành hình ảnh có điều kiện.

Trình tạo hình ảnh cũng có thể tạo hình ảnh dựa trên các khái niệm cụ thể được cung cấp cho mô hình trong quá trình huấn luyện hoặc huấn luyện lại. Để biết thêm thông tin, hãy xem phần tuỳ chỉnh bằng LoRA.

Bắt đầu

Bắt đầu sử dụng tác vụ này bằng cách làm theo một trong các hướng dẫn triển khai sau đây cho nền tảng mục tiêu của bạn. Các hướng dẫn dành riêng cho nền tảng này sẽ hướng dẫn bạn cách triển khai cơ bản nhiệm vụ này, với các ví dụ về mã sử dụng mô hình mặc định và các tuỳ chọn cấu hình được đề xuất:

Thông tin chi tiết về việc cần làm

Phần này mô tả các tính năng, dữ liệu đầu vào, dữ liệu đầu ra và tuỳ chọn cấu hình của tác vụ này.

Tính năng

Bạn có thể sử dụng Trình tạo hình ảnh để triển khai những việc sau:

  1. Tạo hình ảnh từ văn bản – Tạo hình ảnh bằng câu lệnh dạng văn bản.
  2. Tạo hình ảnh bằng hình ảnh điều kiện – Tạo hình ảnh bằng câu lệnh dạng văn bản và hình ảnh tham chiếu. Trình tạo hình ảnh sử dụng hình ảnh điều kiện theo cách tương tự như ControlNet.
  3. Tạo hình ảnh bằng trọng số LoRA – Tạo hình ảnh của những người, đối tượng và kiểu cụ thể bằng câu lệnh dạng văn bản bằng cách sử dụng trọng số mô hình tuỳ chỉnh.
Dữ liệu đầu vào của việc cần làm Kết quả của tác vụ
Công cụ tạo hình ảnh chấp nhận các dữ liệu đầu vào sau:
  • Lời nhắc dạng văn bản
  • Hạt
  • Số lần lặp lại tạo sinh
  • Không bắt buộc: hình ảnh tình trạng
Trình tạo hình ảnh sẽ trả về các kết quả sau:
  • Hình ảnh được tạo dựa trên dữ liệu đầu vào.
  • Không bắt buộc: Ảnh chụp nhanh lặp lại của hình ảnh được tạo.

Tuỳ chọn cấu hình

Tác vụ này có các tuỳ chọn cấu hình sau:

Tên tuỳ chọn Mô tả Phạm vi giá trị
imageGeneratorModelDirectory Thư mục mô hình trình tạo hình ảnh lưu trữ các trọng số của mô hình. PATH
loraWeightsFilePath Đặt đường dẫn đến tệp trọng số LoRA. Không bắt buộc và chỉ áp dụng nếu mô hình được tuỳ chỉnh bằng LoRA. PATH
errorListener Đặt trình nghe lỗi không bắt buộc. N/A

Tác vụ này cũng hỗ trợ các mô hình trình bổ trợ, cho phép người dùng đưa hình ảnh điều kiện vào đầu vào tác vụ. Mô hình nền tảng có thể mở rộng và sử dụng hình ảnh này làm tham chiếu để tạo. Những hình ảnh điều kiện này có thể là các điểm đánh dấu trên khuôn mặt, đường viền cạnh và độ sâu ước tính mà mô hình sử dụng làm ngữ cảnh và thông tin bổ sung để tạo hình ảnh.

Khi thêm mô hình trình bổ trợ vào mô hình nền tảng, hãy định cấu hình các tuỳ chọn trình bổ trợ. Trình bổ trợ Điểm đánh dấu trên khuôn mặt sử dụng faceConditionOptions, trình bổ trợ Cạnh Canny sử dụng edgeConditionOptions và trình bổ trợ Độ sâu sử dụng depthConditionOptions.

Tuỳ chọn cạnh Canny

Định cấu hình các tuỳ chọn sau trong edgeConditionOptions.

Tên tuỳ chọn Mô tả Phạm vi giá trị Giá trị mặc định
threshold1 Ngưỡng đầu tiên cho quy trình hồi quy. Float 100
threshold2 Ngưỡng thứ hai cho quy trình hồi quy. Float 200
apertureSize Kích thước khẩu độ cho toán tử Sobel. Phạm vi thông thường là từ 3 đến 7. Integer 3
l2Gradient Liệu chuẩn L2 có được dùng để tính toán độ lớn của độ dốc hình ảnh thay vì chuẩn L1 mặc định hay không. BOOLEAN False
EdgePluginModelBaseOptions Đối tượng BaseOptions đặt đường dẫn cho mô hình trình bổ trợ. Đối tượng BaseOptions N/A

Để biết thêm thông tin về cách hoạt động của các tuỳ chọn cấu hình này, hãy xem phần Trình phát hiện cạnh Canny.

Tuỳ chọn về điểm đặc trưng trên khuôn mặt

Định cấu hình các tuỳ chọn sau trong faceConditionOptions.

Tên tuỳ chọn Mô tả Phạm vi giá trị Giá trị mặc định
minFaceDetectionConfidence Điểm tin cậy tối thiểu để tính năng phát hiện khuôn mặt được coi là thành công. Float [0.0,1.0] 0.5
minFacePresenceConfidence Điểm tin cậy tối thiểu của điểm hiện diện khuôn mặt trong tính năng phát hiện điểm đặc trưng trên khuôn mặt. Float [0.0,1.0] 0.5
faceModelBaseOptions Đối tượng BaseOptions đặt đường dẫn cho mô hình tạo hình ảnh điều kiện. Đối tượng BaseOptions N/A
FacePluginModelBaseOptions Đối tượng BaseOptions đặt đường dẫn cho mô hình trình bổ trợ. Đối tượng BaseOptions N/A

Để biết thêm thông tin về cách hoạt động của các tuỳ chọn cấu hình này, hãy xem tác vụ Điểm đánh dấu khuôn mặt.

Tuỳ chọn chiều sâu

Định cấu hình các tuỳ chọn sau trong depthConditionOptions.

Tên tuỳ chọn Mô tả Phạm vi giá trị Giá trị mặc định
depthModelBaseOptions Đối tượng BaseOptions đặt đường dẫn cho mô hình tạo hình ảnh điều kiện. Đối tượng BaseOptions N/A
depthPluginModelBaseOptions Đối tượng BaseOptions đặt đường dẫn cho mô hình trình bổ trợ. Đối tượng BaseOptions N/A

Mô hình

Trình tạo hình ảnh yêu cầu một mô hình cơ sở, đây là mô hình AI chuyển văn bản sang hình ảnh sử dụng các kỹ thuật khuếch tán để tạo hình ảnh mới. Các mô hình cơ sở được liệt kê trong phần này là các mô hình gọn nhẹ được tối ưu hoá để chạy trên điện thoại thông minh cao cấp.

Mô hình trình bổ trợ là không bắt buộc và bổ sung cho các mô hình cơ bản, cho phép người dùng cung cấp thêm hình ảnh điều kiện cùng với lời nhắc văn bản để tạo hình ảnh cụ thể hơn. Tuỳ chỉnh mô hình nền tảng bằng trọng số LoRA là một tuỳ chọn giúp mô hình nền tảng hiểu về một khái niệm cụ thể, chẳng hạn như một đối tượng, người hoặc phong cách, đồng thời chèn các khái niệm đó vào hình ảnh được tạo.

Mô hình nền tảng

Mô hình cơ sở là các mô hình lan truyền văn bản sang hình ảnh tiềm ẩn, tạo hình ảnh từ một câu lệnh dạng văn bản. Trình tạo hình ảnh yêu cầu mô hình cơ sở phải khớp với định dạng mô hình runwayml/stable-diffusion-v1-5 EMA-only, dựa trên mô hình sau:

Các mô hình nền tảng sau đây cũng tương thích với Trình tạo hình ảnh:

Sau khi tải mô hình nền tảng xuống, hãy sử dụng image_generator_converter để chuyển đổi mô hình thành định dạng thích hợp trên thiết bị cho Trình tạo hình ảnh.

Cài đặt các phần phụ thuộc cần thiết:

$ pip install torch typing_extensions numpy Pillow requests pytorch_lightning absl-py

Chạy tập lệnh convert.py:

$ python3 convert.py --ckpt_path <ckpt_path> --output_path <output_path>

Mô hình trình bổ trợ

Các mô hình trình bổ trợ trong phần này do Google phát triển và phải được sử dụng kết hợp với mô hình nền tảng. Mô hình trình bổ trợ cho phép Trình tạo hình ảnh chấp nhận hình ảnh điều kiện cùng với câu lệnh văn bản làm dữ liệu đầu vào, cho phép bạn kiểm soát cấu trúc của hình ảnh được tạo. Các mô hình trình bổ trợ cung cấp các tính năng tương tự như ControlNet, với một cấu trúc mới dành riêng cho quá trình truyền tải trên thiết bị.

Bạn phải chỉ định các mô hình trình bổ trợ trong các tuỳ chọn cơ sở và có thể phải tải các tệp mô hình bổ sung xuống. Mỗi trình bổ trợ có các yêu cầu riêng đối với hình ảnh điều kiện. Hình ảnh này có thể được Trình tạo hình ảnh tạo ra.

Trình bổ trợ Canny Edge

Kết quả mẫu của hai hình ảnh được tạo bằng hình ảnh điều kiện được cung cấp có đường viền rõ ràng của các viên gạch và câu lệnh

Trình bổ trợ Canny Edge chấp nhận hình ảnh điều kiện phác thảo các cạnh dự kiến của hình ảnh được tạo. Mô hình cơ sở sử dụng các cạnh ngụ ý trong hình ảnh điều kiện và tạo hình ảnh mới dựa trên câu lệnh văn bản. Trình tạo hình ảnh chứa các tính năng tích hợp để tạo hình ảnh điều kiện và chỉ yêu cầu tải mô hình trình bổ trợ xuống.

Tải trình bổ trợ Canny Edge xuống

Trình bổ trợ Canny Edge chứa các tuỳ chọn cấu hình sau:

Tên tuỳ chọn Mô tả Phạm vi giá trị Giá trị mặc định
threshold1 Ngưỡng đầu tiên cho quy trình hồi quy. Float 100
threshold2 Ngưỡng thứ hai cho quy trình hồi quy. Float 200
apertureSize Kích thước khẩu độ cho toán tử Sobel. Phạm vi thông thường là từ 3 đến 7. Integer 3
l2Gradient Liệu chuẩn L2 có được dùng để tính toán độ lớn của độ dốc hình ảnh thay vì chuẩn L1 mặc định hay không. BOOLEAN False
EdgePluginModelBaseOptions Đối tượng BaseOptions đặt đường dẫn cho mô hình trình bổ trợ. Đối tượng BaseOptions N/A

Để biết thêm thông tin về cách hoạt động của các tuỳ chọn cấu hình này, hãy xem phần Trình phát hiện cạnh Canny.

Trình bổ trợ Điểm đặc trưng trên khuôn mặt

Ví dụ về kết quả của hai hình ảnh được tạo bằng hình ảnh điều kiện được cung cấp của một khuôn mặt được phác thảo và hai câu lệnh khác nhau để cho thấy rằng cùng một hình ảnh điều kiện có thể được dùng để tạo ra các hình ảnh trông rất khác nhau

Trình bổ trợ Điểm đặc trưng trên khuôn mặt chấp nhận đầu ra từ Điểm đặc trưng trên khuôn mặt của MediaPipe làm hình ảnh điều kiện. Điểm đánh dấu trên khuôn mặt cung cấp một lưới khuôn mặt chi tiết của một khuôn mặt, giúp liên kết sự hiện diện và vị trí của các đặc điểm trên khuôn mặt. Mô hình nền tảng sử dụng bản đồ khuôn mặt được ngụ ý trong hình ảnh tình trạng và tạo một khuôn mặt mới trên lưới.

Tải trình bổ trợ Điểm đặc trưng trên khuôn mặt xuống

Trình bổ trợ Điểm đặc trưng trên khuôn mặt cũng yêu cầu gói mô hình của Trình xác định điểm đặc trưng trên khuôn mặt để tạo hình ảnh tình trạng. Gói mô hình này cũng chính là gói mà tác vụ Face Landmarker (Tìm điểm đặc trưng trên khuôn mặt) sử dụng.

Tải gói mô hình điểm đặc trưng trên khuôn mặt xuống

Trình bổ trợ Điểm đặc trưng trên khuôn mặt chứa các tuỳ chọn cấu hình sau:

Tên tuỳ chọn Mô tả Phạm vi giá trị Giá trị mặc định
minFaceDetectionConfidence Điểm tin cậy tối thiểu để tính năng phát hiện khuôn mặt được coi là thành công. Float [0.0,1.0] 0.5
minFacePresenceConfidence Điểm tin cậy tối thiểu của điểm hiện diện khuôn mặt trong tính năng phát hiện điểm đặc trưng trên khuôn mặt. Float [0.0,1.0] 0.5
faceModelBaseOptions Đối tượng BaseOptions đặt đường dẫn cho mô hình tạo hình ảnh điều kiện. Đối tượng BaseOptions N/A
FacePluginModelBaseOptions Đối tượng BaseOptions đặt đường dẫn cho mô hình trình bổ trợ. Đối tượng BaseOptions N/A

Để biết thêm thông tin về cách hoạt động của các tuỳ chọn cấu hình này, hãy xem tác vụ Điểm đánh dấu khuôn mặt.

Trình bổ trợ độ sâu

Kết quả mẫu của hai hình ảnh được tạo bằng hình ảnh điều kiện được cung cấp cho thấy hình dạng chung của một chiếc ô tô để cho thấy rằng trình bổ trợ Độ sâu có thể tạo hình ảnh giúp tăng độ sâu cho hình ảnh phẳng

Trình bổ trợ Độ sâu chấp nhận hình ảnh điều kiện chỉ định độ sâu đơn mắt của một đối tượng. Mô hình nền tảng sử dụng hình ảnh điều kiện để suy luận kích thước và chiều sâu của đối tượng cần tạo, đồng thời tạo hình ảnh mới dựa trên lời nhắc văn bản.

Tải trình bổ trợ Depth xuống

Trình bổ trợ Chiều sâu cũng yêu cầu một mô hình ước tính Chiều sâu để tạo hình ảnh điều kiện.

Tải mô hình ước tính chiều sâu xuống

Trình bổ trợ Độ sâu chứa các tuỳ chọn cấu hình sau:

Tên tuỳ chọn Mô tả Phạm vi giá trị Giá trị mặc định
depthModelBaseOptions Đối tượng BaseOptions đặt đường dẫn cho mô hình tạo hình ảnh điều kiện. Đối tượng BaseOptions N/A
depthPluginModelBaseOptions Đối tượng BaseOptions đặt đường dẫn cho mô hình trình bổ trợ. Đối tượng BaseOptions N/A

Tuỳ chỉnh bằng LoRA

Việc tuỳ chỉnh mô hình bằng LoRA có thể cho phép Trình tạo hình ảnh tạo hình ảnh dựa trên các khái niệm cụ thể, được xác định bằng mã thông báo duy nhất trong quá trình huấn luyện. Với các trọng số LoRA mới sau khi đào tạo, mô hình có thể tạo hình ảnh của khái niệm mới khi mã thông báo được chỉ định trong câu lệnh dạng văn bản.

Để tạo trọng số LoRA, bạn cần huấn luyện mô hình cơ sở trên hình ảnh của một đối tượng, người hoặc phong cách cụ thể. Điều này cho phép mô hình nhận ra khái niệm mới và áp dụng khái niệm đó khi tạo hình ảnh. Nếu bạn đang tạo trọng số LoRa để tạo hình ảnh của những người và khuôn mặt cụ thể, hãy chỉ sử dụng giải pháp này trên khuôn mặt của bạn hoặc khuôn mặt của những người đã cho phép bạn làm như vậy.

Dưới đây là kết quả của một mô hình tuỳ chỉnh được huấn luyện trên hình ảnh ấm trà từ tập dữ liệu DreamBooth, sử dụng mã thông báo "monadikos teapot":

Hình ảnh chân thực được tạo bằng ảnh chụp một ấm trà đặt trên bàn bên cạnh một chiếc gương gắn trên tường

Câu lệnh: ấm trà monadikos bên cạnh một chiếc gương

Mô hình tuỳ chỉnh đã nhận được mã thông báo trong câu lệnh và chèn một ấm trà mà mô hình đã học được cách mô tả từ các trọng số LoRA, đồng thời đặt hình ảnh đó bên cạnh một chiếc gương như yêu cầu trong câu lệnh.

LoRA với Vertex AI

Để biết thêm thông tin, hãy xem hướng dẫn tuỳ chỉnh. Hướng dẫn này sử dụng Model Garden trên Vertex AI để tuỳ chỉnh mô hình bằng cách áp dụng trọng số LoRA cho mô hình cơ sở.