Cách chạy Khuếch tán ổn định cục bộ với GUI trên Windows

Tác giả NetworkEngineer, T.Chín 29, 2022, 01:38:33 CHIỀU

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 2 Khách đang xem chủ đề.

Cách chạy Khuếch tán ổn định cục bộ với GUI trên Windows


Bạn có thể  cài đặt Stable Diffusion cục bộ trên PC của mình, nhưng quy trình thông thường bao gồm rất nhiều thao tác với dòng lệnh để cài đặt và sử dụng. May mắn thay cho chúng tôi, cộng đồng Stable Diffusion đã giải quyết được vấn đề đó. Dưới đây là cách cài đặt phiên bản Stable Diffusion chạy cục bộ với giao diện người dùng đồ họa!


1. Khuếch tán ổn định là gì?

Ổn định khuếch tán là một mô hình AI có thể tạo hình ảnh từ lời nhắc văn bản hoặc sửa đổi hình ảnh hiện có bằng lời nhắc văn bản, giống như MidJourney hoặc DALL-E 2. Nó được phát hành lần đầu tiên vào tháng 8 năm 2022 bởi   Đăng nhập để xem liên kết. Nó có thể hiểu hàng ngàn từ khác nhau và có thể được sử dụng để tạo ra hầu hết mọi hình ảnh mà trí tưởng tượng của bạn có thể gợi lên theo hầu hết mọi phong cách.

Tuy nhiên, có hai điểm khác biệt quan trọng làm cho Khuếch tán ổn định trở nên khác biệt so với hầu hết các trình tạo nghệ thuật AI phổ biến khác:

  • Nó có thể được chạy cục bộ trên PC của bạn
  • Nó là một dự án mã nguồn mở

Điểm cuối cùng thực sự là vấn đề quan trọng ở đây. Theo truyền thống, Stable Diffusion được cài đặt và chạy thông qua giao diện dòng lệnh. Nó hoạt động, nhưng nó có thể lắt léo, không trực quan và đó là một rào cản đáng kể đối với những người có hứng thú. Tuy nhiên, vì đây là một dự án mã nguồn mở, cộng đồng đã nhanh chóng tạo giao diện người dùng cho nó và bắt đầu thêm các tính năng bổ sung của riêng họ, bao gồm cả tối ưu hóa để giảm thiểu việc sử dụng ram video ( VRAM ) và xây dựng trong nâng cấp và tạo mặt nạ.

2. Bạn cần gì để chạy phiên bản khuếch tán ổn định này?

Phiên bản này của Stable Diffusion là một nhánh rẽ - một nhánh - của kho lưu trữ chính (repo) được tạo và duy trì bởi   Đăng nhập để xem liên kết. Nó có giao diện người dùng đồ họa (GUI) - làm cho nó dễ sử dụng hơn so với Ổn định khuếch tán thông thường, chỉ có giao diện dòng lệnh - và trình cài đặt sẽ tự động xử lý hầu hết các thiết lập.

Cảnh báo: Như mọi khi, hãy cẩn thận với các nhánh phần mềm của bên thứ ba mà bạn tìm thấy trên GitHub. Chúng tôi đã sử dụng cái này được một thời gian mà không có vấn đề gì và hàng nghìn người khác cũng vậy, vì vậy chúng tôi có xu hướng nói rằng nó an toàn. May mắn thay, mã và những thay đổi ở đây là nhỏ so với một số nhánh của các dự án mã nguồn mở.

Bản fork này cũng chứa nhiều tính năng tối ưu hóa khác nhau cho phép nó chạy trên PC có ít RAM hơn, khả năng nâng cấp và khuôn mặt tích hợp bằng GFPGAN, ESRGAN, RealESRGAN, CodeFormer và che. Tạo mặt nạ là một việc rất quan trọng - nó cho phép bạn áp dụng có chọn lọc việc tạo hình ảnh AI cho các phần nhất định của hình ảnh mà không làm biến dạng các phần khác, một quy trình thường được gọi là inpainting.

  • Ổ cứng trống tối thiểu 10 gigabyte
  • GPU NVIDIA với RAM 6 GB (mặc dù bạn có thể làm cho 4 GB hoạt động)
  • PC chạy Windows 11, Windows 10, Windows 8.1 hoặc Windows 8
  • WebUI GitHub Repo, bởi AUTOMATIC1111
  • Python 3.10.6  (Các phiên bản mới hơn và hầu hết các phiên bản cũ hơn cũng sẽ ổn)
  • Các điểm kiểm tra chính thức của sự khuếch tán ổn định  (Hãy theo dõi các điểm kiểm tra v1.5 vào cuối tháng 9!)
  • Điểm kiểm tra GFPGAN v1.3  (v1.4 cũng có thể hoạt động)
  • Bất kỳ mô hình ESRGAN bổ sung nào mà bạn có thể muốn. Bạn có thể sử dụng nhiều hoặc ít tùy ý.

3. Cách cài đặt Khuếch tán ổn định với GUI

Quá trình cài đặt đã được sắp xếp hợp lý đáng kể, nhưng vẫn còn một số bước bạn cần thực hiện thủ công trước khi có thể sử dụng trình cài đặt.

3.1. Cài đặt Python đầu tiên

Điều đầu tiên bạn nên làm là cài đặt phiên bản Python, 3.10.6, được tác giả của repo khuyến nghị. Đi tới liên kết đó, cuộn xuống cuối trang và nhấp vào " Trình cài đặt Windows (64-Bit)."


Nhấp vào tệp thực thi bạn đã tải xuống và xem qua lời nhắc. Nếu bạn đã cài đặt Python (và bạn chắc chắn là vậy), chỉ cần nhấp vào "Nâng cấp". Nếu không, hãy làm theo các lời nhắc được đề xuất.

Lưu ý: Hãy chắc chắn rằng bạn thêm Python 3.10.6 vào PATH nếu bạn nhận được tùy chọn cho điều đó. 

3.2. Cài đặt Git và tải xuống GitHub Repo

Bạn cần tải xuống và cài đặt Git trên Windows  trước khi có thể chạy trình cài đặt Stable Diffusion. Chỉ cần tải xuống tệp thực thi Git 64-bit, chạy nó và sử dụng các cài đặt được đề xuất trừ khi bạn có ý nghĩ cụ thể.

Tiếp theo, bạn cần tải xuống các tệp từ repo GitHub. Nhấp vào nút "Mã" màu xanh lá cây, sau đó nhấp vào "Tải xuống tệp ZIP" ở cuối trình đơn.


Mở tệp ZIP trong File Explorer hoặc chương trình lưu trữ tệp ưa thích của bạn, sau đó trích xuất nội dung ở bất kỳ đâu bạn muốn. Chỉ cần ghi nhớ rằng thư mục đó là nơi bạn sẽ cần đến để chạy Ổn định khuếch tán. Ví dụ này đã trích xuất chúng vào thư mục C: \, nhưng điều đó không cần thiết.


Lưu ý: Đảm bảo rằng bạn không vô tình kéo "stable-diffusion-webui-master" vào một thư mục khác thay vì không gian trống - nếu bạn làm vậy, nó sẽ thả vào thư mục đó, không phải thư mục mẹ mà bạn dự định.

3.3. Tải xuống tất cả các trạm kiểm soát

Có một số điểm kiểm tra bạn yêu cầu để điều này hoạt động. Đầu tiên và quan trọng nhất là các Điểm kiểm tra Khuếch tán Ổn định. Bạn cần tạo một tài khoản để tải xuống các trạm kiểm soát, nhưng không có nhiều yêu cầu cho tài khoản - tất cả những gì họ cần là tên và địa chỉ email, và bạn đã sẵn sàng.

Lưu ý: Tải xuống các trạm kiểm soát là vài gigabyte. Đừng mong đợi nó được thực hiện ngay lập tức.


Sao chép và dán "sd-v1-4.ckpt" vào thư mục "stable-diffusion-webui-master" từ phần trước, sau đó nhấp chuột phải vào "sd-v1-4.ckpt" và nhấn đổi tên. Nhập "model.ckpt" vào trường văn bản và nhấn Enter. Hãy chắc chắn rằng nó là "model.ckpt" - điều này sẽ không hoạt động nếu không.

Lưu ý: Chức năng đổi tên là một biểu tượng trên Windows 11.


Bạn cũng cần tải xuống các điểm kiểm tra GFPGAN. Tác giả của repo chúng tôi đang sử dụng được gọi cho các điểm kiểm tra GFPGAN v1.3, nhưng bạn có thể sử dụng v1.4 nếu muốn dùng thử. Cuộn xuống trang, sau đó nhấp vào "Kiểu máy V1.3".


Đặt tệp đó, "GFPGANv1.3.pth," vào thư mục "stable-diffusion-webui-master" giống như bạn đã làm với tệp "sd-v1-4.ckpt", nhưng không  đổi tên tệp. Thư mục "stable-diffusion-webui-master" bây giờ sẽ chứa các tệp sau:


Bạn cũng có thể tải xuống bao nhiêu điểm kiểm tra ESRGAN tùy thích. Chúng thường được đóng gói dưới dạng tệp ZIP. Sau khi tải xuống, hãy mở tệp ZIP, rồi giải nén tệp ".pth" vào thư mục "ESRGAN". Đây là một ví dụ:


Các mô hình ESRGAN có xu hướng cung cấp nhiều chức năng cụ thể hơn, vì vậy hãy chọn một vài mô hình hấp dẫn bạn.

Bây giờ, bạn chỉ cần nhấp đúp vào tệp "webui-user.bat", tệp này nằm trong thư mục chính "stable-diffusion-webui-master". Cửa sổ bảng điều khiển sẽ xuất hiện và bắt đầu tìm nạp tất cả các tệp quan trọng khác, xây dựng môi trường Python và thiết lập giao diện người dùng web. Nó sẽ trông giống thế này:

Lưu ý: Lần đầu tiên bạn chạy tính năng này sẽ mất ít nhất vài phút. Nó cần tải xuống nhiều thứ từ Internet. Nếu nó bị treo trong một thời gian dài bất hợp lý ở một bước, chỉ cần thử chọn cửa sổ bảng điều khiển và nhấn phím Enter.


Khi hoàn tất, bảng điều khiển sẽ hiển thị:

Mã nguồn [Chọn]
Running on local URL: http://127.0.0.1:7860
To create a public link, set `share=True` in `launch()`

4. Cách tạo hình ảnh bằng cách sử dụng khuếch tán ổn định với GUI

Được rồi, bạn đã cài đặt biến thể WebUI của Ổn định khuếch tán và bảng điều khiển của bạn cho bạn biết rằng nó đang "chạy trên URL cục bộ:   Đăng nhập để xem liên kết."

Lưu ý: Điều đó chính xác có nghĩa là gì, điều gì đang xảy ra? 127.0.0.1 là địa chỉ localhost - địa chỉ IP mà máy tính của bạn tự cung cấp. Phiên bản Ổn định khuếch tán này tạo ra một máy chủ trên PC cục bộ của bạn có thể truy cập qua địa chỉ IP của chính nó, nhưng chỉ khi bạn kết nối qua đúng cổng : 7860. 

Mở trình duyệt của bạn, nhập "127.0.0.1:7860" hoặc "localhost: 7860" vào thanh địa chỉ và nhấn Enter. Bạn sẽ thấy điều này trên tab txt2img:


Nếu bạn đã sử dụng Ổn định khuếch tán trước đây, các cài đặt này sẽ quen thuộc với bạn, nhưng đây là tổng quan ngắn gọn về ý nghĩa của các tùy chọn quan trọng nhất:

  • Lời nhắc: Mô tả về những gì bạn muốn tạo.
  • Nút cuộn:  Áp dụng một phong cách nghệ thuật ngẫu nhiên cho lời nhắc của bạn.
  • Các bước lấy mẫu:  Số lần hình ảnh sẽ được tinh chỉnh trước khi bạn nhận được kết quả đầu ra. Nhiều hơn nói chung là tốt hơn, nhưng có lợi nhuận giảm dần.
  • Phương pháp lấy mẫu:  Phép toán cơ bản chi phối cách xử lý lấy mẫu. Bạn có thể sử dụng bất kỳ cái nào trong số này, nhưng euler_a và PLMS dường như là những lựa chọn phổ biến nhất. Bạn có thể đọc thêm về PLMS trong bài báo này.
  • Khôi phục khuôn mặt:  Sử dụng GFPGAN để cố gắng sửa các khuôn mặt lạ hoặc bị méo.
  • Số lượng hàng loạt: Số lượng hình ảnh được tạo.
  • Kích thước lô:  Số lượng "lô". Giữ giá trị này ở mức 1 trừ khi bạn có một lượng lớn VRAM.
  • Quy mô CFG: Khuếch tán ổn định cẩn thận như thế nào sẽ tuân theo lời nhắc bạn đưa ra. Những con số lớn hơn có nghĩa là nó tuân theo nó rất cẩn thận, trong khi những con số thấp hơn mang lại cho nó nhiều tự do sáng tạo hơn.
  • Chiều rộng: Chiều  rộng của hình ảnh bạn muốn tạo.
  • Chiều cao: Chiều  rộng của hình ảnh bạn muốn tạo.
  • Giống:  Số cung cấp đầu vào ban đầu cho trình tạo số ngẫu nhiên. Để nó ở -1 để tạo ngẫu nhiên một hạt giống mới.

Hãy tạo năm hình ảnh dựa trên lời nhắc: "một con bò vùng cao trong khu rừng huyền diệu, chụp ảnh phim 35mm, sắc nét" và xem những gì chúng ta nhận được khi sử dụng bộ lấy mẫu PLMS, 50 bước lấy mẫu và thang điểm CFG là 5.

Mẹo: Bạn luôn có thể nhấn nút "Gián đoạn" để ngừng tạo nếu công việc của bạn mất quá nhiều thời gian.

Cửa sổ đầu ra sẽ giống như sau:


Lưu ý: Hình ảnh của bạn sẽ khác nhau.

Hình ảnh trên cùng ở giữa là hình ảnh chúng tôi sẽ sử dụng để tạo mặt nạ sau này. Không có lý do thực sự cho sự lựa chọn cụ thể này ngoài sở thích cá nhân. Lấy bất kỳ hình ảnh nào bạn thích.


Chọn nó, sau đó nhấp vào "Gửi tới Inpaint."

5. Làm thế nào để che hình ảnh bạn tạo thành inpaint

Inpainting là một tính năng tuyệt vời. Thông thường, khuếch tán ổn định được sử dụng để tạo toàn bộ hình ảnh từ một dấu nhắc, nhưng inpainting cho phép bạn tạo (hoặc tái tạo) các phần của hình ảnh một cách có chọn lọc. Có hai lựa chọn quan trọng ở đây: inpaint mask, inpaint not mask.

Inpaint masked sẽ sử dụng lời nhắc để tạo hình ảnh trong khu vực bạn đánh dấu, trong khi inpaint không được che sẽ làm ngược lại hoàn toàn - chỉ khu vực bạn che sẽ được giữ nguyên.

Chúng tôi sẽ đề cập một chút về Inpaint mask trước. Kéo chuột của bạn xung quanh hình ảnh, giữ nhấp chuột trái và bạn sẽ nhận thấy một lớp màu trắng xuất hiện trên đầu hình ảnh của bạn. Vẽ ra hình dạng của khu vực bạn muốn được thay thế và đảm bảo điền đầy đủ vào nó. Bạn không đi vòng quanh một khu vực, bạn đang tạo mặt nạ trong toàn bộ khu vực.

Mẹo: Nếu bạn chỉ thêm một cái gì đó vào một bức ảnh hiện có, có thể hữu ích nếu cố gắng làm cho vùng mặt nạ thẳng hàng với hình dạng gần đúng mà bạn đang cố gắng tạo ra. Ví dụ, che một hình tam giác khi bạn muốn một hình tròn là phản tác dụng.

Hãy lấy ví dụ về con bò vùng cao của chúng ta và cho nó một chiếc mũ đầu bếp. Che dấu một vùng có hình dạng gần giống chiếc mũ của Đầu bếp và đảm bảo đặt "Kích thước hàng loạt" thành hơn 1. Có thể bạn sẽ cần nhiều vùng để có được kết quả (ish) lý tưởng.

Ngoài ra, bạn nên chọn "Tiếng ồn tiềm ẩn" thay vì "Điền", "Bản gốc" hoặc "Không có gì tiềm ẩn". Nó có xu hướng tạo ra kết quả tốt nhất khi bạn muốn tạo một đối tượng hoàn toàn mới trong một cảnh.

Lưu ý: Bạn sẽ lưu ý rằng mép bên trái của chiếc mũ đã bị xóa một phần sừng của anh ấy. Điều đó xảy ra do cài đặt "Làm mờ mặt nạ" hơi quá cao. Nếu bạn thấy những thứ như vậy trong hình ảnh của mình, hãy thử giảm giá trị "Mask Blur".


Được rồi - có lẽ mũ đầu bếp không phải là lựa chọn phù hợp cho con bò vùng cao của bạn. Con bò vùng cao của bạn thích thú với những rung cảm đầu thế kỷ 20 hơn, vì vậy hãy cho nó một chiếc mũ quả dưa.
Một con bò vùng cao với chiếc mũ quả dưa.


Thật tuyệt làm sao.

Tất nhiên, bạn cũng có thể làm điều hoàn toàn ngược lại với Inpaint Not Masked. Nó tương tự về mặt khái niệm, ngoại trừ các vùng bạn xác định bị đảo ngược. Thay vì đánh dấu vùng bạn muốn thay đổi, bạn đánh dấu vùng bạn muốn giữ nguyên. Nó thường hữu ích khi bạn muốn di chuyển một đối tượng nhỏ lên một nền khác.

6. Cách khắc phục lỗi "CUDA hết bộ nhớ"

Hình ảnh bạn tạo ra càng lớn thì càng cần nhiều bộ nhớ video. Điều đầu tiên bạn nên thử là tạo hình ảnh nhỏ hơn. Khuếch tán ổn định tạo ra hình ảnh tốt - mặc dù rất khác - ở 256 × 256.

Nếu bạn muốn tạo hình ảnh lớn hơn trên máy tính không gặp sự cố với hình ảnh 512 × 512 hoặc bạn đang gặp nhiều lỗi "Hết bộ nhớ", có một số thay đổi đối với cấu hình sẽ hữu ích.

Mở "webui-user.bat" trong Notepad hoặc bất kỳ trình soạn thảo văn bản thuần túy nào khác mà bạn muốn. Chỉ cần nhấp chuột phải vào "webui-user.bat", nhấp vào "Chỉnh sửa", sau đó chọn Notepad. Xác định dòng đọc set COMMANDLINE_ARGS=. Đó là nơi bạn sẽ đặt các lệnh để tối ưu hóa cách Chạy khuếch tán ổn định.

Nếu bạn chỉ muốn tạo ra những bức ảnh lớn hoặc sắp hết RAM trên GPU dòng GTX 10XX, hãy thử --opt-split-attention trước. Nó sẽ trông như thế này:


Sau đó nhấp vào Tệp> Lưu. Ngoài ra, bạn có thể nhấn Ctrl + S trên bàn phím của mình.

Nếu bạn vẫn gặp lỗi bộ nhớ, hãy thử thêm --medvram vào danh sách các đối số dòng lệnh (COMMANDLINE_ARGS).


Bạn có thể thêm --always-batch-cond-uncond để thử và khắc phục các sự cố bộ nhớ bổ sung nếu các lệnh trước đó không hữu ích. Ngoài ra còn có một giải pháp thay thế --medvram có thể làm giảm mức sử dụng VRAM nhiều hơn, --lowvramnhưng chúng tôi không thể chứng thực liệu nó có thực sự hoạt động hay không.

Việc bổ sung giao diện người dùng là một bước tiến quan trọng trong việc làm cho các loại công cụ dựa trên AI này có thể truy cập được cho tất cả mọi người. Khả năng là gần như vô tận, và thậm chí chỉ cần lướt nhanh qua các cộng đồng trực tuyến dành riêng cho nghệ thuật AI sẽ cho bạn thấy sức mạnh của công nghệ này như thế nào, ngay cả khi nó còn sơ khai. Tất nhiên, nếu bạn không có máy tính chơi game hoặc không muốn lo lắng về việc thiết lập, bạn luôn có thể sử dụng một trong các trình tạo nghệ thuật AI trực tuyến. Chỉ cần lưu ý rằng bạn không thể cho rằng các mục nhập của mình là riêng tư.