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 của MediaPipe cho phép bạn tạo hình ảnh dựa trên một 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 kỹ thuật khuếch tán.

Tác vụ này chấp nhận một câu lệnh dạng văn bản làm đầu vào, cùng với một hình ảnh điều kiện không bắt buộc mà mô hình có thể tăng cường và sử dụng làm tài liệu tham khảo để tạo. Để biết thêm thông tin về tính năng tạo hình ảnh từ văn bản 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 hình ảnh từ văn bản có điều kiện.

Công cụ 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 bài viết 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 tác vụ này, kèm theo các ví dụ về mã sử dụng mô hình mặc định và các lựa chọn cấu hình được đề xuất:

Chi tiết về việc cần làm

Phần này mô tả các chức năng, đầu vào, đầu ra và lựa 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 nội dung 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 khảo. 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 về những người, đồ vật và phong cách cụ thể bằng câu lệnh dạng văn bản sử dụng trọng số mô hình tuỳ chỉnh.
Đầu vào của tác vụ Kết quả đầu ra của tác vụ
Công cụ tạo ả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 của tính năng tạo
  • Không bắt buộc: hình ảnh điều kiện
Trình tạo hình ảnh sẽ đưa ra các kết quả sau:
  • Hình ảnh được tạo dựa trên thông tin đầ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.

Các lựa chọn về cấu hình

Tác vụ này có các lựa 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ố 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 mộ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 bổ trợ, cho phép người dùng đưa hình ảnh điều kiện vào dữ liệu đầu vào của tác vụ. Mô hình cơ sở có thể tăng cường và sử dụng hình ảnh này làm thông tin tham khảo để 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 và ước tính độ sâu 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ột 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 lựa 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ợ Canny edge sử dụng edgeConditionOptions và trình bổ trợ Độ sâu sử dụng depthConditionOptions.

Các lựa chọn về Canny Edge

Định cấu hình các lựa 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 trễ. Float 100
threshold2 Ngưỡng thứ hai cho quy trình trễ. 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 Có sử dụng chuẩn L2 để tính độ lớn của độ dốc hình ảnh hay không, thay vì chuẩn L1 mặc định. 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 lựa chọn cấu hình này, hãy xem phần Công cụ phát hiện cạnh Canny.

Các lựa chọn về điểm đánh dấu trên khuôn mặt

Định cấu hình các lựa 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 để quá trình 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 số tin cậy tối thiểu của điểm số hiện diện khuôn mặt trong tính năng phát hiện điểm đánh dấu 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 lựa chọn cấu hình này, hãy xem tác vụ Face Landmarker.

Các lựa chọn về chiều sâu

Định cấu hình các lựa 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ở, đó là mô hình AI chuyển văn bản sang hình ảnh sử dụng 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à những 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.

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

Mô hình nền tảng

Các mô hình cơ sở là mô hình khuếch tán tiềm ẩn từ văn bản thành hình ảnh, 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 stable-diffusion-v1-5/stable-diffusion-v1-5 EMA-only, dựa trên mô hình sau:

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

Sau khi tải một mô hình cơ sở xuống, hãy dùng image_generator_converter để chuyển đổi mô hình đó thành định dạng phù 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 dùng kết hợp với một mô hình cơ sở. Các mô hình bổ trợ cho phép Công cụ tạo hình ảnh chấp nhận một hình ảnh điều kiện cùng với một câu lệnh bằng văn bản làm thông tin đầu vào, nhờ đó, bạn có thể 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 những chức 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 khuếch tán trên thiết bị.

Bạn phải chỉ định các mô hình trình bổ trợ trong các lựa chọn cơ bản và có thể cần tải thêm các tệp mô hình. Mỗi trình bổ trợ đều có các yêu cầu riêng đối với hình ảnh điều kiện. Bạn có thể tạo hình ảnh này bằng Trình tạo hình ảnh.

Trình bổ trợ Canny Edge

Ví dụ về đầu ra của hai hình ảnh được tạo bằng cách sử dụng một hình ảnh điều kiện được cung cấp có đường viền gạch rõ ràng và câu lệnh

Trình bổ trợ Canny Edge chấp nhận một 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ầm định của hình ảnh điều kiện và tạo ra một hình ảnh mới dựa trên câu lệnh dạng văn bản. Công cụ tạo hình ảnh có các chức năng tích hợp để tạo hình ảnh có đ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 có các lựa 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 trễ. Float 100
threshold2 Ngưỡng thứ hai cho quy trình trễ. 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 Có sử dụng chuẩn L2 để tính độ lớn của độ dốc hình ảnh hay không, thay vì chuẩn L1 mặc định. 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 lựa chọn cấu hình này, hãy xem phần Công cụ phát hiện cạnh Canny.

Trình bổ trợ Điểm đánh dấu trên khuôn mặt

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

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

Tải trình bổ trợ Dấu hiệu trên khuôn mặt xuống

Trình bổ trợ Điểm đánh dấu khuôn mặt cũng yêu cầu gói mô hình Điểm đánh dấu khuôn mặt để tạo hình ảnh điều kiện. Gói mô hình này cũng là gói được dùng bởi tác vụ Công cụ đánh dấu khuôn mặt.

Tải gói mô hình Điểm đánh dấu trên khuôn mặt xuống

Trình bổ trợ Dấu hiệu trên khuôn mặt có các lựa 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 để quá trình 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 số tin cậy tối thiểu của điểm số hiện diện khuôn mặt trong tính năng phát hiện điểm đánh dấu 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 lựa chọn cấu hình này, hãy xem tác vụ Face Landmarker.

Trình bổ trợ chiều sâu

Ví dụ về đầu ra của 2 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ô để minh hoạ rằng trình bổ trợ Độ sâu có thể tạo ra những hình ảnh giúp tăng độ sâu cho một hình ảnh phẳng

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

Tải trình bổ trợ Độ sâu xuống

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

Tải mô hình Ước tính độ sâu xuống

Trình bổ trợ Độ sâu có các lựa 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ể giúp Trình tạo hình ảnh tạo ra hình ảnh dựa trên các khái niệm cụ thể. Các khái niệm này được xác định bằng các 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 huấn luyện, mô hình có thể tạo ra hình ảnh về khái niệm mới khi mã thông báo được chỉ định trong câu lệnh bằng văn bản.

Để tạo trọng số LoRA, bạn cần huấn luyện một 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ể. Nhờ đó, mô hình có thể 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 về những người và khuôn mặt cụ thể, thì 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à trong tập dữ liệu DreamBooth, sử dụng mã thông báo "monadikos teapot":

Ảnh chân thực được tạo về một chiếc ấ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ột chiếc ấ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 chiếc ấm trà mà mô hình đã học được cách mô tả từ các trọng số LoRA, đồng thời đặt chiếc ấm trà đó vào hình ảnh bên cạnh một chiếc gương theo 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ột mô hình bằng cách áp dụng trọng số LoRA cho một mô hình cơ sở.