Khái niệm CFG trong KSampler

Trong Stable Diffusion, đặc biệt là khi sử dụng các giao diện như Automatic1111 hoặc ComfyUI, bạn thường thấy một tham số gọi là “CFG Scale” (hoặc đôi khi chỉ là “CFG”) trong K-Sampler (bộ lấy mẫu, sampler). CFG là viết tắt của Classifier-Free Guidance Scale. Đây là một tham số cực kỳ quan trọng ảnh hưởng đến cách mô hình Stable Diffusion diễn giải và tuân theo text prompt của bạn.

CFG Scale là gì và nó hoạt động như thế nào?

CFG Scale là một giá trị số (thường là từ 1 đến 30) kiểm soát mức độ “mạnh mẽ” mà mô hình Stable Diffusion tuân theo text prompt của bạn trong quá trình tạo ảnh. Nói một cách đơn giản:

  • CFG Scale thấp (ví dụ: 1-6): Mô hình có nhiều “tự do” hơn để sáng tạo, ít bị ràng buộc bởi text prompt. Kết quả có thể bất ngờ, độc đáo, và đôi khi “nghệ thuật” hơn, nhưng có thể không hoàn toàn chính xác theo những gì bạn mô tả.
  • CFG Scale trung bình (ví dụ: 7-10): Đây là phạm vi thường được khuyến nghị, tạo ra sự cân bằng tốt giữa việc tuân theo text prompt và sự sáng tạo của mô hình. Kết quả thường khá chính xác và có chất lượng tốt.
  • CFG Scale cao (ví dụ: 11-15+): Mô hình bị “ép buộc” phải tuân theo text prompt một cách chặt chẽ. Kết quả có thể rất chi tiết và chính xác, nhưng có thể trông “cứng nhắc,” “quá bão hòa,” hoặc mất đi sự tự nhiên. Giá trị quá cao có thể dẫn đến các artifacts (lỗi hình ảnh).

Về mặt kỹ thuật (sâu hơn một chút):

Stable Diffusion (và các mô hình diffusion khác) tạo ra ảnh bằng cách loại bỏ nhiễu dần dần từ một hình ảnh nhiễu ngẫu nhiên ban đầu. Quá trình này được gọi là “khuếch tán ngược” (reverse diffusion). Text prompt được sử dụng để “hướng dẫn” (guide) quá trình này.

Classifier-Free Guidance là một kỹ thuật cho phép hướng dẫn quá trình khuếch tán ngược mà không cần một mô hình phân loại (classifier) riêng biệt. Thay vào đó, nó hoạt động bằng cách tính toán hai dự đoán:

  1. Dự đoán có điều kiện (Conditional Prediction): Dự đoán về hình ảnh dựa trên cả nhiễu hiện tại text prompt.
  2. Dự đoán không điều kiện (Unconditional Prediction): Dự đoán về hình ảnh chỉ dựa trên nhiễu hiện tại (bỏ qua text prompt).

CFG Scale sau đó được sử dụng để kết hợp hai dự đoán này:

Final Prediction = Unconditional Prediction + CFG Scale * (Conditional Prediction - Unconditional Prediction)

Giải thích công thức:

  • Nếu CFG Scale = 0: Kết quả chỉ là Unconditional Prediction (bỏ qua text prompt).
  • Nếu CFG Scale = 1: Kết quả là Conditional Prediction (tuân theo text prompt ở mức độ bình thường).
  • Nếu CFG Scale > 1: Mô hình “nhấn mạnh” sự khác biệt giữa Conditional Prediction và Unconditional Prediction. Điều này làm cho mô hình tuân theo text prompt mạnh mẽ hơn.

Lựa chọn CFG Scale phù hợp:

Không có một giá trị CFG Scale “tốt nhất” cho mọi trường hợp. Giá trị tối ưu phụ thuộc vào:

  • Text prompt của bạn: Prompt càng phức tạp, chi tiết, hoặc trừu tượng, bạn có thể cần CFG Scale cao hơn một chút. Prompt đơn giản có thể hoạt động tốt với CFG Scale thấp hơn.
  • Mô hình Stable Diffusion bạn đang sử dụng: Một số mô hình được huấn luyện để phản ứng khác nhau với CFG Scale.
  • Sampler bạn đang sử dụng: Một số sampler hoạt động tốt hơn với các giá trị CFG Scale nhất định.
  • Phong cách bạn muốn: Nếu bạn muốn kết quả “nghệ thuật” và bất ngờ hơn, hãy thử CFG Scale thấp. Nếu bạn muốn kết quả chính xác và chi tiết, hãy thử CFG Scale cao hơn.
  • Sở thích cá nhân của bạn: Thử nghiệm là cách tốt nhất để tìm ra giá trị CFG Scale phù hợp với bạn.

Lời khuyên:

  • Bắt đầu với giá trị mặc định (thường là 7 hoặc 7.5).
  • Tăng dần CFG Scale nếu bạn thấy kết quả chưa đủ chính xác theo prompt.
  • Giảm CFG Scale nếu bạn thấy kết quả quá cứng nhắc hoặc có artifacts.
  • Thử nghiệm với các giá trị khác nhau để xem sự khác biệt.
  • Đừng ngại thử các giá trị CFG Scale rất thấp (ví dụ: 2-4) hoặc rất cao (ví dụ: 15-20) để khám phá các hiệu ứng sáng tạo.

Tóm lại:

CFG Scale là một công cụ mạnh mẽ để kiểm soát sự cân bằng giữa sự sáng tạo của mô hình và sự tuân thủ text prompt. Bằng cách hiểu rõ cách nó hoạt động và thử nghiệm với các giá trị khác nhau, bạn có thể tận dụng tối đa khả năng của Stable Diffusion để tạo ra những hình ảnh như ý muốn.