Izmantojiet OpenAI DALL·E 2 modeli, lai ģenerētu attēlus, izmantojot Python.
Ja kādreiz esat izmantojis ChatGPT, tad esat bijis liecinieks tā intuīcijai. Izmantojot OpenAI API, koda ģenerēšana, teksta pabeigšana, tekstu salīdzināšana, modeļu apmācība un attēlu ģenerēšana ir viss, ko izstrādātāji var izpētīt un integrēt lietotnēs.
Šajā apmācībā jūs uzzināsit, kā izmantot OpenAI API ar Python, lai ģenerētu, rediģētu un mainītu attēlus, izmantojot dabiskās valodas uzvednes.
Darba sākšana ar OpenAI, izmantojot Python
Pirms šīs apmācības sākšanas jums ir jāiestata dažas lietas. Vispirms pārliecinieties, vai datorā esat instalējis jaunāko Python versiju. Ja izmantojat Linux izplatīšanu, piemēram, Ubuntu, iespējams, vēlēsities arī redzēt kā instalēt Python Ubuntu.
Izveidojiet jaunu mapi savam projektam un atveriet komandrindu sava projekta direktorijā.
Nākamā ir OpenAI pakotnes instalēšana. Jums ir jāinstalē spilvens lai pārveidotu attēlus par RGBA, vienlaikus izmantojot attēlu rediģēšanas galapunktu. Iespējams, vēlēsities arī instalēt
python-dotenv; jūs to izmantosit, lai maskētu slepenās atslēgas.Mēs iesakām izveidot a īpaša Python virtuālā vide lai izolētu atkarības.
Šajā projektā izmantotais kods ir pieejams a GitHub repozitorijs un to varat izmantot bez maksas saskaņā ar MIT licenci.
Lai instalētu python-dotenv, spilvens, un openai pakotnes, terminālī palaidiet šādu komandu:
pip instalēt openai python-dotenv spilvenu
Tagad dodieties uz OpenAI un piesakieties savā informācijas panelī, lai paņemtu API atslēgu:
- Kad esat pieteicies, augšējā labajā sadaļā noklikšķiniet uz sava profila ikonas.
- Iet uz Skatīt API atslēgas. Ja jūsu API atslēga nav redzama, noklikšķiniet uz Izveidojiet jaunu slepeno atslēgu lai ģenerētu jaunu.
- Nokopējiet ģenerēto slepeno atslēgu un ielīmējiet to drošā vietā savā datorā. Drošības nolūkos, iespējams, vēlēsities to ielīmēt vides mainīgā failā sava projekta saknes direktorijā.
Kā ģenerēt un rediģēt attēlus, izmantojot OpenAI API programmā Python
OpenAI API attēlu ģenerēšanai ir galapunkti jaunu attēlu ģenerēšanai, attēlu variāciju izveidei un to rediģēšanai.
Nākamajās sadaļās jūs izpētīsit šos galapunktus, lai ģenerētu, rediģētu, pielāgotu un lejupielādētu attēlus, izmantojot dabiskās valodas uzvednes.
Attēlu ģenerēšana, izmantojot OpenAI API
Attēla ģenerēšanas galapunkts pieņem trīs atslēgvārdu argumentus. Tie ietver pamudināt, n, un Izmērs.
The pamudināt atslēgvārds ir teksta virkne, kas apraksta attēlu, kuru vēlaties ģenerēt n ir attēlu skaits, kas jāģenerē API izsaukuma laikā. The Izmērs ir attēla izmērs, un rakstīšanas brīdī tas pieņem tikai 256x256, 512x512 un 1024x1024 pikseļus, norāda amatpersona. OpenAI attēlu ģenerēšanas dokumentācija.
Šis kods ģenerē attēlus, izmantojot dabiskās valodas uzvednes, un izvada to URL (attēlu adreses):
imports openai
imports os
imports pieprasījumus
no dotenv imports load_dotenv
no PIL imports Attēls
load_dotenv()klasēImageGenerator:
def__tajā__(pats) -> str:
self.image_url: str
openai.api_key = os.getenv("OPENAI_API_KEY")
sevi. APIKey = openai.api_key
self.name = Navdefģenerēt attēlu(pašs, Prompt, ImageCount, ImageSize):
mēģināt:
sevi. APIKey
atbilde = openai. Image.create(
uzvedne = Prompt,
n = attēlu skaits,
izmērs = attēla izmērs,
)
self.image_url = atbilde['dati']
self.image_url = [attēls["url"] priekš attēlu iekšā self.image_url]
drukāt (self.image_url)
atgriezties self.image_url
izņemot openai.error. OpenAIERror kā e:
drukāt (e.http_status)
drukāt (e.error)deflejupielādētAttēls(es, vārdi)-> Nav:
mēģināt:
self.name = vārdi
priekš url iekšā self.image_url:
attēls = requests.get (url)
priekš nosaukums iekšā self.name:
ar atvērt ("{}.png".formāts (nosaukums), "wb") kā f:
f.write (image.content)
izņemot:
drukāt ("Radās kļūda")
atgriezties sevis.nosaukums# Izveidojiet klasi
imageGen = ImageGenerator()# Ģenerēt attēlus:
imageGen.generateImage(
Uzvedne = "Milzu lauva, lācis, pērtiķis un tīģeris stāv uz ūdenskrituma",
ImageCount = 2,
Attēla izmērs = "1024x1024"
)
# Lejupielādējiet attēlus:
imageGen.downloadImage (names=[
"Dzīvnieki",
"Dzīvnieki2"
])
Iepriekš minētais kods satur an ImageGenerator klase ar image_url un APIKey atribūti. The ģenerēt attēlu metode pielāgo attēla ģenerēšanas galapunkta prasības. Tas rada n URL, kas izmanto dabiskās valodas uzvedni, atkarībā no ImageCount vērtību.
tomēr self.image_url izvelk ģenerētos attēlu vietrāžus URL no JSON atbildes uz sarakstu, izmantojot cilpu for saraksta izpratnē.
Izvade izskatās šādi:
Visbeidzot, lejupielādētAttēls metode lejupielādē katru attēlu, pieprasot ģenerētās adreses. Šī metode tiek pieņemta n vārdu skaits, ko vēlaties piešķirt katram attēlam.
Attēlu rediģēšana, izmantojot OpenAI API
Rediģēšanas galapunkts ļauj rediģēt esošu attēlu, pamatojoties uz maskas veidni. Maska ir RGBA formāts ar anotētu, caurspīdīgu laukumu, un tai ir jābūt tāda paša izmēra kā attēlam, kuru vēlaties rediģēt.
Kad sniedzat masku, rediģēšanas galapunkts aizstāj savu maskēto apgabalu ar jauno uzvedni esošajā attēlā, lai izveidotu jaunu. Iepriekšējai klasei pievienojiet šādas metodes:
klasēImageGenerator:
def__tajā__(pats,...):
...defkonvertētAttēls(self, maskName):
attēls = Image.open("{}.png".format (maskName))
rgba_image = image.convert("RGBA")
rgba_image.save("{}.png".format (maskName))atgriezties rgba_image
defrediģēt attēlu(self, imageName, maskName, ImageCount, ImageSize, Prompt) -> str:
self.convertImage (maskName)
atbilde = openai. Image.create_edit(
attēls = atvērts ("{}.png".format (imageName), "rb"),
maska = atvērta ("{}.png".format (maskName), "rb"),
uzvedne = Prompt,
n = attēlu skaits,
izmērs = attēla izmērs,
)
self.image_url = atbilde['dati']
self.image_url = [attēls["url"] priekš attēlu iekšā self.image_url]drukāt (self.image_url)
atgriezties self.image_url# Rediģēt esošu attēlu:
imageGen.editImage(
imageName = "Dzīvnieki",
maskasNosaukums = "maska",
ImageCount = 1,
Attēla izmērs = "1024x1024",
Uzvedne = "Ērglis stāv upes krastā un dzer ūdeni ar lielu kalnu"
)
# Lejupielādējiet rediģēto attēlu:
imageGen.downloadImage (names=[
"Jaunie dzīvnieki",
])
The konvertētAttēls metode pārvērš maskas attēlu RGBA formātā. To var panākt, izmantojot konvertēt metode no Python spilvenu pakotnes (importēta kā PIL).
Pēc konvertēšanas tā saglabā jauno masku kā esošās maskas ignorēšanu. Tādējādi attēla konvertēšana ir pirmais uzdevums rediģēšanas metodes (rediģēt attēlu) izpilda.
The attēlu nolasa mērķa attēlu no esoša faila, savukārt maska nolasa pārveidoto maskas attēlu, kuram ir jābūt caurspīdīgam laukumam.
Izmantojot masku, varat iezīmēt caurspīdīgu laukumu fotoattēlu rediģēšanas programmatūra piemēram, Gimp vai Photoshop.
Piemēram, attēls, kuru vēlamies rediģēt, izmantojot uzvedni iepriekš minētajā kodā, ir:
Tagad pieņemsim, ka vēlaties upes krastā stāvošo antilopi aizstāt ar ērgli, kā norādīts uzvednē.
Lūk, kā izskatās maska:
Tā kā atslēgvārds uzvednē no iepriekš minētā koda saka “ērglis, kas stāv upes krastā”, tukšo vietu aizpilda ērglis, aizstājot tur iepriekš atradušos antilopi.
Šeit ir jaunais attēls šajā gadījumā:
Varat mēģināt spēlēties ar attēla rediģēšanas galapunktu, izmantojot citus fotoattēlus.
Attēlu variāciju ģenerēšana programmā Python, izmantojot OpenAI API
Variācijas galapunkts ģenerē alternatīvus attēlus no esoša attēla. Paplašiniet attēlu ģeneratora klasi, pievienojot attēla variācijas metodi, kā parādīts tālāk:
klasēImageGenerator:
def__tajā__(pats) -> str:
...
defattēlu Variācijas(self, ImageName, VariationCount, ImageSize):
atbilde = openai. Image.create_variation(
attēls = atvērts ("{}.png".format (Attēla nosaukums), "rb"),
n = VariationCount,
izmērs = attēla izmērs
)
self.image_url = atbilde['dati']
self.image_url = [attēls["url"] priekš attēlu iekšā self.image_url]
drukāt (self.image_url)
atgriezties self.image_url
# Izveidojiet klasi
imageGen = ImageGenerator()# Ģenerējiet esoša attēla variantus
imageGen.imageVariations(
Attēla nosaukums = "Jaunie_dzīvnieki",
VariationCount = 2,
Attēla izmērs = "1024x1024"
)
# Lejupielādējiet variācijas
imageGen.downloadImage (names=[
"Variation1",
"Variācija2",
]
)
Iepriekš minētais kods ģenerē attēla variācijas.
Izmantojiet OpenAI savā labā
Lai gan daži cilvēki baidās, ka AI varētu nozagt viņu darbu, galu galā tas varētu būt patvērums — ja iemācīsities to kontrolēt un izmantot. Šī OpenAI attēlu izveides apmācība ir tikai viens no daudzajiem AI izmantošanas gadījumiem reālajā pasaulē. OpenAI API nodrošina ērtus iepriekš apmācītus modeļus, kurus varat viegli integrēt savā lietotnē. Lai jūs varētu pieņemt izaicinājumu un izveidot kaut ko vērtīgu, izmantojot šo apmācību.
Lai gan attēlu ģenerēšanas API joprojām ir beta versijā rakstīšanas brīdī, tā jau ļauj jums izveidot iedomātus mākslas darbus. Cerams, ka tas saņems papildu atjauninājumus, lai varētu palielināt mērogošanu un pieņemt dažādus attēlu izmērus.