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

इमेज जनरेट करने से जुड़ा टास्क

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

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

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

शुरू करें

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

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

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

सुविधाएं

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

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

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

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

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

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

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

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

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

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

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

चेहरे की पहचान करने वाले विकल्प

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 वज़न का इस्तेमाल करके फ़ाउंडेशन मॉडल को पसंद के मुताबिक बनाने का विकल्प उपलब्ध है. इससे फ़ाउंडेशन मॉडल को किसी खास कॉन्सेप्ट के बारे में सिखाया जा सकता है. जैसे, कोई ऑब्जेक्ट, व्यक्ति या स्टाइल. साथ ही, जनरेट की गई इमेज में उन्हें शामिल किया जा सकता है.

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

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

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

फ़ाउंडेशन मॉडल डाउनलोड करने के बाद, image_generator_converter का इस्तेमाल करके, मॉडल को Image Generator के लिए सही ऑन-डिवाइस फ़ॉर्मैट में बदलें.

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

$ 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

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

Face Landmark प्लगिन

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

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

चेहरे की पहचान करने वाला प्लगिन डाउनलोड करें

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

चेहरे की पहचान करने वाले मॉडल बंडल को डाउनलोड करें

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

विकल्प का नाम ब्यौरा वैल्यू की सीमा डिफ़ॉल्ट मान
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

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

डेप्थ प्लगिन

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

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

Depth प्लगिन डाउनलोड करें

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

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

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

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

LoRA की मदद से पसंद के मुताबिक बनाना

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

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

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

जनरेट की गई ऐसी फ़ोटो जो बिलकुल असली लगे. इसमें एक चायदानी को टेबल पर रखा गया है. टेबल के बगल में, दीवार पर एक शीशा लगा है

प्रॉम्प्ट: एक आईने के बगल में रखी हुई मोनडिकोस चाय की केतली

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

Vertex AI के साथ LoRA

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