Tổng hợp những Sampler thông dụng trong Stable Diffusion

Samplers là một khái niệm kỹ thuật khá phức tạp mà sau đây tôi sẽ cố gắng giải thích mọi thứ một cách đơn giản nhất có thể.

Nói một cách đơn giản, sampler là một tùy chọn mà bạn có thể lựa chọn khi tạo hình ảnh trong Stable Diffusion. Nó ảnh hưởng đến cách hình ảnh được tạo ra. Nói cách khác, Sampler như là điều quyết định trên mỗi bước tạo hình ảnh làm thế nào mà mô hình sẽ tạo hình ảnh bạn muốn.

Trong khi hầu hết các sampler tạo hình ảnh giống nhau, một số khác có thể có tác động mạnh mẽ đến hình ảnh của bạn.

Dưới đây là một so sánh nhanh giữa chúng. Trong tất cả các hình ảnh dưới đây, prompt, steps và CFG scale được giữ nguyên. Mỗi cột là một seed khác nhau của cùng một prompt. Đối với mỗi cột, mỗi hàng sử dụng sampler khác nhau, để bạn có thể dễ dàng nhìn thấy khi tất cả các yếu tố khác được giữ nguyên, sampler khác nhau thì sẽ ảnh hưởng đến kết quả đầu ra.

Bạn sẽ nhận thấy rất nhiều tên của các bộ lấy mẫu bắt đầu bằng K_. Điều này là do tất cả chúng đều được lấy từ kho lưu trữ k-diffusion, một kho lưu trữ mã phổ biến dành cho các nhà nghiên cứu và nhà phát triển AI tổng hợp – do đó K là một phần trong tên của Sim.

Sampler thông dụng trong Stable Diffusion

Vì chúng ta sẽ không đi sâu vào vấn đề kỹ thuật mà sẽ tập trung vào các tác động của chúng đối với các hình ảnh được tạo ra. Nhưng Sampler chính gồm có:

k_lms

Sử dụng k_lms với 50 bước thường sẽ đem lại kết quả tốt, miễn là prompt của bạn được tạo ra một cách hợp lý. k_lms chạy khá nhanh, vì vậy bạn có thể mong đợi để thấy kết quả nhanh chóng. Bạn có thể duy trì cài đặt này ở CFG 7-8 mãi mãi mà không gặp bất kỳ vấn đề nào. 

Tuy nhiên, nếu đầu ra được tạo ra không giống như bạn mong muốn, bạn có thể tăng giá trị bước lên thành khoảng 80. Nhưng hãy chắc chắn rằng giá trị các bước cao hơn đang mang lại cho bạn kết quả tốt hơn mà không lãng phí thời gian. 

Một cách để xác minh điều này là giữ nguyên tham số seed và các tham số khác, và thử nghiệm với các số bước khác nhau. 

DDIM

Sử dụng DDIM chỉ với 8 bước có thể khiến bạn bất ngờ, nhưng nó thực sự có thể đem lại kết quả xuất sắc với tốc độ vô cùng nhanh chóng. Đây là cài đặt lý tưởng để tạo ra một lượng lớn ảnh trong thời gian ngắn. 

Khi thử nghiệm các prompts mới, đặt DDIM là 8 bước, sau đó tạo ra một loạt từ 4-9 hình ảnh. Điều này sẽ giúp bạn có cái nhìn tổng quan về hiệu suất của prompt trên nhiều Seed. Cài đặt này rất phù hợp để thực hiện các thay đổi nhanh chóng trên các prompts. 

Thêm một từ duy nhất vào prompt của bạn ở DDIM:8, bạn có thể thấy ảnh hưởng đến các tham số seed trong vòng dưới 5 giây (tùy thuộc vào card đồ họa của bạn). Với các prompt phức tạp hơn, DDIM có thể yêu cầu các bước bổ sung. Việc tăng số bước lên 15, 25 hoặc thậm chí 35 là tốt nhất nếu hình ảnh đầu ra vẫn hơi lộn xộn (đảm bảo rằng prompt không phải là vấn đề đầu tiên bạn mắc sai lầm). 

Bạn nên thử nghiệm cài đặt này nhiều lần để có thể biết được khi nào nên tăng số bước để có kết quả tốt hơn và tránh được bị lãng phí thời gian.

k_euler_a

Các nguyên tắc được áp dụng cho k_euler_a cũng giống như áp dụng cho DDIM. Trình lấy mẫu này cũng có tốc độ nhanh chóng và tạo ra kết quả xuất sắc ở các bước thấp hơn (từ 8-16). 

Tuy nhiên, phương pháp này cũng có ảnh hưởng lớn trong phong cách được tạo ra. Đầu ra với 15 bước có thể rất khác biệt so với đầu ra tại với 16 bước và cả hai đều có thể khác so với số bước là 30, và cứ như vậy. 

Trình lấy mẫu này rất khó để đoán trước. Nói chung kết quả bạn nhận được sẽ thay đổi phụ thuộc vào sampler mà bạn sử dụng. Do đó, đừng ngại thử nghiệm nhiều lần, nếu bạn đã có một kết quả tốt với k_euler_a, hãy thử nó với DDIM (hoặc ngược lại).

k_dpm_2_a

Theo ý kiến của tôi, Sampler này có thể là tốt nhất cho đến nay, nhưng nó cũng đi kèm với một số hạn chế đáng kể.  k_dpm_2_a chậm hơn đáng kể so với những sampler đã được thảo luận trước đó. 

Tuy nhiên, trong khoảng số bước từ 30-80, k_dpm_2_a rất hiệu quả. 

phương pháp này không phù hợp để thử nghiệm vì nó khá tốn thời gian, nhưng nếu bạn đang có một prompt yêu thích thì cũng rất đáng để thử. Chỉ cần bạn chuẩn bị sẵn sàng chờ đợi một thời gian khá lâu. Còn nếu bạn đang trong quá trình hoàn thiện prompt của mình, thì nên chọn k_euler_a hoặc DDIM ở một số bước thấp hơn.

Tổng hợp các loại sampler trong Stable Diffusion

Đây là tổng hợp của tất cả các loại sampler để bạn có thể luôn nắm chắc trong tay và sẵn sàng sử dụng:

DDIM 

  • DDIM là một phần của mô hình Latent Diffusion ban đầu, mô hình Stable Diffusion được dựa trên đó.
  • DDIM được triển khai bởi CompVis và là mặc định ban đầu. CompVis là phòng thí nghiệm nghiên cứu công khai đã đồng thời làm việc với Stability AI và Runway để phát hành mô hình diffusion ổn định.
  • DDIM là một phương pháp hoạt động tốt với cả số bước thấp và cao.
  • Đây là một thiết lập tuyệt vời để tạo ra nhiều hình ảnh nhanh chóng. Khi kiểm tra các ý tưởng mới của prompt, hãy đặt DDIM ở số bước thấp hơn và tạo ra một loạt hình ảnh. Điều này sẽ cho bạn một ý tưởng về cách prompt của bạn hoạt động trên nhiều seed.

PLMS

  • PLMS là một phần của mô hình Latent Diffusion ban đầu. PLMS hoạt động tốt ở số lượng bước nhỏ và vẫn tạo ra một lượng chi tiết khá đáng kể. Chỉ với 20 bước là đủ. 
  • Nếu sử dụng quá 20 bước thì bạn sẽ đang lãng phí công suất xử lý vì không có nhiều sự khác biệt giữa 20 bước và 150 bước. 
  • PLMS có thể là một lựa chọn tốt nếu máy tính của bạn không có cấu hình cao nhất. 
  • PLMS có thể làm một công việc tốt với nhân vật, trong khi phông nền và cảnh quan có thể phải chỉnh sửa đôi chút, đặc biệt là khi có một nhân vật ở phía trước.

LMS 

  • Phương pháp LMS dường như không thể tạo ra hình ảnh con người và động vật một cách tốt. 
  • Có thể tạo ra một hình ảnh đơn giản hoặc ít chi tiết cho các nhân vật. 
  • LMS lại có thể tạo ra những hình ảnh cảnh quan và phong cảnh tuyệt vời.

k_lms

  • Phương pháp Karras LMS có nhiều điểm tương đồng với phương pháp LMS và các phương pháp tương tự. 
  • Có những điểm yếu khi làm việc với các ký tự, tuy nhiên vẫn có thể tạo ra các ký tự tốt, bạn chỉ cần dành thêm thời gian và thử nghiệm để có được những prompt phù hợp.
  • Phương pháp này có thể tạo ra các hình ảnh với kiểu dáng sơn mài hơn khi không có nhiều hướng dẫn. 
  • K_lms với 50 bước sẽ cho ra các hình ảnh đẹp prompt của bạn tốt. 
  • Phương pháp này chạy khá nhanh, vì vậy kết quả sẽ đến khá nhanh chóng.

k_euler

  • Euler là một trong những mô hình đáng lựa chọn để tạo ra hình ảnh chi tiết và đẹp. 
  • Có rất nhiều mẫu đa dạng, và mô phỏng tốt những tác phẩm dựa trên trí tưởng tượng. 
  • Euler, được đặt theo tên của Leonhard Euler.

k_euler_a

  • Euler A rất giống với Euler về phong cách và chi tiết của các hình ảnh mà nó có thể tạo ra.
  • A trong Euler A viết tắt cho “ancestral”, vì vậy nó không nhất quán và khi các bước thay đổi sẽ thay đổi hình ảnh một cách đáng kể.
  • Sampler này cũng rất nhanh chóng và đạt được kết quả tuyệt vời ở các bước tính cực thấp.

dpm_fast

  • DPM Fast được cho là một trình kết xuất nhanh hơn so với các phương pháp khác. 
  • Một lợi ích của việc sử dụng DPM Fast là nó sẽ tạo ra nhiều phong cách và nhân vật khác nhau cho cùng một prompt, miễn là các prompt của bạn không quá cụ thể. 
  • DPM Fast hoạt động tốt nhất với số bước lớn hơn, tuy nhiên, giống như Euler A / DPM2 A, DPM Fast cũng thay đổi tùy thuộc vào số bước bạn thiết lập.

dpm_2

  • DPM2 là một phương pháp tương tự như Euler / Euler A và tạo ra một số hình ảnh chất lượng tốt hơn so với tất cả các phương pháp khác. 
  • Sự khác biệt tinh tế giữa Euler và DPM2 là DPM2 có xu hướng tạo ra những hình ảnh sắc nét và sạch sẽ hơn, so với Euler sẽ tạo ra các đường nét và hình ảnh nghệ thuật mềm mại hơn. 
  • Đây là một mô hình khác có thể tạo ra đầu ra tốt hơn từ số bước lớn hơn, nhưng cũng có thể tạo ra hình ảnh chất lượng ở số bước thấp hơn và như đã nói trong suốt hướng dẫn này

dpm_2_a

Tương tự như Euler A, DPM2 A cũng thay đổi nhiều tùy thuộc vào số bước. Nó cũng có thể thêm độ nhiễu trên các bước mẫu thấp và thường không mượt mà bằng phiên bản DPM2.

k_dpm_2

DPM2 Karras hoạt động tương tự như DPM2, tuy nhiên tôi nghĩ nó có thể tạo ra những hình ảnh chất lượng cao hơn một chút. Giống như các phương pháp không dựa trên mạng non-A, nó sẽ giữ nguyên tính nhất quán bất kể số lượng bước.

k_dpm_2_a

  • DPM2 ancestral Karras dường như là một trong những phương pháp DPM tốt hơn. 
  • Nó có thể tạo ra các hình ảnh tương tự như Euler nhưng với các đường nét sắc nét hơn và tương phản cao hơn, tùy thuộc vào phong cách mà bạn đang muốn. 
  • k_dpm_2_a khá chậm so với các sampler khác. Đây là một sampler không thích hợp cho việc thử nghiệm, nhưng nếu bạn đã có một prompt yêu thích, đừng ngại thử nó. 
  • Như đã giải thích trước đó, vì đây là một phương pháp loại “A”, nên việc thay đổi số bước trên cùng một seed sẽ dẫn đến một hình ảnh khác nhau.

Trên đây là tổng hợp những sampler chính mà bạn có thể lựa chọn khi tạo hình ảnh trong Stable Diffusion. Điều quan trọng chính là bạn cần phải lựa chọn kỹ mô mình phù hợp để tạo ra kết quả tốt nhất cho mình.