- Bài viết về Stable Diffusion được triển khai bằng C/C++ thuần túy, một mô hình máy học
- Triển khai dựa trên ggml, hoạt động theo cách tương tự llama.cpp
- Hỗ trợ số thực dấu phẩy động 16-bit và 32-bit, cùng lượng tử hóa số nguyên 4-bit, 5-bit, 8-bit
- Triển khai tiết kiệm bộ nhớ và được tối ưu cho suy luận trên CPU; khi dùng txt2img để tạo ảnh 512x512 cần khoảng 2.3GB
- Hỗ trợ AVX, AVX2, AVX512 cho kiến trúc x86
- Bao gồm các chế độ txt2img và img2img gốc, cùng tokenizer kiểu stable-diffusion-webui
- Phương pháp lấy mẫu được dùng là Euler A
- Triển khai tương thích với các nền tảng Linux, Mac OS, Windows
- Các cải tiến trong tương lai gồm thêm nhiều phương pháp lấy mẫu hơn, hỗ trợ GPU, suy luận nhanh hơn, giảm mức dùng bộ nhớ, hỗ trợ LoRA, hỗ trợ k-quants và tính tái lập giữa các nền tảng
- Bài viết cung cấp hướng dẫn chi tiết về cách lấy mã nguồn, chuyển đổi trọng số, build và chạy triển khai
- Triển khai hỗ trợ nhiều định dạng mô hình đầu ra, gồm số thực dấu phẩy động 16-bit, số thực dấu phẩy động 32-bit và nhiều dạng lượng tử hóa số nguyên
- Bài viết cung cấp ví dụ sử dụng triển khai cho các chế độ txt2img và img2img
- Tùy theo độ chính xác được dùng, yêu cầu bộ nhớ và dung lượng đĩa sẽ khác nhau, nhưng với ảnh 512x512 thì nhu cầu bộ nhớ vào khoảng từ 2.0G đến 2.8G
- Triển khai được xây dựng dựa trên nhiều tham chiếu như ggml, stable-diffusion, stable-diffusion-webui, k-diffusion
Chưa có bình luận nào.