- Stable Cascade adalah codebase resmi dari Stability AI yang menyediakan skrip pelatihan dan inferensi serta berbagai checkpoint model untuk model pembangkitan gambar berbasis arsitektur Würstchen
- Perbedaan utamanya adalah ia bekerja di ruang laten (latent space) yang jauh lebih kecil dibanding Stable Diffusion, dengan mengodekan gambar 1024x1024 menjadi 24x24 alih-alih 128x128 pada Stable Diffusion sehingga mengurangi kecepatan inferensi dan biaya pelatihan
- Model ini terdiri dari kaskade 3 tahap, yaitu Stage A, Stage B, Stage C; Stage A dan B menangani kompresi gambar, sedangkan Stage C bertugas menghasilkan representasi laten 24x24 dari prompt teks
- Fitur yang disediakan mencakup teks-ke-gambar, variasi gambar, gambar-ke-gambar, ControlNet, LoRA, rekonstruksi gambar, pelatihan dari awal, dan fine-tuning, serta dapat diakses juga di diffusers 🤗
- Codebase ini masih dalam tahap pengembangan awal, sehingga mungkin ada error tak terduga atau kode pelatihan dan inferensi yang belum dioptimalkan; kodenya mengikuti MIT License, sedangkan bobot model mengikuti Stability AI Non-Commercial Research Community License
Masalah yang ingin diselesaikan Stable Cascade
- Stable Cascade adalah codebase resmi Stable Cascade yang menyediakan skrip pelatihan dan inferensi, serta berbagai model yang bisa digunakan
- Model ini berbasis arsitektur Würstchen
- Perbedaan utama dibanding model seperti Stable Diffusion adalah ia bekerja di ruang laten yang jauh lebih kecil
- Stable Diffusion menggunakan faktor kompresi 8 untuk mengodekan gambar 1024x1024 menjadi 128x128
- Stable Cascade mencapai faktor kompresi 42 sehingga dapat mengodekan gambar 1024x1024 menjadi 24x24
- Model dengan kondisi teks dilatih di ruang laten berkompresi tinggi ini
- Ruang laten yang kecil menghasilkan inferensi yang lebih cepat dan pelatihan yang lebih murah
- Versi sebelumnya dari arsitektur ini mencapai pengurangan biaya 16x dibanding Stable Diffusion 1.5
Performa dan efisiensi
- Stable Cascade diperkenalkan sebagai model yang cocok untuk kebutuhan yang mengutamakan efisiensi
- Metode ekstensi yang sudah dikenal seperti fine-tuning, LoRA, ControlNet, IP-Adapter, dan LCM juga dimungkinkan dengan pendekatan ini
- Dalam evaluasi internal, Stable Cascade menunjukkan performa terbaik untuk keselarasan prompt dan kualitas estetika di hampir semua perbandingan
- Evaluasi manusia dilakukan dengan campuran parti-prompts dan aesthetic prompts
- Stable Cascade dibandingkan pada 30 langkah inferensi
- Pembandingnya adalah Playground v2 50 langkah, SDXL 50 langkah, SDXL Turbo 1 langkah, dan Würstchen v2 30 langkah
- Model terbesar memiliki 1,4 miliar parameter lebih banyak daripada Stable Diffusion XL, tetapi menunjukkan waktu inferensi yang lebih cepat
Struktur model 3 tahap
- Sesuai namanya, Stable Cascade terdiri dari struktur kaskade pembangkit gambar dengan 3 model: Stage A, Stage B, Stage C
- Stage A dan Stage B berperan mengompresi gambar, mirip dengan VAE pada Stable Diffusion
- Stage C menerima prompt teks dan menghasilkan representasi laten 24 x 24 yang kecil
- Stage A adalah VAE, sedangkan Stage B dan Stage C adalah model difusi
- Rilis ini menyediakan checkpoint berikut
- Stage C: versi 1 miliar parameter dan versi 3,6 miliar parameter
- Stage B: versi 700 juta parameter dan versi 1,5 miliar parameter
- Stage A: 20 juta parameter, dan tetap karena ukurannya kecil
- Untuk Stage C, sangat disarankan menggunakan versi 3,6 miliar karena sebagian besar pekerjaan fine-tuning berfokus pada versi itu
- Untuk Stage B, keduanya memberikan hasil yang baik, tetapi versi 1,5 miliar parameter lebih unggul dalam merekonstruksi detail kecil dan halus
- Untuk hasil terbaik, disarankan menggunakan varian yang lebih besar di setiap tahap
Fitur inferensi dan notebook
- Menjalankan model dapat dilakukan melalui notebook di bagian inference
- Bagian tersebut mencakup detail tentang unduhan model, kebutuhan komputasi, dan tutorial penggunaan
-
Text-to-Image
- text_to_image.ipynb menyediakan fungsi dasar teks-ke-gambar, variasi gambar, dan gambar-ke-gambar
- Variasi gambar memahami embedding gambar untuk menghasilkan variasi dari gambar yang diberikan, dan pada contoh tidak ada prompt yang diberikan
- Gambar-ke-gambar bekerja dengan menambahkan noise ke gambar hingga titik tertentu lalu menghasilkan gambar dari titik awal tersebut
- Pada contoh, gambar di sebelah kiri diberi noise 80% dan menggunakan caption
A person riding a rodent. - Model ini juga dapat diakses melalui pustaka diffusers 🤗 lewat dokumentasi stable-cascade di Hugging Face
-
ControlNet
- controlnet.ipynb membahas cara menggunakan ControlNet yang disediakan untuk Stable Cascade maupun ControlNet yang dilatih sendiri oleh pengguna
- ControlNet pada rilis ini mencakup Inpainting / Outpainting, Face Identity, Canny, dan Super Resolution
- Face Identity ControlNet dijadwalkan dirilis nanti
- Bisa digunakan di notebook yang sama, dan hanya pengaturannya yang perlu diubah untuk tiap ControlNet
-
LoRA
- Stable Cascade menyediakan implementasi sendiri untuk pelatihan dan penggunaan LoRA
- LoRA dapat digunakan untuk melakukan fine-tuning pada model berkondisi teks, yaitu Stage C
- Token baru dapat ditambahkan dan dilatih, lalu layer LoRA bisa ditambahkan ke model
- lora.ipynb menunjukkan cara menggunakan LoRA yang telah dilatih
-
Rekonstruksi gambar
- reconstruct_images.ipynb menunjukkan cara mengodekan dan mendekodekan gambar serta manfaat dari pendekatan kompresi tinggi
- Diffusion Autoencoder milik Stable Cascade memungkinkan kerja di ruang yang sangat terkompresi
- Stage A dan Stage B dapat digunakan seperti VAE Stable Diffusion dipakai untuk melatih model sendiri
- Batch contoh
4 x 3 x 1024 x 1024dikodekan menjadi4 x 16 x 24 x 24 - Faktor kompresi spasialnya adalah
1024 / 24 = 42.67 - Setelah itu dapat didekodekan kembali menjadi
4 x 3 x 1024 x 1024dengan Stage A dan Stage B - Hasil rekonstruksinya disebut sangat dekat dengan aslinya bahkan pada detail kecil, dan dinyatakan tidak dapat dicapai dengan VAE standar atau sejenisnya
Pelatihan, aplikasi, lisensi
- Kode pelatihan mencakup pelatihan Stable Cascade dari awal, fine-tuning, ControlNet, dan LoRA
- Metode pelatihan yang lebih rinci tersedia di training folder
- Codebase ini masih dalam tahap pengembangan awal
- Mungkin ada error tak terduga
- Kode pelatihan dan inferensi mungkin belum sepenuhnya dioptimalkan
- Jika ada minat, pembaruan yang mencerminkan peningkatan dan optimasi terbaru akan terus dirilis
- Mereka terbuka menerima ide, umpan balik, dan kontribusi pembaruan
- Untuk menjalankan aplikasi Gradio, instal dulu hal berikut
pip3 install gradiopip3 install acceleratepip3 install git+https://github.com/kashif/diffusers.git@wuerstchen-v3
- Dari root proyek, jalankan aplikasi Gradio dengan perintah berikut
PYTHONPATH=./ python3 gradio_app/app.py
- Kode mengikuti MIT LICENSE
- Bobot model yang dapat diunduh dari Hugging Face mengikuti STABILITY AI NON-COMMERCIAL RESEARCH COMMUNITY LICENSE
1 komentar
Komentar Hacker News
Setelah mencobanya selama beberapa jam, kepatuhan terhadap prompt tampaknya jauh lebih baik
Untuk saat ini kualitasnya terlihat lebih rendah daripada beberapa model SDXL, tetapi saya akan menunda penilaian sampai mengujinya beberapa hari lagi
Kecepatannya juga tinggi, terasa kira-kira 2–3 kali lebih cepat daripada SDXL non-turbo
Kalau harus memakai ControlNet, OpenPose, bahkan depth map untuk memaksakan tampilan atau kedalaman tertentu, solusi untuk tiap generasi jadi terlalu khusus
Setelah saya uji sendiri, ada peningkatan dalam mengikuti prompt, dan gambarnya juga secara visual lebih saya sukai
Katanya model terbesar punya 1,4 miliar parameter lebih banyak daripada SDXL, sementara SDXL sendiri sudah menuntut VRAM besar
Sangat mengesankan
Sejauh yang saya pahami, Stability AI saat ini mendapat pendanaan ventura, tetapi tampaknya mereka tak terhindarkan membakar uang dalam jumlah besar, dan belum jelas apakah model bisnisnya berkelanjutan
Mungkin mereka layak mendapat dukungan dana riset dari pemerintah
Ada laporan bahwa pada saat kesepakatan dengan Intel, mereka menghabiskan sekitar 8 juta dolar per bulan untuk tagihan dan gaji, sementara pendapatannya hanya sebagian kecil dari itu
Pendapatan Agustus adalah 1,2 juta dolar, dan ada unggahan Mostaque di X yang mengatakan bahwa mereka menuju 3 juta dolar pada bulan itu dari software dan layanan, tetapi unggahan itu kemudian dihapus
https://fortune.com/2023/11/29/stability-ai-sale-intel-ceo-r...
Hari ini pencarian HN kurang cocok, jadi saya tidak bisa menemukan komentar tertentu yang saya ingat
Kalau ada yang bisa menemukannya, halaman penggunanya di sini: https://news.ycombinator.com/user?id=emadm
Jadi saya penasaran bagaimana struktur ini bekerja
Apakah ini pekerjaan eksklusif untuk stability.ai?
Melihat commit-nya, lisensi berubah dari MIT menjadi lisensi kustom mereka sendiri: https://github.com/Stability-AI/StableCascade/commit/209a526...
Apakah secara hukum dimungkinkan memakai snapshot lama sebelum perubahan lisensi berdasarkan lisensi MIT yang lama?
Secara umum pengadilan melihat konteks yang lebih menyeluruh dan mempertimbangkan niat, serta memahami bahwa kesalahan administratif bisa terjadi
Namun bisa ada pengecualian jika suatu perusahaan mengklaim telah mengandalkan lisensi sebelumnya dan menginvestasikan banyak sumber daya
Waktu commit tampaknya cukup penting. Jika repositori hanya berstatus MIT selama beberapa jam sebelum rilis publik, akan sulit bagi bisnis untuk mengklaim telah melakukan investasi nyata
Commit itu bisa terus digunakan sesuka Anda berdasarkan lisensi MIT yang berlaku saat dipublikasikan
Mirip seperti membeli e-book; walaupun kemudian edisi kedua hanya keluar dalam hardcover, e-book edisi pertama tetap bisa Anda baca
Keduanya adalah karya berbeda yang berada di bawah lisensi berbeda
Stability AI menyatakan lisensi nonkomersial ini karena sifatnya adalah pratinjau teknologi, seperti SDXL 0.9
Anda bisa menutup codebase berlisensi MIT, tetapi tidak bisa secara retroaktif mengubah lisensi kode lama yang sudah dipublikasikan
Commit awal Stability memiliki lisensi MIT, jadi Anda bisa mem-fork commit itu dan melakukan apa pun yang Anda mau
Bagian rumitnya adalah mereka membuat commit yang mengubah lisensi dari MIT menjadi proprietary, tetapi tanpa perubahan kode
Ini kemungkinan tidak sah karena codebase yang sama tidak bisa didistribusikan dengan dua lisensi yang saling bertentangan
Lisensi baru hanya bisa ditempelkan pada perubahan yang ditambahkan ke codebase setelah perubahan lisensi
Saya tidak akan menyebutnya “ilegal”, tetapi karena software yang sama sudah didistribusikan dengan lisensi terbuka, klaim bahwa itu software proprietary akan sulit bertahan di pengadilan
Ada playground yang dioptimalkan di sini: https://www.fal.ai/models/stable-cascade
Terutama di bidang yang sangat kompetitif seperti sekarang, dan basis pengguna HN kemungkinan akan memilih menjalankannya sendiri jika diminta mendaftar hanya untuk menguji pembuatan satu gambar
Seperti generator gambar lain yang pernah saya coba, ini juga tidak bisa membuat tuts piano dengan benar [1]
Sepertinya diperlukan pendekatan lain agar kelompok tuts hitam bisa dihitung
[1] https://fal.ai/models/stable-cascade?share=13d35b76-d32f-45c...
Dalam kasus saya, saat membuat gambar terkait bola basket, sebagian besar gambarnya berisi lebih dari satu bola
Saya bukan ahli, tetapi tampaknya pelatihan tidak memahami, atau hanya memahami sebagian, batasan dasar kehidupan budaya manusia seperti bahwa semua tuts piano harus seragam atau bahwa dalam satu pertandingan hanya ada satu bola
Model ini dibuat di atas arsitektur Würstchen
Ada video dari salah satu penulisnya yang menjelaskan dengan sangat baik cara kerja model ini
https://www.youtube.com/watch?v=ogJsCPqgFMk
Gemini Advanced> Summarize this video: https://www.youtube.com/watch?v=ogJsCPqgFMk
Video ini membahas cara melatih model difusi teks-ke-gambar bernama Würstchen
Jauh lebih efisien daripada pendekatan lama seperti Stable Diffusion 1.4, dan dapat menghasilkan hasil serupa hanya dengan 1/16 waktu pelatihan dan komputasi
Intinya adalah proses kompresi dua tahap
Tahap pertama mengompresi gambar dengan VQ-VAE ke ruang laten yang 4 kali lebih kecil daripada ruang laten yang dipakai Stable Diffusion, dan tahap kedua mengompresi lagi ruang laten itu 10 kali dengan model difusi
Dengan begitu rasio kompresi totalnya menjadi 40 kali, jauh lebih tinggi daripada kompresi 8 kali pada Stable Diffusion
Berkat ruang laten yang terkompresi, model difusi teks-ke-gambar Würstchen bisa dilatih dengan ukuran jauh lebih kecil dan lebih cepat daripada model Stable Diffusion
Würstchen dapat dilatih di satu GPU selama 24.000 jam GPU, sedangkan Stable Diffusion 1.4 membutuhkan 150.000 jam GPU
Meski efisien, model ini dapat membuat gambar dengan kualitas yang mirip Stable Diffusion, dan kadang menghasilkan kualitas lebih baik untuk gambar beresolusi lebih tinggi atau dengan lebih banyak detail
Secara keseluruhan, Würstchen adalah kemajuan penting di bidang generasi teks-ke-gambar, memungkinkan pelatihan model yang lebih efisien dan murah sehingga dapat memperluas cakupan penggunaan seperti gambar pemasaran, ilustrasi buku, dan avatar personalisasi
Apakah ada cara untuk menghasilkan beberapa gambar dari model yang sama?
Misalnya membuat gambar model mobil yang diputar dari berbagai sudut, tetapi semuanya tetap berupa mobil hasil generasi yang sama
[1] https://zero123.cs.columbia.edu/
Gambar input => embedding => dapat dibuat menjadi alur N gambar, dan jika mempertimbangkan sudut pandang rendering 3D, ControlNet bisa diterapkan pada N gambar tersebut
Referensi: “The model can also understand image embeddings, which makes it possible to generate variations of a given image (left). There was no prompt given here.”
Saya ingat dulu pernah bereksperimen macam-macam bersama dua peneliti ini untuk mencari cara optimal mengondisikan Stage B pada representasi laten
Dibanding cross-attention yang sangat fancy dengan embedding posisi 2D relatif, cara sekadar menggabungkan channel input dengan upsample nearest-neighbor dari representasi laten ternyata lebih baik, jadi kami menyerah
Model ini dulu dikenal sebagai Würstchen v3
Apakah bisa berjalan di AMD?
Saya tidak menemukan informasi dukungannya
Pengguna yang menjalankan Stable Diffusion di AMD mungkin mengalami penurunan performa, jadi ini fitur yang cukup penting untuk proyek seperti ini
Menurut saya yang paling mengesankan adalah kompresi
Kemampuan mengompresi gambar 42 kali adalah keuntungan besar untuk perangkat seluler, koneksi internet buruk, atau keduanya
Arahnya adalah menyediakan resolusi 8K dengan bandwidth rendah