Seed trong Stable Diffusion dùng để làm gì?

Tác giả: Cập nhật: 4 phút đọc

Seed là một số nguyên khởi tạo nhiễu ngẫu nhiên mà mọi lần tạo ảnh đều xuất phát từ đó. Cùng seed, prompt, mô hình, thiết lập và phần mềm, Stable Diffusion cho ra cùng một bức ảnh; đổi seed, bạn có bố cục khác cho cùng prompt. Trong Automatic1111 và trên trang này, -1 nghĩa là seed ngẫu nhiên.

Vì sao seed quan trọng

Quá trình khuếch tán bắt đầu từ nhiễu, và mỗi bức ảnh là một hàm tất định của nhiễu đó cộng với các thiết lập của bạn. Seed chính là công thức tạo ra nhiễu. Nhờ vậy, nó là công cụ hữu ích nhất để học: cố định seed, đổi một thứ, rồi so sánh. Đó chính là phương pháp chúng tôi dùng cho bảng so sánh phong cách nghệ sĩ: 1.731 nghệ sĩ, bốn prompt cố định, mỗi prompt một seed cố định. Chỉ có tên nghệ sĩ thay đổi, nên khác biệt bạn thấy là tác dụng của nghệ sĩ đó chứ không phải gì khác.

Cách dùng trong thực tế

  1. Tạo ảnh với seed -1 cho đến khi xuất hiện một bố cục bạn ưng ý.
  2. Đọc seed trong thông tin ảnh (Automatic1111 ghi nó vào metadata của tệp PNG và ngay dưới ảnh) rồi dán vào ô seed.
  3. Giờ hãy chỉnh prompt hoặc negative prompt từng từ một: bố cục thường giữ nguyên, chỉ chi tiết thay đổi.
  4. Với sampler không thuộc nhóm ancestral (Euler, DDIM, DPM++ 2M), khi bạn đổi số bước hay CFG, cùng một seed vẫn cho ảnh gần giống, nhờ đó bạn so sánh các thiết lập một cách công bằng. Các sampler ancestral như Euler a thêm nhiễu mới ở mỗi bước nên ảnh lệch dần đi.

Các prompt mẫu trên trang này ghi seed kèm gần như mọi ảnh để bạn bắt đầu từ một kết quả đã biết.

Điều gì làm ảnh không còn tái tạo được

  • Mô hình hoặc LoRA khác: nhiễu vẫn thế nhưng bộ khử nhiễu thì không, nên ảnh thay đổi: đôi chút với một LoRA nhẹ, hoàn toàn với một mô hình khác.
  • Kích thước ảnh khác: tensor nhiễu có hình dạng khác, nên dù cùng seed, bức ảnh cũng chẳng liên quan gì.
  • GPU hoặc phiên bản phần mềm khác: những sai lệch rất nhỏ về dấu phẩy động có thể làm xê dịch chi tiết; giữa các hãng GPU khác nhau, Automatic1111 thậm chí còn sinh ra nhiễu khác, trừ khi bạn chọn CPU làm nguồn sinh số ngẫu nhiên.
  • Automatic1111 còn có những thiết lập phụ làm thay đổi kết quả, chẳng hạn variation seed, Clip skip và Eta noise seed delta; phải giữ nguyên giá trị của các thiết lập này nếu muốn lặp lại chính xác.

Tạo biến thể quanh một seed

Automatic1111 có variation seed và thanh trượt variation strength: ở mức 0.1 đến 0.3, bạn nhận được những “anh em” của bức ảnh, cùng tư thế và bảng màu nhưng khác đôi chút, tiện để chọn ra bàn tay hay khuôn mặt đẹp nhất. Một X/Y/Z plot với seed trên một trục và một từ trong prompt trên trục kia sẽ cho ra cả một lưới so sánh chỉ trong một lần chạy.

Câu hỏi thường gặp

Seed lớn hơn có tốt hơn không?

Không. Seed chỉ là nhãn của một mẫu nhiễu, không phải thiết lập chất lượng; 7 và 4.294.967.295 tốt như nhau. Điều duy nhất quan trọng là khả năng lặp lại của nó.

Dùng cùng seed trên một trang web khác có ra cùng ảnh không?

Chỉ khi trang đó dùng cùng mô hình, kích thước, sampler, số bước, CFG và phần mềm. Giữa hai bản cài Automatic1111 thì thường là có; giữa các dịch vụ khác nhau thì gần như không bao giờ.

Vì sao cùng một seed lại cho ảnh khác trên các công cụ của trang này?

Với mọi yêu cầu, các công cụ công khai đều áp dụng negative prompt, LoRA tăng chi tiết, số bước và sampler riêng, còn công cụ inpainting thì đổi kích thước ảnh của bạn cho vừa 1024 px, nên kết quả khác với ảnh tạo ra trên máy bạn. Trong phạm vi trang này, cùng một yêu cầu với cùng seed thì tái tạo được.