Diffusers documentation

Tạo có kiểm soát

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.42.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Tạo có kiểm soát

Việc kiểm soát các đầu ra do các mô hình khuếch tán tạo ra đã được cộng đồng theo đuổi từ lâu và hiện là một chủ đề nghiên cứu đang được quan tâm. Trong nhiều mô hình khuếch tán phổ biến, những thay đổi nhỏ trong đầu vào, bao gồm cả hình ảnh và câu lệnh văn bản, có thể làm thay đổi đáng kể đầu ra. Trong một thế giới lý tưởng, chúng ta muốn có khả năng kiểm soát cách ngữ nghĩa được bảo toàn và thay đổi.

Hầu hết các ví dụ về việc bảo toàn ngữ nghĩa đều quy về khả năng ánh xạ chính xác một thay đổi trong đầu vào sang một thay đổi trong đầu ra. Cụ thể, việc thêm một tính từ cho chủ thể trong prompt sẽ giữ nguyên toàn bộ hình ảnh, chỉ thay đổi chủ thể đã được chỉnh sửa. Hoặc, việc tạo biến thể hình ảnh của một chủ thể cụ thể sẽ giữ nguyên tư thế của chủ thể đó.

Ngoài ra, còn có những đặc tính của hình ảnh được tạo ra mà chúng ta muốn tác động đến, vượt ra ngoài việc bảo toàn ngữ nghĩa. Cụ thể, nhìn chung, chúng ta muốn đầu ra của mình có chất lượng tốt, tuân theo một phong cách cụ thể, hoặc mang tính chân thực.

Chúng tôi sẽ tài liệu hóa một số kỹ thuật mà diffusers hỗ trợ để kiểm soát quá trình tạo của các mô hình khuếch tán. Phần lớn là nghiên cứu tiên phong và có thể khá tinh tế. Nếu cần làm rõ điều gì hoặc bạn có đề xuất, đừng ngần ngại mở một GitHub Discussion hoặc một GitHub issue.

Chúng tôi cung cấp giải thích ở mức cao về cách kiểm soát quá trình sinh, cùng với một đoạn trích về các chi tiết kỹ thuật. Để có giải thích chi tiết hơn về các khía cạnh kỹ thuật, các bài báo gốc được liên kết từ các pipeline luôn là nguồn tài liệu tốt nhất.

Tùy thuộc vào trường hợp sử dụng, người dùng nên chọn kỹ thuật phù hợp. Trong nhiều trường hợp, các kỹ thuật này có thể được kết hợp. Ví dụ, có thể kết hợp Textual Inversion với SEGA để cung cấp thêm sự dẫn dắt ngữ nghĩa cho các đầu ra được tạo bằng Textual Inversion.

Trừ khi có ghi chú khác, đây là các kỹ thuật hoạt động với các mô hình hiện có và không yêu cầu trọng số riêng.

  1. InstructPix2Pix
  2. Tham gia và Kích thích
  3. Hướng dẫn ngữ nghĩa
  4. Hướng dẫn về Self-attention
  5. Depth2Image
  6. MultiDiffusion Panorama
  7. DreamBooth
  8. Textual Inversion
  9. ControlNet
  10. Trọng số Prompt
  11. Custom Diffusion
  12. DiffEdit
  13. T2I-Adapter
  14. FABRIC

Để tiện lợi, chúng tôi cung cấp một bảng để chỉ ra phương pháp nào chỉ dùng cho suy luận và phương pháp nào yêu cầu tinh chỉnh/đào tạo.

Phương phápChỉ suy luậnYêu cầu huấn luyện /
tinh chỉnh
Bình luận
InstructPix2Pix✅❌Có thể được
tinh chỉnh thêm để đạt hiệu suất
tốt hơn trên các
hướng dẫn chỉnh sửa cụ thể.
Tham gia và Kích thích✅❌
Hướng dẫn ngữ nghĩa✅❌
Hướng dẫn về Self-attention✅❌
Depth2Image✅❌
MultiDiffusion Panorama✅❌
DreamBooth❌✅
Textual Inversion❌✅
ControlNet✅❌Một ControlNet có thể được
huấn luyện/tinh chỉnh trên
một điều kiện tùy chỉnh.
Trọng số Prompt✅❌
Custom Diffusion❌✅
DiffEdit✅❌
T2I-Adapter✅❌
Fabric✅❌

InstructPix2Pix

Bài báo

InstructPix2Pix được tinh chỉnh từ Stable Diffusion để hỗ trợ chỉnh sửa ảnh đầu vào. Nó nhận một ảnh và một prompt mô tả thao tác chỉnh sửa làm đầu vào, và trả về ảnh đã được chỉnh sửa. InstructPix2Pix được huấn luyện rõ ràng để hoạt động tốt với các prompt kiểu InstructGPT.

Tham gia và Kích hoạt

Bài báo

Attend and Excite cho phép các chủ thể trong prompt được thể hiện trung thực trong hình ảnh cuối cùng.

Một tập hợp các chỉ số token được đưa vào làm đầu vào, tương ứng với các chủ thể trong prompt cần phải xuất hiện trong hình ảnh. Trong quá trình khử nhiễu, mỗi chỉ số token được đảm bảo có ngưỡng chú ý tối thiểu cho ít nhất một patch của hình ảnh. Các latent trung gian được tối ưu hóa lặp đi lặp lại trong quá trình khử nhiễu để tăng cường sự chú ý của token chủ thể bị bỏ qua nhiều nhất cho đến khi ngưỡng chú ý được vượt qua cho tất cả các token chủ thể.

Tương tự như Pix2Pix Zero, Attend and Excite cũng bao gồm một vòng lặp tối ưu hóa nhỏ (giữ nguyên các trọng số đã huấn luyện trước) trong pipeline của nó và có thể yêu cầu nhiều bộ nhớ hơn so với StableDiffusionPipeline thông thường.

Hướng dẫn ngữ nghĩa (SEGA)

Bài báo

SEGA cho phép áp dụng hoặc loại bỏ một hoặc nhiều khái niệm khỏi một hình ảnh. Cường độ của khái niệm cũng có thể được kiểm soát. Ví dụ, khái niệm nụ cười có thể được sử dụng để tăng hoặc giảm dần nụ cười trên một chân dung.

Tương tự như cách classifier free guidance cung cấp sự dẫn dắt thông qua các đầu vào prompt rỗng, SEGA cung cấp sự dẫn dắt trên các prompt khái niệm. Nhiều prompt khái niệm này có thể được áp dụng đồng thời. Mỗi prompt khái niệm có thể thêm hoặc xóa khái niệm của nó tùy thuộc vào việc sự dẫn dắt được áp dụng theo hướng dương hay âm.

Khác với Pix2Pix Zero hoặc Attend and Excite, SEGA tương tác trực tiếp với quá trình khuếch tán thay vì thực hiện bất kỳ tối ưu hóa dựa trên gradient nào.

Hướng dẫn tự chú ý (SAG)

Bài báo

Hướng dẫn Self-attention cải thiện chất lượng tổng thể của hình ảnh.

SAG cung cấp hướng dẫn từ các dự đoán không điều kiện trên các chi tiết tần số cao đến các hình ảnh được điều kiện hoàn toàn. Các chi tiết tần số cao được trích xuất từ các bản đồ tự chú ý (self-attention) của UNet.

Depth2Image

Dự án

Depth2Image được tinh chỉnh từ Stable Diffusion để bảo toàn tốt hơn ngữ nghĩa cho việc biến đổi hình ảnh có điều hướng bằng văn bản.

Nó điều kiện dựa trên ước lượng độ sâu đơn mục của hình ảnh gốc.

MultiDiffusion Panorama

Bài báo

MultiDiffusion Panorama xác định một quy trình tạo mới trên một mô hình khuếch tán đã được huấn luyện trước. Quy trình này kết hợp nhiều phương pháp tạo khuếch tán có thể áp dụng ngay để tạo ra các hình ảnh chất lượng cao và đa dạng. Kết quả tuân theo các điều khiển do người dùng cung cấp, chẳng hạn như tỷ lệ khung hình mong muốn (ví dụ: panorama) và các tín hiệu dẫn hướng không gian, từ các mặt nạ phân đoạn chặt chẽ đến các hộp bao. MultiDiffusion Panorama cho phép bạn tạo ra các hình ảnh chất lượng cao với các tỷ lệ khung hình tùy ý (ví dụ: panorama).

Tinh chỉnh các mô hình của riêng bạn

Ngoài các mô hình được huấn luyện trước, Diffusers còn có các script huấn luyện để tinh chỉnh mô hình trên dữ liệu do người dùng cung cấp.

DreamBooth

Dự án

DreamBooth tinh chỉnh mô hình để dạy nó về một chủ thể mới. Ví dụ, một vài bức ảnh của một người có thể được sử dụng để tạo ra các hình ảnh của người đó theo những phong cách khác nhau.

Textual Inversion

Bài báo

Textual Inversion tinh chỉnh mô hình để dạy nó về một khái niệm mới. Ví dụ, một vài bức ảnh về một phong cách nghệ thuật có thể được sử dụng để tạo ra các hình ảnh theo phong cách đó.

ControlNet

Bài báo

ControlNet là một mạng phụ trợ thêm một điều kiện bổ sung. Có 8 ControlNet được huấn luyện trước theo 8 kiểu chuẩn, được huấn luyện trên các điều kiện khác nhau như phát hiện cạnh, phác thảo, bản đồ độ sâu và phân đoạn ngữ nghĩa.

Trọng số Prompt

Trọng số hóa prompt là một kỹ thuật đơn giản, đặt trọng số chú ý cao hơn cho một số phần nhất định của đầu vào văn bản.

Custom Diffusion

Bài báo

Custom Diffusion chỉ tinh chỉnh các bản đồ cross-attention của một mô hình khuếch tán từ văn bản sang ảnh đã được huấn luyện trước. Nó cũng cho phép thực hiện thêm Textual Inversion. Về thiết kế, nó hỗ trợ huấn luyện đa khái niệm. Giống như DreamBooth và Textual Inversion, Custom Diffusion cũng được sử dụng để dạy một mô hình khuếch tán từ văn bản sang ảnh đã được huấn luyện trước về các khái niệm mới nhằm tạo ra các đầu ra liên quan đến khái niệm (các khái niệm) quan tâm.

DiffEdit

Bài báo

DiffEdit cho phép chỉnh sửa ngữ nghĩa các hình ảnh đầu vào cùng với các prompt đầu vào, đồng thời giữ nguyên hình ảnh đầu vào gốc nhiều nhất có thể.

T2I-Adapter

Bài báo

T2I-Adapter là một mạng phụ trợ thêm một điều kiện bổ sung. Có 8 adapter được huấn luyện trước theo 8 kiểu chuẩn, được huấn luyện trên các điều kiện khác nhau như phát hiện cạnh, phác thảo, bản đồ độ sâu và phân đoạn ngữ nghĩa.

Fabric

Bài báo

Fabric là một phương pháp không cần huấn luyện, có thể áp dụng cho nhiều mô hình khuếch tán phổ biến, tận dụng lớp tự chú ý (self-attention) có mặt trong các kiến trúc được sử dụng rộng rãi nhất để điều kiện hóa quá trình khuếch tán dựa trên một tập hợp các hình ảnh phản hồi.

Update on GitHub