PART 1
Sinh sau đẻ muộn so với các hoạ sĩ AI khác như Dall-e 2 hay Midjourney, nhưng Stable Diffusion cũng đã nhanh chóng bắt kịp những người anh em của mình. Không giống như Midjourney (MJ) phải trả phí, hay Dall-e 2 chỉ giới hạn cho một số người dùng nhất định, Stable Diffusion (SD) hoàn toàn mở, bao gồm cả mã nguồn và trọng số của mô hình. Chính vì vậy, rất nhiều người có thể tiếp cận được nó, góp phần làm nên sự phổ biến nhanh chóng này. Khời đầu series bài về SD, hôm nay mình sẽ nói về việc SD là gì, và sử dụng SD như thế nào.
Giới thiệu về Stable Diffusion
Về cơ bản, SD cũng sử dụng quy trình được miêu tả trong bài CLIP và Diffusion Net – Điều kì diệu đằng sau những AI hoạ sĩ. SD được nhóm tác giả Robin Rombach và các cộng sự lần đầu thuyết trình tại hội nghị Computer Vision and Pattern Recognition Conference 2022, được hỗ trợ bởi Stability AI và Runway. Về model, phần mô hình Diffusion net của SD được huấn luyện trên 1 phần của bộ dữ liệu cực lớn mang tên LAION-5B. Bộ dữ liệu này chứa thông tin về ảnh – chú thích (caption), với trên 5 tỉ hình ảnh được chú thích, trong đó có 2.3 tỉ ảnh có miêu tả bằng tiếng anh, 2.2 tỉ ảnh được miêu tả bằng hơn 100 ngôn ngữ khác nhau. Phần chú thích của bộ dữ liệu này được miêu tả chi tiết đến mức ảnh có chứa watermark, hay ảnh có phải NSFW hay không? Bộ dữ liệu này hoàn toàn free để tải về, nó sẽ “chỉ” ngốn đâu đó tầm 240TB dữ liệu, tương đương 5% của dự án 1000 hệ gen Việt Nam.
Mô hình SD ưu việt hơn so với các mô hình dựa trên Diffusion net khác ở chỗ, nó được tối ưu để huấn luyện và chạy trên các máy tính có tài nguyên tương đối hạn chế. Hiện nay SD vẫn đang không ngừng được cập nhật về mã nguồn tại đây, còn mô hình cũng đang được cải tiến liên tục. Theo thông tin mới nhất, mô hình bản 3.0 đã bắt đầu được huấn luyện, trong khi hiện nay mô hình đang được sử dụng rộng rãi là bản 1.4.
So sánh về thành quả đầu ra với MJ, SD cho độ liền mạch cao hơn, tuy nhiên nếu không có 1 số tuỳ chỉnh nhất định thì nhìn khá nhạt nhoà, nhìn hơi giống tranh 3D độ phân giải thấp ngày xưa. Sau một hồi mày mò, thì mình cũng đã “reverse engineer” được cách để phù phép cho ảnh SD tạo ra có cái chất riêng. Vậy là “Best of both worlds”, vừa “nghệ”, vừa liền mạch, chưa kể lại còn không tốn tiền subscription. Về chi tiết cách sử dụng SD hiệu quả, xin hẹn ở part 3 của series này.
Cài đặt Stable Diffusion trên máy cá nhân
Mặc dù nhiều người có thể tự sử dụng SD, việc cài đặt SD gốc tại máy cá nhân không hề dễ dàng và thân thiện chút nào. Các bạn sẽ phải biết một ít về Linux command line, máy tính phải có sẵn CUDA, vân vân và mây mây. Nhưng không sao, SD có rất rất rất rất nhiều phiên bản được tuỳ chỉnh khá thân thiện với người dùng. Bây giờ cái dở là nhiều quá lại phải chọn, mình mạnh dạn chọn đại NMKD Stable Diffusion GUI để làm hướng dẫn cho bài này, vì thấy cài cắm đơn giản quá. Lưu ý là mặc dù SD đã được tối ưu để nhẹ hơn tương đối, yêu cầu phần cứng của nó vẫn khá khoai so với phần lớn mọi ngườ, những ai không thoả mãn được yêu cầu này thì có thể bỏ qua mục này và nhảy đến mục tiếp theo.
Yêu cầu bắt buộc
- Windows 10/11 64-bit
- Card màn hình thế hệ mới của Nvidia, RTX thì càng tốt
- Card màn hình có ít nhất 4 GB VRAM (nên có 8GB trở lên để dùng đầy đủ tính năng)
- 12 GB RAM (nên có 16GB trở lên)
- Ổ cứng trống 11 GB (tốt nhất nên có SSD)
Tiến hành cài đặt
- Tải file cài đặt tại đây, file này nặng 1.7GB.
- Sau khi tải xong, giải nén.
- Chạy file StableDiffusionGui.exe, vì lần đầu chạy nên sẽ hiện lên thông báo No complete installation of the Stable Diffusion files was found, click OK để tiến hành cài đặt.
- Click Install để bắt đầu cài các mục theo yêu cầu, bao gồm Conda, Python, mã nguồn của Stable Diffusion, trọng số của mô hình và trình tăng độ phân giải. Sẽ hơi tốn thời gian download một chút.
- Khi nào cả 5 cái tick trong mục Installation đều được check thì tức là xong rồi
Hướng dẫn sử dụng
NMKD có giao diện sáng sủa và dễ dùng, mọi người nhập miêu tả những gì vào mục muốn vẽ vào prompt, có thể hướng dẫn AI bằng 1 tranh hoặc 1 concept có từ trước, Sau đó chọn số ảnh muốn tạo, mức độ “chi tiết” (steps) của ảnh (chính là số bước mô hình thực hiện reverse diffuse), v.v… Những ảnh có chung thông số seed sẽ giống y hệt nhau, vì thế khá quan trọng nếu mọi người muốn tạo lại được ảnh. Thông số độ phân giải sẽ ngốn khá nhiều VRAM, với 512 x 512 sẽ ngốn hết 8GB VRAM, còn 768 x 768 sẽ hết đâu đó tầm 30GB VRAM. Thông số sampler để lựa chọn thuật toán lấy mẫu, quyết định tốc độ vẽ, thường mình chọn k_lms, thuật toán này sẽ hội tụ sau khoảng 30-50 steps. Nếu mọi người chọn Seamless Image, SD sẽ cố gắng vẽ ra các tranh có thể lặp lại vô tận (seamless tiles). Sau khi vẽ tranh xong thì mọi người có thể click vào nút Post processing (hình cây đũa phép) để tiến hành phục hồi khuôn mặt (SD nhiều khi vẽ mặt khá tệ) hoặc tăng độ phân giải của ảnh. Các bước khá dễ phải không nào?
Bên cạnh NMKD, còn rất nhiều phiên bản tuỳ chỉnh SD nữa mọi người có thể tham khảo tại đây:
Chạy Stable Diffusion trên Google Colab
Với các bạn không có điều kiện chạy SD trên máy cá nhân, có thể tận dụng nền tảng Google Colab. Về cơ bản thì Google Colab là nền tảng để phục vụ chạy mô hình của Google, cho phép bạn chạy mã nguồn dưới dạng 1 cuốn sổ tay, kết hợp ghi chú và kết quả. Bạn được sử dụng 1 cấu hình máy khá khủng online, free hoàn toàn, nhưng chỉ chạy được tối đa 12h liên tiếp.
giao diện của 1 colab notebook
Các bước tiến hành:
- Lưu file này về Google Drive của bạn và mở lên: https://colab.research.google.com/github/pharmapsychotic/ai-notebooks/blob/main/pharmapsychotic_Stable_Diffusion.ipynb
- Click Connect ở góc trên, bên phải màn hình, gần bên dưới avatar Google. Nếu bị hỏi thì click Run anyway
- Click run cell (nút Play) với lần lượt các mục Check GPU, Mount Google Drive and Prepare Folders, Installation. Colab sẽ hỏi có muốn kết nối với Google Drive không, chọn Authorize và cấp quyền cho Colab.
- Tải file này về Google Drive. Đây là file trọng số của mô hình.
- Sửa lại đường dẫn đến file trọng số của mô hình trên Google Drive của mọi người ở mục Load Model. Click run cell
- Trong mục Image Creation, mọi người tuỳ chỉnh tham số, ý nghĩa giống hệt phần ở trên.
- Tận hưởng thành quả thôi!
Chạy Stable Diffusion với các dịch vụ trả phí
Dĩ nhiên, mọi người vẫn có thể thấy các bước trên là quá loằng ngoằng, hoặc đơn giản là muốn vẽ tranh cùng AI mọi lúc mọi nên, kể cả trên thiết bị di động. Nếu vậy, mọi người có thể tham khảo các dịch vụ online sau (hầu hết là trả phí)
- Midjourney (với chế độ -test và -testp)
- Night Cafe
- Starry AI
- Dream Studio
- etc.
Hi vọng mọi người có những giờ phút giải lao và thả hồn mình mình với Stable Diffusion.
Nguồn: https://lucisk.wordpress.com/2022/09/25/tat-tan-tat-ve-stable-diffusion-part-1/