Dreambooth là gì? Cùng tìm hiểu cách cách sử dụng Dreambooth

1vpn

Dreambooth là mà nguồn mở cho phép người dùng có thể input bất kỳ dữ liệu như người thân yêu, chú chó của bạn, món đồ chơi yêu thích của bạn vào Stable Diffusion. 

Trong bài viết này, chúng tôi sẽ giới thiệu Dreambooth là gì, Dreambooth hoạt động như thế nào và cách training AI của Dreambooth. 

Chú ý: Bài viết này sẽ phù hợp với các bạn đã nghiên cứu qua hay sử dụng Stable Diffusion. 

Dreambooth thực sự là cánh cửa cho bạn có thể hoàn thiện mô hình hay các tác phẩm của mình. Sau khi đọc kỹ hướng dẫn này, bạn sẽ biết được cách sử dụng Dreambooth để chinh phục những tác phẩm nghệ thuật nâng cao. 

Dreambooth là gì? 

Dreambooth được nhóm nghiên cứu của Google xuất bản vào năm 2022, là một kỹ thuật để tinh chỉnh các diffusion models (như Stable Diffusion) bằng cách đưa một đối tượng tùy chỉnh vào mô hình.

Tại sao lại gọi là Dreambooth? Theo giải thích của nhóm nghiên cứu của Google: Dreambooth giống như một buồng chụp ảnh, nhưng một khi đối tượng được chụp, nó có thể được tổng hợp và sử dụng cho các lần input thông tin và request dữ liệu khác. .

Nhưng Dreambooth hoạt động tốt như thế nào? Dưới đây là một ví dụ từ bài báo nghiên cứu. Chỉ sử dụng 3 hình ảnh của một con chó (Devora) cụ thể làm dữ liệu input, dreambooth có thể tạo ra hình ảnh của Devora trong các ngữ cảnh khác nhau.

Dreambooth hoạt động như thế nào?

Bạn có thể thắc mắc tại sao bạn không thể đào tạo mô hình một cách đơn giản bằng cách làm từng bước với các bức ảnh đó. Nhưng vấn đề là: việc này gây ra lỗi overfitting và language drifting (vì tập dữ liệu khá nhỏ). 

Dreambooth giải quyết những vấn đề này bằng cách:

Sử dụng một từ hiếm cho chủ đề mới (Lưu ý rằng trong ví dụ, tôi đã lấy 1 cái tên hiếm Devora cho con chó) để nó không có nhiều ý nghĩa trong mô hình ngay từ đầu.

Bảo toàn ý nghĩa cho class cũ: Để bảo toàn ý nghĩa của class trước đó (con chó trong trường hợp trên), Dreambooth được tinh chỉnh theo cách mà chủ thể (Devora) được đưa vào trong khi tạo hình ảnh của lớp (con chó) là lưu trước đó.

Cần gì để đào tạo Dreambooth? 

Bạn sẽ cần ba điều sau: 

  • Một vài hình ảnh tùy chỉnh
  • Một định danh duy nhất
  • Một tên class

Trong ví dụ trên. Định danh duy nhất là Devora. Tên class là chó.

Sau đó, bạn sẽ cần xây dựng câu prompt của mình. 

một bức ảnh về [class name] unique identifier]

Thêm class prompt:

Như vậy, như ví dụ bên trên, ta có prompt như sau: một bức ảnh về con chó Devora

Và vì Devora là một con chó nên, class prompt sẽ là: ảnh về một con chó. 

Trên đấy là một ví dụ trực quan và dễ hiểu, Dreambooth sẽ hoạt động như vậy. Giờ bắt tay vào làm thử nha: 

Cách làm từng bước

Input hình mẫu

Như trong bất kỳ nhiệm vụ máy có dữ liệu đầu vào, dữ liệu đào tạo đầu vào có chất lượng cao là yếu tố quan trọng nhất dẫn đến thành công của bạn.

Chụp 3-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 ở các background khác nhau để Dreambooth có thể phân biệt đối tượng với background. 

Tôi sẽ sử dụng đồ chơi này trong phần hướng dẫn.

Điều chỉnh kích cỡ của hình ảnh

Để 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 của chúng thành 512×512 pixel để đào tạo với các mẫu v1.

BIRME là một trang web khá ok để thay đổi kích thước hình ảnh. Bạn có thể dùng các web khác để thuận tiện với bạn. 

  • Drop hình ảnh của bạn vào trang BIRME.
  • Điều chỉnh tỉ lệ khung hình của mỗi hình ảnh để nó hiển thị nội dung đầy đủ.
  • Đảm bảo chiều rộng và chiều cao đều là 512 px.
  • Nhấn LƯU TỆP để lưu ảnh đã thay đổi kích thước vào máy tính của bạn.

Training

Bạn nên dùng Google Colab để train vì Google Colab khá dễ thiết lập. Google Colab được sửa đổi từ kho lưu trữ của Shivam Shrirao nhưng được làm cho thân thiện hơn với người dùng.

Toàn bộ quá trình training mất khoảng 30 phút. Nếu không sử dụng Google Colab nhiều, bạn vẫn có thể hoàn thành khóa đào tạo mà không bị ngắt kết nối. Tuy nhiên, bạn nên mua gói 10 đô la Mỹ sẽ giúp bạn có 50 giờ sử dụng mà không bị ngắt kết nối giữa chừng. Khá rẻ phải không ah? 

Google Colab sẽ lưu models vào Google Drive của bạn. Đảm bảo bạn có ít nhất 2GB nếu chọn fp16 (được khuyến nghị) và 4GB nếu không.

  1. Mở Google Colab.
  2. Bạn không cần thay đổi MODEL_NAME nếu muốn train từ Stable Diffusion v1.5 model. 
  3. Đặt instance prompt và class prompt. Đối với hình ảnh của tôi, tôi đặt tên cho chú thỏ đồ chơi của mình là zwx nên insta nce prompt của ví dụ của tôi là “ảnh đồ chơi zwx” và class prompt của tôi là “ảnh đồ chơi”.
  4. Click vào button Play ( ) ở góc trái và bắt đầu tạo. 
  5. Cấp quyền truy cập Google Drive. Hiện tại, không có cách nào dễ dàng để tải xuống tệp mô hình ngoại trừ việc lưu vào Google Drive.
  6. 6. Nhấn Chọn tệp để tải lên các hình ảnh đã thay đổi kích thước.
  7. Qúa trình tạo ảnh này mất khoảng 30p. Khi hoàn tất, bạn sẽ thấy một vài hình ảnh mẫu được tạo từ mô hình mới.
  8. Các ảnh của bạn sẽ được lưu trong Google Drive, trong thư mục Dreambooth_model. Tải tệp xuống và cài đặt nó trong GUI yêu thích của bạn.

Kiểm tra Model

Để kiểm tra và input của bạn, bạn có thể tạo ngay 1 request ảnh với một tab mới của Google Colab. 

Ví dụ như: 

Sử dụng prompt: oil painting of zwx in style of van gogh. 

Với mô hình mới với dữ liệu ZWXi, tôi hài lòng với những gì tôi nhận được:

Sử dụng mô hình

Bạn có thể sử dụng tệp điểm kiểm tra mô hình trong AUTOMATIC1111 GUI. Đây là một GUI miễn phí và đầy đủ tính năng mà bạn có thể cài đặt trên Windows, Mac hoặc chạy trên Google Colab.

Nếu bạn chưa sử dụng GUI và tệp mô hình đã được lưu trong Google Drive, thì cách dễ nhất là sử dụng Google Colab. Tất cả những gì bạn cần làm là đặt đường dẫn đến models trong Google Drive để sử dụng nó. Xem hướng dẫn từng bước để biết thêm chi tiết.