मल्टीमॉडल और जनरेटिव AIमध्यमपाठ 2446 मिनट का पाठ

Diffusion models तस्वीरें कैसे बनाते हैं

एक diffusion model थोड़ा-थोड़ा करके noise हटाना सीखता है। पूरी तरह से static से शुरू करें, अपने शब्दों की मदद से इसे कदम-दर-कदम साफ़ करें, और एक तस्वीर सामने आ जाती है।

पाठ वीडियो में

60 सेकंड में

Diffusion models तस्वीरें कैसे बनाते हैं

एक diffusion model थोड़ा-थोड़ा करके noise हटाना सीखता है। पूरी तरह से static से शुरू करें, अपने शब्दों की मदद से इसे कदम-दर-कदम साफ़ करें, और एक तस्वीर सामने आ जाती है।

1/4
आसान शब्दों में
कल्पना करें कि एक फ़ोटो पर धीरे-धीरे रेत जमती जाती है, जब तक कि कुछ भी दिखना बंद न हो जाए। अब एक ऐसे दोस्त की कल्पना करें जिसने रेत झाड़कर हटाने का इतना अभ्यास किया है कि, रेत के ढेर से भी, वह झाड़कर एक तस्वीर निकाल सकता है। Diffusion model वही दोस्त है।
आजकल के ज़्यादातर जाने-माने image generators diffusion models, या उनके करीबी मॉडल्स पर आधारित हैं। यह विचार हैरान करने वाला है: तस्वीरें बनाना सीखने के लिए, मॉडल noisy तस्वीरों को साफ़ करना सीखता है।

Training: noise हटाना सीखना

  1. 1

    एक असली तस्वीर लें

    उदाहरण के लिए, कैप्शन के साथ रंगोली के डिज़ाइन की एक फ़ोटो।
  2. 2

    Noise जोड़ें

    रैंडम static जोड़ें। कभी थोड़ा-सा, तो कभी इतना ज़्यादा कि तस्वीर पूरी तरह गायब हो जाए।
  3. 3

    मॉडल से अंदाज़ा लगाने को कहें

    इसे noisy तस्वीर और noise का लेवल दिखाएं। यह उस noise का अनुमान लगाता है जो जोड़ी गई थी (या फिर, साफ़ तस्वीर का)।
  4. 4

    जांचें और सुधारें

    अंदाज़े की तुलना असली जवाब से करें और मॉडल को थोड़ा एडजस्ट करें।
  5. 5

    इसे कई बार दोहराएं

    ढेर सारी तस्वीरों और noise लेवल्स पर काम करके, मॉडल साफ़ करने में माहिर हो जाता है।

Generation: पूरी तरह noise से शुरुआत करें

एक नई तस्वीर बनाने के लिए, पूरी तरह से रैंडम static से शुरुआत करें। मॉडल से पूछें: "इसमें क्या noise है?" उसमें से थोड़ी noise हटा दें। अब static थोड़ा कम रैंडम रह जाता है। इसे दोहराएं। कई कदमों के बाद, पहले आकार, फिर रंग, और फिर बारीक डीटेल्स दिखने लगती हैं। शुरुआती कदम कुल मिलाकर लेआउट तय करते हैं; बाद के कदम बनावट (texture) जोड़ते हैं।
कदमतस्वीर कैसी दिखती है
शुरुआतपूरी तरह TV static
शुरुआती दौरधुंधले धब्बे: नीचे गहरा हिस्सा, ऊपर हल्का हिस्सा
बीच का दौरमोटे तौर पर आकार: एक सड़क, पेड़, आसमान
आखिरी दौरबारीकियां: पत्तियां, सड़क के निशान, स्कूटर पर पड़ती रोशनी

Text guidance: अपने शब्दों से दिशा देना

मॉडल को आपका prompt भी मिलता है, जिसे एक text encoder (अक्सर CLIP जैसा) embeddings में बदल देता है। हर कदम पर मॉडल दो बार noise का अनुमान लगाता है: एक बार आपके prompt के साथ और एक बार बिना उसके। फिर यह "prompt के साथ" वाले अंदाज़े की दिशा में और आगे बढ़ता है। इस तरकीब को classifier-free guidance कहते हैं।
  • Higher guidance: prompt का ज़्यादा बारीकी से पालन करता है, लेकिन तस्वीरें थोड़ी अस्वाभाविक या अजीब दिख सकती हैं।
  • Lower guidance: ज़्यादा स्वाभाविक और विविध, लेकिन यह आपके पूछे गए विषय से भटक सकता है।
  • Negative prompt (कुछ टूल्स में): "बिना prompt" वाले अंदाज़े की जगह उन चीज़ों को रख देता है जिनसे बचना है, जैसे कि "blurry"।

Latent diffusion: हर pixel पर नहीं, एक छोटे स्केच पर काम करें

किसी बड़ी तस्वीर के हर pixel को बार-बार साफ़ करना धीमा होता है। Latent diffusion एक अलग नेटवर्क, यानी autoencoder का इस्तेमाल करके तस्वीर को संख्याओं के एक बहुत छोटे ग्रिड में समेट देता है जिसे latent कहा जाता है। Diffusion इसी छोटे latent पर होता है। अंत में एक decoder इसे वापस पूरी तस्वीर में बदल देता है। Stable Diffusion इस तरीके का एक जाना-माना ओपन उदाहरण है।
नोट
यह क्षेत्र तेज़ी से बदल रहा है। कुछ नए इमेज मॉडल पुराने denoising नेटवर्क की जगह transformer का इस्तेमाल करते हैं, कुछ flow matching नाम की तकनीक अपनाते हैं जो diffusion से काफी मिलती-जुलती है, और कुछ टेक्स्ट की तरह ही एक-एक करके tokens के रूप में तस्वीरें बनाते हैं। फिर भी "कदम-दर-कदम noise साफ़ करने" की बुनियादी समझ आपको इनमें से ज़्यादातर को समझने में मदद करती है।

इससे क्या समझ आता है

  • एक ही prompt से अलग-अलग तस्वीरें क्यों मिलती हैं: हर रन की शुरुआत अलग रैंडम noise से होती है। टूल्स इसे अक्सर "seed" कहते हैं।
  • पहले बारीक डीटेल्स में गड़बड़ी क्यों होती थी: हाथ, साइनबोर्ड पर लिखा टेक्स्ट और छोटे-छोटे दोहराए जाने वाले पैटर्न्स के लिए बहुत सटीक डिटेल की ज़रूरत होती है, जिसमें गलती होना आसान है। नए मॉडल बेहतर काम करते हैं, फिर भी जांच ज़रूर करें।
  • कॉपी क्यों हो सकती है: अगर कोई तस्वीर ट्रेनिंग में कई बार आई हो, तो मॉडल हूबहू वैसी ही तस्वीर बनाना सीख सकता है। यह कॉपीराइट से जुड़ी बहस का एक हिस्सा है।
सावधान रहें
बिना सहमति के असली लोगों की असली जैसी दिखने वाली तस्वीरें बनाना उन्हें नुकसान पहुँचा सकता है और हो सकता है कि यह आपके यहाँ गैर-कानूनी हो। कई टूल्स इसे रोकते हैं, लेकिन सभी नहीं। टूल के नियमों से ज़्यादा आपकी पसंद और ज़िम्मेदारी मायने रखती है।
इसे आज़माएं। अगर आप किसी मुफ़्त इमेज टूल का इस्तेमाल कर सकते हैं, तो एक ही prompt को तीन बार चलाएं। तीनों में क्या बदलता है? क्या वैसा ही रहता है? यही seed और prompt का काम है।

और देखें और पढ़ें

लैब

कागज़ पर और वैकल्पिक रूप से Python में, 5-pixel की एक छोटी-सी तस्वीर से कदम-दर-कदम noise हटाने का अभ्यास।

~30 min

समस्या

आप एक कतार में केवल 5 pixels वाली एक "फ़ोटो" पर एक छोटे diffusion model की तरह काम करेंगे। हर pixel एक संख्या है: 0 का मतलब गहरा (dark), 1 का मतलब चमकदार (bright) है।

  1. आपके मॉडल ने केवल तीन ट्रेनिंग तस्वीरें देखी हैं: left bar = 1 1 0 0 0, right bar = 0 0 0 1 1, middle = 0 1 1 1 0।
  2. इस "noise" से शुरुआत करें: 0.3 0.9 1.2 0.4 -0.2।
  3. कदम 1: हर ट्रेनिंग तस्वीर के लिए, जोड़ें कि हर pixel noise से कितनी दूरी पर है (बस अंतर का मान लें)। कौन-सी ट्रेनिंग तस्वीर सबसे करीब है?
  4. हर noisy pixel को सबसे करीबी तस्वीर की तरफ आधा बढ़ाएं। नए 5 नंबर लिख लें।
  5. कदम 3 और 4 को दो बार और दोहराएं। अंतिम संख्याओं को राउंड ऑफ करके 0 या 1 में बदलें। आपने कौन-सी तस्वीर "तैयार की"?
  6. वैकल्पिक: स्टार्टर कोड चलाएं, जो एक समझदार weighted guess और नई रैंडम noise के साथ यही काम करता है। seed को कुछ बार बदलें और देखें कि क्या नतीजा निकलता है।

प्रैक्टिस लैब

कोड में बदलाव करें और इसे रन करें। Python आपके ब्राउज़र में चलता है — हमारे सर्वर पर कुछ नहीं भेजा जाता।

आउटपुट

कोई आउटपुट नहीं। वैल्यूज़ देखने के लिए print(...) जोड़ें।

आपका काम तब पूरा होगा जब

कठिन सवाल

उत्तर देखने से पहले ख़ुद जवाब देने की कोशिश करें। अगर आप इनके जवाब दे सकते हैं, तो आप पाठ समझ गए हैं।

Q1यह छोटा खिलौना मॉडल (toy model) लगभग हमेशा अपनी तीन ट्रेनिंग तस्वीरों में से ही किसी एक को हूबहू दिखाता है। यह असली मॉडल्स और कॉपी करने के बारे में क्या बताता है?दिखाएं

एक ऐसा मॉडल जो अपने ट्रेनिंग डेटा में पूरी तरह फ़िट बैठता है, वह केवल वही दोबारा बनाएगा जो उसने देखा है। असली मॉडल्स के पास इतनी ज़्यादा तस्वीरें होती हैं कि वे उन सभी को याद नहीं रख सकते, इसलिए वे ज़्यादातर सामान्य पैटर्न सीखते हैं और उन्हें नए तरीकों से जोड़ सकते हैं। लेकिन ट्रेनिंग में कई बार दोहराई जाने वाली तस्वीरों को ज़्यादा "वज़न" (weight) मिलता है, और उन्हें हूबहू दोबारा बनाया जा सकता है। यही वजह है कि ट्रेनिंग डेटा से डुप्लिकेट तस्वीरों को हटाने से कॉपी होना कम हो जाता है, और इसीलिए डेटा को याद रखना (memorisation) कॉपीराइट की बहस का हिस्सा है।

Q2यह छोटा मॉडल सीधे साफ़ अंदाज़े पर छलांग लगाने के बजाय हर कदम पर नई noise वापस क्यों जोड़ता है?दिखाएं

हाई नॉइज़ लेवल पर, साफ इमेज का अंदाज़ा कई संभावित इमेज का एक धुंधला औसत होता है। सीधे उस पर जाने से वही धुंधलापन मिलेगा। थोड़ा कम नॉइज़ वापस जोड़कर फिर से अंदाज़ा लगाने से यह प्रोसेस धीरे-धीरे आगे बढ़ता है: पहले एक रफ लेआउट तय होता है, फिर बारीकियाँ। यहीं से वैरायटी भी आती है: अलग नॉइज़ से अलग फाइनल इमेज बनती हैं।

जारी रखने के लिए कृपया साइन इन करें।

अक्सर पूछे जाने वाले सवाल

क्या मॉडल ट्रेनिंग की तस्वीरों को सहेज कर रखता है और उनके टुकड़ों को आपस में जोड़ता है?

आम तौर पर ऐसा नहीं होता। यह ऐसे पैटर्न्स सीखता है जिससे यह noise हटा सके। लेकिन रिसर्चर्स ने दिखाया है कि, कुछ स्थितियों में, मॉडल ट्रेनिंग की तस्वीरों को हूबहू बना सकते हैं, खास तौर पर उन तस्वीरों को जो डेटा में कई बार आई हों। इसलिए "यह कभी कॉपी नहीं करता" कहना भी सही नहीं है।

तस्वीर बनाने में कई कदम क्यों लगते हैं?

हर कदम पर थोड़ी-सी ही noise हटाई जाती है, क्योंकि static से एक ही बार में पूरी तस्वीर का अंदाज़ा लगाना बहुत मुश्किल होता है। अब कई तरीकों में पहले के मुकाबले कम कदमों की ज़रूरत होती है, लेकिन कदम-दर-कदम आगे बढ़ने का यह विचार वही रहता है।

Seed क्या है?

एक संख्या जो शुरुआत की रैंडम noise तय करती है। वही मॉडल, prompt, सेटिंग्स और seed आम तौर पर एक जैसी तस्वीर देते हैं। seed बदलें और आपको उसी prompt के लिए एक अलग तस्वीर मिलेगी।

क्या diffusion models सिर्फ तस्वीरों के लिए होते हैं?

नहीं। यही विचार वीडियो, ऑडियो और यहाँ तक कि विज्ञान में भी इस्तेमाल होता है, उदाहरण के लिए मॉलिक्यूल के आकार डिज़ाइन करने के लिए। कोई भी ऐसी चीज़ जिसमें आप noise जोड़ सकें और उसे साफ़ करना सीख सकें, इस तरीके से बनाई जा सकती है।

पाठ का टेस्ट

5 सवाल। पास होने और इस पाठ को पूरा करने के लिए 3 सही होने चाहिए (60%)।

टेस्ट देने और अपनी प्रोग्रेस सेव करने के लिए साइन इन करें