Hướng dẫn 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. Nhiệm vụ này sử dụng mô hình từ văn bản đến hình ảnh để tạo hình ảnh bằng kỹ thuật khuếch tán.

Tác vụ chấp nhận lời nhắc dạng văn bản làm thông tin đầ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ể bổ sung và dùng làm thông tin tham chiếu để tạo. Để biết thêm thông tin về quá trình tạo văn bản đến hình ảnh được điều chỉnh, hãy xem phần Trình bổ trợ khuếch tán trên thiết bị để tạo văn bản trên hình ảnh được điều chỉnh.

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

Hãy bắt đầu sử dụng tác vụ này bằng cách làm theo một trong những hướng dẫn triển khai sau 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 của tác vụ này, với các ví dụ về mã có 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, đầ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 nội dung sau:

  1. Tạo văn bản thành hình ảnh – 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 lời nhắc 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 về người, đối tượng và kiểu 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.
Dữ liệu đầu vào của việc cần làm Kết quả đầu ra của nhiệm vụ
Trình 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
  • Từ khóa chính
  • 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ẽ cho ra 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 đã tạo.

Lựa chọn về cấu hình

Tác vụ này có các chế độ cấu hình sau:

Tên lựa chọn Nội dung mô tả Khoảng giá trị
imageGeneratorModelDirectory Thư mục mô hình trình tạo hình ảnh lưu trữ trọng số của mô hình. PATH
loraWeightsFilePath Thiết lập đườ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 Thiết lập một trình nghe lỗi (không bắt buộc). N/A

Tác vụ 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 của tác vụ. Mô hình nền tảng có thể bổ sung và dùng làm tham chiếu cho việc tạo này. Những hình ảnh điều kiện này có thể là điểm mốc của khuôn mặt, đường viền cạnh và số liệu ước tính chiều sâu mà mô hình sẽ sử dụng làm thông tin và ngữ cảnh 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, bạn cũng nên định cấu hình các tuỳ chọn trình bổ trợ. Trình bổ trợ mốc khuôn mặt sử dụng faceConditionOptions, trình bổ trợ Canny cạnh sử dụng edgeConditionOptions và trình bổ trợ Độ sâu sử dụng depthConditionOptions.

Tuỳ chọn Canny Edge

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

Tên lựa chọn Nội dung mô tả Khoảng giá trị Giá trị mặc định
threshold1 Ngưỡng đầu tiên đối với quy trình trì hoãn. Float 100
threshold2 Ngưỡng thứ hai cho quy trình trì hoãn. 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 có dùng định mức L2 để tính độ lớn độ dốc của hình ảnh hay không, thay vì tiêu 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ợ. BaseOptions đối tượng 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 Trình phát hiện cạnh của Canny.

Tuỳ chọn mốc khuôn mặt

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

Tên lựa chọn Nội dung mô tả Khoảng giá trị Giá trị mặc định
minFaceDetectionConfidence Điểm số tin cậy tối thiểu để 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 về sự hiện diện khuôn mặt trong công cụ phát hiện mốc khuôn mặt. Float [0.0,1.0] 0.5
faceModelBaseOptions Đối tượng BaseOptions đặt đường dẫn cho mô hình sẽ tạo hình ảnh điều kiện. BaseOptions đối tượng N/A
FacePluginModelBaseOptions Đối tượng BaseOptions đặt đường dẫn cho mô hình trình bổ trợ. BaseOptions đối tượng 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ụ Khuôn mặt được đánh dấu.

Lựa chọn độ sâu

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

Tên lựa chọn Nội dung mô tả Khoảng giá trị Giá trị mặc định
depthModelBaseOptions Đối tượng BaseOptions đặt đường dẫn cho mô hình sẽ tạo hình ảnh điều kiện. BaseOptions đối tượng N/A
depthPluginModelBaseOptions Đối tượng BaseOptions đặt đường dẫn cho mô hình trình bổ trợ. BaseOptions đối tượng N/A

Mô hình

Trình tạo hình ảnh cần có một mô hình nền tảng. Đây 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 nền tảng được liệt kê trong phần này là các mô hình 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à sẽ 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 các mô hình nền tảng bằng cách sử dụng trọng số LoRA là một lựa chọn hướng dẫn cho mô hình nền tảng về một khái niệm cụ thể, chẳng hạn như đối tượng, người hoặc phong cách và chèn chúng vào các hình ảnh được tạo.

Mô hình nền tảng

Các mô hình nền tảng là mô hình khuếch tán tiềm ẩn từ văn bản sang hình ảnh giúp tạo hình ảnh từ lời nhắc văn bản. Trình tạo hình ảnh yêu cầu mô hình nền tảng 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 đó sang đị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ột 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 lời nhắc văn bản làm dữ liệu đầu vào, giú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 cấu trúc mới lạ dành riêng cho khuếch tán trên thiết bị.

Các mô hình trình bổ trợ phải được chỉ định trong các tuỳ chọn cơ sở và có thể yêu cầu bạn phải tải thêm tệp mô hình 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. Trình tạo hình ảnh có thể tạo yêu cầu này.

Trình bổ trợ Canny Edge

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 nền tảng sử dụng các cạnh được ngụ ý trong hình ảnh điều kiện và tạo một hình ảnh mới dựa trên câu lệnh dạng văn bản. Trình tạo hình ảnh chứa các tính năng tích hợp sẵn để 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 lựa chọn Nội dung mô tả Khoảng giá trị Giá trị mặc định
threshold1 Ngưỡng đầu tiên đối với quy trình trì hoãn. Float 100
threshold2 Ngưỡng thứ hai cho quy trình trì hoãn. 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 có dùng định mức L2 để tính độ lớn độ dốc của hình ảnh hay không, thay vì tiêu 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ợ. BaseOptions đối tượng 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 Trình phát hiện cạnh của Canny.

Trình bổ trợ FaceMốc

Trình bổ trợ Face Mark chấp nhận kết quả từ MediaPipe Face Landmarker làm hình ảnh điều kiện. Điểm đánh dấu khuôn mặt cung cấp 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 khuôn mặt. Mô hình nền tảng sử dụng ánh xạ khuôn mặt được ngụ ý trong hình ảnh điều kiện và tạo ra một khuôn mặt mới trên lưới.

Tải trình bổ trợ mốc khuôn mặt xuống

Trình bổ trợ mốc khuôn mặt cũng yêu cầu gói mô hình Face Chronicleer để tạo hình ảnh điều kiện. Gói mô hình này chính là gói mà tác vụ Facemarker sử dụng.

Tải gói mô hình mốc Khuôn mặt xuống

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

Tên lựa chọn Nội dung mô tả Khoảng giá trị Giá trị mặc định
minFaceDetectionConfidence Điểm số tin cậy tối thiểu để 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 về sự hiện diện khuôn mặt trong công cụ phát hiện mốc khuôn mặt. Float [0.0,1.0] 0.5
faceModelBaseOptions Đối tượng BaseOptions đặt đường dẫn cho mô hình sẽ tạo hình ảnh điều kiện. BaseOptions đối tượng N/A
FacePluginModelBaseOptions Đối tượng BaseOptions đặt đường dẫn cho mô hình trình bổ trợ. BaseOptions đối tượng 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ụ Khuôn mặt được đánh dấu.

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

Trình bổ trợ độ sâu chấp nhận hình ảnh điều kiện chỉ định độ sâu bằng một mắt của đối tượng. Mô hình nền tảng sử dụng hình ảnh điều kiện để dự đoán kích thước và chiều sâu của đối tượng cần tạo và 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 Tải xuống

Trình bổ trợ Độ sâu cũng yêu cầu 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 chiều sâu xuống

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

Tên lựa chọn Nội dung mô tả Khoảng giá trị Giá trị mặc định
depthModelBaseOptions Đối tượng BaseOptions đặt đường dẫn cho mô hình sẽ tạo hình ảnh điều kiện. BaseOptions đối tượng N/A
depthPluginModelBaseOptions Đối tượng BaseOptions đặt đường dẫn cho mô hình trình bổ trợ. BaseOptions đối tượng 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 trọng số LoRA mới sau khi huấn luyện, 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 lời nhắc dạng văn bản.

Việc tạo trọng số LoRA yêu cầu huấn luyện một mô hình nền tảng trên hình ảnh của một đối tượng, người hoặc phong cách cụ thể. Việc này cho phép mô hình này 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 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 dựa trên hình ảnh của ấm trà trong tập dữ liệuDreamBooth, sử dụng mã thông báo "monadikos Teapot":

Lời nhắc: một ấm trà monadikos bên cạnh gương

Mô hình tuỳ chỉnh đã nhận được mã thông báo trong lời nhắc và chèn một ấm trà mà mô hình đã học được để 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 theo yêu cầu trong lời nhắc.

LoRA với Vertex AI

Để biết thêm thông tin, hãy xem hướng dẫn tuỳ chỉnh, trong đó sử dụng Mô hình Vườn 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 nền tảng.