Trong bài đăng này, chúng tôi sẽ xem xét việc thiết lập với việc chạy trình tạo hình ảnh AI của riêng bạn. Bạn cần một hệ thống Linux có thẻ hỗ trợ CUDA để làm việc này đến cuối cùng. Tôi đã nhận được tập lệnh txt-2img cơ bản hoạt động trong Windows. Thật không may, đối với các mô hình khuếch tán tăng cường truy xuất được phát hành vào tháng 7, bạn cần scann
để lập chỉ mục tập dữ liệu hoạt động, chỉ có sẵn trên Linux. WSL hoạt động tốt đối với tôi.
Dưới đây là đại khái những gì tôi thu thập được mà bạn sẽ cần:
= RAM 32 GB
Tôi ngẫu nhiên tình cờ gặp repo khuếch tán tiềm ẩn trong khi tôi đang duyệt các subreddits AI. Một vài bài viết đã đề cập đến nó và tôi không biết nó là gì nên tôi đã truy cập vào googling.
Tôi không phải là nhà khoa học máy tính, nhà toán học hay bất kỳ thứ gì được yêu cầu để thực sự hiểu những gì đang xảy ra ở đây. Bài báo về các mô hình RAD mới rất dễ hiểu và thú vị, nhưng tôi vẫn chưa thực hiện nhiều nghiên cứu ngoài vấn đề đó.
Có thể có 2 kỹ thuật tạo hình ảnh với Khuếch tán tiềm ẩn. Chúng tôi sẽ cài đặt và xem xét cả hai.
Tôi tin rằng mô hình txt2-img mà chúng tôi sẽ thiết lập đầu tiên là mô hình chúng tôi đã quen với các công cụ tạo hình ảnh trực tuyến khác - nó tạo ra một clip hình ảnh có độ phân giải siêu thấp được cho là phù hợp nhanh chóng và làm giảm bớt và nâng cấp nó.
Mô hình RAD sử dụng cơ sở dữ liệu hình ảnh có thể định cấu hình làm tham chiếu VÀ thực hiện sự khuếch tán như chúng ta đã quen. Điều này có vẻ có nghĩa là nó kém tốt hơn như một trình tạo mục đích chung, nhưng có thể được sử dụng với một bộ đào tạo cụ thể mà bạn có thể tạo ra. Tôi sẽ thử điều này trong tương lai.
RAD cũng tạo ra hình ảnh 768X768 khá ấn tượng.
Đảm bảo rằng bạn đã cài đặt CUDA 11.3 và conda
hoạt động trong shell của bạn. Bạn có thể lấy Conda tại đây
(Lại) cài đặt Pytorch ngay bây giờ , kẻo sau này bạn sẽ rơi vào địa ngục phụ thuộc. Tôi đã làm điều này thông qua pip
nhưng conda cũng có thể hoạt động.
cd
vào repo và chạy:
conda env create -f environment.yaml conda activate ldm
Điều này sẽ thiết lập môi trường ban đầu. Nếu bạn gặp lỗi với Pytorch sau đó và cần cài đặt lại nó, hãy quay lại môi trường.yaml và cài đặt lại bằng các phiên bản gói chính xác.
Tải xuống mô hình và bạn đã sẵn sàng để sử dụng miễn là tất cả các phụ thuộc đèn pin của bạn đều được thiết lập chính xác.
mkdir -p models/ldm/text2img-large/ wget -O models/ldm/text2img-large/model.ckpt https://ommer-lab.com/files/latent-diffusion/nitro/txt2img-f8-large/model.ckpt
Bạn sẽ có thể lấy mẫu hình ảnh bây giờ bằng cách sử dụng:
python scripts/txt2img.py --prompt "my cool image"
Đảm bảo thấy các tùy chọn bạn có thể đặt trong README.
Bạn có thể sử dụng tập lệnh bash này để chạy mọi thứ từ một trình bao dễ dàng hơn. Bạn có thể đưa cái này vào tệp ~/.bashrc
của mình và mở lại trình bao của bạn. Đảm bảo thay đổi 3 đường dẫn để phù hợp với nhu cầu của bạn. Chúng ta sẽ xem xét PLMS sau.
function txt2img() { if [ $# -eq 0 ]; then echo "Usage: diffuse '[prompt]' [--plms]" exit 1 fi cd /mnt/c/diffusion/latent-diffusion; conda activate ldm; if [ $2 = '--plms' ]; then python scripts/txt2img.py --prompt $1 --outdir '/mnt/g/My Drive/AI Image Tests/text2img' --plms --n_iter 4 --ddim_eta 0.0 else python scripts/txt2img.py --prompt $1 --outdir '/mnt/g/My Drive/AI Image Tests/text2img' --n_iter 4 --ddim_eta 0.0 fi }
Hình ảnh có kích thước 512X512 theo mặc định. Bạn có thể sử dụng This Jupiter Notebook để nâng cấp hình ảnh với kết quả khá tốt.
htop
để khắc phục sự cố / xem mức sử dụng bộ nhớ.pip
và / hoặc conda
(Tôi đã làm cả hai và không chắc điều gì đã làm cho mọi thứ hoạt động) Bạn có thể đọc thêm về RDM tại đây . Như đã nói trước đây, về cơ bản nó kết hợp cơ sở dữ liệu hình ảnh với mô tả Clip với quá trình khuếch tán hiện có, theo những gì tôi hiểu. Phần này mất nhiều thời gian hơn để chạy.
Lưu ý, mô hình này, đặc biệt là khi sử dụng đào tạo các tác phẩm tốt nhất trong việc tái tạo những thứ thực và có vẻ như không tốt lắm (chưa) và tạo ra những hình ảnh kỳ lạ mà chúng ta đã quen thuộc từ các mô hình khuếch tán.
Làm cho mô hình Text-to-Image hoạt động trước tiên
Cài đặt các gói mới và tải xuống mô hình đào tạo.
pip install transformers==4.19.2 scann kornia==0.6.4 torchmetrics==0.6.0 pip install git+https://github.com/arogozhnikov/einops.git mkdir -p models/rdm/rdm768x768/ wget -O models/rdm/rdm768x768/model.ckpt https://ommer-lab.com/files/rdm/model.ckpt
Kiểm tra mọi thứ đang hoạt động cho đến nay với
python scripts/knn2img.py --prompt "I'm a computer"
Nếu mọi thứ diễn ra tốt đẹp, bạn sẽ thấy một văn bản thành công trong trình bao của mình. Bây giờ chúng ta cần tải xuống tất cả các chỉ mục / mô hình hình ảnh. Bản zip của openimages là 11GB. Dữ liệu ArtBench khá nhỏ.
mkdir -p data/rdm/retrieval_databases wget -O data/rdm/retrieval_databases/artbench.zip https://ommer-lab.com/files/rdm/artbench_databases.zip wget -O data/rdm/retrieval_databases/openimages.zip https://ommer-lab.com/files/rdm/openimages_database.zip unzip data/rdm/retrieval_databases/artbench.zip -d data/rdm/retrieval_databases/ unzip data/rdm/retrieval_databases/openimages.zip -d data/rdm/retrieval_databases/ mkdir -p data/rdm/searchers wget -O data/rdm/searchers/artbench.zip https://ommer-lab.com/files/rdm/artbench_searchers.zip unzip data/rdm/searchers/artbench.zip -d data/rdm/searchers
Chúng tôi đã sẵn sàng sử dụng các mô hình Artbench ngay bây giờ (hoạt động khá tốt trong thử nghiệm giới hạn của tôi), nhưng những gì chúng tôi thực sự muốn là sử dụng mô hình openimages khổng lồ làm tài liệu tham khảo của chúng tôi. Chúng tôi đã tải xuống dữ liệu, nhưng chúng tôi cần tạo chỉ mục.
Nếu bạn muốn kiểm tra cơ sở dữ liệu Artbench, hãy chạy
python scripts/knn2img.py --prompt "A blue pig" --use_neighbors --knn 20
Trừ khi bạn có một siêu máy tính, việc quản lý bộ nhớ khủng khiếp trong quá trình đa xử lý python (theo những gì tôi có thể nói) sẽ ngăn chúng tôi sử dụng 4 tệp mà chúng tôi đã giải nén bằng tập lệnh từ repo để lập chỉ mục chúng. Mọi thứ khác mà tôi đã thử, các quy trình sẽ hết bộ nhớ.
May mắn thay, chúng tôi chỉ cần nối các tệp. Bạn có thể xóa các tệp phần cũ sau đó nếu bạn muốn. Chúng ta cũng cần di chuyển các tập tin phần ra khỏi thư mục openimages.
cd data/rdm/retrieval_databases/openimages/ cat 2000000x768_part1.npz 2000000x768_part2.npz 2000000x768_part3.npz 2000000x768_part4.npz > 2000000x768.npz mv 2000000x768_* ~/temp cd ../../../../
Bây giờ khi chúng tôi chạy tập lệnh đào tạo, chúng tôi sẽ không hết bộ nhớ. Tôi nghĩ rằng đây là một số vấn đề trong chức năng đa tệp của họ trong tập lệnh đào tạo.
python scripts/train_searcher.py
Chúng tôi cần thay đổi kích thước hàng loạt trong scripts/knn2img.py
để chúng tôi không hết bộ nhớ GPU. Bạn có thể cần giảm xuống 1, nhưng tôi đã có thể đặt thành 2 trên 3090.
Mở scripts/knn2img.py
trong trình chỉnh sửa
Đi tới dòng 243 hoặc tìm “n_samples”
Thay đổi giá trị mặc định thành 1 hoặc 2 và lưu
Bạn cũng có thể thực hiện việc này bằng cách sử dụng tham số dòng lệnh, nhưng vì nó sẽ không bao giờ hoạt động đối với tôi, tôi muốn thay đổi giá trị mặc định. Lưu ý nếu bạn cập nhật repo trong tương lai, điều này có thể sẽ bị ghi đè.
Bây giờ chúng ta có thể tạo hình ảnh RDM bằng cách sử dụng cơ sở dữ liệu tác vụ:
python scripts/knn2img.py --prompt "A blue pig" --database openimages --use_neighbors --knn 20
Đây là một tập lệnh ~/.bashrc
để chạy nó một cách thuận tiện. Một lần nữa, hãy đảm bảo thay đổi 3 đường dẫn để phù hợp với nhu cầu của bạn:
function diffuse() { if [ $# -eq 0 ]; then echo "Usage: diffuse '[prompt]' [--plms]" exit 1 fi cd /mnt/c/diffusion/latent-diffusion; conda activate ldm; if [ $2 = '--plms' ]; then python scripts/knn2img.py --database openimages --prompt $1 --use_neighbors --outdir '/mnt/g/My Drive/AI Image Tests/RDM' --knn 20 --plms else python scripts/knn2img.py --database openimages --prompt $1 --use_neighbors --outdir '/mnt/g/My Drive/AI Image Tests/RDM' --knn 20 fi }
Bạn cũng có thể chạy các lời nhắc hàng loạt bằng cách tạo một tệp (trong trường hợp này prompts.txt
) và trỏ tập lệnh tới nó bằng tham số –from –from-file
như thế này
python scripts/knn2img.py --database openimages --from-file ./prompts.txt --use_neighbors --outdir '/mnt/g/My Drive/AI Image Tests/RDM' --knn 20
mẫu prompts.txt
prompt 1 prompt 2 prompt 3
Điều này sẽ tiết kiệm rất nhiều thời gian nếu bạn đang chạy nhiều truy vấn vì mô hình chỉ được tải một lần. Mô hình chuyển văn bản thành hình ảnh không có tùy chọn này.
Dưới đây là một số kết quả ban đầu từ cả hai mô hình có bật và tắt PLMS. PLMS sẽ giúp mọi thứ chạy nhanh hơn. Hiện tại, chúng tôi sẽ không đo tốc độ tăng mà sẽ xem xét chất lượng / kết quả hình ảnh một cách chủ quan.
Vì mô hình RDM sẽ chỉ tạo 2 ảnh cùng một lúc cho hệ thống của tôi, tôi đã bao gồm cả hai ảnh thay vì lưới cho mô hình đó.
Tôi gần như chắc chắn sẽ thực hiện thử nghiệm cụ thể hơn trong tương lai và các mô hình này sẽ được đưa vào các bài viết so sánh trong tương lai.
Một ngôi nhà gỗ trên đồi, chụp ảnh phong cảnh
Chuyển văn bản thành hình ảnh
không có plms | với plms |
---|---|
RDM
không có plms | với plms |
---|---|
Dấu hiệu dừng màu tím
Chuyển văn bản thành hình ảnh
không có plms | với plms |
---|---|
RDM
không có plms | với plms |
---|---|
cáo den, nghệ thuật kỹ thuật số
Chuyển văn bản thành hình ảnh
không có plms | với plms |
---|---|
RDM
không có plms | với plms |
---|---|
chiến thắng trò chơi lớn, đoạt giải nhiếp ảnh
Chuyển văn bản thành hình ảnh
không có plms | với plms |
---|---|
RDM
không có plms | với plms |
---|---|
lái xe thể thao trong cồn cát
Chuyển văn bản thành hình ảnh
không có plms | với plms |
---|---|
RDM
không có plms | với plms |
---|---|
Và bạn đã có nó - không cần thêm tín dụng hoặc giới hạn hàng tháng, chỉ cần tạo hình ảnh AI thuần túy cho riêng bạn. Khi tôi tìm ra một số cài đặt điều chỉnh và tạo cơ sở dữ liệu đào tạo hình ảnh của riêng mình, chúng ta có thể sẽ nói về điều này một lần nữa.
Hy vọng rằng với một số điều chỉnh và các bản phát hành / mô hình mới, điều này sẽ tiến gần hơn đến yếu tố WOW mà DALL-E có.
Cũng được xuất bản ở đây .