Ekstensi WebUI untuk ControlNet dan kontrol SD berbasis injeksi lainnya.
Ekstensi ini untuk UI web Difusi Stabil AUTOMATIC1111, memungkinkan UI Web menambahkan ControlNet ke model Difusi Stabil asli untuk menghasilkan gambar. Penambahannya dilakukan secara on-the-fly, tidak diperlukan penggabungan.
https://github.com/Mikubill/sd-webui-controlnet.git
ke "URL untuk repositori git ekstensi".Anda dapat menemukan semua tautan unduhan di sini: https://github.com/Mikubill/sd-webui-controlnet/wiki/Model-download.
Sekarang kami memiliki dukungan sempurna untuk semua model dan praprosesor yang tersedia, termasuk dukungan sempurna untuk adaptor gaya T2I dan ControlNet 1.1 Shuffle. (Pastikan nama file YAML dan nama file model Anda sama, lihat juga file YAML di "stable-diffusion-webuiextensionssd-webui-controlnetmodels".)
Sekarang jika Anda mengaktifkan Perbaikan Resolusi Tinggi di A1111, setiap jaringan kontrol akan menampilkan dua gambar kontrol yang berbeda: gambar kecil dan gambar besar. Yang kecil untuk pembangkitan dasar Anda, dan yang besar untuk pembangkitan Perbaiki Resolusi Tinggi. Kedua gambar kontrol dihitung dengan algoritma cerdas yang disebut "pengambilan sampel ulang gambar kontrol kualitas super tinggi". Ini diaktifkan secara default, dan Anda tidak perlu mengubah pengaturan apa pun.
Sekarang ControlNet diuji secara ekstensif dengan berbagai jenis masker A1111, termasuk "Inpaint masked"/"Inpaint not masked", dan "Whole picture"/"Only masked", dan "Only masked padding"&"Mask blur". Pengubahan ukuran sangat cocok dengan "Ubah ukuran"/"Pangkas dan ubah ukuran"/"Ubah ukuran dan isi" A1111. Ini berarti Anda dapat menggunakan ControlNet hampir di semua tempat di UI A1111 Anda tanpa kesulitan!
Sekarang jika Anda mengaktifkan mode pixel-perfect, Anda tidak perlu mengatur resolusi praprosesor (annotator) secara manual. ControlNet akan secara otomatis menghitung resolusi anotator terbaik untuk Anda sehingga setiap piksel cocok dengan Difusi Stabil.
Kami mengatur ulang beberapa UI yang sebelumnya membingungkan seperti "lebar/tinggi kanvas untuk kanvas baru" dan sekarang ada di tombol. Sekarang GUI pratinjau dikendalikan oleh opsi "izinkan pratinjau" dan tombol pemicu?. Ukuran gambar pratinjau lebih baik dari sebelumnya, dan Anda tidak perlu menggulir ke atas dan ke bawah - GUI a1111 Anda tidak akan kacau lagi!
Sekarang ControlNet 1.1 dapat mendukung hampir semua metode Upscaling/Tile. ControlNet 1.1 mendukung skrip "Ultimate SD kelas atas" dan hampir semua ekstensi berbasis ubin lainnya. Harap jangan bingung antara "Ultimate SD upscale" dengan "SD upscale" - keduanya adalah skrip yang berbeda. Perhatikan bahwa metode peningkatan yang paling direkomendasikan adalah "Tiled VAE/Diffusion" tetapi kami menguji sebanyak mungkin metode/ekstensi. Perhatikan bahwa "SD kelas atas" didukung sejak 1.1.117, dan jika Anda menggunakannya, Anda harus membiarkan semua gambar ControlNet kosong (Kami tidak menyarankan "SD kelas atas" karena agak bermasalah dan tidak dapat dipertahankan - gunakan " Ultimate SD kelas atas" sebagai gantinya).
Kami telah memperbaiki banyak bug di Mode Tebak 1.0 sebelumnya dan sekarang disebut Mode Kontrol
Sekarang Anda dapat mengontrol aspek mana yang lebih penting (prompt Anda atau ControlNet Anda):
"Seimbang": ControlNet di kedua sisi skala CFG, sama seperti mematikan "Mode Tebak" di ControlNet 1.0
"Permintaan saya lebih penting": ControlNet di kedua sisi skala CFG, dengan injeksi SD U-Net yang semakin berkurang (layer_weight*=0,825**I, dengan 0<=I <13, dan 13 berarti ControlNet menyuntikkan SD 13 kali ). Dengan cara ini, Anda dapat memastikan bahwa perintah Anda ditampilkan dengan sempurna di gambar yang Anda buat.
"ControlNet lebih penting": ControlNet hanya pada Sisi Bersyarat skala CFG (kond dalam batch-cond-uncond A1111). Artinya ControlNet akan menjadi X kali lebih kuat jika skala cfg Anda adalah X. Misalnya, jika skala cfg Anda adalah 7, maka ControlNet menjadi 7 kali lebih kuat. Perhatikan bahwa di sini X kali lebih kuat berbeda dari "Kontrol Bobot" karena bobot Anda tidak diubah. Efek "lebih kuat" ini biasanya memiliki lebih sedikit artefak dan memberi ControlNet lebih banyak ruang untuk menebak apa yang hilang dari perintah Anda (dan di versi 1.0 sebelumnya, ini disebut "Mode Tebak").
Masukan (kedalaman+cerdik+lindung nilai) | "Seimbang" | "Permintaanku lebih penting" | "ControlNet lebih penting" |
Sekarang kami memiliki praprosesor reference-only
yang tidak memerlukan model kontrol apa pun. Hal ini dapat memandu difusi secara langsung menggunakan gambar sebagai referensi.
(Mintalah "seekor anjing berlari di padang rumput, kualitas terbaik, ...")
Cara ini mirip dengan referensi berbasis inpaint namun tidak membuat gambar Anda berantakan.
Banyak pengguna A1111 profesional yang mengetahui trik untuk menyebarkan gambar dengan referensi melalui inpaint. Misalnya, jika Anda memiliki gambar anjing berukuran 512x512, dan ingin membuat gambar lain berukuran 512x512 dengan anjing yang sama, beberapa pengguna akan menghubungkan gambar anjing berukuran 512x512 dan gambar kosong berukuran 512x512 ke dalam gambar 1024x512, mengirimkannya ke inpaint, dan menutupinya. bagian kosong 512x512 untuk menyebarkan anjing dengan penampilan serupa. Namun, cara tersebut biasanya kurang memuaskan karena gambar tersambung dan banyak distorsi yang muncul.
ControlNet reference-only
ini dapat secara langsung menghubungkan lapisan perhatian SD Anda ke gambar independen mana pun, sehingga SD Anda akan membaca gambar sembarang untuk referensi. Anda memerlukan setidaknya ControlNet 1.1.153 untuk menggunakannya.
Untuk menggunakannya, cukup pilih reference-only
sebagai praprosesor dan letakkan gambar. SD Anda hanya akan menggunakan gambar tersebut sebagai referensi.
Perhatikan bahwa metode ini sebisa mungkin "tidak beropini". Ini hanya berisi kode koneksi yang sangat mendasar, tanpa preferensi pribadi apa pun, untuk menghubungkan lapisan perhatian dengan gambar referensi Anda. Namun, meskipun kami berusaha sebaik mungkin untuk tidak menyertakan kode opini apa pun, kami masih perlu menulis beberapa implementasi subjektif untuk menangani bobot, skala cfg, dll - laporan teknologi sedang dalam proses.
Contoh lainnya di sini.
Lihat juga dokumen ControlNet 1.1:
https://github.com/lllyasviel/ControlNet-v1-1-nightly#model-spesifikasi
Ini adalah pengaturan saya. Jika Anda mengalami masalah apa pun, Anda dapat menggunakan pengaturan ini sebagai pemeriksaan kewarasan
https://huggingface.co/lllyasviel/ControlNet/tree/main/models
Anda masih dapat menggunakan semua model sebelumnya di ControlNet 1.0 sebelumnya. Sekarang, "kedalaman" sebelumnya disebut "kedalaman_midas", "normal" sebelumnya disebut "normal_midas", "hed" sebelumnya disebut "softedge_hed". Dan mulai dari 1.1, semua peta garis, peta tepi, peta garis lurus, peta batas akan memiliki latar belakang hitam dan garis putih.
(Dari Adaptor TencentARC/T2I)
Untuk menggunakan model Adaptor T2I:
Perhatikan bahwa "CoAdapter" belum diterapkan.
Hasil di bawah ini berasal dari ControlNet 1.0.
Sumber | Masukan | Keluaran |
---|---|---|
(tanpa praprosesor) | ||
(tanpa praprosesor) | ||
Contoh di bawah ini berasal dari T2I-Adapter.
Dari t2iadapter_color_sd14v1.pth
:
Sumber | Masukan | Keluaran |
---|---|---|
Dari t2iadapter_style_sd14v1.pth
:
Sumber | Masukan | Keluaran |
---|---|---|
(klip, bukan gambar) |
--xformers
diaktifkan, dan mode Low VRAM
dicentang di UI, naik hingga 768x832 Opsi ini memungkinkan beberapa input ControlNet untuk satu generasi. Untuk mengaktifkan opsi ini, ubah Multi ControlNet: Max models amount (requires restart)
di pengaturan. Perhatikan bahwa Anda perlu memulai ulang WebUI agar perubahan dapat diterapkan.
Sumber A | Sumber B | Keluaran |
Bobot adalah bobot "pengaruh" jaringan kendali. Ini analog dengan perhatian/penekanan yang cepat. Misalnya (prompt saya: 1.2). Secara teknis, ini adalah faktor yang digunakan untuk melipatgandakan keluaran ControlNet sebelum menggabungkannya dengan SD Unet asli.
Panduan Mulai/Akhir adalah persentase total langkah yang diterapkan jaringan kontrol (kekuatan panduan = akhir panduan). Ini analog dengan pengeditan/pergeseran cepat. Misalnya [myprompt::0.8] (Berlaku dari awal hingga 80% dari total langkah)
Masukkan unit mana pun ke mode batch untuk mengaktifkan mode batch untuk semua unit. Tentukan direktori batch untuk setiap unit, atau gunakan kotak teks baru di tab batch img2img sebagai cadangan. Meskipun kotak teks terletak di tab batch img2img, Anda juga dapat menggunakannya untuk menghasilkan gambar di tab txt2img.
Perhatikan bahwa fitur ini hanya tersedia di antarmuka pengguna gradio. Panggil API sebanyak yang Anda inginkan untuk penjadwalan batch khusus.
Ekstensi ini dapat menerima tugas txt2img atau img2img melalui API atau panggilan ekstensi eksternal. Perhatikan bahwa Anda mungkin perlu mengaktifkan Allow other scripts to control this extension
di pengaturan untuk panggilan eksternal.
Untuk menggunakan API: mulai WebUI dengan argumen --api
dan buka http://webui-address/docs
untuk melihat dokumen atau contoh pembayaran.
Untuk menggunakan panggilan eksternal: Checkout Wiki
Ekstensi ini menambahkan argumen baris perintah berikut ke webui:
--controlnet-dir ADD a controlnet models directory
--controlnet-annotator-models-path SET the directory for annotator models
--no-half-controlnet load controlnet models in full precision
--controlnet-preprocessor-cache-size Cache size for controlnet preprocessor results
--controlnet-loglevel Log level for the controlnet extension
--controlnet-tracemalloc Enable malloc memory tracing
Diuji dengan pytorch nightly: #143 (komentar)
Untuk menggunakan ekstensi ini dengan mps dan pytorch normal, saat ini Anda mungkin perlu memulai WebUI dengan --no-half
.
Versi sebelumnya (sd-webui-controlnet 1.0) diarsipkan di
https://github.com/lllyasviel/webui-controlnet-v1-archived
Penggunaan versi ini bukanlah penghentian sementara pembaruan. Anda akan menghentikan semua pembaruan selamanya.
Harap pertimbangkan versi ini jika Anda bekerja dengan studio profesional yang memerlukan 100% reproduksi semua hasil sebelumnya piksel demi piksel.
Implementasi ini terinspirasi oleh kohya-ss/sd-webui-additional-networks