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:
- Android – Ví dụ về mã – Hướng dẫn
- Tuỳ chỉnh bằng LoRA – Mã mẫu – Colab
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:
- 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.
- 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.
- 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:
|
Trình tạo hình ảnh sẽ trả về các kết quả sau:
|
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
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
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
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.
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":
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.
Để 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ở.