पायथन का उपयोग करके छवियां उत्पन्न करने के लिए OpenAI के DALL·E 2 मॉडल का उपयोग करें।
यदि आपने कभी ChatGPT का उपयोग किया है, तो आपने इसका अंतर्ज्ञान देखा है। ओपनएआई के एपीआई के साथ, कोड जनरेशन, टेक्स्ट कंप्लीशन, टेक्स्ट तुलना, मॉडल ट्रेनिंग और इमेज जेनरेशन सभी डेवलपर्स के लिए ऐप में तलाशने और एकीकृत करने के लिए बैग में हैं।
इस ट्यूटोरियल में, आप सीखेंगे कि प्राकृतिक भाषा संकेतों का उपयोग करके छवियों को उत्पन्न करने, संपादित करने और बदलने के लिए OpenAI के API का उपयोग कैसे करें।
पायथन का उपयोग करके OpenAI के साथ आरंभ करना
इस ट्यूटोरियल को शुरू करने से पहले आपको कुछ चीजें सेट करनी होंगी। सबसे पहले, सुनिश्चित करें कि आपने अपने कंप्यूटर पर पायथन का नवीनतम संस्करण स्थापित किया है। यदि आप उबंटू जैसे लिनक्स वितरण का उपयोग करते हैं, तो आप भी देखना चाह सकते हैं उबंटू पर पायथन कैसे स्थापित करें.
अपने प्रोजेक्ट के लिए एक नया फ़ोल्डर बनाएं और अपनी कमांड लाइन को अपनी प्रोजेक्ट डायरेक्टरी में खोलें।
अगला OpenAI पैकेज इंस्टॉलेशन है। आपको इंस्टॉल करने की आवश्यकता है तकिया छवि संपादन एंडपॉइंट का उपयोग करते समय छवियों को आरजीबीए में कनवर्ट करने के लिए। आप भी इंस्टॉल करना चाह सकते हैं
python-dotenv; आप इसका उपयोग गुप्त कुंजियों को छुपाने के लिए करेंगे।हम एक बनाने की सलाह देते हैं समर्पित पायथन आभासी वातावरण निर्भरताओं को अलग करने के लिए।
इस परियोजना में प्रयुक्त कोड एक में उपलब्ध है गिटहब रिपॉजिटरी और आपके लिए एमआईटी लाइसेंस के तहत उपयोग करने के लिए स्वतंत्र है।
स्थापित करने के लिए python-dotenv, तकिया, और openai संकुल, टर्मिनल में निम्न कमांड चलाएँ:
पाइप ओपनई पायथन-डॉटेनव तकिया स्थापित करें
अब आगे बढ़ें ओपनएआई और अपनी API कुंजी प्राप्त करने के लिए अपने डैशबोर्ड में लॉग इन करें:
- लॉग इन करने के बाद, ऊपरी दाएँ भाग में अपने प्रोफ़ाइल आइकन पर क्लिक करें।
- के लिए जाओ एपीआई कुंजी देखें. यदि आपकी एपीआई कुंजी दिखाई नहीं दे रही है, तो क्लिक करें नई गुप्त कुंजी बनाएँ एक नया उत्पन्न करने के लिए।
- उत्पन्न गुप्त कुंजी को कॉपी करें और इसे अपने कंप्यूटर पर कहीं सुरक्षित स्थान पर पेस्ट करें। आप इसे सुरक्षा के लिए अपने प्रोजेक्ट रूट डायरेक्टरी में एक पर्यावरण चर फ़ाइल में पेस्ट करना चाह सकते हैं।
पायथन में OpenAI API के साथ इमेज कैसे जेनरेट और एडिट करें
OpenAI API की इमेज जेनरेशन में नई इमेज जेनरेट करने, इमेज वेरिएशन बनाने और उन्हें एडिट करने के लिए एंडपॉइंट्स हैं।
निम्नलिखित अनुभागों में, आप प्राकृतिक भाषा संकेतों का उपयोग करके छवियों को उत्पन्न करने, संपादित करने, ट्वीक करने और डाउनलोड करने के लिए इन समापन बिंदुओं का पता लगाएंगे।
OpenAI API का उपयोग करके छवियां बनाना
इमेज जनरेशन एंडपॉइंट तीन कीवर्ड तर्कों को स्वीकार करता है। इसमे शामिल है तत्पर, एन, और आकार.
तत्पर कीवर्ड पाठ की एक स्ट्रिंग है जो उस छवि का वर्णन करती है जिसे आप उत्पन्न करना चाहते हैं, जबकि एन एपीआई कॉल के दौरान उत्पन्न होने वाली छवियों की संख्या है। आकार छवि का आकार है, और लेखन के रूप में, यह आधिकारिक के अनुसार, केवल 256x256, 512x512, और 1024x1024 पिक्सेल स्वीकार करता है ओपनएआई छवि निर्माण दस्तावेज।
निम्नलिखित कोड प्राकृतिक भाषा संकेतों का उपयोग करके छवियां उत्पन्न करता है और उनके URL (छवि पते) को आउटपुट करता है:
आयात openai
आयात ओएस
आयात अनुरोध
से dotenv आयात load_dotenv
से जनहित याचिका आयात छवि
load_dotenv ()कक्षाइमेज जेनरेटर:
डीईएफ़__इस में__(खुद) -> स्ट्र:
self.image_url: str
openai.api_key = os.getenv ("OPENAI_API_KEY")
खुद। एपीआईकी = openai.api_key
स्वनाम = कोई नहींडीईएफ़उत्पन्न छवि(स्वयं, शीघ्र, छवि गणना, छवि आकार):
कोशिश:
खुद। एपीआई कुंजी
प्रतिक्रिया = openai. इमेज.क्रिएट (
शीघ्र = शीघ्र,
एन = इमेजकाउंट,
आकार = छवि आकार,
)
self.image_url = प्रतिक्रिया ['आंकड़े']
स्व.इमेज_यूआरएल = [इमेज["यूआरएल"] के लिए छवि में स्व.छवि_यूआरएल]
प्रिंट (self.image_url)
वापस करना स्व.छवि_यूआरएल
के अलावा openai.error. OpenAIError जैसा इ:
प्रिंट (e.http_status)
प्रिंट (ई.त्रुटि)डीईएफ़छवि डाउनलोड करें(स्वयं, नाम)-> कोई नहीं:
कोशिश:
स्व.नाम = नाम
के लिए यूआरएल में स्व.छवि_यूआरएल:
छवि = अनुरोध प्राप्त करें (यूआरएल)
के लिए नाम में स्व.नाम:
साथ खुला("{} .png"प्रारूप (नाम), "पश्चिम बंगाल") जैसा एफ:
f.लिखना (छवि। सामग्री)
के अलावा:
प्रिंट ("एक त्रुटि हुई")
वापस करना स्व.नाम# क्लास को इंस्टेंट करें
इमेजजेन = इमेजजेनरेटर ()# छवियां उत्पन्न करें:
इमेजजेन.जेनरेटइमेज(
शीघ्र = "विशालकाय शेर, भालू, वानर और बाघ पानी के झरने पर खड़े हैं",
इमेज काउंट = 2,
छवि का आकार = '1024x1024'
)
# चित्र डाउनलोड करें:
imageGen.downloadImage (नाम = [
"जानवरों",
"पशु 2"
])
उपरोक्त कोड में एक शामिल है इमेज जेनरेटर वर्ग के साथ छवि यूआरएल और एपीआई कुंजी गुण। उत्पन्न छवि विधि छवि निर्माण समापन बिंदु की आवश्यकताओं को पूरा करती है। यह उत्पन्न करता है एन प्राकृतिक भाषा संकेत का उपयोग करने वाले URL, पर निर्भर करता है छवि गणना कीमत।
हालाँकि, स्व.छवि_यूआरएल सूची समझ में for लूप का उपयोग करके JSON प्रतिक्रिया से उत्पन्न छवि URL को एक सूची में निकालता है।
आउटपुट इस तरह दिखता है:
अंततः छवि डाउनलोड करें विधि उत्पन्न पतों का अनुरोध करके प्रत्येक छवि को डाउनलोड करती है। यह विधि स्वीकार करती है एन आप प्रत्येक छवि को कितने नाम देना चाहते हैं।
OpenAI API का उपयोग करके छवियों का संपादन
संपादन समापन बिंदु आपको मास्क टेम्प्लेट के आधार पर मौजूदा छवि को संपादित करने की अनुमति देता है। मुखौटा एक एनोटेट, पारदर्शी क्षेत्र वाला आरजीबीए प्रारूप है और उस छवि के समान आकार होना चाहिए जिसे आप संपादित करना चाहते हैं।
जब आप एक मुखौटा प्रदान करते हैं, तो संपादन समापन बिंदु एक नया निर्माण करने के लिए मौजूदा छवि में नए संकेत के साथ अपने नकाबपोश क्षेत्र को बदल देता है। उपरोक्त पिछली कक्षा में निम्नलिखित विधियाँ जोड़ें:
कक्षाइमेज जेनरेटर:
डीईएफ़__इस में__(खुद, ...):
...डीईएफ़कन्वर्टइमेज(स्वयं, मास्कनाम):
छवि = छवि। खुला ("{} .png".format (मास्कनाम))
rgba_image = image.convert ('आरजीबीए')
rgba_image.save ("{} .png".format (मास्कनाम))वापस करना rgba_image
डीईएफ़संपादित छवि(स्वयं, इमेजनाम, मास्कनाम, इमेजकाउंट, इमेजसाइज, प्रॉम्प्ट) -> स्ट्र:
Self.convertImage (मास्कनाम)
प्रतिक्रिया = openai. इमेज.क्रिएट_एडिट (
छवि = खुला ("{} .png"प्रारूप (छवि नाम), "आरबी"),
मुखौटा = खुला ("{} .png"प्रारूप (मास्कनाम), "आरबी"),
शीघ्र = शीघ्र,
एन = इमेजकाउंट,
आकार = छवि आकार,
)
self.image_url = प्रतिक्रिया ['आंकड़े']
स्व.इमेज_यूआरएल = [इमेज["यूआरएल"] के लिए छवि में स्व.छवि_यूआरएल]प्रिंट (self.image_url)
वापस करना स्व.छवि_यूआरएल# मौजूदा छवि संपादित करें:
इमेजजेन.एडिटइमेज(
छविनाम = "जानवरों",
मास्कनाम = "नकाब",
इमेज काउंट = 1,
छवि का आकार = "1024x1024",
शीघ्र = "एक चील नदी के किनारे खड़े होकर एक बड़े पहाड़ से पानी पीती है"
)
# संपादित छवि डाउनलोड करें:
imageGen.downloadImage (नाम = [
"नए जानवर",
])
कन्वर्टइमेज विधि मास्क छवि को आरजीबीए प्रारूप में परिवर्तित करती है। आप इसका उपयोग करके इसे प्राप्त कर सकते हैं बदलना पायथन के तकिए पैकेज से विधि (PIL के रूप में आयातित)।
एक बार रूपांतरित होने के बाद, यह नए मास्क को मौजूदा मास्क के ओवरराइड के रूप में सहेजता है। इस प्रकार, छवि रूपांतरण संपादन पद्धति का पहला कार्य है (संपादित छवि) निष्पादित करता है।
छवि किसी मौजूदा फ़ाइल से लक्ष्य छवि को पढ़ता है, जबकि नकाब परिवर्तित मुखौटा छवि को पढ़ता है, जिसमें एक पारदर्शी क्षेत्र होना चाहिए।
आप मास्क का उपयोग करके पारदर्शी क्षेत्र को चिह्नित कर सकते हैं फोटो संपादन सॉफ्टवेयर जिम्प या फोटोशॉप की तरह।
उदाहरण के लिए, ऊपर दिए गए कोड में प्रॉम्प्ट का उपयोग करके हम जिस छवि को संपादित करना चाहते हैं वह है:
अब, मान लें कि आप नदी के किनारे खड़े मृग को चील से बदलना चाहते हैं, जैसा कि संकेत में कहा गया है।
यहाँ मुखौटा कैसा दिखता है:
चूंकि उपरोक्त कोड से प्रॉम्प्ट में कीवर्ड कहता है, "नदी के किनारे पर एक ईगल खड़ा है," रिक्त स्थान को एक ईगल द्वारा भर दिया जाता है, जो उस मृग की जगह लेता है जो पहले वहां था।
यहाँ इस मामले में नई छवि है:
आप अन्य फ़ोटो का उपयोग करके छवि संपादन समापन बिंदु के साथ खेलने का प्रयास कर सकते हैं।
OpenAI API का उपयोग करके पायथन में छवि विविधताएँ उत्पन्न करना
भिन्नता समापन बिंदु मौजूदा छवि से वैकल्पिक छवियां उत्पन्न करता है। इमेज वेरिएशन मेथड जोड़कर इमेज जेनरेटर क्लास को और विस्तृत करें जैसा कि नीचे दिखाया गया है:
कक्षाइमेज जेनरेटर:
डीईएफ़__इस में__(खुद) -> स्ट्र:
...
डीईएफ़imageभिन्नताएं(स्वयं, इमेजनाम, वेरिएशनकाउंट, इमेजसाइज):
प्रतिक्रिया = openai. इमेज.क्रिएट_वेरिएशन (
छवि = खुला ("{} .png".format (ImageName), "आरबी"),
n = विविधता गणना,
आकार = छवि आकार
)
self.image_url = प्रतिक्रिया ['आंकड़े']
स्व.इमेज_यूआरएल = [इमेज["यूआरएल"] के लिए छवि में स्व.छवि_यूआरएल]
प्रिंट (self.image_url)
वापस करना स्व.छवि_यूआरएल
# क्लास को इंस्टेंट करें
इमेजजेन = इमेजजेनरेटर ()# मौजूदा छवि के लिए विविधताएं उत्पन्न करें
imageGen.imageVariations (
इमेजनाम = "नए_पशु",
विविधता गणना = 2,
छवि का आकार = "1024x1024"
)
# विविधताओं को डाउनलोड करें
imageGen.downloadImage (नाम = [
"भिन्नता 1",
"भिन्नता 2",
]
)
उपरोक्त कोड एक छवि के रूपांतर उत्पन्न करता है।
अपने लाभ के लिए OpenAI का प्रयोग करें
जबकि कुछ लोगों को डर है कि एआई उनकी नौकरियां चुरा सकता है, यह एक स्वर्ग हो सकता है, आखिरकार - यदि आप इसे नियंत्रित करना और इसका उपयोग करना सीखते हैं। यह OpenAI छवि निर्माण ट्यूटोरियल वास्तविक दुनिया में AI के कई उपयोग मामलों में से एक है। OpenAI API आसान पूर्व-प्रशिक्षित मॉडल प्रदान करते हैं जिन्हें आप आसानी से अपने ऐप में एकीकृत कर सकते हैं। तो आप चुनौती स्वीकार कर सकते हैं और इस ट्यूटोरियल से कुछ उपयोगी बना सकते हैं।
हालाँकि छवि निर्माण API अभी भी लेखन के रूप में बीटा में है, यह पहले से ही आपको काल्पनिक कलाकृतियाँ बनाने देता है। उम्मीद है कि इसे और भी अपडेट मिलते हैं जिससे कि यह अपस्केलिंग की अनुमति देता है और अलग-अलग छवि आकार को स्वीकार करता है।