tăng kích thước hình ảnh

3 phương pháp độc đáo tăng kích thước hình ảnh trong Stable Diffusion

Bạn muốn tạo ra những hình ảnh lớn có nhiều chi tiết với Stable Diffusion? Bạn sẽ cần sử dụng một công cụ để tăng kích thước hình ảnh. Trong bài viết này, chúng ta sẽ cùng tìm hiểu về 3 phương pháp độc đáo để tăng kích thước hình ảnh.

  • Công cụ tăng kích thước dựa trên trí tuệ nhân tạo (AI upscalers)
  • Tăng kích thước SD (SD upscale)
  • Tăng kích thước theo ô lưới ControlNet (ControlNet tile upscale)

Bạn sẽ thấy sự khác biệt và cùng tìm hiểu về ưu nhược điểm của các phương pháp này.

Phần mềm

Chúng ta sẽ sử dụng giao diện đồ họa AUTOMATIC1111 Stable Diffusion để thực hiện tăng kích thước. Bạn có thể sử dụng giao diện này trên Windows, Mac hoặc Google Colab.

Đối với phương pháp cuối cùng, chúng ta sẽ cần sử dụng các tiện ích mở rộng Ultimate SD Upscale và ControlNet.

Người dùng Colab

Nếu bạn sử dụng Colab Notebook được cung cấp bởi trang web, bạn chỉ cần chọn các tiện ích mở rộng ControlNet và Ultimate SD Upscale trước khi bắt đầu notebook.

tăng kích thước ảnh

Người dùng Windows hoặc Mac

Cài đặt tiện ích Ultimate SD upscale

Ultimate SD upscale là một tiện ích mở rộng cung cấp các chức năng tương tự như SD Upscale tích hợp sẵn nhưng có một số tùy chọn nâng cao.

Để cài đặt tiện ích Ultimate SD upscale trong AUTOMATIC1111:

1. Truy cập vào trang Extensions (Tiện ích mở rộng).

2. Chọn tab Install from URL (Cài đặt từ URL).

3. Đưa URL sau vào trường URL for extension’s repository (URL cho kho chứa tiện ích):

https://github.com/Coyote-A/ultimate-upscale-for-automatic1111

4. Nhấp vào nút Install (Cài đặt).

5. Chờ đợi thông báo xác nhận tiện ích đã được cài đặt thành công.

6. Khởi động lại AUTOMATIC1111.

tăng kích thước hình ảnh

Nếu quá trình cài đặt thành công, bạn sẽ thấy tiện ích Ultimate SD upscale có sẵn trong menu Script ở phía dưới trang img2img.

tăng kích thước hình ảnh

Cài đặt tiện ích ControlNet

ControlNet là một tiện ích mở rộng mang đến cho bạn sự kiểm soát bổ sung đối với việc tạo ra hình ảnh. Xem hướng dẫn ControlNet để tìm hiểu thêm.

Để cài đặt tiện ích ControlNet trong AUTOMATIC1111:

1.Truy cập vào trang Extensions (Tiện ích mở rộng).

2. Chọn tab Install from URL (Cài đặt từ URL).

3. Đưa URL sau vào trường URL for extension’s repository (URL cho kho chứa tiện ích):

https://github.com/Mikubill/sd-webui-controlnet

4. Nhấp vào nút Install (Cài đặt).

5. Chờ đợi thông báo xác nhận tiện ích đã được cài đặt.

6. Khởi động lại AUTOMATIC1111.

7. Truy cập vào trang ControlNet models (mô hình ControlNet).

8. Tải xuống tất cả các tệp mô hình (kết thúc bằng .pth). Nếu bạn không muốn tải xuống tất cả, bạn có thể chỉ tải xuống mô hình tile (kết thúc bằng _tile) cho bài hướng dẫn này.

9. Đặt các tệp mô hình vào thư mục model của tiện ích ControlNet.

stable-diffusion-webui\extensions\sd-webui-controlnet\models

10. Khởi động lại AUTOMATIC1111.

Bạn sẽ thấy phần ControlNet trên trang txt2img. Tile model sẽ có sẵn để chọn trong menu Model dropdown. Nhấn nút làm mới (refresh button) bên cạnh menu nếu bạn không thấy nó.

tăng kích thước hình ảnh

Ảnh đầu vào

Chúng ta sẽ sử dụng hình ảnh sau đây được tạo bởi Stable Diffusion.

tăng kích thước hình ảnh

Model: Lyriel v1.5

Gợi ý và gợi ý phủ định:

“The Last Dance”: Trong một phòng khiêu vũ huy hoàng, những người yêu cuối cùng của chúng ta cùng nhau nhảy múa. Thời gian dường như chậm lại khi họ nhảy vali, lạc mất trong đôi mắt của nhau. Chưa biết với họ, đây sẽ là khoảnh khắc cuối cùng họ ở bên nhau trước khi số phận can thiệp.

(Tôi đã lấy gợi ý này từ GPT-4)

méo mó, biến dạng

Kích thước ban đầu khá nhỏ (768×512 pixel). Hãy phóng to nó 4 lần lên 3.072×2.048 pixel. Chúng ta sẽ thử nghiệm với ba phương pháp nâng cấp.

1. Trình nâng cấp AI (AI Upscaler)

2. Nâng cấp SD (SD Upscale)

3. Tăng kích thước theo ô lưới ControlNet (ControlNet tile upscale)

Phương pháp 1: AI Upscaler

AI Upscaler là một mô hình trí tuệ nhân tạo được lập trình để tăng kích thước hình ảnh và điền vào chi tiết để hình ảnh có thể giữ được sự sắc nét. Đây là cách cơ bản để nâng cấp hình ảnh trong AUTOMATIC1111.

1. Trong AUTOMATIC1111, truy cập vào trang Extras (Các tiện ích bổ sung).

2. Tải lên hình ảnh lên canvas hình ảnh.

3. Thiết lập Resize (Phóng to) là 4.

4. Chọn một trình nâng cấp trong Upscaler 1. Tôi đã sử dụng Universal Upscaler v2, nhưng bạn có thể sử dụng bất kỳ trình nâng cấp nào khác.

tăng kích thước hình ảnh

5. Nhấp vào nút Generate (Tạo).

Sau một lúc, bạn sẽ thấy hình ảnh đã được phóng to trên cửa sổ xuất hiện bên phải.

tăng kích thước hình ảnh

Hãy cùng xem sự thay đổi, đầu tiên xem chiếc váy.

tăng kích thước hình ảnh

AI upscaled (Universal Upscaler v2)

tăng kích thước hình ảnh

Original (đã zoom)

Nó đang làm rất tốt khi giữ được các chi tiết của chiếc váy.

Nhưng khuôn mặt của người phụ nữ sẽ cần một số cải thiện vượt ra ngoài những gì trình nâng cấp này có thể làm.

tăng kích thước hình ảnh

AI upscaled (Universal Upscaler v2)

tăng kích thước hình ảnh

Original (đã zoom)

Chắc chắn, bạn có thể bật chức năng phục hồi khuôn mặt, sử dụng một mô hình trí tuệ nhân tạo khác để khôi phục khuôn mặt. Nhưng vì mô hình không được đào tạo với phong cách cụ thể này, nó có thể tạo ra các hiện tượng không mong muốn và làm cho khuôn mặt trông không tự nhiên.

Xem thêm: Tìm hiểu về Prompt và Negative Prompt trong Stable Diffusion

Phương pháp 2: SD Upscale

Có cách nào để sửa chữa khuôn mặt mà không sử dụng chức năng phục hồi khuôn mặt?

Đầu tiên, khuôn mặt khá giống với khuôn mặt trong hình ảnh gốc. Đó là lý do tại sao chúng ta nhận được khi tăng kích thước hình ảnh lên.

Nhưng nếu bạn vẫn thấy ổn với những thay đổi so hình ảnh gốc đã được tạo bởi máy tính, bạn có thể thực hiện một vòng lặp bổ sung của ảnh-đến-ảnh để tái tạo chi tiết.

Đây chính xác là những gì mà SD upscale làm.

Lợi ích của phương pháp này là

  • Có thể tạo ra chi tiết zoom-in mới với cùng một model và hướng dẫn.
  • Loại bỏ các hiện tượng tạo ra bởi trình nâng cấp AI.

Bạn có thể sử dụng tập lệnh SD upscale trên trang img2img trong AUTOMATIC1111 để dễ dàng thực hiện cả nâng cấp AI và SD img2img cùng một lúc. Kịch bản thực hiện Stable Diffusion img2img trong các ô nhỏ, vì vậy nó hoạt động với các thẻ GPU VRAM thấp.

Hướng dẫn từng bước

Làm theo các bước sau để thực hiện SD upscale.

1. Trên trang img2img, tải lên hình ảnh lên Image Canvas.

2. Đưa gợi ý ban đầu và gợi ý phủ định. Bạn có thể sử dụng “highly detailed” nếu bạn không có gợi ý ban đầu.

tăng kích thước hình ảnh

Lựa chọn thay thế 1: Nếu bạn vừa mới tạo ra hình ảnh trên trang txt2img, hãy nhấp vào nút Send to img2img. Hình ảnh và hướng dẫn sẽ được điền tự động.

Lựa chọn thay thế 2: Nếu bạn có một hình ảnh đã tạo được lưu trữ trên đĩa cục bộ, bạn có thể tải lên trang PNG info. Bạn sẽ thấy tất cả thông tin để tạo ra hình ảnh này, bao gồm hướng dẫn và các mô hình. Nhấp vào Send to img2img. Hình ảnh và hướng dẫn sẽ được điền tự động.

3. Trong menu dropdown Stable Diffusion checkpoint, chọn mô hình bạn đã sử dụng ban đầu khi tạo ra hình ảnh này.

4. Đặt cả chiều rộngchiều cao của hình ảnh thành 512. Đây là kích thước ô nhỏ sẽ được sử dụng cho SD upscale.

5. Đặt denoising strength thành 0.3. Giá trị cao hơn sẽ tạo ra nhiều chi tiết và khôi phục hơn, nhưng bạn không nên đặt giá trị cao hơn 0.4. Nếu không, bạn sẽ thấy hiện tượng không mong muốn.

tăng kích thước hình ảnh

6. Tìm menu Script dropdown gần nút dưới cùng của trang img2img. Chọn SD upscale.

7. Đặt Scale Factor thành 4 để phóng to 4 lần.

8. Chọn một Upscaler. Tôi đã chọn cùng một trình nâng cấp được sử dụng trong phương pháp trước. Nhưng nếu bạn không có nó, bạn có thể chọn ESRGAN hoặc R-ESRGAN.

9. Nhấp vào nút Generate (Tạo).

Kết quả

Đây là kết quả nhận được.

tăng kích thước hình ảnh

Sàn gỗ có nhiều chi tiết, nhờ vào Stable Diffusion img2img.

Bây giờ hãy so sánh khuôn mặt.

tăng kích thước hình ảnh

SD upscale

tăng kích thước hình ảnh

AI upscale

tăng kích thước hình ảnh

Original (đã zoom)

SD upscale sửa chữa các khuôn mặt mà không tạo ra hiện tượng không mong muốn.

Hãy cùng xem đến chiếc váy

tăng kích thước hình ảnh

SD upscale

tăng kích thước hình ảnh

AI upscale

tăng kích thước hình ảnh

Original (đã zoom)

Nó có một chút chi tiết hơn.

Bạn có thể thử nghiệm với các thông số sau.

  • Sampling steps: Đặt cao hơn, ví dụ: 50 – 100, có thể tạo ra nhiều chi tiết hơn.
  • Sampling method: Chi tiết có thể khác nhau, đặc biệt là với các bộ lấy mẫu tổ tiên (ancestral samplers).
  • Denoising strength: Điều chỉnh mức độ chi tiết được thêm vào. Khoảng hoạt động là từ 0.1 đến 0.4 cho phương pháp này.
  • Seed: Thay đổi chi tiết.

Mức chi tiết được điều khiển bằng thông số denoising strength. Như tôi đã nói trước đó, phương pháp này sẽ không hoạt động nếu bạn đặt giá trị cao hơn 0.4 vì Stable Diffusion sẽ thay đổi hình ảnh quá nhiều. Bạn sẽ bắt đầu thấy hiện tượng không mong muốn.

Có cách nào để tăng độ mạnh của denoising strength mà không làm thay đổi thành phần gốc? Mmmm… Điều này nghe có vẻ rất giống với chức năng của một tiện ích sao chép thành phần từ hình ảnh tham chiếu…

Đúng vậy. Giải pháp là sử dụng ControlNet!

Phương pháp 3: ControlNet tile upscale

ControlNet tile là một mô hình ControlNet để tái tạo chi tiết hình ảnh. Nếu chi tiết hình ảnh cục bộ không phù hợp với gợi ý, nó sẽ bỏ qua gợi ý và điền vào chi tiết cục bộ. Hành vi này làm cho nó lý tưởng cho việc phóng to trong các ô nhỏ, vì vậy nó hoạt động với cấu hình VRAM thấp.

Bạn sẽ cần cài đặt tiện ích Ultimate SD Upscale và ControlNet để sử dụng phương pháp này. Nếu bạn chưa làm thì hãy làm theo hướng dẫn trong phần Phần mềm.

Tôi không hiểu tại sao phương pháp này không hoạt động với tập lệnh SD Upscale tích hợp sẵn.

Hướng dẫn từng bước

Để thực hiện ControlNet tile upscale:

1. Truy cập vào trang img2img trong AUTOMATIC1111.

2. Tải lên hình ảnh của bạn lên img2img canvas.

3. Đưa gợi ý ban đầu và gợi ý phủ định. Bạn có thể sử dụng “highly detailed” nếu bạn không có gợi ý ban đầu.

Lựa chọn thay thế 1: Nếu bạn vừa mới tạo ra hình ảnh trên trang txt2img, bạn có thể nhấp vào nút Send to img2img. Hình ảnh và hướng dẫn sẽ được điền tự động trên trang img2img.

Lựa chọn thay thế 2: Nếu bạn có một hình ảnh đã tạo được lưu trữ trong ổ đĩa cục bộ, tải lên trang  PNG info. Bạn sẽ thấy tất cả thông tin để tạo ra hình ảnh này, bao gồm hướng dẫn và các model. Nhấp vào Send to img2img. Hình ảnh và hướng dẫn sẽ được điền tự động trên trang img2img.

4. Đặt Sampling steps thành 50.

5. Đặt Denoising strength thành 0.5.

tăng kích thước hình ảnh

Các bước sau đây là cho phần ControlNet.

6. Tải cùng một hình ảnh gốc lên image canvas của ControlNet.

7. Chọn Enable để kích hoạt tiện ích ControlNet.

8. Chọn tile_resample trong menu dropdown Preprocessor.

9. Chọn control_v…_sd15_tile trong menu dropdown Model.

tăng kích thước hình ảnh

Các bước sau đây là cho tiện ích Ultimate SD Upscale.

10. Trong menu Script dropdown gần cuối trang, chọn Ultimate SD Upscale.

11. Trong menu dropdown Target size type, chọn Scale from image size.

12. Đặt Scale thành 4.

13. Chọn một Upscaler. Tôi đã sử dụng Universal Upscaler v2. Nhưng bạn có thể chọn ESRGAN hoặc R-ESRGAN cho một trình nâng cấp chung.

tăng kích thước hình ảnh

14. Xác nhận rằng Tile width là 512 và chiều cao là 0. Điều này sẽ sử dụng các ô 512×512 trong quá trình phóng to.

15. Nhấp vào nút Generate (Tạo).

Kết quả

Đây là hình ảnh đã được phóng to

tăng kích thước hình ảnh

Hãy phóng to và so sánh.

Đây là những khuôn mặt.

tăng kích thước hình ảnh

ControlNet tile upscale

tăng kích thước hình ảnh

SD upscale

tăng kích thước hình ảnh

AI upscale

tăng kích thước hình ảnh

Original (đã zoom)

Chất lượng của ControlNet tile upscale thực sự tuyệt vời. Khuôn mặt và tóc được tái hiện rõ ràng với nhiều chi tiết.

Bây giờ hãy kiểm tra chiếc váy.

tăng kích thước hình ảnh

ControlNet tile upscale

tăng kích thước hình ảnh

SD upscale

tăng kích thước hình ảnh

AI upscale

tăng kích thước hình ảnh

Original (đã zoom)

Thật sự ấn tượng bởi lượng chi tiết được thêm vào!

Nhược điểm của phương pháp này có thể là việc thêm quá nhiều chi tiết. Nó có thể thay đổi hình ảnh một cách không còn trung thành với tỉ lệ phóng ban đầu. Nhưng điều đó phụ thuộc vào mục tiêu của bạn.

Điều chỉnh tham số

Bạn có thể thử nghiệm với các tham số sau.

  • Denoising strength: Giảm giá trị để giảm số lượng chi tiết được thêm vào. Giá trị tối đa hợp lý là 0.5, theo kinh nghiệm của tôi.
  • Downsampling rate (ControlNet): Điều chỉnh mức độ giảm mẫu được thực hiện trên ô điều khiển. Tăng giá trị này làm mờ hình ảnh điều khiển. Càng mờ hình ảnh điều khiển, mô hình có thêm sự tự do trong việc tái tạo chi tiết.
  • Sampling steps: Tăng số bước lấy mẫu để cải thiện chi tiết và sắc nét. Phương pháp lấy mẫu: Tương tự như SD Upscale, bộ lấy mẫu có thể ảnh hưởng đến chi tiết cuối cùng.
  • Seed: Thay đổi hạt giống để thay đổi chi tiết.
  • Seam fix (Ultimate SD Upscale): Bật nếu bạn cảm thấy bạn có thể nhìn thấy các ô 512×512. Tùy chọn này chạy một vòng lặp nâng cấp bổ sung theo biên của các ô.

Mẹo

Nếu bạn thấy hiện tượng như các đối tượng bổ sung, hãy giảm giá trị denoising strength hoặc down-sampling rate.

Xem thêm: Model CheckPoint và Lora trong Stable Diffusion là gì?

Nên lựa chọn phương pháp nào?

Trong ba phương pháp tăng kích thước hình ảnh – AI upscale, SD Upscale và ControlNet tile upscale, bạn nên sử dụng phương pháp nào?

Trước khi đưa ra các khuyến nghị, tôi sẽ cho rằng các trường hợp sử dụng của SD upscale và ControlNet tile upscale tương tự nhau. ControlNet tile upscale vượt trội. Sẽ không có trường hợp nào mà bạn muốn sử dụng SD upscale thay vì ControlNet tile upscale.

Vì vậy, nó rút xuống 2 lựa chọn: (1) AI upscaler và (2) ControlNet tile upscale.

Vì bạn thường sẽ tăng kích thước hình ảnh với AI upscaler trước khi thực hiện phép toán ControlNet tile, về cơ bản, nó phụ thuộc vào việc có thực hiện một bước nâng cấp ảnh-đến-ảnh bổ sung với điều kiện ControlNet tile hay không.

Nếu bạn đang làm việc với ảnh thực tế hoặc tính trung thực là quan trọng đối với bạn, bạn có thể bỏ qua ControlNet tile và chỉ sử dụng một AI upscaler. Có rất nhiều AI upscaler bạn có thể sử dụng cho các loại hình ảnh khác nhau.

Thực tế, ngay cả các AI upscaler này cũng tạo ra các chi tiết, vì vậy hãy sử dụng chúng một cách khôn ngoan.

ControlNet tile upscale là phương pháp phù hợp để tăng kích thước hình ảnh nếu bạn ưa thích việc thêm chi tiết. Điều này áp dụng cho các hình ảnh được tạo bằng Stable Diffusion hoặc các công cụ tạo hình ảnh AI khác.

Để biết thêm thông tin chi tiết về Stable Diffusion có thể tìm hiểu thêm tại khóa học Stable Diffusion – Midjourney tại Arcline Academy hoặc có thể tham khảo thêm thông tin các khóa học khác tại đây       

Trụ sở chính: 32/19 Nghĩa Hòa, Phường 06, Q. Tân Bình, TPHCM (Nhà Thờ Nghĩa Hòa – Khu Bắc Hải)

Trụ sở miền Tây: L30-09, Đường số 43, Khu Dân cư Stella Megacity, P. Bình Thủy, Q. Bình Thủy, Tp. Cần Thơ

Hotline: 0988 363 967

Comments are closed.