LLMs केवल पाठ निर्माणका लागि मात्र होइन। पाठ विवरणबाट छविहरू निर्माण गर्न पनि सम्भव छ। छविहरूको प्रयोग विभिन्न क्षेत्रहरूमा उपयोगी हुन सक्छ, जस्तै MedTech, वास्तुकला, पर्यटन, खेल विकास र अन्य। यस अध्यायमा, हामी दुई लोकप्रिय छवि निर्माण मोडेलहरू, DALL-E र Midjourney, को बारेमा चर्चा गर्नेछौं।
यस पाठमा, हामी निम्न विषयहरू समेट्नेछौं:
- छवि निर्माण र यसको उपयोगिता।
- DALL-E र Midjourney, के हुन् र कसरी काम गर्छन्।
- छवि निर्माण एप्लिकेसन कसरी बनाउने।
यस पाठ पूरा गरेपछि, तपाईं सक्षम हुनुहुनेछ:
- छवि निर्माण एप्लिकेसन बनाउने।
- मेटा प्रम्प्टहरू प्रयोग गरेर आफ्नो एप्लिकेसनको सीमा निर्धारण गर्ने।
- DALL-E र Midjourney सँग काम गर्ने।
छवि निर्माण एप्लिकेसनहरू Generative AI को क्षमता अन्वेषण गर्ने उत्कृष्ट तरिका हुन्। तिनीहरू निम्न कार्यहरूको लागि प्रयोग गर्न सकिन्छ:
-
छवि सम्पादन र संश्लेषण। तपाईं विभिन्न प्रयोजनहरूको लागि छविहरू निर्माण गर्न सक्नुहुन्छ, जस्तै छवि सम्पादन र छवि संश्लेषण।
-
विभिन्न उद्योगहरूमा लागू। तिनीहरू MedTech, पर्यटन, खेल विकास र अन्य जस्ता विभिन्न उद्योगहरूको लागि छविहरू निर्माण गर्न प्रयोग गर्न सकिन्छ।
यस पाठको भागको रूपमा, हामी हाम्रो स्टार्टअप, Edu4All, सँग काम जारी राख्नेछौं। विद्यार्थीहरूले आफ्नो मूल्याङ्कनका लागि छविहरू निर्माण गर्नेछन्। कुन प्रकारका छविहरू निर्माण गर्ने भन्ने कुरा विद्यार्थीहरूको निर्णयमा निर्भर हुनेछ। उनीहरूले आफ्नै परीकथाको लागि चित्रणहरू बनाउन सक्दछन्, नयाँ पात्र सिर्जना गर्न सक्दछन्, वा आफ्ना विचार र अवधारणाहरूलाई दृश्यात्मक बनाउन मद्दत गर्न सक्दछन्।
यहाँ Edu4All का विद्यार्थीहरूले कक्षामा स्मारकहरूमा काम गरिरहेको अवस्थामा निर्माण गर्न सक्ने उदाहरण छ:
प्रम्प्ट प्रयोग गर्दै:
"कुकुर Eiffel Tower को छेउमा बिहानको घामको प्रकाशमा"
DALL-E र Midjourney दुई लोकप्रिय छवि निर्माण मोडेलहरू हुन्। तिनीहरूले प्रम्प्टहरू प्रयोग गरेर छविहरू निर्माण गर्न अनुमति दिन्छन्।
DALL-E बाट सुरु गरौं, जुन एक Generative AI मोडेल हो जसले पाठ विवरणहरूबाट छविहरू निर्माण गर्छ।
-
CLIP, एउटा मोडेल हो जसले छविहरू र पाठबाट संख्यात्मक प्रतिनिधित्वहरू (embeddings) निर्माण गर्छ।
-
Diffused attention, एउटा मोडेल हो जसले embeddings बाट छविहरू निर्माण गर्छ। DALL-E छविहरू र पाठको डेटासेटमा प्रशिक्षित छ र पाठ विवरणहरूबाट छविहरू निर्माण गर्न प्रयोग गर्न सकिन्छ। उदाहरणका लागि, DALL-E ले टोपी लगाएको बिरालो वा मोहक कपाल भएको कुकुरको छवि निर्माण गर्न सक्छ।
Midjourney DALL-E जस्तै काम गर्छ। यो पाठ प्रम्प्टहरू प्रयोग गरेर छविहरू निर्माण गर्छ। Midjourney ले "टोपी लगाएको बिरालो" वा "मोहक कपाल भएको कुकुर" जस्ता प्रम्प्टहरू प्रयोग गरेर छविहरू निर्माण गर्न सक्दछ।
छवि स्रोत Wikipedia, Midjourney द्वारा निर्माण गरिएको छवि
पहिले, DALL-E। DALL-E एक Generative AI मोडेल हो जुन transformer architecture मा आधारित छ र autoregressive transformer प्रयोग गर्छ।
autoregressive transformer ले मोडेलले पाठ विवरणहरूबाट छविहरू कसरी निर्माण गर्छ भन्ने परिभाषित गर्छ। यो एक पटकमा एक पिक्सेल निर्माण गर्छ, र त्यसपछि निर्माण गरिएको पिक्सेलहरू प्रयोग गरेर अर्को पिक्सेल निर्माण गर्छ। यो प्रक्रिया neural network का विभिन्न तहहरूबाट पार हुन्छ, जबसम्म छवि पूरा हुँदैन।
यस प्रक्रियासँग, DALL-E ले निर्माण गरिएको छविमा विशेषताहरू, वस्तुहरू, विशेषताहरू र अन्य कुराहरू नियन्त्रण गर्छ। तर, DALL-E 2 र 3 ले निर्माण गरिएको छविमा अझ बढी नियन्त्रण प्रदान गर्छ।
छवि निर्माण एप्लिकेसन बनाउन के चाहिन्छ? तपाईंलाई निम्न पुस्तकालयहरू चाहिन्छ:
- python-dotenv, तपाईंलाई आफ्नो गोप्य जानकारी .env फाइलमा राख्न सिफारिस गरिन्छ।
- openai, यो पुस्तकालय OpenAI API सँग अन्तरक्रिया गर्न प्रयोग गरिन्छ।
- pillow, Python मा छविहरूसँग काम गर्न।
- requests, HTTP अनुरोधहरू गर्न मद्दत गर्न।
यदि पहिले गरिएको छैन भने, Microsoft Learn पृष्ठमा निर्देशनहरू पालना गर्नुहोस् Azure OpenAI स्रोत र मोडेल सिर्जना गर्न। DALL-E 3 लाई मोडेलको रूपमा चयन गर्नुहोस्।
-
.env नामक फाइल सिर्जना गर्नुहोस् निम्न सामग्रीसहित:
AZURE_OPENAI_ENDPOINT=<your endpoint> AZURE_OPENAI_API_KEY=<your key> AZURE_OPENAI_DEPLOYMENT="dall-e-3"Azure OpenAI Foundry Portal मा आफ्नो स्रोतको "Deployments" खण्डमा यो जानकारी पत्ता लगाउनुहोस्।
-
माथिका पुस्तकालयहरू requirements.txt नामक फाइलमा संकलन गर्नुहोस्:
python-dotenv openai pillow requests -
त्यसपछि, भर्चुअल वातावरण सिर्जना गर्नुहोस् र पुस्तकालयहरू स्थापना गर्नुहोस्:
python3 -m venv venv source venv/bin/activate pip install -r requirements.txtWindows को लागि, भर्चुअल वातावरण सिर्जना र सक्रिय गर्न निम्न आदेशहरू प्रयोग गर्नुहोस्:
python3 -m venv venv venv\Scripts\activate.bat
-
app.py नामक फाइलमा निम्न कोड थप्नुहोस्:
import openai import os import requests from PIL import Image import dotenv from openai import OpenAI, AzureOpenAI # import dotenv dotenv.load_dotenv() # configure Azure OpenAI service client client = AzureOpenAI( azure_endpoint = os.environ["AZURE_OPENAI_ENDPOINT"], api_key=os.environ['AZURE_OPENAI_API_KEY'], api_version = "2024-02-01" ) try: # Create an image by using the image generation API generation_response = client.images.generate( prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', size='1024x1024', n=1, model=os.environ['AZURE_OPENAI_DEPLOYMENT'] ) # Set the directory for the stored image image_dir = os.path.join(os.curdir, 'images') # If the directory doesn't exist, create it if not os.path.isdir(image_dir): os.mkdir(image_dir) # Initialize the image path (note the filetype should be png) image_path = os.path.join(image_dir, 'generated-image.png') # Retrieve the generated image image_url = generation_response.data[0].url # extract image URL from response generated_image = requests.get(image_url).content # download the image with open(image_path, "wb") as image_file: image_file.write(generated_image) # Display the image in the default image viewer image = Image.open(image_path) image.show() # catch exceptions except openai.InvalidRequestError as err: print(err)
यस कोडलाई व्याख्या गरौं:
-
पहिलो, हामीलाई चाहिने पुस्तकालयहरू आयात गर्छौं, जस्तै OpenAI पुस्तकालय, dotenv पुस्तकालय, requests पुस्तकालय, र Pillow पुस्तकालय।
import openai import os import requests from PIL import Image import dotenv
-
त्यसपछि, हामी .env फाइलबाट वातावरणीय चरहरू लोड गर्छौं।
# import dotenv dotenv.load_dotenv()
-
त्यसपछि, हामी Azure OpenAI सेवा क्लाइन्टलाई कन्फिगर गर्छौं।
# Get endpoint and key from environment variables client = AzureOpenAI( azure_endpoint = os.environ["AZURE_OPENAI_ENDPOINT"], api_key=os.environ['AZURE_OPENAI_API_KEY'], api_version = "2024-02-01" )
-
त्यसपछि, हामी छवि निर्माण गर्छौं:
# Create an image by using the image generation API generation_response = client.images.generate( prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', size='1024x1024', n=1, model=os.environ['AZURE_OPENAI_DEPLOYMENT'] )
माथिको कोडले निर्माण गरिएको छविको URL समावेश गर्ने JSON वस्तुमा प्रतिक्रिया दिन्छ। हामी यो URL प्रयोग गरेर छवि डाउनलोड गर्न र फाइलमा बचत गर्न सक्छौं।
-
अन्तमा, हामी छवि खोल्छौं र मानक छवि दर्शक प्रयोग गरेर प्रदर्शन गर्छौं:
image = Image.open(image_path) image.show()
छवि निर्माण गर्ने कोडलाई थप विवरणमा हेरौं:
generation_response = client.images.generate(
prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils',
size='1024x1024', n=1,
model=os.environ['AZURE_OPENAI_DEPLOYMENT']
)- prompt, छवि निर्माण गर्न प्रयोग गरिएको पाठ प्रम्प्ट हो। यस अवस्थामा, हामी "घोडामा खरायो, ललिपप समातेको, कुहिरो मैदानमा जहाँ डाफोडिलहरू उम्रन्छन्" प्रम्प्ट प्रयोग गर्दैछौं।
- size, निर्माण गरिएको छविको आकार हो। यस अवस्थामा, हामी 1024x1024 पिक्सेलको छवि निर्माण गर्दैछौं।
- n, निर्माण गरिएका छविहरूको संख्या हो। यस अवस्थामा, हामी दुई छविहरू निर्माण गर्दैछौं।
- temperature, एक प्यारामिटर हो जसले Generative AI मोडेलको उत्पादनको अनियमितता नियन्त्रण गर्छ। तापक्रम 0 देखि 1 सम्मको मान हो जहाँ 0 ले उत्पादन निर्धारणात्मक छ र 1 ले उत्पादन अनियमित छ भन्ने जनाउँछ। डिफल्ट मान 0.7 हो।
छविहरूसँग गर्न सकिने थप कुराहरू हामी अर्को खण्डमा समेट्नेछौं।
तपाईंले अहिलेसम्म देख्नुभएको छ कि हामीले Python मा केही लाइनहरू प्रयोग गरेर छवि निर्माण गर्न सक्षम भएका छौं। तर, छविहरूसँग गर्न सकिने थप कुराहरू छन्।
तपाईं निम्न कार्यहरू पनि गर्न सक्नुहुन्छ:
- सम्पादन गर्नुहोस्। एउटा विद्यमान छवि, मास्क र प्रम्प्ट प्रदान गरेर, तपाईं छविमा परिवर्तन गर्न सक्नुहुन्छ। उदाहरणका लागि, तपाईं छविको कुनै भागमा केही थप्न सक्नुहुन्छ। हाम्रो खरायो छविको कल्पना गर्नुहोस्, तपाईं खरायोमा टोपी थप्न सक्नुहुन्छ। तपाईंले यो कसरी गर्ने भनेको छवि, मास्क (परिवर्तनको क्षेत्र पहिचान गर्ने) र पाठ प्रम्प्ट प्रदान गरेर हो।
नोट: यो DALL-E 3 मा समर्थित छैन।
यहाँ GPT Image प्रयोग गरेर एउटा उदाहरण छ:
response = client.images.edit(
model="gpt-image-1",
image=open("sunlit_lounge.png", "rb"),
mask=open("mask.png", "rb"),
prompt="A sunlit indoor lounge area with a pool containing a flamingo"
)
image_url = response.data[0].urlआधार छविमा केवल पूलसहितको लाउन्ज हुनेछ तर अन्तिम छविमा फ्लेमिंगो हुनेछ:
-
भिन्नताहरू सिर्जना गर्नुहोस्। विचार यो हो कि तपाईं एउटा विद्यमान छवि लिन्छन् र सो छविको विभिन्न संस्करणहरू सिर्जना गर्न अनुरोध गर्नुहोस्। भिन्नता सिर्जना गर्न, तपाईंले छवि र पाठ प्रम्प्ट प्रदान गर्नुहोस् र यस्तो कोड प्रयोग गर्नुहोस्:
response = openai.Image.create_variation( image=open("bunny-lollipop.png", "rb"), n=1, size="1024x1024" ) image_url = response['data'][0]['url']
नोट, यो केवल OpenAI मा समर्थित छ।
तापक्रम एक प्यारामिटर हो जसले Generative AI मोडेलको उत्पादनको अनियमितता नियन्त्रण गर्छ। तापक्रम 0 देखि 1 सम्मको मान हो जहाँ 0 ले उत्पादन निर्धारणात्मक छ र 1 ले उत्पादन अनियमित छ भन्ने जनाउँछ। डिफल्ट मान 0.7 हो।
तापक्रम कसरी काम गर्छ भन्ने उदाहरण हेरौं, यो प्रम्प्ट दुई पटक चलाएर:
प्रम्प्ट : "घोडामा खरायो, ललिपप समातेको, कुहिरो मैदानमा जहाँ डाफोडिलहरू उम्रन्छन्"
अब त्यही प्रम्प्ट फेरि चलाउँदा हेर्नुहोस् कि हामीले दुई पटक एउटै छवि प्राप्त गर्दैनौं:
जस्तो देखिन्छ, छविहरू समान छन्, तर उस्तै छैनन्। अब तापक्रम मानलाई 0.1 मा परिवर्तन गरौं र के हुन्छ हेर्नुहोस्:
generation_response = client.images.create(
prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here
size='1024x1024',
n=2
)अब प्रतिक्रिया अझ निर्धारणात्मक बनाउन प्रयास गरौं। हामीले निर्माण गरेका दुई छविहरूबाट देख्न सक्थ्यौं कि पहिलो छविमा खरायो छ र दोस्रो छविमा घोडा छ, त्यसैले छविहरू धेरै फरक छन्।
त्यसैले, हाम्रो कोड परिवर्तन गरौं र तापक्रमलाई 0 मा सेट गरौं, यस्तो:
generation_response = client.images.create(
prompt='Bunny on horse, holding a lollipop, on a foggy meadow where it grows daffodils', # Enter your prompt text here
size='1024x1024',
n=2,
temperature=0
)अब जब तपाईं यो कोड चलाउनुहुन्छ, तपाईंले यी दुई छविहरू प्राप्त गर्नुहुनेछ:
यहाँ तपाईं स्पष्ट रूपमा देख्न सक्नुहुन्छ कि छविहरू एक अर्कासँग धेरै मिल्दोजुल्दो छन्।
हाम्रो डेमोको साथ, हामी पहिले नै हाम्रो ग्राहकहरूको लागि छविहरू निर्माण गर्न सक्छौं। तर, हामीले हाम्रो एप्लिकेसनको लागि केही सीमा सिर्जना गर्न आवश्यक छ।
उदाहरणका लागि, हामी कामको लागि सुरक्षित नभएका छविहरू वा बच्चाहरूको लागि उपयुक्त नभएका छविहरू निर्माण गर्न चाहँदैनौं।
हामी यो मेटा प्रम्प्टहरू प्रयोग गरेर गर्न सक्छौं। मेटा प्रम्प्टहरू पाठ प्रम्प्टहरू हुन् जसले Generative AI मोडेलको उत्पादनलाई नियन्त्रण गर्न प्रयोग गरिन्छ। उदाहरणका लागि, हामी मेटा प्रम्प्टहरू प्रयोग गरेर उत्पादनलाई नियन्त्रण गर्न सक्छौं, र सुनिश्चित गर्न सक्छौं कि निर्माण गरिएका छविहरू कामको लागि सुरक्षित छन् वा बच्चाहरूको लागि उपयुक्त छन्।
अब, मेटा प्रम्प्टहरू कसरी काम गर्छन्?
मेटा प्रम्प्टहरू पाठ प्रम्प्टहरू हुन् जसले Generative AI मोडेलको उत्पादनलाई नियन्त्रण गर्न प्रयोग गरिन्छ। तिनीहरू पाठ प्रम्प्टको अगाडि राखिन्छन्, र मोडेलको उत्पादनलाई नियन्त्रण गर्न प्रयोग गरिन्छ। मेटा प्रम्प्ट इनपुट र प्रम्प्ट इनपुटलाई एकल पाठ प्रम्प्टमा समेटेर एप्लिकेसनहरूमा समावेश गरिन्छ।
मेटा प्रम्प्टको एउटा उदाहरण निम्न हुनेछ:
You are an assistant designer that creates images for children.
The image needs to be safe for work and appropriate for children.
The image needs to be in color.
The image needs to be in landscape orientation.
The image needs to be in a 16:9 aspect ratio.
Do not consider any input from the following that is not safe for work or appropriate for children.
(Input)
अब, हाम्रा डेमोमा मेटा प्रम्प्टहरू कसरी प्रयोग गर्न सकिन्छ हेर्नुहोस्।
disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult"
meta_prompt =f"""You are an assistant designer that creates images for children.
The image needs to be safe for work and appropriate for children.
The image needs to be in color.
The image needs to be in landscape orientation.
The image needs to be in a 16:9 aspect ratio.
Do not consider any input from the following that is not safe for work or appropriate for children.
{disallow_list}
"""
prompt = f"{meta_prompt}
Create an image of a bunny on a horse, holding a lollipop"
# TODO add request to generate imageमाथिको प्रम्प्टबाट, तपाईं देख्न सक्नुहुन्छ कि निर्माण गरिएका सबै छविहरूले मेटा प्रम्प्टलाई विचार गर्छन्।
हामीले यस पाठको सुरुमा Edu4All प्रस्तुत गरेका थियौं। अब समय आएको छ कि विद्यार्थीहरूलाई आफ्नो मूल्याङ्कनका लागि छविहरू निर्माण गर्न सक्षम बनाउने।
विद्यार्थीहरूले आफ्नो मूल्याङ्कनका लागि स्मारकहरू समावेश गर्ने छविहरू निर्माण गर्नेछन्। कुन स्मारकहरू समावेश गर्ने भन्ने कुरा विद्यार्थीहरूको निर्णयमा निर्भर हुनेछ। विद्यार्थीहरूलाई यस कार्यमा आफ्नो रचनात्मकता प्रयोग गर्न अनुरोध गरिएको छ ताकि तिनीहरूले यी स्मारकहरूलाई विभिन्न सन्दर्भहरूमा राख्न सकून्।
यहाँ एउटा सम्भावित समाधान:
import openai
import os
import requests
from PIL import Image
import dotenv
from openai import AzureOpenAI
# import dotenv
dotenv.load_dotenv()
# Get endpoint and key from environment variables
client = AzureOpenAI(
azure_endpoint = os.environ["AZURE_OPENAI_ENDPOINT"],
api_key=os.environ['AZURE_OPENAI_API_KEY'],
api_version = "2024-02-01"
)
disallow_list = "swords, violence, blood, gore, nudity, sexual content, adult content, adult themes, adult language, adult humor, adult jokes, adult situations, adult"
meta_prompt = f"""You are an assistant designer that creates images for children.
The image needs to be safe for work and appropriate for children.
The image needs to be in color.
The image needs to be in landscape orientation.
The image needs to be in a 16:9 aspect ratio.
Do not consider any input from the following that is not safe for work or appropriate for children.
{disallow_list}
"""
prompt = f"""{meta_prompt}
Generate monument of the Arc of Triumph in Paris, France, in the evening light with a small child holding a Teddy looks on.
""""
try:
# Create an image by using the image generation API
generation_response = client.images.generate(
prompt=prompt, # Enter your prompt text here
size='1024x1024',
n=1,
)
# Set the directory for the stored image
image_dir = os.path.join(os.curdir, 'images')
# If the directory doesn't exist, create it
if not os.path.isdir(image_dir):
os.mkdir(image_dir)
# Initialize the image path (note the filetype should be png)
image_path = os.path.join(image_dir, 'generated-image.png')
# Retrieve the generated image
image_url = generation_response.data[0].url # extract image URL from response
generated_image = requests.get(image_url).content # download the image
with open(image_path, "wb") as image_file:
image_file.write(generated_image)
# Display the image in the default image viewer
image = Image.open(image_path)
image.show()
# catch exceptions
except openai.BadRequestError as err:
print(err)यो पाठ पूरा गरेपछि, हाम्रो Generative AI Learning collection हेर्नुहोस् र आफ्नो Generative AI ज्ञानलाई अझ उचाइमा पुर्याउनुहोस्!
पाठ १० मा जानुहोस् जहाँ हामी कम-कोडको साथ AI एप्लिकेसन निर्माण गर्ने बारेमा हेर्नेछौं।
अस्वीकरण:
यो दस्तावेज़ AI अनुवाद सेवा Co-op Translator प्रयोग गरेर अनुवाद गरिएको छ। हामी शुद्धताको लागि प्रयास गर्छौं, तर कृपया ध्यान दिनुहोस् कि स्वचालित अनुवादमा त्रुटिहरू वा अशुद्धताहरू हुन सक्छ। यसको मूल भाषा मा रहेको दस्तावेज़लाई आधिकारिक स्रोत मानिनुपर्छ। महत्वपूर्ण जानकारीको लागि, व्यावसायिक मानव अनुवाद सिफारिस गरिन्छ। यस अनुवादको प्रयोगबाट उत्पन्न हुने कुनै पनि गलतफहमी वा गलत व्याख्याको लागि हामी जिम्मेवार हुने छैनौं।








