Kararlı Cascade
(github.com/Stability-AI)- Stable Cascade, Stability AI'nin resmi kod tabanı olarak, Würstchen mimarisine dayanan görüntü üretim modelinin eğitim ve çıkarım betiklerini ve çeşitli model checkpoint'lerini sunar
- Temel fark, Stable Diffusion'a kıyasla çok daha küçük bir latent space içinde çalışmasıdır; 1024x1024 görüntüleri Stable Diffusion'un 128x128'i yerine 24x24 olarak kodlayarak çıkarım hızını ve eğitim maliyetini azaltır
- Model, Stage A, Stage B, Stage C olmak üzere 3 aşamalı bir kaskattan oluşur; Stage A ve B görüntü sıkıştırmadan, Stage C ise metin isteminden 24x24 latent temsil üretmekten sorumludur
- Sunulan özellikler arasında text-to-image, image variations, image-to-image, ControlNet, LoRA, görüntü yeniden yapılandırma, sıfırdan eğitim ve fine-tuning bulunur; ayrıca diffusers 🤗 üzerinden de erişilebilir
- Kod tabanı erken geliştirme aşamasında olduğundan beklenmedik hatalar veya optimize edilmemiş eğitim ve çıkarım kodları olabilir; kod MIT License, model ağırlıkları ise Stability AI Non-Commercial Research Community License kapsamındadır
Stable Cascade'in çözmeye çalıştığı sorun
- Stable Cascade, Stable Cascade resmi kod tabanı olarak eğitim ve çıkarım betiklerini ve kullanılabilir çeşitli modelleri sunar
- Model, Würstchen mimarisini temel alır
- Stable Diffusion gibi modellere kıyasla başlıca fark, çok daha küçük bir latent space içinde çalışmasıdır
- Stable Diffusion, 1024x1024 görüntüleri 128x128 olarak kodlamak için 8 sıkıştırma katsayısı kullanır
- Stable Cascade, 42 sıkıştırma katsayısına ulaşarak 1024x1024 görüntüleri 24x24 olarak kodlayabilir
- Metin koşullamalı model bu yüksek sıkıştırmalı latent space üzerinde eğitilir
- Küçük latent space, daha hızlı çıkarım ve daha düşük eğitim maliyeti sağlar
- Bu mimarinin önceki sürümü, Stable Diffusion 1.5'e kıyasla 16 kat maliyet tasarrufu sağladı
Performans ve verimlilik
- Stable Cascade, verimliliğin önemli olduğu kullanım alanlarına uygun bir model olarak tanıtılır
- Fine-tuning, LoRA, ControlNet, IP-Adapter, LCM gibi bilinen genişletme yöntemleri de bu yaklaşımda mümkündür
- Kendi değerlendirmesinde Stable Cascade, neredeyse tüm karşılaştırmalarda hem prompt alignment hem de estetik kalite açısından en iyi performansı gösterir
- İnsan değerlendirmesi, parti-prompts ve aesthetic prompts karıştırılarak yürütülmüştür
- Stable Cascade, 30 çıkarım adımıyla karşılaştırılmıştır
- Karşılaştırma yapılan modeller Playground v2 50 adım, SDXL 50 adım, SDXL Turbo 1 adım ve Würstchen v2 30 adımdır
- En büyük model, Stable Diffusion XL'den 1,4 milyar daha fazla parametre içermesine rağmen daha hızlı çıkarım süresi gösterir
3 aşamalı model yapısı
- Stable Cascade, adından da anlaşılacağı gibi görüntü üreten bir kaskat yapısı olan Stage A, Stage B, Stage C adlı 3 modelden oluşur
- Stage A ve Stage B, Stable Diffusion'un VAE'sine benzer şekilde görüntüleri sıkıştırma görevini üstlenir
- Stage C, metin istemini girdi olarak alır ve küçük bir 24 x 24 latent temsil üretir
- Stage A bir VAE'dir; Stage B ve Stage C ise diffusion modelleridir
- Bu sürüm şu checkpoint'leri sunar
- Stage C: 1 milyar parametreli sürüm ve 3,6 milyar parametreli sürüm
- Stage B: 700 milyon parametreli sürüm ve 1,5 milyar parametreli sürüm
- Stage A: 20 milyon parametre, küçük boyutu nedeniyle sabittir
- Fine-tuning çalışmalarının çoğu 3,6 milyar parametreli sürüme odaklandığı için Stage C'de 3,6 milyar sürümün kullanılması güçlü biçimde önerilir
- Stage B'de her iki sürüm de iyi sonuç verir, ancak 1,5 milyar parametreli sürüm küçük ve ince detayların yeniden oluşturulmasında daha üstündür
- En iyi sonuçlar için her aşamanın daha büyük varyantlarının kullanılması önerilir
Çıkarım özellikleri ve notebook'lar
- Model, inference bölümündeki notebook'larla çalıştırılabilir
- Bu bölüm, model indirme, hesaplama gereksinimleri ve kullanım eğitimleriyle ilgili ayrıntılar içerir
-
Text-to-Image
- text_to_image.ipynb, text-to-image, image variations ve image-to-image temel işlevlerini sunar
- Image variations, görüntü embedding'lerini anlayarak verilen görüntünün varyasyonlarını üretebilir; örnekte prompt verilmez
- Image-to-image, görüntüyü belirli bir noktaya kadar gürültüleyip ardından o başlangıç noktasından üretim yapacak şekilde çalışır
- Örnekte soldaki görüntü %80 oranında gürültülenir ve
A person riding a rodent.başlığı kullanılır - Modele, Hugging Face üzerindeki stable-cascade dokümantasyonu aracılığıyla diffusers 🤗 kütüphanesinden de erişilebilir
-
ControlNet
- controlnet.ipynb, Stable Cascade için sunulan ControlNet'lerin veya kullanıcının doğrudan eğittiği ControlNet'lerin nasıl kullanılacağını ele alır
- Bu sürümdeki ControlNet, Inpainting / Outpainting, Face Identity, Canny ve Super Resolution içerir
- Face Identity ControlNet daha sonra yayımlanacaktır
- Aynı notebook içinde kullanılabilir ve her ControlNet için yalnızca ayarları değiştirmek yeterlidir
-
LoRA
- Stable Cascade, LoRA eğitimi ve kullanımı için kendi uygulamasını sunar
- LoRA, metin koşullamalı model olan Stage C üzerinde fine-tuning yapmak için kullanılabilir
- Yeni token'lar eklenip eğitilebilir ve modele LoRA katmanları eklenebilir
- lora.ipynb, eğitilmiş LoRA'nın nasıl kullanılacağını gösterir
-
Görüntü yeniden yapılandırma
- reconstruct_images.ipynb, görüntülerin nasıl encode/decode edildiğini ve yüksek sıkıştırma yönteminin avantajlarını gösterir
- Stable Cascade'in Diffusion Autoencoder'ı, çok yüksek oranda sıkıştırılmış bir alanda çalışmayı mümkün kılar
- Tıpkı Stable Diffusion'un VAE'sinin kendi modelinizi eğitmekte kullanılabilmesi gibi, Stage A ve Stage B de kullanılabilir
- Örnek batch
4 x 3 x 1024 x 1024,4 x 16 x 24 x 24olarak kodlanır - Uzamsal sıkıştırma katsayısı
1024 / 24 = 42.67olur - Ardından Stage A ve Stage B ile tekrar
4 x 3 x 1024 x 1024olarak çözülebilir - Yeniden yapılandırma sonuçlarının küçük detaylarda bile orijinale çok yakın olduğu ve bunun standart VAE gibi yöntemlerle mümkün olmadığı belirtilir
Eğitim, uygulama, lisans
- Eğitim kodu, Stable Cascade'i sıfırdan eğitme, fine-tuning, ControlNet ve LoRA'yı içerir
- Ayrıntılı eğitim yöntemi training folder içinde sunulmaktadır
- Kod tabanı erken geliştirme aşamasındadır
- Beklenmedik hatalar olabilir
- Eğitim ve çıkarım kodu tamamen optimize edilmemiş olabilir
- İlgi olması halinde en son iyileştirmeleri ve optimizasyonları yansıtan güncellemeler yayımlamaya devam etmeyi planlarlar
- Fikir, geri bildirim ve güncelleme katkılarını memnuniyetle karşılarlar
- Gradio uygulamasını çalıştırmak için önce şunları yükleyin
pip3 install gradiopip3 install acceleratepip3 install git+https://github.com/kashif/diffusers.git@wuerstchen-v3
- Proje kök dizininde şu komutla Gradio uygulamasını çalıştırın
PYTHONPATH=./ python3 gradio_app/app.py
- Kod MIT LICENSE kapsamındadır
- Hugging Face üzerinden indirilebilen model ağırlıkları STABILITY AI NON-COMMERCIAL RESEARCH COMMUNITY LICENSE kapsamındadır
1 yorum
Hacker News yorumları
Birkaç saat kullandıktan sonra prompt’a uyumun çok daha iyi olduğu izlenimini edindim
Şimdilik kalite bazı SDXL modellerinden düşük görünüyor, ama birkaç gün daha test etmeden hüküm vermek istemiyorum
Hızı da yüksek; turbo olmayan SDXL’den kabaca 2-3 kat hızlı gibi
Belirli bir görünümü ya da derinliği zorla elde etmek için ControlNet, OpenPose, depth map’e kadar başvurmak gerekiyorsa, her üretimde çözüm fazla özel hâle geliyor
Kendim test ettiğimde prompt’u takip etme konusunda gelişme gördüm; görsel olarak da görüntüler daha hoşuma gitti
En büyük modelin SDXL’den 1,4 milyar daha fazla parametreye sahip olduğu söyleniyor; SDXL de zaten çok VRAM istiyor
Çok etkileyici
Anladığım kadarıyla Stability AI şu anda risk sermayesi yatırımı alıyor; inanılmaz para yakmak zorunda kalıyor gibi görünüyor ve iş modelinin sürdürülebilir olup olmadığı da belirsiz
Belki devlet araştırma fonu almayı hak ediyordur
Intel ile yapılan anlaşma döneminde aylık faturalar ve maaşlar için yaklaşık 8 milyon dolar harcadığı, gelirinin ise bunun yalnızca bir kısmı olduğu bildirilmişti
Ağustos geliri 1,2 milyon dolardı; Mostaque’ın X’teki, yazılım ve hizmetlerle o ay 3 milyon dolara doğru gittiklerini söyleyen bir paylaşımı vardı ama sonra silindi
https://fortune.com/2023/11/29/stability-ai-sale-intel-ceo-r...
Bugün HN araması pek isabetli çalışmadığından aklımdaki belirli yorumu bulamıyorum
Bulabilirseniz kullanıcı sayfası burada: https://news.ycombinator.com/user?id=emadm
O hâlde bu yapının nasıl işlediğini merak ediyorum
stability.ai için özel, münhasır bir çalışma mı?
Commit’e bakınca lisansın MIT’den kendi özel lisanslarına değiştiği görülüyor: https://github.com/Stability-AI/StableCascade/commit/209a526...
Lisans değişikliğinden önceki eski snapshot’ı mevcut MIT lisansı kapsamında kullanmak hukuken mümkün mü?
Genel olarak mahkemeler daha bütüncül bakar, niyeti inceler ve bürokratik hataların olabileceğini de anlar
Ancak bir şirketin önceki lisansa güvenerek ciddi kaynak yatırdığını iddia ettiği durumlar istisna olabilir
Commit zamanı oldukça önemli görünüyor. Depo yayımlanmadan önce yalnızca birkaç saat MIT lisanslı kaldıysa, bir işletmenin fiilî yatırım yaptığını ileri sürmesi zor olur gibi
O commit’i yayımlandığı andaki MIT lisansı kapsamında istediğiniz gibi kullanmaya devam edebilirsiniz
Bir e-kitap satın alıp daha sonra 2. baskı yalnızca ciltli olarak çıksa bile, 1. baskı e-kitabı hâlâ okuyabilmenize benziyor
Farklı çalışmalar farklı lisanslar altında
Stability AI, bu ticari olmayan lisansın SDXL 0.9 gibi bir teknoloji önizlemesi olmasından kaynaklandığını belirtti
MIT lisanslı bir kod tabanını kapatabilirsiniz, ancak daha önce yayımlanmış eski kodun lisansını geriye dönük değiştiremezsiniz
Stability’nin ilk commit’inde MIT lisansı vardı; dolayısıyla o commit’i fork’layıp istediğiniz gibi kullanabilirsiniz
Zor kısım, lisansı MIT’den tescilli lisansa çeviren commit’in yapılmış olması ama kod değişikliği içermemesi
Aynı kod tabanı birbiriyle çelişen iki lisansla dağıtılamayacağı için bunun geçersiz olma ihtimali yüksek
Yeni lisans yalnızca lisans değişikliğinden sonra kod tabanına eklenen değişikliklere uygulanabilir
“Yasa dışı” demem ama aynı yazılımı zaten açık lisansla dağıtmış oldukları için, bunun tescilli yazılım olduğunu iddia etmeleri mahkemede pek dayanıklı olmayacaktır
Burada optimize edilmiş bir playground var: https://www.fal.ai/models/stable-cascade
Özellikle rekabetin bu kadar yoğun olduğu bir alanda; HN kitlesi tek bir görüntü üretimini test etmek için kayıt istenirse muhtemelen kendisi çalıştırmayı tercih eder
Denediğim diğer görüntü üreticiler gibi bu da piyano tuşlarını düzgün yapamıyor [1]
Siyah tuş gruplarını sayabilir hâle gelmek için başka bir yaklaşım gerekecek gibi
[1] https://fal.ai/models/stable-cascade?share=13d35b76-d32f-45c...
Benim durumumda basketbolla ilgili görüntüler oluşturduğumda çoğunda birden fazla top vardı
Uzman değilim ama tüm piyano tuşlarının aynı olması gerektiği ya da bir maçta yalnızca bir top bulunduğu gibi insan kültürel yaşamının temel kısıtlarını öğrenme ya yakalayamıyor ya da yalnızca kısmen yakalıyor gibi
Bu model Würstchen mimarisi üzerine kurulmuş
Yazarlardan birinin bu modelin nasıl çalıştığını çok iyi anlattığı bir video var
https://www.youtube.com/watch?v=ogJsCPqgFMk
Gemini Advanced> Summarize this video: https://www.youtube.com/watch?v=ogJsCPqgFMk
Bu video, Würstchen adlı metinden görüntüye difüzyon modelinin eğitim yöntemiyle ilgili
Stable Diffusion 1.4 gibi mevcut yöntemlerden çok daha verimli; eğitim süresi ve hesaplama miktarının yalnızca 1/16’sını kullanarak benzer sonuçlar üretebiliyor
Temel nokta iki aşamalı bir sıkıştırma süreci
İlk aşamada VQ-VAE, görüntüyü Stable Diffusion’ın kullandığı latent uzaydan 4 kat daha küçük bir latent uzaya sıkıştırıyor; ikinci aşamada ise bir difüzyon modeli latent uzayı tekrar 10 kat sıkıştırıyor
Böylece toplam sıkıştırma oranı 40 kata ulaşıyor; bu da Stable Diffusion’ın 8 kat sıkıştırmasından çok daha yüksek
Sıkıştırılmış latent uzay sayesinde Würstchen’in metinden görüntüye difüzyon modeli, Stable Diffusion modellerine göre çok daha küçük olabiliyor ve daha hızlı eğitilebiliyor
Würstchen tek bir GPU’da 24.000 GPU-saat ile eğitilebiliyor, Stable Diffusion 1.4 ise 150.000 GPU-saat gerektiriyor
Verimli olmasına rağmen Stable Diffusion’a benzer kalitede görüntüler üretebiliyor; daha yüksek çözünürlüklü veya daha fazla ayrıntı içeren görüntülerde ise bazen daha iyi kalite sunuyor
Genel olarak Würstchen, metinden görüntü üretimi alanında önemli bir ilerleme; daha verimli ve daha ucuz model eğitimini mümkün kılarak pazarlama görselleri, kitap illüstrasyonları ve kişiselleştirilmiş avatarlar gibi kullanım alanlarını genişletebilir
Aynı modelin birden fazla görüntüsünü üretmek için kullanılabilecek bir yöntem var mı?
Örneğin bir otomobil modelini farklı açılardan döndürülmüş görüntüler olarak üretmek ama hepsinde aynı üretilmiş otomobilin korunması gibi
[1] https://zero123.cs.columbia.edu/
Girdi görüntüsü => embedding => N görüntülük bir akış olarak yapılabilir; 3D render perspektifini de düşünüyorsanız bu N görüntüye ControlNet uygulanabilir
Not: “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.”
Eskiden bu iki araştırmacıyla birlikte Stage B’yi latent temsile koşullu olarak bağlamanın en iyi yolunu bulmak için çeşitli denemeler yaptığımı hatırlıyorum
Göreli 2D konum embedding’leri eklenmiş oldukça fancy bir cross-attention yerine, giriş kanallarını latent temsilin en yakın komşu upsample’ı ile doğrudan birleştirmek daha iyi sonuç vermişti; bu yüzden vazgeçmiştik
Bu model eskiden Würstchen v3 olarak biliniyordu
AMD’de çalışır mı?
Desteklenip desteklenmediğini bulamadım
Stable Diffusion’ı AMD’de çalıştıran kullanıcılar muhtemelen performans düşüşü yaşıyordur; bu yüzden böyle projeler için oldukça önemli bir özellik
Bence en etkileyici tarafı sıkıştırma
Görüntüleri 42 kat sıkıştırabilmek, mobil cihazlarda, kötü internet bağlantısında ya da ikisinin bir arada olduğu durumlarda muazzam bir avantaj
Düşük bant genişliğiyle 8K çözünürlük sunma yönünde