Ở thời điểm hiện tại AI hiển thị hình ảnh (AI Auto Generate Image) đang khá nở rộ, có thể kể tới một vài cái tên như Mid Journey, Dall-E, Bing Image Creator, ông lớn như Adobe “chuẩn ngành” cũng mới nhảy vào cuộc đua gần đây với Adobe Firefly, thậm chí trang bán stock như Shutterstock cũng đã tung ra công cụ hiển thị hình ảnh dựa trên văn bản nhập vào,… Và một trong số những AI model (mô hình AI) miễn phí đang rất phổ biến và được dùng rộng rãi đó là Stable Diffusion.
// 2 hình ở đầu bài viết và các hình minh hoạ khác trong bài viết là mình dùng các câu lệnh tương đương nhau với các model khác nhau để có style hình vẽ hay tả thực mức độ khác nhau.
((masterpiece)), ((best quality)), ((ultra high resolution)), painting of a mountain landscape with a giant old tree in center, detailed roots, (waterfalls from mountains), sky above, fantasy, dreamy, majestic clouds, light rays, wide lens, wide camera angle, denoise
((masterpiece)), ((best quality)), ((ultra high resolution)), (ultra realistic), (photorealism), photo of a mountain landscape with a giant old tree in center, detailed roots, (waterfalls from mountains), sky above, fantasy, dreamy, majestic clouds, light rays, wide lens, wide camera angle, denoise
Trong bài viết này mình sẽ cố gắng giới thiệu một cách ngắn gọn, dễ hiểu nhất về Stable Diffusion và Automatic1111 (A1111) cũng như hướng dẫn chi tiết nhất có thể cách cài đặt để chạy A1111 trên máy tính cá nhân với hệ điều hành Windows.
Nếu bạn chỉ quan tâm tới việc cài đặt thì bạn có thể tới bước đó luôn bằng cách ấn vào mục tương ứng ở mục lục ngay dưới đây.
Stable Diffusion VÀ AUTOMATIC1111
Stable Diffusion là gì?
Stable Diffusion (sau đây sẽ có chỗ được viết tắt là SD) là 1 mô hình (model) AI (Artificial Intelligence – Trí tuệ nhân tạo), nó được huấn luyện (train) để làm các công việc hiển thị hình ảnh (image) tương ứng dựa trên những dữ liệu chữ (text) được nhập vào. Nó được phát triển bởi Stablity AI kết hợp với LAION và CompVis, dựa trên “cục dữ liệu” LAION-5B blah… blah… blah… Ối dồi, sao khó hiểu thế!!!
Hơi khó hiểu đúng không?
Để cho dễ hiểu, bạn tưởng tượng 1 cái hộp có tên là Stable Diffusion, 1 đầu nó nối với cái bàn phím, 1 đầu còn lại nó nối với cái màn hình. Bạn dùng bàn phím gõ vào “hình 1 con dế đang ngủ trên 1 cái lá cây”, cái hộp này đã được dạy rằng, đâu là con dế, tư thế đang ngủ ra sao, đâu là cái lá,… cái hộp sẽ tự động tính toán và hiển thị ra màn hình là hình 1 con dế đang ngủ trên 1 cái lá cho bạn. Dĩ nhiên để cái hộp hiểu cần làm gì thì nó đã được người ta nạp dữ liệu kiến thức cũng như dạy dỗ/huấn luyện cho nó trước đó. Đây không phải là cách hiểu chính xác, chỉ là cách mình giải thích tối giản lại, còn cách nó hoạt động phức tạp hơn rất rất nhiều. Bạn có thể xem cách giải thích đậm chất kỹ thuật và rất chi tiết tại đây.
Và cái hộp này trong thực tế nó là 1 file dữ liệu AI (được gọi là checkpoint model hay gọi tắt là model), tên của nó thường sẽ có đuôi .ckpt hoặc .safetensors. Ví dụ stable diffusion phiên bản 1.5 có file tên “v1-5-pruned-emaonly.safetensors” hoặc “v1-5-pruned-emaonly.ckpt”. Việc đặt tên này phụ thuộc vào người tạo ra model AI đó. Hiện tại trong cộng đồng, có nhiều người đã tự train và chia sẻ những “con AI” riêng của họ dựa trên con AI Stable Diffusion bản gốc. Chính vì vậy mà vấn đề bản quyền hình ảnh được tạo ra bởi AI đang được đề cập và tranh cãi khá nhiều. Mình sẽ có 1 bài viết riêng nói lên góc nhìn của mình về vấn đề này. Ngoài ra, chính vì có nhiều người tự huấn luyện AI model nên họ sẽ làm theo ý thích họ muốn huấn luyện ra sao, vì vậy sẽ có nhiều model khác nhau với mục đích khác nhau (ví dụ đơn giản như model này chuyên cho phong cách siêu thực, model kia thì lại chuyên cho kiểu phong cách hoạt hình, có loại thì cho ra phong cách nào cũng dược,… ).
Stable Diffusion bản chất nó sẽ chỉ hiểu các dãy số 0 và 1 (ngôn ngữ máy tính) cũng như các dòng code lập trình phức tạp mà những người tạo ra SD sử dụng để viết ra nó. Vì vậy, thay vì phải viết những dòng code phức tạp để ra lệnh cho nó hiểu thì bạn cần một thứ đóng vai “người phiên dịch” giúp SD hiểu những gì bạn nhập vào và muốn nó hiển thị hình ảnh ra sao, làm các tác vụ thế nào, … Automatic1111 được sinh ra để giải quyết vấn đề này.
Automatic1111 là sao?
Như đã nói ở trên, về cơ bản, nếu để sử dụng SD và bắt nó thực hiện các công việc như hiển thị hình ảnh từ câu chữ miêu tả mà ta nhập vào thì chúng ta phải gõ một đống lệnh bằng ngôn ngữ máy hoặc các đoạn code để điều khiển nó và cho máy nó hiểu và làm các tác vụ cho chúng ta, dạng như lập trình vậy. Như vậy thì quá phức tạp với 1 người dùng thông thường, vì vậy cần có một chương trình phần mềm với giao diện thân thiện và dễ sử dụng hơn.
A1111 là một webui (cũng có thể gọi nó là 1 phần mềm chạy trên trình duyệt web) cho Stable Diffusion, được tích hợp sẵn nhiều tính năng, đơn cử như: biến câu miêu tả bằng chữ mà bạn nhập liệu vào thành hình ảnh tương ứng (text to image), hay như biến 1 tấm ảnh bạn đưa vào thành 1 hình ảnh khác theo phong cách mà bạn muốn (image to image), biến 1 hình vẽ nháp phác thảo trực tiếp trên nó thành 1 hình vẽ hoàn thiện (inpaint/sketch to image), tự động nhận diện hình ảnh bạn đưa vào thành câu lệnh và hiển thị câu lệnh đó thành 1 hình ảnh khác tương ứng, …
Bạn có thể đọc thêm toàn bộ các thông tin về Automatic1111 tại trang wiki của nó tại đây.
Chú ý trước khi cài đặt Automatic1111
Trước khi cài đặt A1111 thì bạn cần chú ý một số vấn đề về cấu hình máy tính và các phần mềm phụ trợ bắt buộc phải có như sau.
Chú ý về cấu hình
Phần cứng
▪ Máy tính với cấu hình càng mạnh càng tốt 😂 và đã cài đặt đầy đủ driver cho phần cứng của máy.
▪ A1111 khuyến nghị nên sử dụng GPU (card đồ hoạ) của Nvidia có ít nhất 4GB VRAM nhưng theo mình nên dùng ít nhất là 6GB VRAM trở lên.
▪ Ổ cứng: nên dùng ổ cứng SSD và dung lượng lớn 1 chút (nên còn trống ít nhất khoảng 50GB trở lên vì các files của A1111 đặc biệt là các file model thường có dung lượng khá lớn).
Hệ điều hành
▪ Windows (Nên dùng Windows 10 hoặc 11).
Bạn cần nắm rõ các thông tin về các thiết bị phần cứng của mình, đặc biệt là hệ điều hành Windows 32 bit hay 64 bit để tải các phiên bản phần mềm tương ứng (ở các bước sau).
Cài đặt driver cho GPU
Cài đặt driver cho GPU:
▪ Link để tải về: Tải về
▪ Nên dùng Game Ready Driver bản 532.03 vì các bản mới hơn làm giảm hiệu năng render hình của A1111 đi rất rất nhiều.
▪ Chọn các thông tin tương ứng GPU và hệ điều hành mà bạn đang dùng rồi ấn “Search”
▪ Click vào dòng tương ứng phiên bản 532.03 để vào trang download.
▪ Restart (Khởi động lại) máy tính sau khi cài đặt xong.
Cài đặt Nvidia Cuda Toolkit
▪ Phiên bản 11.8 trở lên.
▪ Link để tải về: Tải về
▪ Bạn cần chọn các thông tin đúng với hệ điều hành mà bạn đang dùng. Chú ý, “Installer Type” chọn “exe (local)” để nó đỡ phải tải về khi cài.
▪ Cài đặt xong bạn cũng nhớ restart máy tính.
Cài đặt Python 3.10.6
▪ Link để tải về: Tải về
▪ Chú ý: Chỉ nên cài đặt phiên bản python 3.10.6 vì A1111 khuyến cáo đây là bản tương thích nhất.
▪ Khi cài đặt bắt buộc phải tích chọn “Add Python 3.10 to PATH”
Cài đặt Git
▪ Link để tải về: Tải về
▪ Bạn cài đặt mặt định là được.
Cài đặt Automatic1111
Với cách cài này thì bạn sẽ được tự động cài bản chạy ổn định mới nhất ở thời điểm bạn cài. Bản hiện tại khi mình viết bài đang là 1.3.2. (Bản thử nghiệm là 1.4.0. Cách để cài các bản thử nghiệm cũng như cách để quay lại bản cũ mình sẽ hướng dẫn ở bài viết khác. Giờ thì bắt đầu cài A1111 nhé).
▪ Tạo folder (thư mục) mới với tên tuỳ ý, ví dụ “Automatic1111” (Mục đích để sau này có thể cài nhiều phiên bản của Automatic1111 trong folder này nếu bạn muốn)
▪ Vào address bar (khung địa chỉ) của cửa sổ folder đó gõ “cmd” và Enter
▪ Gõ hoặc copy/paste đoạn sau vào màn hình Command Prompt rồi Enter.
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
▪ Nó sẽ tự tải và cài folder “stable-diffusion-webui” vào folder “Automatic1111” mà bạn đã tạo.
▪ Sau khi nó cài và tạo xong folder “stable-diffusion-webui” trên máy bạn. Bạn vào folder đó và chạy file “webui-user.bat” bằng cách click đúp lên file hoặc chọn file rồi enter.
▪ Nó sẽ tiến hành tự động cài, tải các tài nguyên cần thiết.
▪ Đợi cài xong là được. Trong lúc cài thì nó sẽ tải file model stable diffusion bản 1.5. Nếu bạn lo ngại nó tải lâu thì bạn khoan chạy file webui-user.bat vội mà hãy tự tải và cài file model về trước. Để tải về và cài trước bạn làm như sau:
💡 Tải model có tên “v1-5-pruned-emaonly.safetensors” tại đây.
💡 Chú ý: khi tải các file model bạn nên ưu tiên tải các file có đuôi là .safetensors thay vì .ckpt vì nó được “đồn thổi” là không có hoặc rất ít khả năng có mã độc.
💡 Tải xong file model bạn chuyển file đó vào “<Thư mục mà bạn đã cài A1111>\models\Stable-diffusion\<File model tải về>”.
Ví dụ với của mình là “D:\Automatic1111\stable-diffusion-webui\models\Stable-diffusion\v1-5-pruned-emaonly.safetensors”
Chạy A1111
Để chạy A1111 thì bạn chạy file webui-user.bat, cửa sổ Command Prompt (cmd) sẽ hiện lên, chờ nó tải và khởi tạo xong các tài nguyên cần thiết, thường khi tải xong sẵn sàng để chạy thì trong cửa sổ cmd sẽ có dòng tương tự thế này ở cuối (Bạn nên đợi nó load tới dòng đó vì mình đã bị render hình lỗi ở 1 lần mở A1111 trên trình duyệt trước khi nó load đủ các tài nguyên):
Model loaded in 8.8s (load weights from disk: 1.7s, create model: 1.7s, apply weights to model: 2.7s, apply half(): 0.7s, load textual inversion embeddings: 0.7s, calculate empty prompt: 1.2s).
Lúc này, ở màn hình cmd bạn chỉ cần Ctrl + Click vào dòng địa chỉ http://127.0.0.1:7680 (đây là địa chỉ mặc định để chạy A1111 trên web) là nó sẽ tử mở trình duyệt của bạn để vào:
Running on local URL: http://127.0.0.1:7860
Hoặc bạn mở trình duyệt web lên và gõ vào địa chỉ đó.
http://127.0.0.1:7860
Ok, giờ bạn có thể dùng A1111 được rồi 👌
Hy vọng bài viết giúp ích cho bạn. Nếu bạn thấy hữu ích thì đừng quên chia sẻ nó với những người khác cũng đang cần nó như bạn. Nếu bạn thấy có điểm gì chưa hợp lý hoặc có góp ý cũng như thảo luận gì, bạn có thể comment vào bên dưới. Cám ơn bạn đã dành thời gian xem hết bài blog. Ngoài ra bạn có thể tham khảo thêm Các cài đặt và thiết lập cần thiết cho file chạy A1111 tại đây!