Là một người mới hoàn toàn, chỉ tìm hiểu Stable Diffusion được một thời gian ngắn nên nội dung không thể tránh khỏi sai sót, mục đích mình viết bài viết này để hỗ trợ nhưng bạn dùng Mac nhưng vẫn thích vọc vạch và chạy những mô hình nhẹ như SD1.5. Đối với SDXL và Flux thì bạn nên thuê Server hoặc sử dụng Google Colab.
Trước khi vào cài đặt, mình sẽ trích dẫn lại một số định nghĩa cơ bản và các loại giao diện Stable Diffusion có ở thời điểm hiện tại, nếu bạn nào mới tìm hiểu thì nên đọc qua để rõ hơn.
I. Stable Diffusion là gì?
Stable Diffusion là một mô hình học sâu được phát triển để tạo ra hình ảnh dựa trên văn bản. Nó thuộc nhóm các mô hình diffusion models, một loại mô hình học máy có khả năng học và tái tạo dữ liệu bằng cách dần dần làm biến mất nhiễu trên dữ liệu hình ảnh hoặc video để khôi phục lại ảnh gốc hoặc tạo ra ảnh mới từ nhiễu.
Mô hình Stable Diffusion nổi tiếng vì có khả năng tạo ra hình ảnh chất lượng cao từ các đoạn văn bản mô tả (text-to-image generation). Nó được sử dụng rộng rãi trong các ứng dụng như:
- Tạo hình ảnh từ văn bản: Người dùng chỉ cần nhập mô tả, mô hình sẽ tạo ra hình ảnh dựa trên thông tin đó.
- Sửa đổi hoặc hoàn thiện hình ảnh: Ví dụ như biến đổi phong cách, hoặc thêm các chi tiết cụ thể vào hình ảnh.
- Tạo hình ảnh ngẫu nhiên dựa trên mô tả ngắn hoặc bất kỳ từ khóa nào.
Stable Diffusion được phát triển bởi nhóm Stability AI với sự hợp tác của nhiều tổ chức khác, bao gồm EleutherAI và LAION. Phiên bản đầu tiên được công bố vào năm 2022, và nó đã nhanh chóng thu hút sự chú ý của cộng đồng vì tính khả thi và chất lượng hình ảnh mà nó có thể tạo ra.
Một số đặc điểm nổi bật:
- Mở rộng và tùy chỉnh: Người dùng có thể tinh chỉnh mô hình hoặc thêm các tính năng để đáp ứng nhu cầu cụ thể.
- Mã nguồn mở: Stable Diffusion là mã nguồn mở, cho phép cộng đồng có thể sử dụng và phát triển thêm các ứng dụng dựa trên nền tảng này.
- Ứng dụng đa dạng: Nó được sử dụng trong lĩnh vực nghệ thuật số, thiết kế sáng tạo, và nghiên cứu trí tuệ nhân tạo.
II. Các loại giao diện đồ họa Stable Diffusion
1. WebUI (Stable Diffusion WebUI)
WebUI là giao diện đồ họa phổ biến cho việc tương tác với mô hình Stable Diffusion. Thay vì phải sử dụng dòng lệnh (command line) hoặc các phương pháp kỹ thuật để làm việc với các mô hình tạo ảnh AI, WebUI cung cấp một môi trường dễ dàng để người dùng có thể tải lên mô tả văn bản và nhận về hình ảnh tương ứng mà mô hình tạo ra.
Một số đặc điểm chính:
- Dễ sử dụng: Người dùng không cần hiểu biết sâu về kỹ thuật, chỉ cần nhập mô tả văn bản (prompt) và nhận lại hình ảnh từ Stable Diffusion.
- Tùy chỉnh tham số: Giao diện cho phép người dùng tùy chỉnh nhiều tham số khác nhau như độ dài mô tả, độ phân giải ảnh, và phong cách nghệ thuật để có kết quả tối ưu.
- Plugin và tích hợp: Nhiều plugin và công cụ được tích hợp sẵn để mở rộng tính năng như điều chỉnh màu sắc, ánh sáng, hoặc thêm các bộ lọc đặc biệt.
WebUI lại được có nhiều phiên bản qua các thời kì phát triển như: A1111, Forge và hiện tại mới nhất là Forge v2.
2. ComfyUI
ComfyUI là một giao diện điều khiển dựa trên đồ họa (GUI) dành cho Stable Diffusion, nhưng với một cách tiếp cận linh hoạt và tập trung vào khả năng tùy biến mạnh mẽ. Thay vì chỉ nhập mô tả và nhận ảnh như WebUI, ComfyUI cho phép người dùng điều khiển quá trình tạo ảnh theo từng bước thông qua một hệ thống node-based (dựa trên các nút kết nối).
Một số điểm nổi bật:
- Node-based workflow: ComfyUI hoạt động giống như một phần mềm chỉnh sửa hình ảnh dựa trên hệ thống nút. Mỗi nút đại diện cho một hành động cụ thể trong quá trình tạo ảnh (ví dụ như thêm nhiễu, khuếch tán, kết hợp các thành phần, hoặc tinh chỉnh). Người dùng có thể tự do kết nối các nút để tạo ra quy trình riêng, giúp tùy chỉnh quá trình tạo ảnh một cách chi tiết.
- Tùy chỉnh và kết hợp mô hình: ComfyUI cho phép kết hợp nhiều mô hình và phương pháp khác nhau, bao gồm việc kết hợp các mô hình tiền huấn luyện để tạo ra kết quả độc đáo.
- Điều chỉnh pipeline: Người dùng có thể điều chỉnh pipeline (quy trình) của quá trình tạo ảnh, từ việc chọn các bộ dữ liệu khác nhau đến điều chỉnh từng bước của mô hình diffusion.
Các thuật ngữ phải biết trong ComfyUI:
A. Workflow
- Workflow trong ComfyUI là quy trình tạo ra hình ảnh thông qua một tập hợp các node (nút). Các node này đại diện cho các bước xử lý như tiền xử lý ảnh, kết hợp các mô hình AI, điều chỉnh thông số, và xuất ra kết quả cuối cùng. Workflow như 1 project có thể được lưu lại và tải lên để sử dụng lại.
B. Node
- Node là đơn vị cơ bản trong ComfyUI dùng để thực hiện các tác vụ nhất định trong workflow. Mỗi node có thể nhận dữ liệu vào và xử lý để đưa ra dữ liệu đầu ra cho node khác. Có nhiều loại node khác nhau, từ node xử lý hình ảnh, node liên quan đến mô hình AI, đến các node điều chỉnh tham số.
C. Model
Model trong ComfyUI liên quan đến việc sử dụng các mô hình trí tuệ nhân tạo để sinh ảnh, chỉnh sửa ảnh, hay điều khiển quá trình tạo ảnh. Các mô hình phổ biến bao gồm:
- Checkpoint: Đây là mô hình chính dùng để sinh ảnh từ input. Checkpoint lưu trữ trạng thái của mạng nơron sâu sau quá trình huấn luyện và được dùng để khởi tạo ảnh từ mô tả hoặc ảnh đầu vào.
- ControlNet: Là một mô hình giúp kiểm soát quá trình sinh ảnh, thường bằng cách thêm các ràng buộc hoặc thông tin hướng dẫn cho mô hình gốc. Ví dụ: Bạn có thể dùng ControlNet để áp đặt các điều kiện như cấu trúc của đối tượng trong ảnh.
- LoRA (Low-Rank Adaptation): Một kỹ thuật tinh chỉnh mô hình bằng cách chỉ cập nhật các thành phần nhỏ của mô hình chính, thay vì huấn luyện lại toàn bộ mô hình. LoRA thường được dùng để tăng khả năng sinh ảnh theo một phong cách hoặc chủ đề cụ thể.
- VAE (Variational Autoencoder): Một loại autoencoder dùng để mã hóa ảnh thành không gian tiềm ẩn và ngược lại. Trong ComfyUI, VAE có thể được sử dụng để nén và giải mã ảnh, hỗ trợ quá trình sinh ảnh chất lượng cao và điều khiển màu sắc hoặc độ chi tiết của ảnh.
Hiểu rõ các thuật ngữ này giúp bạn tạo và điều chỉnh workflow trong ComfyUI một cách hiệu quả hơ
III. Hướng dẫn cài đặt Stable Diffusion ComfyUI cho Macbook
Có 2 cách chính để cài đặt Stable Diffusion cho Macbook là cài trực tiếp thông qua Terminal và gián tiếp thông qua ứng dụng thứ 3 có tên Stability Matrix.
1. Cài trực tiếp thông qua Terminal
Cách này hiện tại chỉ có hướng dẫn cài ComfyUI nhưng hơi phứt tạp, chỉ dành cho bạn nào thích vọc vạch, để đơn giản hơn hãy xem cách 2 bên dưới, cài ComfyUI và WebUI chỉ với 1 click.
- Tạo thư mục ở vị trí bất kì với tên Stable Diffusion
- Mở ứng dụng Terminal, gõ cd[khoảng trắng] và kéo thư mục vừa tạo vào rồi enter.
- Truy cập https://brew.sh/ để copy câu lệnh và dán nó vào Terminal để cài Brew. Hoặc sử dụng dòng lệnh bên dưới:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
- Terminal sẽ yêu cầu pass với icon chìa khóa, nhập mật khẩu máy mac của bạn rồi enter. Lưu ý khi nhập sẽ không có hiện tượng gì xảy ra. Tiếp tục Enter lần nữa để bắt đầu.
- Đợi 1 lúc để quá trình cài Brew hoàn tất. Tiếp tục chạy dòng code sau:
eval "$(/opt/homebrew/bin/brew shellenv)"
- Kiểm tra xem đã cài python chưa bằng lệnh python3 –version. Nếu chưa có thì lên google tải bản mới nhất hoặc cũng có thể cài bản 3.11 bằng lệnh :
brew install python@3.11
- Đợi cài xong python, tiếp tục chạy lệnh:
pip3 install --upgrade pip setuptools
- Lệnh sau sẽ mất khá nhiều thời gian, hãy kiên nhẫn
pip3 install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cpu
- Sau khi chạy xong, bên trong thư mục Stable Diffusion đã tạo ban đầu sẽ xuất hiện thêm thư mục ComfyUI, hãy gõ vào Terminal cd[khoảng trắng] và kéo thư mục ComfyUI vào, sau đó enter.
- Tiếp tục chạy lệnh sau để cài tất cả những phần mở rộng được yêu cầu.
pip3 install -r requirements.txt
- Khi Terminal vẫn đang ở thư mục ComfyUI, chạy tiếp lệnh sau để khởi động ComfyUI.
python3 main.py
- Tiếp tục cài ComfyUI-Manager, node này giúp bạn quản lý và tải xuống những node còn thiếu khác khi bạn sử dụng workflow của người khác chia sẻ.
Với cách này, khi muốn mở ComfyUi, bạn phải vào command, gõ cd[khoảng trắng] kéo thư mục Stable Diffusion đã cài ban đầu vào và enter, tiếp theo chạy lệnh python3 main.py. Hơi rắc rối nên để thuận tiện, mình sẽ hướng dẫn cách thứ 2.
2. Sử dụng Stability Matrix để cài WebUI và ComfyUI
Truy cập StabilityMatrix, cuộn xuống dưới sẽ có các nút Download, chọn đúng hệ điều hành bạn cần, ở đây mình sử dụng MacOS (Apple Silicon).
Sau khi tải về, bạn mở file và kéo ứng dụng vào thư mục Application, mở nó lên và chọn Add Package, tại đây bạn có thể cài bất cứ giao diện yêu thích nào.