Rumah >Peranti teknologi >AI >Set lengkap tutorial untuk menyesuaikan rangka kerja Peresap ada di sini! Daripada T2I-Adapter kepada ControlNet yang popular
Tidak lama selepas ChatGPT keluar dari kalangan, kemunculan ControlNet dengan cepat mendapat ramai pembangun dan pengguna biasa di Internet Inggeris dan Cina Malah ada pengguna yang mempromosikan bahawa kemunculan ControlNet membawa penciptaan AI ke era berjalan tegak. Tidak keterlaluan untuk mengatakan bahawa, termasuk ControlNet, T2I-Adapter, Composer, dan teknik latihan LoRA dalam tempoh yang sama, penjanaan terkawal, sebagai tembok tinggi terakhir penciptaan AI, berkemungkinan besar akan mendapat kejayaan selanjutnya dalam masa yang boleh dijangka. , dengan itu sangat Mengurangkan kos penciptaan pengguna dan meningkatkan kebolehmainan ciptaan. Hanya dalam dua minggu sejak ControlNet menjadi sumber terbuka, bilangan Star rasminya telah melebihi 10,000 Populariti ini sudah pasti tidak pernah berlaku sebelum ini.
Pada masa yang sama, komuniti sumber terbuka juga telah banyak menurunkan ambang untuk pengguna Contohnya, platform Muka Memeluk menyediakan berat model asas dan peresap rangka kerja model am, stabil-. diffusion-webui Platform Demo yang lengkap telah dibangunkan, dan Civitai telah menyumbangkan sejumlah besar pemberat LoRA yang digayakan.
Walaupun webui kini paling popular The alat visualisasi telah cepat menyokong pelbagai model generatif yang dilancarkan baru-baru ini dan menyokong banyak pilihan untuk ditetapkan oleh pengguna. Kerana ia memberi tumpuan kepada kemudahan penggunaan antara muka hadapan, struktur kod di belakangnya sebenarnya sangat kompleks dan tidak cukup mesra untuk pembangun. Contohnya, walaupun webui menyokong pelbagai jenis pemuatan dan inferens, ia tidak boleh menyokong penukaran di bawah rangka kerja yang berbeza, dan juga tidak boleh menyokong latihan model yang fleksibel. Dalam perbincangan komuniti, kami menemui banyak perkara yang menyakitkan yang masih belum diselesaikan oleh kod sumber terbuka sedia ada.
Pertama sekali, rangka kerja kod tidak serasi Model popular pada masa ini, seperti ControlNet dan T2I-Adapter, tidak serasi dengan penyebar perpustakaan latihan Stable Diffusion arus perdana tidak serasi, model pra-latihan ControlNet tidak boleh digunakan secara langsung dalam rangka kerja penyebar.
Kedua, pemuatan model adalah terhad Pada masa ini, model disimpan dalam pelbagai format, seperti .bin, .ckpt, .pth , .satetensors, dsb. , sebagai tambahan kepada webui, rangka kerja peresap pada masa ini mempunyai sokongan terhad untuk format model ini Memandangkan kebanyakan model LoRA disimpan terutamanya dalam safetensors, adalah sukar bagi pengguna untuk memuatkan model LoRA secara langsung ke dalam model sedia ada yang dilatih. pada rangka kerja peresap.
Ketiga, Model asas adalah terhad Pada masa ini, ControlNet dan T2I-Adapter dilatih berdasarkan Stable-Diffusion-1.5, dan. hanya Berat model di bawah SD1.5 adalah sumber terbuka Memandangkan senario tertentu, model animasi berkualiti tinggi seperti apa-v4 dan ChilloutMix sudah wujud Walaupun maklumat yang boleh dikawal diperkenalkan, hasil akhir yang dihasilkan masih terhad oleh keupayaan UNet dalam SD1.5.
Akhir sekali, latihan model adalah terhad Pada masa ini, LoRA telah disahkan secara meluas sebagai salah satu kaedah yang paling berkesan untuk pemindahan gaya dan mengekalkan IP imej tertentu 1. Walau bagaimanapun, rangka kerja penyebar pada masa ini hanya menyokong pembenaman LoRA UNet dan tidak boleh menyokong pembenaman pengekod teks, yang akan mengehadkan latihan LoRA.
Selepas berbincang dengan komuniti sumber terbuka, kami mengetahui bahawa rangka kerja penyebar, sebagai asas kod umum, sedang merancang untuk menyesuaikan diri dengan model generasi yang dilancarkan baru-baru ini kerana ia melibatkan penulisan semula banyak asas; antara muka, ia masih Ia akan mengambil sedikit masa untuk dikemas kini. Untuk tujuan ini, kami bermula daripada masalah sebenar di atas dan menerajui dalam mencadangkan penyelesaian yang dibangunkan sendiri untuk setiap masalah untuk membantu pembangun membangun dengan lebih mudah dengan cepat.
LoRA untuk peresap
Penyelesaian ini adalah untuk membenamkan pemberat LoRA secara fleksibel dalam pelbagai format dalam rangka kerja peresap, iaitu model yang disimpan berdasarkan latihan peresap. Memandangkan latihan LoRA biasanya membekukan model asas, ia boleh disematkan dengan mudah ke dalam model sedia ada sebagai modul boleh pasang sebagai gaya atau kekangan bersyarat IP. LoRA sendiri ialah teknik latihan am Prinsip asasnya ialah melalui penguraian peringkat rendah, bilangan parameter modul boleh dikurangkan dengan banyaknya Pada masa ini, dalam penjanaan imej, ia biasanya digunakan untuk melatih modul boleh pasang yang bebas daripada model asas , kegunaan sebenar adalah untuk menggabungkannya dengan keluaran model asas dalam bentuk sisa.
Pertama ialah pembenaman pemberat LoRA Pada masa ini, pemberat yang disediakan pada platform Civitai terutamanya disimpan dalam format ckpt atau safetensors, dibahagikan kepada dua situasi berikut.
(1) Model penuh (model asas + modul LoRA)
Jika model penuh dalam format safetensors, ia boleh ditukar dengan skrip peresap berikut
python ./scripts/convert_original_stable_diffusion_to_diffusers.py --checkpoint_path xxx.safetensors--dump_path save_dir --from_safetensors
Jika model penuh dalam format ckpt, ia boleh ditukar melalui skrip peresap berikut
python ./scripts/convert_original_stable_diffusion_to_diffusers.py --checkpoint_path xxx.ckpt--dump_path save_dir
Selepas penukaran selesai, peresap boleh digunakan terus API untuk pemuatan model
from diffusers import StableDiffusionPipeline pipeline = StableDiffusionPipeline.from_pretrained (save_dir,torch_dtype=torch.float32)
(2) LoRA sahaja (hanya mengandungi modul LoRA)
Pada masa ini penyebar secara rasmi tidak boleh menyokong pemuatan hanya pemberat LoRA, dan pemberat LoRA pada platform sumber terbuka pada asasnya disimpan dalam borang ini. Pada asasnya, ia melengkapkan pemetaan semula nilai kunci dalam pemberat LoRA dan menyesuaikannya dengan model peresap. Atas sebab ini, kami sendiri menyokong ciri ini dan menyediakan skrip penukaran.
pipeline = StableDiffusionPipeline.from_pretrained (model_id,torch_dtype=torch.float32) model_path = "onePieceWanoSagaStyle_v2Offset.safetensors" state_dict = load_file (model_path)
Hanya perlu menentukan model dalam format peresap dan pemberat LoRA disimpan dalam format safetensors. Kami menyediakan contoh penukaran.
# the default mergering ratio is 0.75, you can manually set it python convert_lora_safetensor_to_diffusers.py
Selain itu, LoRA sendiri boleh dilatih dengan cepat dengan data kecil kerana ringan, dan boleh dibenamkan ke dalam rangkaian lain. Untuk tidak terhad kepada pemberat LoRA sedia ada, kami menyokong latihan berbilang modul (pengekod teks+UNet) LoRA dalam rangka kerja peresap dan telah menyerahkan PR dalam pangkalan kod rasmi (https://github.com/ huggingface/diffusers/pull /2479), dan menyokong latihan LoRA dalam ColossalAI.
Kod adalah sumber terbuka di: https://github.com/haofanwang/Lora-for-Diffusers
ControlNet for diffusers
Penyelesaian ini adalah untuk menyokong penggunaan ControlNet dalam diffusers rangka kerja. Berdasarkan beberapa percubaan komuniti sumber terbuka, kami menyediakan kes penggunaan lengkap ControlNet+Anything-V3, menyokong penggantian model asas daripada SD1.5 asal kepada model anything-v3, supaya ControlNet mempunyai penjanaan animasi yang lebih baik keupayaan.
Selain itu, kami juga menyokong ControlNet+Inpainting dan menyediakan saluran paip yang disesuaikan dengan penyebar,
dan Multi-ControlNet untuk kawalan berbilang keadaan.
Kod adalah sumber terbuka di: https://github.com/haofanwang/ControlNet-for -Penyerap
T2I-Penyesuai untuk peresap
Sama seperti ControlNet, kami juga menyokong penyesuaian sumber terbuka T2I-Adapter kepada peresap pada masa yang sama.
Kod adalah sumber terbuka di: https://github.com/haofanwang/T2I-Adapter-for-Diffusers
Pada masa ini, ketiga-tiga penyelesaian penyesuaian di atas telah dibuka kepada komuniti, dan telah diiktiraf secara rasmi masing-masing dalam ControlNet dan T2I-Adapter. Mereka juga telah menerima terima kasih daripada pengarang stable-diffusion-webui-colab . Kami sedang mengekalkan perbincangan dengan pegawai penyebar dan akan menyelesaikan penyepaduan penyelesaian di atas ke dalam pangkalan kod rasmi dalam masa terdekat. Anda juga dialu-alukan untuk mencuba kerja kami lebih awal Jika anda mempunyai sebarang pertanyaan, anda boleh terus membangkitkan isu dan kami akan membalas secepat mungkin.
Atas ialah kandungan terperinci Set lengkap tutorial untuk menyesuaikan rangka kerja Peresap ada di sini! Daripada T2I-Adapter kepada ControlNet yang popular. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!