2 poin oleh GN⁺ 2024-02-14 | 1 komentar | Bagikan ke WhatsApp
  • 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 1024 dikodekan menjadi 4 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 1024 dengan 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
  • 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

 
GN⁺ 2024-02-14
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

    • Saya akan selalu memilih kepatuhan terhadap prompt dibanding kualitas
      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
    • Penasaran berapa banyak VRAM yang dibutuhkan
      Katanya model terbesar punya 1,4 miliar parameter lebih banyak daripada SDXL, sementara SDXL sendiri sudah menuntut VRAM besar
    • Bisa dijalankan di CPU juga?
  • 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

    • Stability AI memang sudah lama membakar banyak uang, dan sepertinya karena itu model terbaru seperti Stable Cascade tidak lagi menjadi open source dengan lisensi yang ramah komersial
      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...
    • Dulu saya pernah melihat pendiri Stability AI, Emad, berkomentar di suatu tempat di HN tentang apa tepatnya model bisnis mereka dan bagaimana kelanjutannya nanti
      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
    • Menurut saya Stability seharusnya mendapat hibah riset
    • Para penelitinya bukan dari stability.ai, melainkan dari universitas di Jerman dan Kanada
      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?

    • Niatnya tampak cukup jelas untuk memakai lisensi nonkomersial, jadi kalau benar-benar dipaksakan, ini bisa jadi perkara yang berakhir di pengadilan
      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
    • Bisa
      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
    • Arsitektur model, kode pelatihan, dan sebagainya tampaknya tetap MIT, sementara weight sebagai hasil pelatihan di klaster GPU besar dan dataset yang digunakan berada di bawah lisensi baru
    • Kodenya MIT, modelnya memakai lisensi nonkomersial
      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
    • Lisensi MIT tidak menular seperti GPL
      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

    • “sign in to run” tampaknya melewatkan peluang pemasaran
      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...

    • Sepertinya ini lebih dari itu
      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
    • Seperti halnya tangan manusia, konsistensi adalah masalah yang akan teratasi dengan memperbesar skala model dan pelatihan
  • 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

    • Videonya bagus, dan ringkasnya seperti ini :)
      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

    • Sepertinya seseorang yang punya sumber daya perlu melatih Zero123 [1] dengan backbone ini
      [1] https://zero123.cs.columbia.edu/
    • Bisa
      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

    • Itu adalah kompresi 42 kali pada arah spasial, dan membutuhkan 16 channel, bukan 3 channel RGB
    • Rasanya saat ini pasti sudah ada orang yang sedang membuat codec video berbasis AI yang cepat, menyertakan model pralatih kecil, dan tetap berjalan di lingkungan dengan memori terbatas seperti TV
      Arahnya adalah menyediakan resolusi 8K dengan bandwidth rendah