2 पॉइंट द्वारा GN⁺ 2024-02-14 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • Stable Cascade Stability AI का आधिकारिक codebase है, जो Würstchen architecture पर आधारित image generation model के training और inference scripts के साथ कई model checkpoints प्रदान करता है
  • मुख्य अंतर यह है कि यह Stable Diffusion की तुलना में कहीं छोटे latent space में काम करता है; 1024x1024 images को Stable Diffusion के 128x128 के बजाय 24x24 में encode करके inference speed और training cost घटाता है
  • Model Stage A, Stage B, Stage C वाले 3-step cascade से बना है; Stage A और B image compression संभालते हैं, जबकि Stage C text prompt से 24x24 latent representation generate करता है
  • उपलब्ध capabilities में text-to-image, image variation, image-to-image, ControlNet, LoRA, image reconstruction, scratch से training और fine-tuning शामिल हैं, और यह diffusers 🤗 से भी accessible है
  • Codebase early development stage में है, इसलिए unexpected errors या unoptimized training/inference code हो सकते हैं; code MIT License के तहत है और model weights Stability AI Non-Commercial Research Community License के तहत हैं

Stable Cascade जिस समस्या को हल करना चाहता है

  • Stable Cascade Stable Cascade का आधिकारिक codebase है, जो training और inference scripts तथा इस्तेमाल किए जा सकने वाले कई models प्रदान करता है
  • Model Würstchen architecture पर आधारित है
  • Stable Diffusion जैसे models से इसका मुख्य अंतर यह है कि यह कहीं छोटे latent space में काम करता है
    • Stable Diffusion compression factor 8 का उपयोग करके 1024x1024 image को 128x128 में encode करता है
    • Stable Cascade compression factor 42 हासिल करता है, जिससे 1024x1024 image को 24x24 में encode किया जा सकता है
    • Text-conditional model इसी high-compression latent space में train किया जाता है
  • छोटा latent space तेज inference और कम खर्चीली training की ओर ले जाता है
  • इस architecture के पिछले version ने Stable Diffusion 1.5 की तुलना में 16 गुना cost reduction हासिल किया था

Performance और efficiency

  • Stable Cascade को ऐसे model के रूप में पेश किया गया है जो efficiency महत्वपूर्ण होने वाले use cases के लिए उपयुक्त है
  • Fine-tuning, LoRA, ControlNet, IP-Adapter, LCM जैसी जानी-मानी extension techniques भी इस method में संभव हैं
    • इनमें से कुछ पहले से training और inference sections में उपलब्ध हैं
  • अपनी evaluation में Stable Cascade ने लगभग सभी comparisons में prompt alignment और aesthetic quality दोनों में सबसे अच्छा performance दिखाया
  • Human evaluation parti-prompts और aesthetic prompts को मिलाकर की गई
    • Stable Cascade की तुलना 30 inference steps पर की गई
    • Comparison targets में Playground v2 50 steps, SDXL 50 steps, SDXL Turbo 1 step, Würstchen v2 30 steps शामिल थे
  • सबसे बड़े model में Stable Diffusion XL से 1.4 billion अधिक parameters हैं, लेकिन यह तेज inference time दिखाता है

3-stage model structure

  • Stable Cascade, जैसा नाम बताता है, images generate करने वाला cascade structure है और Stage A, Stage B, Stage C नाम के 3 models से बना है
  • Stage A और Stage B, Stable Diffusion के VAE की तरह, images को compress करने की भूमिका निभाते हैं
  • Stage C text prompt को input के रूप में लेकर छोटा 24 x 24 latent representation generate करता है
  • Stage A एक VAE है, और Stage B तथा Stage C diffusion models हैं
  • इस release में निम्न checkpoints दिए गए हैं
    • Stage C: 1 billion parameter version और 3.6 billion parameter version
    • Stage B: 700 million parameter version और 1.5 billion parameter version
    • Stage A: 20 million parameters, छोटे size के कारण fixed है
  • Stage C के लिए 3.6 billion version का उपयोग strongly recommended है, क्योंकि अधिकांश fine-tuning work 3.6 billion parameter version पर केंद्रित रहा है
  • Stage B के दोनों versions अच्छे results देते हैं, लेकिन 1.5 billion parameter version छोटी और subtle details की reconstruction में बेहतर है
  • सबसे अच्छे results के लिए प्रत्येक stage के बड़े variants का उपयोग करने का तरीका सुझाया गया है

Inference capabilities और notebooks

  • Model चलाने के लिए inference section की notebooks इस्तेमाल की जा सकती हैं
  • उस section में model download, compute requirements और usage tutorials से जुड़ी details शामिल हैं
  • Text-to-Image

    • text_to_image.ipynb text-to-image, image variation और image-to-image की basic capabilities प्रदान करता है
    • Image variation image embeddings को समझकर दिए गए image के variations generate कर सकता है, और example में prompt नहीं दिया गया है
    • Image-to-image image को एक निश्चित point तक noise में बदलने के बाद उसी starting point से generation करने के तरीके से काम करता है
    • Example में बाईं image को 80% noise किया गया है और A person riding a rodent. caption का उपयोग किया गया है
    • Model Hugging Face के stable-cascade docs के जरिए diffusers 🤗 library में भी accessible है
  • ControlNet

    • controlnet.ipynb Stable Cascade के लिए दिए गए ControlNet या user द्वारा खुद train किए गए ControlNet का उपयोग करना बताता है
    • इस release के ControlNet में Inpainting / Outpainting, Face Identity, Canny, Super Resolution शामिल हैं
    • Face Identity ControlNet बाद में release किया जाएगा
    • इन्हें उसी notebook में इस्तेमाल किया जा सकता है, और प्रत्येक ControlNet के लिए केवल settings बदलनी होती हैं
  • LoRA

    • Stable Cascade LoRA training और usage के लिए अपना implementation प्रदान करता है
    • LoRA का उपयोग text-conditional model Stage C को fine-tune करने के लिए किया जा सकता है
    • नए tokens add और train किए जा सकते हैं और model में LoRA layers जोड़ी जा सकती हैं
    • lora.ipynb trained LoRA का उपयोग दिखाता है
  • Image reconstruction

    • reconstruct_images.ipynb images को encode/decode करने का तरीका और high-compression approach के लाभ दिखाता है
    • Stable Cascade का Diffusion Autoencoder बहुत compressed space में काम करने देता है
    • जैसे Stable Diffusion के VAE को अपने model training में इस्तेमाल किया जाता है, वैसे ही Stage A और Stage B का उपयोग किया जा सकता है
    • Example batch 4 x 3 x 1024 x 1024 को 4 x 16 x 24 x 24 में encode किया जाता है
    • Spatial compression factor 1024 / 24 = 42.67 है
    • इसके बाद Stage A और Stage B से फिर 4 x 3 x 1024 x 1024 में decode किया जा सकता है
    • Reconstruction result छोटी details में भी original के बहुत करीब है, और बताया गया है कि standard VAE आदि से ऐसी reconstruction संभव नहीं है

Training, app और license

  • Training code में Stable Cascade को scratch से train करना, fine-tuning, ControlNet और LoRA शामिल हैं
  • Detailed training method training folder में दिया गया है
  • Codebase early development stage में है
    • Unexpected errors हो सकते हैं
    • Training और inference code पूरी तरह optimized नहीं हो सकता है
    • यदि interest हो, तो latest improvements और optimizations को reflect करने वाले updates लगातार release करने की योजना है
    • Ideas, feedback और updates में contributions लेने की इच्छा है
  • Gradio app चलाने के लिए पहले निम्न install करें
  • Project root से निम्न command के साथ Gradio app चलाएं
    • PYTHONPATH=./ python3 gradio_app/app.py
  • Code MIT LICENSE के तहत है
  • Hugging Face से मिलने वाले model weights STABILITY AI NON-COMMERCIAL RESEARCH COMMUNITY LICENSE के तहत हैं

1 टिप्पणियां

 
GN⁺ 2024-02-14
Hacker News की रायें
  • कुछ घंटों तक इस्तेमाल करने के बाद लगता है कि prompt adherence काफी बेहतर हो गया है
    फिलहाल कुछ SDXL models से quality कम लगती है, लेकिन कुछ दिन और test करने से पहले मैं फैसला रोककर रखना चाहूंगा
    speed भी तेज है, non-turbo SDXL से लगभग 2–3 गुना तेज महसूस होती है

    • quality के बजाय मैं कभी भी prompt adherence चुनूंगा
      अगर किसी खास appearance या depth को force करने के लिए ControlNet, OpenPose, depth map तक लगाने पड़ें, तो हर generation में solution बहुत ज्यादा custom बन जाता है
      खुद test करके देखा तो prompts follow करने में सुधार है, और images भी visually ज्यादा पसंद आईं
    • जानना चाहता हूं कि कितनी VRAM चाहिए
      कहा जा रहा है कि सबसे बड़े model में SDXL से 1.4 billion ज्यादा parameters हैं, और SDXL भी पहले से काफी VRAM मांगता है
    • क्या इसे CPU पर भी चला सकते हैं?
  • बहुत impressive है
    मेरी समझ से Stability AI अभी venture funding ले रही है, लेकिन लगता है कि उन्हें बहुत पैसा burn करना ही पड़ेगा और business model sustainable है या नहीं, यह भी साफ नहीं है
    शायद वे government research funding के लायक हैं

    • Stability AI काफी समय से बहुत पैसा burn कर रही है, और शायद इसी वजह से Stable Cascade जैसे latest models अब commercially friendly license वाले open source नहीं रहे
      reports के मुताबिक Intel के साथ deal के समय वे monthly bills और salaries पर करीब 8 million dollars खर्च कर रहे थे, और revenue उसका सिर्फ एक हिस्सा था
      August का revenue 1.2 million dollars था, और Mostaque की X post में कहा गया था कि software और services से उस महीने 3 million dollars की ओर बढ़ रहे थे, लेकिन बाद में वह post delete कर दी गई
      https://fortune.com/2023/11/29/stability-ai-sale-intel-ceo-r...
    • पहले मैंने Stability AI के founder Emad को HN पर कहीं comment करते देखा था कि उनका business model असल में क्या है और आगे क्या होगा
      आज HN search ठीक से match नहीं कर रही, इसलिए जो specific comment याद है वह नहीं मिल पा रहा
      अगर कोई ढूंढ सके तो user page यहां है: https://news.ycombinator.com/user?id=emadm
    • मुझे लगता है Stability को research grants मिलनी चाहिए
    • researchers stability.ai से नहीं, बल्कि Germany और Canada की universities से हैं
      तो यह structure कैसे काम करता है, समझना चाहता हूं
      क्या यह stability.ai के लिए exclusive work है?
  • commits देखने पर license MIT से उनके अपने custom license में बदल गया है: https://github.com/Stability-AI/StableCascade/commit/209a526...
    license बदलने से पहले के पुराने snapshot को पुराने MIT license के तहत इस्तेमाल करना क्या legally possible है?

    • intent काफी साफ दिखता है कि वे non-commercial license इस्तेमाल करना चाहते थे, इसलिए अगर सचमुच इसे push किया जाए तो मामला court तक जा सकता है
      आम तौर पर courts चीजों को ज्यादा holistic तरीके से देखते हैं, intent देखते हैं, और यह भी समझते हैं कि clerical mistakes हो सकती हैं
      हालांकि अगर कोई company दावा करे कि उसने पुराने license पर भरोसा करके बहुत resources invest किए, तो exception हो सकता है
      commit timing काफी important लगती है। public release से पहले repository सिर्फ कुछ घंटों के लिए MIT थी, ऐसी स्थिति में किसी business के लिए यह दावा करना मुश्किल होगा कि उसने substantial investment किया
    • possible है
      उस commit को public होने के समय के MIT license के तहत आप जैसे चाहें वैसे इस्तेमाल कर सकते हैं
      यह कुछ ऐसा है जैसे आपने ebook खरीदी हो और बाद में second edition सिर्फ hardcover में आए, फिर भी first edition ebook आप पढ़ सकते हैं
    • model architecture, training code वगैरह अभी भी MIT हैं, और बड़े GPU cluster पर train किए गए result यानी weights और इस्तेमाल किया गया dataset नए license के तहत लगते हैं
    • code MIT है, और model non-commercial license पर है
      अलग-अलग works अलग-अलग licenses के तहत हैं
      Stability AI ने कहा है कि यह non-commercial license इसलिए है क्योंकि यह SDXL 0.9 की तरह technical preview है
    • MIT license GPL की तरह viral नहीं होता
      आप MIT-licensed codebase को closed कर सकते हैं, लेकिन पहले से public हो चुके पुराने code का license retroactively नहीं बदल सकते
      Stability के initial commit में MIT license था, इसलिए आप उस commit को fork करके जैसे चाहें इस्तेमाल कर सकते हैं
      tricky हिस्सा यह है कि उन्होंने license को MIT से proprietary में बदलने वाला commit किया, लेकिन code में कोई change नहीं था
      यह invalid हो सकता है, क्योंकि वही codebase दो contradictory licenses के तहत distribute नहीं किया जा सकता
      नए license को सिर्फ license change के बाद codebase में जोड़े गए changes पर लगाया जा सकता है
      इसे “illegal” तो नहीं कहूंगा, लेकिन क्योंकि वही software पहले ही public license के तहत distribute हो चुका है, इसलिए proprietary software होने का दावा court में टिकना मुश्किल होगा
  • यहां optimized playground है: https://www.fal.ai/models/stable-cascade

    • “sign in to run” एक marketing opportunity गंवाने जैसा लगता है
      खासकर इस तरह के competitive क्षेत्र में, और HN audience से अगर single image generation test करने के लिए signup करने को कहेंगे, तो वे खुद run करने का option चुनने की संभावना ज्यादा है
  • मैंने जिन दूसरे image generators को try किया है, उनकी तरह यह भी piano keys ठीक से नहीं बना पाता [1]
    लगता है कि black keys के groups गिने जा सकें, इसके लिए अलग approach चाहिए
    [1] https://fal.ai/models/stable-cascade?share=13d35b76-d32f-45c...

    • यह उससे भी आगे की बात लगती है
      मेरे मामले में basketball से जुड़ी images बनाते समय अक्सर एक से ज्यादा balls थीं
      मैं expert नहीं हूं, लेकिन लगता है training इंसानी सांस्कृतिक जीवन की basic constraints—जैसे सभी piano keys का समान होना, या एक game में सिर्फ एक ball होना—को समझ नहीं पाती, या केवल आंशिक रूप से समझती है
    • इंसानी हाथों की तरह, consistency एक ऐसी समस्या है जो model size और training बढ़ाने से हल हो जाती है
  • यह मॉडल Würstchen आर्किटेक्चर पर बनाया गया है
    लेखकों में से एक का एक वीडियो है, जिसमें बहुत अच्छे से समझाया गया है कि यह मॉडल कैसे काम करता है
    https://www.youtube.com/watch?v=ogJsCPqgFMk

    • अच्छा वीडियो है, और सारांश में बात यह है :)
      Gemini Advanced> Summarize this video: https://www.youtube.com/watch?v=ogJsCPqgFMk
      यह वीडियो Würstchen नाम के text-to-image diffusion model की training पद्धति के बारे में है
      Stable Diffusion 1.4 जैसी मौजूदा पद्धतियों की तुलना में यह कहीं ज़्यादा efficient है, और training time व compute का केवल 1/16 इस्तेमाल करके भी मिलते-जुलते नतीजे दे सकता है
      इसकी मुख्य बात 2-step compression प्रक्रिया है
      पहले step में VQ-VAE के जरिए image को Stable Diffusion द्वारा इस्तेमाल किए जाने वाले latent space से 4 गुना छोटे latent space में compress किया जाता है, और दूसरे step में diffusion model से latent space को फिर 10 गुना compress किया जाता है
      इसलिए कुल compression ratio 40x हो जाता है, जो Stable Diffusion के 8x compression से कहीं ज़्यादा है
      compressed latent space की वजह से Würstchen का text-to-image diffusion model, Stable Diffusion model की तुलना में काफी छोटा हो सकता है और तेज़ी से train किया जा सकता है
      Würstchen को एक single GPU पर 24,000 GPU hours में train किया जा सकता है, जबकि Stable Diffusion 1.4 को 150,000 GPU hours चाहिए
      efficient होने के बावजूद यह Stable Diffusion जैसी quality की images बना सकता है, और ज़्यादा resolution या ज़्यादा details वाली images में कभी-कभी बेहतर quality भी देता है
      कुल मिलाकर, Würstchen text-to-image generation के क्षेत्र में एक अहम प्रगति है, और model training को अधिक efficient व सस्ता बनाकर marketing images, book illustrations, personalized avatars जैसे use cases का दायरा बढ़ा सकता है
  • क्या इसी model के कई images generate करने के लिए कोई तरीका इस्तेमाल किया जा सकता है?
    जैसे car model को कई angles में rotate की हुई images बनाना, लेकिन सभी में वही generated car बनी रहे

    • लगता है कि resources वाले किसी व्यक्ति को इस backbone पर Zero123 [1] train करना चाहिए
      [1] https://zero123.cs.columbia.edu/
    • संभव है
      input image => embedding => N images flow बनाया जा सकता है, और अगर 3D rendering perspective तक सोचना हो तो उन N पर ControlNet लागू किया जा सकता है
      संदर्भ: “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.”
  • याद है कि पहले इन दोनों researchers के साथ Stage B को latent representation पर conditionally जोड़ने का सबसे अच्छा तरीका खोजने के लिए कई तरह के experiments किए थे
    relative 2D position embeddings वाली बहुत fancy cross-attention की तुलना में, input channels को latent representation के nearest-neighbor upsample के साथ बस concatenate करने का तरीका बेहतर निकला, इसलिए हमने हार मान ली थी
    यह model पहले Würstchen v3 के नाम से जाना जाता था

  • क्या यह AMD पर चलेगा?
    support है या नहीं, यह नहीं मिल पाया
    Stable Diffusion को AMD पर चलाने वाले users को performance degradation झेलना पड़ता होगा, इसलिए ऐसे project में यह काफी अहम feature है

  • मेरे हिसाब से सबसे impressive चीज़ compression है
    images को 42x compress कर पाना mobile devices या खराब internet connection, या दोनों वाली स्थिति में बहुत बड़ा advantage है

    • वह spatial direction में 42x compression है, और RGB के 3 channels के बजाय 16 channels चाहिए
    • अब तक शायद कोई न कोई छोटा pretrained model शामिल करके, TV जैसे limited memory environment में भी चलने वाला तेज़ AI-based video codec बना रहा होगा
      मकसद low bandwidth पर 8K resolution देना है