Diffusion models तस्वीरें कैसे बनाते हैं
एक diffusion model थोड़ा-थोड़ा करके noise हटाना सीखता है। पूरी तरह से static से शुरू करें, अपने शब्दों की मदद से इसे कदम-दर-कदम साफ़ करें, और एक तस्वीर सामने आ जाती है।
60 सेकंड में
Diffusion models तस्वीरें कैसे बनाते हैं
एक diffusion model थोड़ा-थोड़ा करके noise हटाना सीखता है। पूरी तरह से static से शुरू करें, अपने शब्दों की मदद से इसे कदम-दर-कदम साफ़ करें, और एक तस्वीर सामने आ जाती है।
Training: noise हटाना सीखना
- 1
एक असली तस्वीर लें
उदाहरण के लिए, कैप्शन के साथ रंगोली के डिज़ाइन की एक फ़ोटो। - 2
Noise जोड़ें
रैंडम static जोड़ें। कभी थोड़ा-सा, तो कभी इतना ज़्यादा कि तस्वीर पूरी तरह गायब हो जाए। - 3
मॉडल से अंदाज़ा लगाने को कहें
इसे noisy तस्वीर और noise का लेवल दिखाएं। यह उस noise का अनुमान लगाता है जो जोड़ी गई थी (या फिर, साफ़ तस्वीर का)। - 4
जांचें और सुधारें
अंदाज़े की तुलना असली जवाब से करें और मॉडल को थोड़ा एडजस्ट करें। - 5
इसे कई बार दोहराएं
ढेर सारी तस्वीरों और noise लेवल्स पर काम करके, मॉडल साफ़ करने में माहिर हो जाता है।
Generation: पूरी तरह noise से शुरुआत करें
| कदम | तस्वीर कैसी दिखती है |
|---|---|
| शुरुआत | पूरी तरह TV static |
| शुरुआती दौर | धुंधले धब्बे: नीचे गहरा हिस्सा, ऊपर हल्का हिस्सा |
| बीच का दौर | मोटे तौर पर आकार: एक सड़क, पेड़, आसमान |
| आखिरी दौर | बारीकियां: पत्तियां, सड़क के निशान, स्कूटर पर पड़ती रोशनी |
Text guidance: अपने शब्दों से दिशा देना
- Higher guidance: prompt का ज़्यादा बारीकी से पालन करता है, लेकिन तस्वीरें थोड़ी अस्वाभाविक या अजीब दिख सकती हैं।
- Lower guidance: ज़्यादा स्वाभाविक और विविध, लेकिन यह आपके पूछे गए विषय से भटक सकता है।
- Negative prompt (कुछ टूल्स में): "बिना prompt" वाले अंदाज़े की जगह उन चीज़ों को रख देता है जिनसे बचना है, जैसे कि "blurry"।
Latent diffusion: हर pixel पर नहीं, एक छोटे स्केच पर काम करें
इससे क्या समझ आता है
- एक ही prompt से अलग-अलग तस्वीरें क्यों मिलती हैं: हर रन की शुरुआत अलग रैंडम noise से होती है। टूल्स इसे अक्सर "seed" कहते हैं।
- पहले बारीक डीटेल्स में गड़बड़ी क्यों होती थी: हाथ, साइनबोर्ड पर लिखा टेक्स्ट और छोटे-छोटे दोहराए जाने वाले पैटर्न्स के लिए बहुत सटीक डिटेल की ज़रूरत होती है, जिसमें गलती होना आसान है। नए मॉडल बेहतर काम करते हैं, फिर भी जांच ज़रूर करें।
- कॉपी क्यों हो सकती है: अगर कोई तस्वीर ट्रेनिंग में कई बार आई हो, तो मॉडल हूबहू वैसी ही तस्वीर बनाना सीख सकता है। यह कॉपीराइट से जुड़ी बहस का एक हिस्सा है।
और देखें और पढ़ें
लैब
कागज़ पर और वैकल्पिक रूप से Python में, 5-pixel की एक छोटी-सी तस्वीर से कदम-दर-कदम noise हटाने का अभ्यास।
समस्या
आप एक कतार में केवल 5 pixels वाली एक "फ़ोटो" पर एक छोटे diffusion model की तरह काम करेंगे। हर pixel एक संख्या है: 0 का मतलब गहरा (dark), 1 का मतलब चमकदार (bright) है।
- आपके मॉडल ने केवल तीन ट्रेनिंग तस्वीरें देखी हैं:
left bar = 1 1 0 0 0,right bar = 0 0 0 1 1,middle = 0 1 1 1 0। - इस "noise" से शुरुआत करें:
0.3 0.9 1.2 0.4 -0.2। - कदम 1: हर ट्रेनिंग तस्वीर के लिए, जोड़ें कि हर pixel noise से कितनी दूरी पर है (बस अंतर का मान लें)। कौन-सी ट्रेनिंग तस्वीर सबसे करीब है?
- हर noisy pixel को सबसे करीबी तस्वीर की तरफ आधा बढ़ाएं। नए 5 नंबर लिख लें।
- कदम 3 और 4 को दो बार और दोहराएं। अंतिम संख्याओं को राउंड ऑफ करके 0 या 1 में बदलें। आपने कौन-सी तस्वीर "तैयार की"?
- वैकल्पिक: स्टार्टर कोड चलाएं, जो एक समझदार 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%)।