MediaPipe इमेज जनरेटर टास्क की मदद से, टेक्स्ट प्रॉम्प्ट के आधार पर इमेज जनरेट की जा सकती हैं. इस टास्क में, टेक्स्ट-टू-इमेज मॉडल का इस्तेमाल करके, डिफ़्यूज़न तकनीकों का इस्तेमाल करके इमेज जनरेट की जाती हैं.
यह टास्क, इनपुट के तौर पर टेक्स्ट प्रॉम्प्ट के साथ-साथ वैकल्पिक शर्त वाली इमेज भी स्वीकार करता है. मॉडल, इस इमेज को बेहतर बना सकता है और इमेज जनरेट करने के लिए रेफ़रंस के तौर पर इस्तेमाल कर सकता है. टेक्स्ट को इमेज में बदलने की सुविधा के बारे में ज़्यादा जानने के लिए, टेक्स्ट को इमेज में बदलने की सुविधा के लिए, डिवाइस पर मौजूद डिफ़्यूज़न प्लग इन लेख पढ़ें.
Image Generator, ट्रेनिंग या फिर से ट्रेनिंग के दौरान मॉडल को दिए गए खास कॉन्सेप्ट के आधार पर भी इमेज जनरेट कर सकता है. ज़्यादा जानकारी के लिए, LoRA की मदद से पसंद के मुताबिक बनाना लेख पढ़ें.
शुरू करें
अपने टारगेट प्लैटफ़ॉर्म के लिए, लागू करने से जुड़ी इनमें से किसी एक गाइड का पालन करके, इस टास्क का इस्तेमाल शुरू करें. प्लैटफ़ॉर्म के हिसाब से बनी ये गाइड, इस टास्क को लागू करने के बुनियादी तरीके के बारे में बताती हैं. इनमें डिफ़ॉल्ट मॉडल और सुझाए गए कॉन्फ़िगरेशन के विकल्पों का इस्तेमाल करने वाले कोड के उदाहरण भी दिए गए हैं:
- Android - कोड का उदाहरण - गाइड
- LoRA की मदद से पसंद के मुताबिक बनाएं - कोड का उदाहरण - Colab
टास्क की जानकारी
इस सेक्शन में, इस टास्क की सुविधाओं, इनपुट, आउटपुट, और कॉन्फ़िगरेशन के विकल्पों के बारे में बताया गया है.
सुविधाएं
इमेज जनरेटर का इस्तेमाल करके, ये काम किए जा सकते हैं:
- टेक्स्ट से इमेज जनरेट करना - टेक्स्ट प्रॉम्प्ट की मदद से इमेज जनरेट करना.
- शर्तों वाली इमेज की मदद से इमेज जनरेट करना - टेक्स्ट प्रॉम्प्ट और रेफ़रंस इमेज की मदद से इमेज जनरेट करें. इमेज जनरेटर, ControlNet की तरह ही कंडीशन इमेज का इस्तेमाल करता है.
- 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 पर मौजूद मॉडल गार्डन का इस्तेमाल किया जाता है.