Romergo के विकास से

अंतहीन सुधारों से एक छोटे फ़िल्म सेट तक: मैं कहानियाँ जनरेट करना कैसे सीख रहा हूँ

पिछले लेख में मैंने लिखा था कि मूल पाठ और खेलने योग्य विज़ुअल नॉवेल के बीच एक पूरी प्रक्रिया क्यों चाहिए: तथ्यों को बनाए रखना, पात्रों को तैयार करना, दृश्य जोड़ना और फिर देखना कि खिलाड़ी को वास्तव में क्या दिखता है।

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

पहले हाथ ठीक करने को कहते हैं। फिर कपड़ों का गायब हिस्सा वापस लाने को। फिर एक अतिरिक्त पैर हटाने को—हाँ, ऐसा भी होता है। आखिर में दिखता है कि इतने सुधारों के बीच चेहरा बदल गया, परछाइयाँ गहरी हो गईं और साफ़ पृष्ठभूमि धुँधली पड़ गई।

आप एक हिस्सा ठीक कर रहे होते हैं, लेकिन पूरी तस्वीर बदलती रहती है। कभी न कभी मानना पड़ता है: पाँच संस्करण पहले यह बेहतर थी।

तस्वीर सुधारना और उसे बचाए रखना अलग बातें हैं

मेरी बड़ी परेशानी बदलावों का जमा होना है। तस्वीर A से B बनाते हैं, B से C, और फिर कई कोशिशें करते हैं। हर नए संस्करण को इच्छित सुधार के साथ वे सभी बदलाव भी मिलते हैं जो पहले चुपके से हो चुके थे।

मेरी जनरेट की हुई तस्वीरों में चेहरे “पिघलने” लगते थे, परछाइयाँ भारी होती थीं, सतहों पर अजीब निशान आते थे और छोटे विवरण गायब हो जाते थे। हर अगला फ़्रेम ज़रूरी नहीं कि बदतर हो। मगर सुधारों की लंबी शृंखला में मूल रूप से भटकने के बहुत मौके थे।

इंसान को “सब वैसा ही रखो, बस सिर घुमा दो” एकदम स्पष्ट लगता है। हम पात्र को पहचानते हैं, कमरे को समझते हैं और मानते हैं कि जैकेट पहनी रहेगी, भले दोबारा उसका ज़िक्र न हो। जनरेटर के साथ ये बातें साफ़-साफ़ तय करनी पड़ती हैं। वह भरोसेमंद दिखने वाली नई तस्वीर बनाते हुए भी कुछ ऐसा बदल सकता है जिसे हम स्वाभाविक मान रहे थे।

तो हाँ, काम का बड़ा हिस्सा AI के साथ समझ बनाना सीखना है। कभी-कभी सचमुच समझाना पड़ता है कि हमें अब भी तीसरा पैर नहीं चाहिए।

GENERAL: लौटने के लिए एक आधार

मेरा पहला उपाय GENERAL था: किसी पात्र, जगह या वस्तु की स्वीकृत मानक तस्वीर। जितनी हो सके तटस्थ, जिसमें स्थायी विशेषताएँ साफ़ दिखें और किसी एक प्रसंग से जुड़े विवरण कम हों।

इसके बाद मैं “पिछला सुधार → अगला सुधार” की अंतहीन कड़ी से बचने की कोशिश करता हूँ। नई अवस्था GENERAL से बनाई जाती है, यह ध्यान रखते हुए कि अभी क्या होना चाहिए।

दृश्य सुधारते समय काम के तीन आधार हो सकते हैं:

पिछला संस्करण सहायक संदर्भ ही रहता है। उसे जमा हो चुकी गलतियों समेत चुपचाप नया मानक नहीं बन जाना चाहिए।

![GENERAL का आरेख: हर पिछला संस्करण विरासत में लेने के बजाय नई अवस्थाएँ एक स्वीकृत मानक तस्वीर पर लौटती हैं। पिछला फ़्रेम सहायक संदर्भ रहता है।](../assets/ai-film-crew-general.webp)

*यह तरीके की व्याख्या है, असली जनरेट की हुई तस्वीरों की तुलना नहीं। GENERAL एक स्थिर आधार देता है, लेकिन हर पिक्सेल अपरिवर्तित रहने की गारंटी नहीं देता।*

जनरेटर को गलतियाँ करने से रोकने का कोई जादुई तरीका नहीं है। लेकिन अब “सब भटकने लगे तो कहाँ लौटें?” का स्पष्ट जवाब है। सुधार का उद्देश्य भी बदल जाता है: उसी पात्र के साथ आवश्यक दृश्य बनाना, केवल पिछले असफल संस्करण को संपादित करते रहना नहीं।

Render Eye: दुनिया में क्या है और फ़्रेम में क्या दिखता है

अगली समस्या थोड़ी सूक्ष्म थी। मान लें पात्र का अच्छा विवरण है: जैकेट, दस्ताने, बेल्ट, बूट। लेकिन अभी शॉट कमर से ऊपर का है, एक हाथ पीठ के पीछे है और दरवाज़ा शरीर का कुछ हिस्सा ढक रहा है।

कौन-सी चीज़ें बनानी चाहिए? क्या छिपा रहना चाहिए? और छिपे हुए दस्ताने को उस दस्ताने से कैसे अलग करें जिसे जनरेटर भूल गया?

इसीलिए मैं Render Eye विकसित कर रहा हूँ। इसके दो काम हैं: जनरेशन से पहले आवश्यकताएँ तैयार करना और बाद में बनी तस्वीर की जाँच करना।

पहले यह कहानी की संदर्भ-पुस्तिका देखता है: पात्रों, जगहों, वस्तुओं और उनकी अवस्थाओं के सुरक्षित विवरण। फिर इन्हें दृश्य की योजना से मिलाता है—कैमरा कहाँ है, क्या हो रहा है और खिलाड़ी का ध्यान किस ओर जाना चाहिए।

हर महत्वपूर्ण विवरण के लिए निर्णय होता है: पूरा दिख रहा है, थोड़ा दिख रहा है, किसी दूसरी चीज़ से ढका है या फ़्रेम के बाहर है। हाथ पीठ के पीछे होने से दस्ताना दुनिया से गायब नहीं होता। बस उस कोण से उसे जाँचा नहीं जा सकता।

![जनरेशन से पहले और बाद में Render Eye: दुनिया के विवरण और दृश्य की योजना से दिखने तथा छिपने की आवश्यकताएँ तय होती हैं; तैयार तस्वीर उन्हीं आवश्यकताओं पर जाँची जाती है।](../assets/ai-film-crew-render-eye.webp)

इससे फ़्रेम के लिए ठोस निर्देश बनते हैं। केवल “गलियारे में नायक बनाओ” नहीं, बल्कि “यह नायक, इन कपड़ों में, इस नज़रिए से, इन दिखने वाले विवरणों के साथ”। दृश्य समझने के लिए ज़रूरी वस्तु गलती से तस्वीर के किनारे के बाहर नहीं छिपनी चाहिए।

जनरेशन के बाद Render Eye उन्हीं निर्देशों पर लौटता है। कपड़े, वस्तुएँ और पात्रों की जगह जाँचता है; शरीर की बनावट और दृश्य दोष अलग से जाँचता है। मिली गलती या अनिश्चितता तस्वीर को सुधार के लिए वापस भेजती है। गायब जैकेट स्वीकार करके पात्र का विवरण ऐसे नहीं बदल सकते जैसे जैकेट कभी थी ही नहीं।

मैं प्रणाली को काल्पनिक महाशक्तियाँ भी नहीं देना चाहता। तस्वीर देखने वाला AI है और उससे भी चीज़ें छूट सकती हैं। अनिवार्य जाँच प्रक्रिया को अनुशासित बनाती है; वह दृश्य मॉडल को अचूक निरीक्षक नहीं बनाती।

दृश्य निर्देशक: हमें यही फ़्रेम क्यों चाहिए?

कपड़े सही बन सकते हैं, चेहरा सुरक्षित रह सकता है, सभी पात्र सही जगह हो सकते हैं—फिर भी दृश्य फीका हो सकता है।

कहानी केवल उसमें मौजूद चीज़ें नहीं है। मायने यह रखता है कि खिलाड़ी उन्हें कब देखता है, कौन-सा संवाद पहले आता है, प्रतिक्रिया को कितना समय मिलता है और उस क्षण क्या सुनाई देता है।

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

एक काल्पनिक वाक्य लें: “दरवाज़े के पीछे कदमों की आवाज़ आई।”

हम बस दरवाज़ा और पाठ दिखा सकते हैं। या पहले संगीत धीमा कर सकते हैं, कमरे की हल्की परिवेश ध्वनि छोड़ सकते हैं, फ़्रेम के बाहर से कदम सुना सकते हैं, पात्र की प्रतिक्रिया पर ठहरकर फिर बातचीत आगे बढ़ा सकते हैं। अगर मूल पाठ ने अभी नहीं बताया कि कौन आया, तो कैमरे को मददगार बनकर उसे पहले ही नहीं दिखाना चाहिए।

रहस्य-कथा में वही गलियारा किसी सुराग पर ध्यान खींच सकता है; रोमांटिक दृश्य में मुलाकात के इंतज़ार पर। अंतर ठोस निर्णयों से आता है। निर्देशों में केवल “माहौल: डरावना” जोड़ देना पर्याप्त नहीं।

निर्देशक इन निर्णयों को दृश्य-योजना में सहेजता है। रचना के तथ्य व्याख्या से अलग रहते हैं: ठंडी रोशनी कलात्मक चुनाव हो सकती है, लेकिन नया पीछा करने वाला पात्र लाना घटनाएँ बदल देता है।

खेलों में एक और कठिनाई है: हर खिलाड़ी अपनी गति से पढ़ता है। संवाद से पहले का विराम और उसे पढ़ने तक इंतज़ार अलग चीज़ें हैं। चार सेकंड का खूबसूरत क्षण बनाकर उस व्यक्ति का पाठ बंद नहीं कर सकते जिसे छह सेकंड चाहिए।

मैं फीके दृश्य की जगह प्रभावों का यांत्रिक संग्रह भी नहीं चाहता। कभी स्थिर फ़्रेम, साधारण कट और बिना संगीत के रहना सही होता है। तकनीक का उद्देश्य होना चाहिए।

गुणवत्ता निदेशक: क्या वह बना जिसकी हमने कल्पना की थी?

“दृश्य निर्देशक” और “गुणवत्ता निदेशक” सुनने में करीब हैं, लेकिन मैं जिम्मेदारियाँ अलग रखता हूँ। दृश्य निर्देशक दृश्य रचता है। गुणवत्ता निदेशक परिणाम जाँचता है।

वह मूल पाठ और दृश्य-योजना की तुलना खेल में वास्तव में पहुँची चीज़ों से करता है। केवल अलग-अलग सुंदर तस्वीरें नहीं, पूरी तैयार घटनाशृंखला देखता है।

क्या इंटरफ़ेस ने कोई महत्वपूर्ण वस्तु ढक दी? संवाद बदलते ही सुन रहा पात्र गायब हो गया? पिछले कमरे का संगीत बज रहा है? फ़ोन पर रचना बिगड़ गई? क्या दृश्य वह भाव पहुँचा रहा है जिसके लिए रोशनी, विराम और ध्वनि चुने गए थे?

उपयोगी जाँच को यह भी पता होना चाहिए कि समस्या कहाँ लौटानी है। तस्वीर के अंदर दोष हो तो जनरेशन में। अच्छी पात्र-तस्वीर स्क्रीन पर गलत रखी हो तो संयोजन सुधारना है। ध्वनि जल्दी शुरू हो रही हो तो पृष्ठभूमि दोबारा बनाने की आवश्यकता नहीं।

![भूमिकाएँ: मूल पाठ दृश्य निर्देशक को दिशा देता है; Render Eye फ़्रेम तैयार करता और जाँचता है; दृश्य जोड़ा जाता है; खेल में गुणवत्ता जाँच के बाद प्रतिक्रिया संबंधित चरण को लौटती है।](../assets/ai-film-crew-roles.webp)

*आरेख में Director दृश्य निर्देशक है और QA गुणवत्ता निदेशक। आरेख सरल किया गया है: संयोजन और अंतिम जाँच में भी मूल पाठ संदर्भ रहता है। वापसी का तीर प्रभावित चरण सुधारने का मतलब है, ज़रूरी नहीं कि पूरा काम फिर शुरू हो।*

इंसान को भी जनरेटर की पहरेदारी नहीं करनी चाहिए

तस्वीरें जल्दी मिलने लगें, तब भी दूसरी कीमत रहती है: बार-बार ध्यान बदलना। चैट खोलो, फ़्रेम देखो, टिप्पणी दो, अपने काम पर लौटो। कुछ मिनट बाद फिर वही।

इसीलिए मैं GENERAL को समूहों में तैयार करने पर भी काम कर रहा हूँ। स्वतंत्र मानक तस्वीरें पहले बनाकर एक साथ व्यक्ति को दिखाई जा सकती हैं। साथ देखने से असंगतियाँ दिखती हैं और साझा या अलग-अलग सुझाव दिए जा सकते हैं।

फिर केवल आवश्यक फ़्रेम सुधारे जाते हैं। एक असफल कोशिश के कारण स्वीकृत तस्वीरें नहीं खोनी चाहिए। निर्भरताएँ फिर भी महत्वपूर्ण हैं: अगली तस्वीर किसी अस्वीकृत संदर्भ पर निर्भर हो तो पहले उस संदर्भ का निर्णय चाहिए।

यह जनरेटर को कई गुना तेज़ करने का वादा नहीं है। मेरे लिए ज़्यादा महत्वपूर्ण है कि व्यक्ति को अगली समीक्षा के लिए अपना काम कितनी बार छोड़ना पड़ता है, उसे कम करना।

एक बहुत बड़े निर्देश की जगह छोटी फ़िल्म टीम

आखिरकार मैं सचमुच AI की छोटी फ़िल्म टीम बनाने की कोशिश कर रहा हूँ। उसमें वर्णित दुनिया, मानक तस्वीरें, निर्देशन, फ़्रेम निर्माण, संयोजन और गुणवत्ता नियंत्रण है।

ये एजेंट की कार्यप्रक्रिया के भीतर जिम्मेदारियाँ हैं। इसका अपने-आप यह अर्थ नहीं कि हर भूमिका के लिए अलग AI पहले से लगातार चल रहा है। ज़रूरी यह है कि निर्णय सहेजे जाएँ, आवश्यकताएँ बाद में बदल न दी जाएँ और हर सुधार स्पष्ट करे कि क्या फिर जाँचना है।

नए चरणों के पीछे अब उपकरण और सहेजी गई योजनाएँ हैं। अगला कदम असली लंबे अध्यायों पर परीक्षण है: पूरी कहानी में पात्र, माहौल और रचनाकार का ध्यान बनाए रखने में ये कितना मदद करते हैं?

मेरा अंतिम लक्ष्य एक बड़ी किताब लाना, अध्याय चुनना और उसे क्रमशः खेलने योग्य क्वेस्ट में बदलना है। बीच में रुकने, परिणाम देखने, महत्वपूर्ण बातें सुधारने और वहीं से आगे बढ़ने की आज़ादी के साथ।

कहानियाँ जनरेट करना “अच्छा प्रॉम्प्ट लिखने” से कहीं कठिन निकला। लेकिन अब मैं उस कठिनाई को ठोस कामों में बाँट सकता हूँ। कहीं स्थिर संदर्भ चाहिए, कहीं ध्यान से पढ़ना, कहीं संवाद से पहले चुप्पी। और कहीं अब भी ऐसा इंसान चाहिए जो दृश्य देखकर कहे: “नहीं, यहाँ मुझे तुम्हारी बात पर भरोसा नहीं होता।”

डेव ब्लॉग पर वापस जाएँ