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

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

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

इमेज जनरेटर, ट्रेनिंग या फिर से ट्रेनिंग के दौरान मॉडल को दिए गए खास कॉन्सेप्ट पर आधारित इमेज भी जनरेट कर सकता है. ज़्यादा जानकारी के लिए, 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 Sobel ऑपरेटर के लिए एपर्चर का साइज़. सामान्य रेंज 3-7 के बीच होती है. Integer 3
l2Gradient डिफ़ॉल्ट L1 मानक के बजाय, इमेज ग्रेडिएंट के परिमाण का हिसाब लगाने के लिए, L2 मानक का इस्तेमाल किया गया है या नहीं. BOOLEAN False
EdgePluginModelBaseOptions BaseOptions ऑब्जेक्ट, जो प्लगिन मॉडल के लिए पाथ सेट करता है. BaseOptions ऑब्जेक्ट N/A

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

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

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

मॉडल

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

प्लग इन मॉडल वैकल्पिक होते हैं और बुनियादी मॉडल के साथ बेहतर होते हैं. इससे उपयोगकर्ता ज़्यादा सटीक इमेज जनरेट करने के लिए, टेक्स्ट प्रॉम्प्ट के साथ दूसरी शर्त की इमेज उपलब्ध करा सकते हैं. 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 Sobel ऑपरेटर के लिए एपर्चर का साइज़. सामान्य रेंज 3-7 के बीच होती है. Integer 3
l2Gradient डिफ़ॉल्ट L1 मानक के बजाय, इमेज ग्रेडिएंट के परिमाण का हिसाब लगाने के लिए, L2 मानक का इस्तेमाल किया गया है या नहीं. BOOLEAN False
EdgePluginModelBaseOptions BaseOptions ऑब्जेक्ट, जो प्लगिन मॉडल के लिए पाथ सेट करता है. BaseOptions ऑब्जेक्ट N/A

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

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

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

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

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

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

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

विकल्प का नाम ब्यौरा वैल्यू रेंज डिफ़ॉल्ट मान
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 टीपॉट" टोकन का इस्तेमाल किया गया है:

सूचना: शीशे के बगल में रखी मोनाडिकोस चाय की केतली

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

Vertex AI के साथ LoRA

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