इमेज जनरेट करने की गाइड

इमेज जनरेटर टास्क

MediaPipe इमेज जनरेटर टास्क की मदद से, टेक्स्ट प्रॉम्प्ट के आधार पर इमेज जनरेट की जा सकती हैं. इस टास्क में, टेक्स्ट-टू-इमेज मॉडल का इस्तेमाल करके, डिफ़्यूज़न तकनीकों का इस्तेमाल करके इमेज जनरेट की जाती हैं.

यह टास्क, इनपुट के तौर पर टेक्स्ट प्रॉम्प्ट के साथ-साथ वैकल्पिक शर्त वाली इमेज भी स्वीकार करता है. मॉडल, इस इमेज को बेहतर बना सकता है और इमेज जनरेट करने के लिए रेफ़रंस के तौर पर इस्तेमाल कर सकता है. टेक्स्ट को इमेज में बदलने की सुविधा के बारे में ज़्यादा जानने के लिए, टेक्स्ट को इमेज में बदलने की सुविधा के लिए, डिवाइस पर मौजूद डिफ़्यूज़न प्लग इन लेख पढ़ें.

Image Generator, ट्रेनिंग या फिर से ट्रेनिंग के दौरान मॉडल को दिए गए खास कॉन्सेप्ट के आधार पर भी इमेज जनरेट कर सकता है. ज़्यादा जानकारी के लिए, LoRA की मदद से पसंद के मुताबिक बनाना लेख पढ़ें.

शुरू करें

अपने टारगेट प्लैटफ़ॉर्म के लिए, लागू करने से जुड़ी इनमें से किसी एक गाइड का पालन करके, इस टास्क का इस्तेमाल शुरू करें. प्लैटफ़ॉर्म के हिसाब से बनी ये गाइड, इस टास्क को लागू करने के बुनियादी तरीके के बारे में बताती हैं. इनमें डिफ़ॉल्ट मॉडल और सुझाए गए कॉन्फ़िगरेशन के विकल्पों का इस्तेमाल करने वाले कोड के उदाहरण भी दिए गए हैं:

टास्क की जानकारी

इस सेक्शन में, इस टास्क की सुविधाओं, इनपुट, आउटपुट, और कॉन्फ़िगरेशन के विकल्पों के बारे में बताया गया है.

सुविधाएं

इमेज जनरेटर का इस्तेमाल करके, ये काम किए जा सकते हैं:

  1. टेक्स्ट से इमेज जनरेट करना - टेक्स्ट प्रॉम्प्ट की मदद से इमेज जनरेट करना.
  2. शर्तों वाली इमेज की मदद से इमेज जनरेट करना - टेक्स्ट प्रॉम्प्ट और रेफ़रंस इमेज की मदद से इमेज जनरेट करें. इमेज जनरेटर, ControlNet की तरह ही कंडीशन इमेज का इस्तेमाल करता है.
  3. LoRA वेट की मदद से इमेज जनरेट करना - पसंद के मुताबिक मॉडल वेट का इस्तेमाल करके, टेक्स्ट प्रॉम्प्ट की मदद से खास लोगों, ऑब्जेक्ट, और स्टाइल की इमेज जनरेट करें.
टास्क के इनपुट टास्क के आउटपुट
इमेज जनरेटर इन इनपुट को स्वीकार करता है:
  • टेक्स्ट प्रॉम्प्ट
  • बीज
  • जनरेटिव आइटरेशन की संख्या
  • ज़रूरी नहीं: स्थिति की इमेज
इमेज जनरेटर ये नतीजे दिखाता है:
  • इनपुट के आधार पर जनरेट की गई इमेज.
  • ज़रूरी नहीं: जनरेट की गई इमेज के बार-बार लिए गए स्नैपशॉट.

कॉन्फ़िगरेशन के विकल्प

इस टास्क के लिए, कॉन्फ़िगरेशन के ये विकल्प उपलब्ध हैं:

विकल्प का नाम ब्यौरा वैल्यू की रेंज
imageGeneratorModelDirectory इमेज जनरेटर मॉडल डायरेक्ट्री, जिसमें मॉडल के वेट सेव किए जाते हैं. PATH
loraWeightsFilePath LoRA वेट फ़ाइल का पाथ सेट करता है. यह वैकल्पिक है और सिर्फ़ तब लागू होता है, जब मॉडल को LoRA के साथ कस्टमाइज़ किया गया हो. PATH
errorListener गड़बड़ी सुनने वाले को सेट करता है. हालांकि, ऐसा करना ज़रूरी नहीं है. N/A

यह टास्क, प्लग इन मॉडल के साथ भी काम करता है. इससे उपयोगकर्ता, टास्क के इनपुट में शर्त वाली इमेज शामिल कर सकते हैं. फ़ाउंडेशन मॉडल, इन इमेज को बेहतर बना सकता है और जनरेट करने के लिए रेफ़रंस के तौर पर इस्तेमाल कर सकता है. इन इमेज में, चेहरे के लैंडमार्क, किनारों की आउटलाइन, और गहराई का अनुमान शामिल हो सकता है. मॉडल, इमेज जनरेट करने के लिए, इन इमेज का इस्तेमाल अतिरिक्त संदर्भ और जानकारी के तौर पर करता है.

फ़ाउंडेशन मॉडल में प्लग इन मॉडल जोड़ते समय, प्लग इन के विकल्प भी कॉन्फ़िगर करें. फ़ेस लैंडमार्क प्लग इन, faceConditionOptions का इस्तेमाल करता है. Canny edge प्लग इन, edgeConditionOptions का इस्तेमाल करता है. वहीं, डेप्थ प्लग इन, depthConditionOptions का इस्तेमाल करता है.

कैनी एज के विकल्प

edgeConditionOptions में ये विकल्प कॉन्फ़िगर करें.

विकल्प का नाम ब्यौरा वैल्यू की रेंज डिफ़ॉल्ट मान
threshold1 हिस्टैरेसीस प्रोसेस के लिए पहला थ्रेशोल्ड. Float 100
threshold2 हिस्टैरेसीस प्रोसेस के लिए दूसरा थ्रेशोल्ड. Float 200
apertureSize सोबल ऑपरेटर के लिए एपर्चर का साइज़. आम तौर पर, यह संख्या 3 से 7 के बीच होती है. Integer 3
l2Gradient डिफ़ॉल्ट L1 नॉर्म के बजाय, इमेज ग्रेडिएंट मैग्नीट्यूड का हिसाब लगाने के लिए, L2 नॉर्म का इस्तेमाल किया जाता है या नहीं. BOOLEAN False
EdgePluginModelBaseOptions BaseOptions ऑब्जेक्ट, जो प्लग इन मॉडल के लिए पाथ सेट करता है. BaseOptions ऑब्जेक्ट N/A

कॉन्फ़िगरेशन के इन विकल्पों के काम करने के तरीके के बारे में ज़्यादा जानने के लिए, Canny edge detector देखें.

चेहरे के लैंडमार्क के विकल्प

faceConditionOptions में ये विकल्प कॉन्फ़िगर करें.

विकल्प का नाम ब्यौरा वैल्यू की रेंज डिफ़ॉल्ट मान
minFaceDetectionConfidence चेहरे का पता लगाने के लिए, कम से कम इतना कॉन्फ़िडेंस स्कोर होना चाहिए. Float [0.0,1.0] 0.5
minFacePresenceConfidence चेहरे की मौजूदगी का कम से कम कॉन्फ़िडेंस स्कोर और चेहरे के लैंडमार्क का पता लगाने के स्कोर. Float [0.0,1.0] 0.5
faceModelBaseOptions BaseOptions ऑब्जेक्ट, शर्त वाली इमेज बनाने वाले मॉडल के लिए पाथ सेट करता है. BaseOptions ऑब्जेक्ट N/A
FacePluginModelBaseOptions BaseOptions ऑब्जेक्ट, जो प्लग इन मॉडल के लिए पाथ सेट करता है. BaseOptions ऑब्जेक्ट N/A

कॉन्फ़िगरेशन के इन विकल्पों के काम करने के तरीके के बारे में ज़्यादा जानने के लिए, फ़ेस लैंडमार्कर टास्क देखें.

डेप्थ के विकल्प

depthConditionOptions में ये विकल्प कॉन्फ़िगर करें.

विकल्प का नाम ब्यौरा वैल्यू की रेंज डिफ़ॉल्ट मान
depthModelBaseOptions BaseOptions ऑब्जेक्ट, शर्त वाली इमेज बनाने वाले मॉडल के लिए पाथ सेट करता है. BaseOptions ऑब्जेक्ट N/A
depthPluginModelBaseOptions BaseOptions ऑब्जेक्ट, जो प्लग इन मॉडल के लिए पाथ सेट करता है. BaseOptions ऑब्जेक्ट N/A

मॉडल

इमेज जनरेटर के लिए फ़ाउंडेशन मॉडल की ज़रूरत होती है. यह टेक्स्ट-टू-इमेज एआई मॉडल होता है, जो नई इमेज जनरेट करने के लिए डिफ़्यूज़न तकनीकों का इस्तेमाल करता है. इस सेक्शन में दिए गए फ़ाउंडेशन मॉडल, हल्के मॉडल होते हैं. इन्हें बेहतर स्मार्टफ़ोन पर चलाने के लिए ऑप्टिमाइज़ किया जाता है.

प्लग इन मॉडल ज़रूरी नहीं हैं और ये फ़ाउंडेशन मॉडल के साथ काम करते हैं. इनकी मदद से, उपयोगकर्ता ज़्यादा सटीक इमेज जनरेट करने के लिए, टेक्स्ट प्रॉम्प्ट के साथ एक और शर्त वाली इमेज दे सकते हैं. LoRA वज़न का इस्तेमाल करके फ़ाउंडेशन मॉडल को पसंद के मुताबिक बनाना एक विकल्प है. इससे फ़ाउंडेशन मॉडल को किसी खास कॉन्सेप्ट के बारे में जानकारी मिलती है. जैसे, कोई ऑब्जेक्ट, व्यक्ति या स्टाइल. साथ ही, उन्हें जनरेट की गई इमेज में इंजेक्ट किया जाता है.

फ़ाउंडेशन मॉडल

फ़ाउंडेशन मॉडल, टेक्स्ट-टू-इमेज डिफ़्यूज़न मॉडल होते हैं. ये टेक्स्ट प्रॉम्प्ट से इमेज जनरेट करते हैं. इमेज जनरेटर के लिए ज़रूरी है कि फ़ाउंडेशन मॉडल, runwayml/stable-diffusion-v1-5 EMA-only मॉडल फ़ॉर्मैट से मैच करता हो. यह फ़ॉर्मैट, इस मॉडल के आधार पर तय होता है:

इमेज जनरेटर के साथ ये फ़ाउंडेशन मॉडल भी काम करते हैं:

फ़ाउंडेशन मॉडल डाउनलोड करने के बाद, image_generator_converter का इस्तेमाल करके, मॉडल को डिवाइस पर इस्तेमाल किए जाने वाले सही फ़ॉर्मैट में बदलें. ऐसा, इमेज जनरेटर के लिए किया जाता है.

ज़रूरी डिपेंडेंसी इंस्टॉल करें:

$ pip install torch typing_extensions numpy Pillow requests pytorch_lightning absl-py

convert.py स्क्रिप्ट को चलाएं:

$ python3 convert.py --ckpt_path <ckpt_path> --output_path <output_path>

प्लग इन मॉडल

इस सेक्शन में मौजूद प्लगिन मॉडल, Google ने डेवलप किए हैं. इन्हें फ़ाउंडेशन मॉडल के साथ इस्तेमाल करना चाहिए. प्लग इन मॉडल की मदद से, इमेज जनरेटर को इनपुट के तौर पर टेक्स्ट प्रॉम्प्ट के साथ-साथ शर्त वाली इमेज भी दी जा सकती है. इससे, जनरेट की गई इमेज के स्ट्रक्चर को कंट्रोल किया जा सकता है. प्लग इन मॉडल, ControlNet जैसी सुविधाएं देते हैं. साथ ही, डिवाइस पर डिफ़्यूज़न के लिए, खास तौर पर एक नया आर्किटेक्चर भी देते हैं.

प्लग इन मॉडल, बेस विकल्पों में बताए जाने चाहिए. इसके लिए, आपको अतिरिक्त मॉडल फ़ाइलें डाउनलोड करनी पड़ सकती हैं. हर प्लग इन में, स्थिति की इमेज के लिए अलग-अलग ज़रूरी शर्तें होती हैं. इमेज जनरेटर की मदद से इन्हें जनरेट किया जा सकता है.

Canny Edge प्लग इन

जनरेट की गई दो इमेज का उदाहरण, जो दी गई इमेज का इस्तेमाल करती हैं. इसमें ईंटों की सटीक आउटलाइन और प्रॉम्प्ट शामिल है

Canny Edge प्लग इन, ऐसी इमेज स्वीकार करता है जिसमें जनरेट की गई इमेज के किनारों की जानकारी दी गई हो. फ़ाउंडेशन मॉडल, शर्त वाली इमेज के एज का इस्तेमाल करता है और टेक्स्ट प्रॉम्प्ट के आधार पर नई इमेज जनरेट करता है. इमेज जनरेटर में, शर्तों के हिसाब से इमेज बनाने की सुविधाएं पहले से मौजूद होती हैं. इसके लिए, आपको सिर्फ़ प्लग इन मॉडल डाउनलोड करना होता है.

Canny Edge प्लग इन डाउनलोड करें

Canny Edge प्लग इन में कॉन्फ़िगरेशन के ये विकल्प होते हैं:

विकल्प का नाम ब्यौरा वैल्यू की रेंज डिफ़ॉल्ट मान
threshold1 हिस्टैरेसीस प्रोसेस के लिए पहला थ्रेशोल्ड. Float 100
threshold2 हिस्टैरेसीस प्रोसेस के लिए दूसरा थ्रेशोल्ड. Float 200
apertureSize सोबल ऑपरेटर के लिए एपर्चर का साइज़. आम तौर पर, यह संख्या 3 से 7 के बीच होती है. Integer 3
l2Gradient डिफ़ॉल्ट L1 नॉर्म के बजाय, इमेज ग्रेडिएंट मैग्नीट्यूड का हिसाब लगाने के लिए, L2 नॉर्म का इस्तेमाल किया जाता है या नहीं. BOOLEAN False
EdgePluginModelBaseOptions BaseOptions ऑब्जेक्ट, जो प्लग इन मॉडल के लिए पाथ सेट करता है. BaseOptions ऑब्जेक्ट N/A

कॉन्फ़िगरेशन के इन विकल्पों के काम करने के तरीके के बारे में ज़्यादा जानने के लिए, Canny edge detector देखें.

फ़ेस लैंडमार्क प्लगिन

जनरेट की गई दो इमेज का उदाहरण, जो स्केच किए गए चेहरे की दी गई इमेज और दो अलग-अलग प्रॉम्प्ट का इस्तेमाल करती हैं. इससे पता चलता है कि एक ही इमेज का इस्तेमाल करके, बहुत अलग-अलग तरह की इमेज जनरेट की जा सकती हैं

फ़ेस लैंडमार्क प्लग इन, MediaPipe फ़ेस लैंडमार्कर के आउटपुट को शर्त वाली इमेज के तौर पर स्वीकार करता है. फ़ेसलैंडमार्कर, किसी एक चेहरे की पूरी जानकारी देने वाली फ़ेस मेश उपलब्ध कराता है. इससे चेहरे की विशेषताओं की मौजूदगी और जगह की जानकारी मिलती है. फ़ाउंडेशन मॉडल, समस्या वाली इमेज से मिली चेहरे की मैपिंग का इस्तेमाल करता है. साथ ही, मेश पर एक नया चेहरा जनरेट करता है.

चेहरे के लैंडमार्क का प्लग इन डाउनलोड करना

स्थिति की इमेज बनाने के लिए, फ़ेस लैंडमार्क प्लग इन को फ़ेस लैंडमार्कर मॉडल बंडल की भी ज़रूरत होती है. यह मॉडल बंडल, वही बंडल है जिसका इस्तेमाल फ़ेस लैंडमार्कर टास्क करता है.

फ़ेस लैंडमार्क मॉडल का बंडल डाउनलोड करना

फ़ेस लैंडमार्क प्लग इन में कॉन्फ़िगरेशन के ये विकल्प शामिल हैं:

विकल्प का नाम ब्यौरा वैल्यू की रेंज डिफ़ॉल्ट मान
minFaceDetectionConfidence चेहरे का पता लगाने के लिए, कम से कम इतना कॉन्फ़िडेंस स्कोर होना चाहिए. Float [0.0,1.0] 0.5
minFacePresenceConfidence चेहरे की मौजूदगी का कम से कम कॉन्फ़िडेंस स्कोर और चेहरे के लैंडमार्क का पता लगाने के स्कोर. Float [0.0,1.0] 0.5
faceModelBaseOptions BaseOptions ऑब्जेक्ट, शर्त वाली इमेज बनाने वाले मॉडल के लिए पाथ सेट करता है. BaseOptions ऑब्जेक्ट N/A
FacePluginModelBaseOptions BaseOptions ऑब्जेक्ट, जो प्लग इन मॉडल के लिए पाथ सेट करता है. BaseOptions ऑब्जेक्ट N/A

कॉन्फ़िगरेशन के इन विकल्पों के काम करने के तरीके के बारे में ज़्यादा जानने के लिए, फ़ेस लैंडमार्कर टास्क देखें.

डेप्थ प्लगिन

जनरेट की गई दो इमेज का उदाहरण. इन इमेज में, कार के सामान्य आकार की इमेज का इस्तेमाल किया गया है. इससे यह पता चलता है कि डेप्थ प्लगिन, ऐसी इमेज बना सकता है जो किसी फ़्लैट इमेज में डेप्थ जोड़ती हैं

डेप्थ प्लगिन, ऐसी शर्त वाली इमेज स्वीकार करता है जिसमें किसी ऑब्जेक्ट की एक आंख से देखी गई गहराई की जानकारी होती है. फ़ाउंडेशन मॉडल, जनरेट किए जाने वाले ऑब्जेक्ट के साइज़ और गहराई का अनुमान लगाने के लिए, शर्त वाली इमेज का इस्तेमाल करता है. साथ ही, टेक्स्ट प्रॉम्प्ट के आधार पर नई इमेज जनरेट करता है.

डेप्थ प्लग इन डाउनलोड करें

डेप्थ प्लग इन को शर्त वाली इमेज बनाने के लिए, डेप्थ का अनुमान लगाने वाले मॉडल की भी ज़रूरत होती है.

डेप्थ एस्टिमेशन मॉडल डाउनलोड करना

डेप्थ प्लग इन में कॉन्फ़िगरेशन के ये विकल्प शामिल हैं:

विकल्प का नाम ब्यौरा वैल्यू की रेंज डिफ़ॉल्ट मान
depthModelBaseOptions BaseOptions ऑब्जेक्ट, शर्त वाली इमेज बनाने वाले मॉडल के लिए पाथ सेट करता है. BaseOptions ऑब्जेक्ट N/A
depthPluginModelBaseOptions BaseOptions ऑब्जेक्ट, जो प्लग इन मॉडल के लिए पाथ सेट करता है. BaseOptions ऑब्जेक्ट N/A

LoRA की मदद से कस्टमाइज़ेशन

LoRA की मदद से मॉडल को पसंद के मुताबिक बनाने पर, इमेज जनरेटर को खास कॉन्सेप्ट के आधार पर इमेज जनरेट करने की सुविधा मिलती है. इन कॉन्सेप्ट की पहचान, ट्रेनिंग के दौरान यूनीक टोकन से की जाती है. ट्रेनिंग के बाद, नए LoRA वेट की मदद से, मॉडल नए कॉन्सेप्ट की इमेज जनरेट कर सकता है. ऐसा तब होता है, जब टेक्स्ट प्रॉम्प्ट में टोकन दिया गया हो.

LoRA वेट बनाने के लिए, किसी खास ऑब्जेक्ट, व्यक्ति या स्टाइल की इमेज पर फ़ाउंडेशन मॉडल को ट्रेनिंग देनी पड़ती है. इससे मॉडल, नए कॉन्सेप्ट को पहचान पाता है और इमेज जनरेट करते समय उसे लागू कर पाता है. अगर आपको चुनिंदा लोगों और चेहरों की इमेज जनरेट करने के लिए LoRa वेट बनाने हैं, तो इस तरीके का इस्तेमाल सिर्फ़ अपने चेहरे या उन लोगों के चेहरों पर करें जिन्होंने आपको ऐसा करने की अनुमति दी है.

यहां DreamBooth डेटासेट से टीपोट की इमेज पर ट्रेन किए गए, पसंद के मुताबिक बनाए गए मॉडल का आउटपुट दिया गया है. इसके लिए, टोकन "monadikos teapot" का इस्तेमाल किया गया है:

दीवार पर लगे दर्पण के बगल में टेबल पर रखे हुए टीपॉट की जनरेट की गई ऐसी इमेज जो बिलकुल असली जैसी लगे

प्रॉम्प्ट: मिरर के बगल में एक मोनाडिकोस टीपॉट

पसंद के मुताबिक बनाए गए मॉडल को प्रॉम्प्ट में टोकन मिला और उसने एक टीपोट इंजेक्ट किया, जिसे उसने LoRA वेट से दिखाना सीखा. साथ ही, उसे प्रॉम्प्ट में दिए गए अनुरोध के मुताबिक, इमेज में एक दर्पण के बगल में रखा.

Vertex AI के साथ LoRA का इस्तेमाल करना

ज़्यादा जानकारी के लिए, पसंद के मुताबिक बनाने के लिए बनी गाइड देखें. इसमें, फ़ाउंडेशन मॉडल में LoRA वेट लागू करके, मॉडल को पसंद के मुताबिक बनाने के लिए, Vertex AI पर मौजूद मॉडल गार्डन का इस्तेमाल किया जाता है.