Dreambooth là một công cụ được phát triển bởi một nhóm nghiên cứu của Google. Nó giúp đơn giản hóa quá trình training model cho các ứng dụng trong lĩnh vực Machine Learning và Deep Learning như Stable Diffusion. Dreambooth là cách phổ biến để training các mẫu model mới trong Stable Diffusion.
Giới thiệu
Hướng dẫn training model với Dreambooth trong Stable Diffusion là một trong những cách để giúp bạn có một bộ mô hình riêng của cá nhân mình. Thông thường bạn sẽ phải tải các model checkpoint hay lora được chia sẻ trên cộng đồng mạng để vẽ tranh AI trong SD. Nhưng với việc train Dreambooth bạn sẽ thỏa sức sáng tạo, và tạo ra những hình ảnh AI theo phong cách của bạn. Hãy cùng AIChatGPT.vn tìm hiểu về cách sử dụng Dreambooth để training model cho công cụ tạo ảnh AI mạnh mẽ nhất hiện này là Stable Diffusion.
Xem thêm: Hướng dẫn chi tiết cài đặt và sử dụng Stable Diffusion để vẽ tranh AI
Dreambooth là gì?
Dreambooth là một kỹ thuật dùng để để tinh chỉnh các mô hình trong Machine Learning và Deep Learning (như Stable Diffusion) bằng cách đưa một đối tượng tùy chỉnh vào mô hình. Nó được xuất bản và năm 2022 bởi một nhóm nghiên cứu của Google.
Bạn có thể sử dụng Dreambooth để đưa bất cứ thứ gì như hình ảnh của chính bạn, đồ vật hoặc những chú cún yêu của bạn vào một model Stable Diffusion. Tên Dreambooth được đặt ra như là một cửa hàng hình ảnh, và bạn có thể đưa nó tới bất cứ nơi nào mà bạn có thể tưởng tượng ra.
Dưới đây là một ví dụ về việc train Dreambooth cho bạn dễ hiểu hơn. Đầu tiên bạn sẽ có 4 hình ảnh về một chú chó của bạn. Sau đó bạn sẽ đưa nó vào mô hình bằng train dreambooth và tạo ra được nhiều phong cách hình ảnh khác nhau về chú chó này.
Dreambooth hoạt động như thế nào?
Để biết cách Dreambooth hoạt động như thế nào? Bạn cần hiểu về cách tạo ra các mô hình Machine Learning. Thông thường một mô hình được tạo ra ban đầu bằng cách training trên một tập cơ sở dữ liệu rất lớn và xử lý cú pháp ngôn ngữ để “máy học” có thể hiểu được ngôn ngữ tự nhiên. Nếu bạn muốn tạo ra một mô hình của riêng bạn ngay từ đầu, bạn phải làm như vậy. Tuy nhiên, với với kỹ thuật Dreambooth bạn hoàn toàn có thể kế thừa và tinh chỉnh các mô hình sẵn có theo cách riêng của mình.
Để làm được điều đó, Dreambooth cần thực hiện bằng cách:
- Sử dụng một “từ hiếm” để mô tả cho chủ đề mới: từ hiếm để đảm bảo nó không có nhiều ý nghĩa trong mô hình gốc ban đầu.
- Ưu tiên bảo toàn lớp dữ liệu gốc: Để đảm bảo thuộc tính của mô hình, mô hình được tinh chỉnh theo cách chủ thể cần training được đưa vào lớp dữ liệu mới, trong khi lớp dữ liệu tạo ảnh ban đầu của mô hình vẫn được giữ nguyên.
Có một kỹ thuật khác tương tự được gọi là đảo ngược văn bản. Sự khác biệt là Dreambooth tinh chỉnh toàn bộ mô hình, trong khi đảo ngược văn bản đưa vào một từ mới, thay vì sử dụng lại một từ hiếm và chỉ tinh chỉnh phần nhúng văn bản của mô hình.
Cần chuẩn bị gì để training model với Dreambooth?
Để bắt đầu công việc training Dreambooth bạn cần chuẩn bị 3 điều sau:
- Dữ liệu hình ảnh đầu vào để training
- Một tên định danh duy nhất cho tập dữ liệu hình ảnh này
- Một tên lớp dữ liệu
Ví dụ bạn cần training dữ liệu với hình ảnh chú chó của bạn. Bạn cần đặt tên định danh duy nhất là tên chú chó như Lulu. Tên lớp dữ liệu là con chó.
Sau đó bạn cần xây dựng cấu trúc câu nhắc prompt định danh của mình: ảnh của [tên định danh] [tên lớp dữ liệu] (ví dụ ảnh của chó Lulu).
Tiếp theo, xây dựng cấu trúc câu nhắc prompt của lớp dữ liệu: ảnh của [tên lớp dữ liệu] (ví dụ ảnh của một con chó).
Bây giờ hãy bắt đầu công việc train model với Dreambooth theo các bước hướng dẫn chi tiết bên dưới.
Hướng dẫn chi tiết dùng Dreambooth training trong Stable Diffusion
Chuẩn bị thư viện ảnh mẫu
Việc chuẩn bị dữ liệu hình ảnh đầu vào rất quan trọng, nó ảnh hưởng rất nhiều đến mô hình tùy chỉnh của bạn. Bạn cần có một thư viện ảnh thật rõ nét và chụp các góc cạnh khác nhau của đối tượng, chủ thể. Ảnh A.I được tạo sau này có giống với chủ thể hay không phụ thuộc vào bước này.
Bạn cần có khoảng 10 bức ảnh về chủ đề tùy chỉnh của bạn. Hình ảnh nên được chụp từ các góc độ khác nhau. Đối tượng cũng phải ở trong nhiều nền khác nhau để người mẫu có thể phân biệt đối tượng với nền. Số lượng ảnh càng nhiều thì mô hình của bạn sẽ càng giống với chủ thể, tuy nhiên việc training sẽ mất thời gian hơn và cũng giảm tính sáng tạo hơn trong model. Vì vậy, bạn nên cân nhắc lựa chọn số lượng ảnh cho phù hợp với mong muốn của bạn.
Tùy chỉnh kích thước ảnh mẫu
Để sử dụng hình ảnh trong quá trình training, trước tiên bạn cần thay đổi kích thước ảnh thành 512×512 pixel đối với các mô hình model phiên bản V.1…
Để làm điều này bạn có nhiều cách, để thuận tiện bạn có thể sử dụng trang web resize ảnh online BIRME. Truy cập vào BIRME và thực hiện theo các bước dưới đây:
- Bước 1: Chọn thư mục hình ảnh từ máy tính, hoặc kéo ảnh thả vào khung trong BIRME.
- Bước 2: Điều chỉnh khung hình của từng ảnh để nó hiện thị chủ thể đầy đủ nhất.
- Bước 3: Tùy chỉnh chiều rộng và cao ảnh thành 512 x 512px.
- Bước 4: Nhấn vào nút SAVE FILES để lưu ảnh của bạn vào máy tính.
Thực hiện training model
Bạn nên sử dụng bản Dreambooth Google Colab để thực hiện quá trình training của mình. Nó đã được tùy chỉnh để đơn giản hóa các bước và dễ làm. Toàn bộ quá trình training mất khoảng 30 phút, để không bị ngắt kết nối bạn nên dùng tài khoản gmail mới để thực hiện, hoặc bạn có thể nâng cấp lên gói Google Colab Pro nếu cần đào tạo dữ liệu lớn hơn.
Một số lưu ý trước khi thực hiện:
- Sau khi truy cập link Dreambooth Colab bạn cần copy một bản vào Google Drive của mình để chạy.
- Dung lượng drive đảm bảo còn trống khoảng 4GB.
- Bạn có thể thực hiện thêm các tùy chỉnh theo các bước hướng dẫn trong file colab của tác giả.
Link truy cập file Train Dreambooth Colab:
- DreamBooth_Stable_Diffusion_SDA (Train Model – tiếng Anh)
- Train StableDiffusion.vn Lora Dreamboot (Train Lora – tiếng Việt)
Dưới đây là hướng dẫn từng bước để chạy file Colab DreamBooth_Stable_Diffusion_SDA:
Bước 1: Tùy chỉnh các thông số trước khi chạy:
- Model_Name: bạn để mặc định nếu muốn train trên dữ liệu trên model SD V1.5, nếu muốn dùng các model khác bạn bấm vào chữ “here” phía trên và tìm đường Path dán vào đây.
- Branch: để mặc định fp16 giúp bạn tiết kiệm dung lượng ổ đĩa còn khoảng 2GB.
- instance_prompt và class_prompt: đặt lại câu mô tả Prompt theo hướng dẫn ở bước chuẩn bị bên trên.
- Clear_log: tích chọn nếu bạn muốn xóa dữ liệu log sau khi thực hiện xong.
Bước 2: Chạy Colab DreamBooth
- Nhấn Crl+F9 hoặc nút Play (▶️) ở bên trái của ô để bắt đầu xử lý.
- Cấp quyền truy cập vào Google Drive khi có bảng thông báo yêu cầu.
Bước 3: Tải lên thư viện ảnh mẫu
- Nhấn vào nút Choose Files để tải lên các hình ảnh đã thay đổi kích thước.
- Sẽ mất khoảng 30 phút để hoàn thành việc training. Sau khi hoàn tất bạn sẽ thấy một số hình ảnh mẫu được tạo ra từ mô hình mới.
Bước 4: Tải về mô hình model đã train
Mô hình tùy chỉnh của bạn sẽ được lưu trong thư mục Dreambooth_model trên Drive của bạn. Hãy tải xuống và upload lên thư mục model trong Stable Diffusion và bắt đầu sử dụng.
Thử nghiệm model
Bạn có thể kiểm tra thử nghiệm mô hình tùy chỉnh mới trước khi tải xuống bằng cách:
- Duy chuyển đến mục số 2 trong file Colab là Test image generation from model
- Tại đây, hãy nhập các thông số như câu lệnh prompt, negative prompt,…
- Sau đó bấm nút Play (▶️) để chạy lệnh test thử. Ảnh mới sẽ hiện thị ngay bên dưới.
Sử dụng model
Sau khi tải về tệp tùy chỉnh model hoặc lora đã train bạn có thể đưa vào Stable Diffusion và sử dụng. Nếu chưa biết cách sử dụng bạn có thể đọc bài viết sau để hiểu rõ hơn:
Cách đào tạo từ một mô hình khác
Để train từ một model khác bạn sẽ cần phải thay đổi MODEL_NAME và BRANCH trong file colab trên. Hãy click vào chữ here màu xanh, bạn sẽ được chuyển đến trang tìm kiếm model trên Huggingface.
Tại đây bạn có thể tìm kiếm thư viện model mà bạn muốn train, hãy chú ý đến 2 thông số như trong hình bên dưới. Và copy vào file colab của bạn để thực thi công việc train model.
Các bản Train Dreambooth Model
Ngoài 2 bản Train Dreambooth Google Colab bên trên bạn có thể tham khảo thêm một số file dùng để training mô hình khác được sưu tầm bên dưới đây:
- https://github.com/google/dreambooth
- Stable Diffusion Tiếng Việt (kéo xuống dưới có mục train dreambooth và train lora)
- fast-DreamBooth
- stable-diffusion-dreambooth_colab
Nếu bạn cảm thấy chưa ưng ý với việc training của mình. Bạn có thể tham khảo những thư viện dreambooth model trên các trang chia sẻ về Stable Diffusion như huggingface.co
Video hướng dẫn Train Dreambooth với Stable Diffusion cài đặt trên máy tính.
Câu hỏi thường gặp khi training model trong Stable Diffusion
Sử dụng Dreambooth để train model trong Stable Diffusion có miễn phí không?
Có. Bạn hoàn toàn có thể sử dụng miễn phí Dreambooth vì nó và Stable Diffusion làm mã nguồn mở. Tuy nhiên, bạn nên chọn những bản Dreambooth chính thức được sử dụng nhiều thì hiệu quả train sẽ cao hơn.
Tôi có thể sử dụng Dreambooth online không?
Bạn có thể chạy Dreambooth online để train mô hình của mình, nhưng nếu bạn muốn đào tạo dữ liệu lớn bạn nên xem xét nâng cấp gói Google Colab Pro hoặc chạy trên máy tính cá nhân để không bị ngắt kết nối.
Trong quá trình train dreambooth với google colab bị ngắt kết nối tôi phải xử lý như thế nào?
Trong trường hợp này bạn cần thực hiện một số vấn đề sau:
- Kiểm tra lại tài khoản Colab của bạn có đủ lượng GPU free không, nếu bạn đã chạy Google Colab nhiều trước đây với bản miễn phí. Bạn nên tạo một tài khoản mới để chạy quá trình train lại.
- Kiểm tra dữ liệu hình ảnh mẫu có quá nhiều không, nên xem xét lượt bỏ những hình ảnh tương tự nhau. chỉ giữ lại khoảng 10 – 20 ảnh chất lượng và rõ nét nhất.
- Nếu vẫn bị ngắt kết nối, bạn nên đổi một link train dreambooth colab khác và thử lại, hoặc chạy nó trên PC của bạn.
Kết luận
Dreambooth là một công cụ hữu ích trong quá trình huấn luyện mô hình Stable Diffusion. Nó giúp đơn giản hóa quá trình traning model, cho phép người dùng dễ dàng thiết lập các tham số đào tạo và điều khiển quá trình train của mình. Hãy tận dụng hết sức mạnh của công nghệ trí tuệ nhân tạo A.I để sáng tạo ra bất cứ thứ gì mà bạn thích. Với Dreambooth và Stable Diffusion hứa hẹn sẽ đóng góp vào phát triển của cộng đồng Machine Learning và Deep Learning, giúp cải thiện hiệu suất của các mô hình học máy và ứng dụng của chúng trong thực tế.
mình có một thắc mắc mong được giải đáp.
VD mình bán nón, mình muốn tạo các hình ảnh người mẩu đội mẩu nón của mình (chỉ khác màu sắc cùng 1 mẫu nón chẵn hạn). vậy là mình train Lora hay là model. và nếu là Lora hoặc Model rất mong được giúp đỡ cho mình vài thông tin để tìm kiếm học hỏi. vì mình tìm thì toàn là train lora thay đổi gương mặt. Mình rất cảm ơn Ad đã có bài hướng dẫn rất bổ ích trên.
chúc Ad luôn thành công và công việc tốt đẹp
Hi bạn, nếu chỉ cần thay đổi màu sắc hoặc chi tiết 1 mẫu nón nên xem xét các cách đơn giản khác như inpainting chẳng hạn. Còn nếu cần training 1 bộ sưu tập nón thì hãy train lora hay model. Bạn có thể thảo luận thêm trên group fb về SDVN hoặc vào web của bác Hưng Phạm để tham khảo thông tin nhé => stablediffusion.vn
cảm ơn Bạn đã hồi âm.
mà hôm trước mình train cũng nhờ vào trang stablediffusion.vn của Bạn 😀 .
+ mình có dùng inpainting nhưng nó bị giới hạn và không được thoải mái .
mình thấy nếu làm thành lora (vd như lora áo_dài ) thì chỉ cần prompts là có được ảnh tùy biến rất đẹp.
+ hôm bữa train đổi gương mặt thì mình đưa các ảnh gương mặt nhân vật vào, mình ko biết là train lora (như lora áo dài) thì ảnh source đưa vào là như thế nào. mong bạn hiểu biết chỉ giúp mình để mình làm thử. cảm ơn Bạn rất nhiều và chúc Bạn công việc luôn phát triễn tốt đẹp.
Cái này tùy nhu cầu của bạn thôi, mình chỉ chia sẻ hướng dẫn những cái chung nhất để sử dụng SD. Bạn muốn sâu hơn hãy vào group fb về SD (như fb.com/groups/midjourneyvnartbyai) thảo luận để có người góp ý thêm cho bạn nhé!
* Ah. Đính chính web stablediffusion.vn không phải bên mình, web đó của một anh admin fb SDVN tạo ra để chia sẻ.
Chúc bạn thành công!