2 puan yazan GN⁺ 2024-02-14 | 1 yorum | WhatsApp'ta paylaş
  • 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 24 olarak kodlanır
    • Uzamsal sıkıştırma katsayısı 1024 / 24 = 42.67 olur
    • Ardından Stage A ve Stage B ile tekrar 4 x 3 x 1024 x 1024 olarak çö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
  • 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

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

    • Kalitedense her zaman prompt’a uyumu seçerim
      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
    • Ne kadar VRAM gerektiğini merak ediyorum
      En büyük modelin SDXL’den 1,4 milyar daha fazla parametreye sahip olduğu söyleniyor; SDXL de zaten çok VRAM istiyor
    • CPU’da da çalıştırılabiliyor mu?
  • Ç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

    • Stability AI zaten bir süredir çok para yakıyordu; bu yüzden Stable Cascade gibi en yeni modeller artık ticari açıdan elverişli lisanslara sahip açık kaynak değil gibi görünüyor
      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...
    • Daha önce Stability AI kurucusu Emad’ın burada HN’de bir yerlerde iş modelinin tam olarak ne olduğu ve ileride nasıl olacağı hakkında yorum yaptığını görmüştüm
      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
    • Bence Stability araştırma hibesi almalı
    • Araştırmacılar stability.ai bünyesinde değil, Almanya ve Kanada’daki üniversitelere bağlı
      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ü?

    • Niyetin ticari olmayan bir lisans kullanmak olduğu oldukça açık görünüyor; gerçekten zorlanırsa mahkemeye kadar gidebilecek bir konu olabilir
      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
    • Mümkün
      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
    • Model mimarisi, eğitim kodu vb. hâlâ MIT gibi; dev GPU kümelerinde eğitimin sonucu olan ağırlıklar ve kullanılan veri kümesi ise yeni lisans altında görünüyor
    • Kod MIT, model ise ticari olmayan lisans altında
      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 lisansı GPL gibi bulaşıcı değildir
      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

    • “sign in to run” bir pazarlama fırsatını kaçırmak gibi
      Ö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...

    • Bence mesele bundan da öte
      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
    • İnsan ellerinde olduğu gibi, tutarlılık model ölçeğini ve eğitimi büyütmekle çözülebilecek bir sorun
  • 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

    • Güzel bir video; özetle şöyle :)
      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

    • Kaynağı olan birinin bu backbone ile Zero123 [1]’i eğitmesi gerekiyor gibi
      [1] https://zero123.cs.columbia.edu/
    • Mümkün
      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

    • Bu, uzamsal yönde 42 kat sıkıştırma; ayrıca RGB’nin 3 kanalı yerine 16 kanal gerekiyor
    • Artık birilerinin, küçük bir önceden eğitilmiş model içeren ve TV gibi sınırlı bellek ortamlarında bile çalışabilen hızlı bir yapay zeka tabanlı video codec geliştirdiğini düşünüyorum
      Düşük bant genişliğiyle 8K çözünürlük sunma yönünde