Käytä OpenAI: n DALL·E 2 -mallia kuvien luomiseen Pythonilla.
Jos olet koskaan käyttänyt ChatGPT: tä, olet nähnyt sen intuition. OpenAI: n sovellusliittymien avulla koodin luominen, tekstin viimeistely, tekstin vertailu, mallikoulutus ja kuvien luominen ovat kaikki valmiina kehittäjien tutkittavaksi ja integroitaviksi sovelluksiin.
Tässä opetusohjelmassa opit käyttämään OpenAI: n sovellusliittymää Pythonin kanssa kuvien luomiseen, muokkaamiseen ja muuntamiseen luonnollisen kielen kehotteiden avulla.
OpenAI: n käytön aloittaminen Pythonin avulla
Sinun on määritettävä muutamia asioita ennen tämän opetusohjelman aloittamista. Varmista ensin, että olet asentanut Pythonin uusimman version tietokoneellesi. Jos käytät Linux-jakelua, kuten Ubuntua, saatat haluta myös nähdä kuinka Python asennetaan Ubuntuun.
Luo uusi kansio projektillesi ja avaa komentorivi projektihakemistoosi.
Seuraava on OpenAI-paketin asennus. Sinun on asennettava tyyny kuvien muuntamiseksi RGBA-muotoon, kun käytät kuvankäsittelyn päätepistettä. Haluat ehkä myös asentaa
python-dotenv; käytät tätä salaisten avainten peittämiseen.Suosittelemme luomaan a omistettu Python-virtuaaliympäristö eristämään riippuvuuksia.
Tässä projektissa käytetty koodi on saatavilla a GitHub-arkisto ja sen käyttö on ilmaista MIT-lisenssin alaisena.
Asentaaksesi python-dotenv, tyyny, ja openai paketit, suorita seuraava komento terminaalissa:
pip install openai python-dotenv tyyny
Siirry nyt kohti OpenAI ja kirjaudu sisään hallintapaneeliisi saadaksesi API-avaimen:
- Kun olet kirjautunut sisään, napsauta profiilisi kuvaketta oikeassa yläkulmassa.
- Mene Näytä API-avaimet. Jos API-avaimesi ei ole näkyvissä, napsauta Luo uusi salainen avain luodaksesi uuden.
- Kopioi luotu salainen avain ja liitä se turvalliseen paikkaan tietokoneellesi. Haluat ehkä liittää sen ympäristömuuttujatiedostoon projektin juurihakemistossa turvallisuuden vuoksi.
Kuvien luominen ja muokkaaminen OpenAI API: lla Pythonissa
OpenAI API: n kuvien luonti sisältää päätepisteitä uusien kuvien luomiseen, kuvamuunnelmien luomiseen ja muokkaamiseen.
Seuraavissa osissa tutustut näihin päätepisteisiin kuvien luomiseen, muokkaamiseen, säätämiseen ja lataamiseen luonnollisen kielen kehotteiden avulla.
Kuvien luominen OpenAI API: n avulla
Kuvan luonnin päätepiste hyväksyy kolme avainsanaargumenttia. Nämä sisältävät kehote, n, ja koko.
The kehote avainsana on tekstijono, joka kuvaa kuvaa, jonka haluat luoda n on API-kutsun aikana luotavien kuvien määrä. The koko on kuvan koko, ja kirjoitettaessa se hyväksyy vain 256x256, 512x512 ja 1024x1024 pikseliä virallisen mukaan OpenAI kuvan generointidokumentaatio.
Seuraava koodi luo kuvia käyttämällä luonnollisen kielen kehotteita ja tulostaa niiden URL-osoitteet (kuvaosoitteet):
tuonti openai
tuonti os
tuonti pyynnöt
alkaen dotenv tuonti load_dotenv
alkaen PIL tuonti Kuva
load_dotenv()luokkaaImageGenerator:
def__sen sisällä__(itse) -> str:
self.image_url: str
openai.api_key = os.getenv("OPENAI_API_KEY")
itse. APIKey = openai.api_key
itse.nimi = Ei mitäändefgeneroidaImage(itse, Kehote, ImageCount, ImageSize):
yrittää:
itse. APIKey
vastaus = openai. Image.create(
kehote = kehote,
n = ImageCount,
koko = ImageSize,
)
self.image_url = vastaus['data']
self.image_url = [image["url"] varten kuva sisään self.image_url]
tulosta (self.image_url)
palata self.image_url
paitsi openai.error. OpenAIERror kuten e:
tulosta (e.http_status)
tulosta (e.error)deflataa kuva(itse, nimet)-> Ei mitään:
yrittää:
itse.nimi = nimet
varten url sisään self.image_url:
kuva = requests.get (url)
varten nimi sisään itse.nimi:
kanssa avata("{}.png".format (nimi), "wb") kuten f:
f.write (image.content)
paitsi:
Tulosta("Tapahtui virhe")
palata itse.nimi# Instantoi luokka
imageGen = ImageGenerator()# Luo kuvia:
imageGen.generateImage(
Kehotus = "Jättiläinen leijona, karhu, apina ja tiikeri seisovat vesiputouksella",
ImageCount = 2,
Kuvan koko = "1024x1024"
)
# Lataa kuvat:
imageGen.downloadImage (names=[
"Eläimet",
"Eläimet 2"
])
Yllä oleva koodi sisältää an ImageGenerator luokan kanssa image_url ja APIKey attribuutteja. The generoidaImage menetelmä mukauttaa kuvan luomisen päätepisteen vaatimukset. Se tuottaa n URL-osoitteet, jotka käyttävät luonnollisen kielen kehotetta ImageCount arvo.
Kuitenkin, self.image_url poimii luodut kuvan URL-osoitteet JSON-vastauksesta luetteloksi käyttämällä for-silmukkaa luettelon ymmärtämisessä.
Tulos näyttää tältä:
Lopuksi, lataa kuva menetelmä lataa jokaisen kuvan pyytämällä luotuja osoitteita. Tämä menetelmä hyväksyy n kuinka monta nimeä haluat antaa kullekin kuvalle.
Kuvien muokkaaminen OpenAI API: lla
Muokkauspäätepisteen avulla voit muokata olemassa olevaa kuvaa maskimallin perusteella. Maski on RGBA-muoto, jossa on huomautus, läpinäkyvä alue ja sen on oltava samankokoinen kuin muokattavan kuvan.
Kun annat maskin, muokkauspäätepiste korvaa maskatun alueensa olemassa olevan kuvan uudella kehotteella uuden luomiseksi. Lisää seuraavat menetelmät yllä olevaan edelliseen luokkaan:
luokkaaImageGenerator:
def__sen sisällä__(itse,...):
...defconvertImage(itse, maskiNimi):
image = Image.open("{}.png".format (maskName))
rgba_image = image.convert("RGBA")
rgba_image.save("{}.png".format (maskName))palata rgba_image
defmuokkaa kuvaa(self, imageName, maskName, ImageCount, ImageSize, Prompt) -> str:
self.convertImage (maskName)
vastaus = openai. Image.create_edit(
kuva = auki("{}.png".format (imageName), "rb"),
mask = auki("{}.png".format (maskName), "rb"),
kehote = kehote,
n = ImageCount,
koko = ImageSize,
)
self.image_url = vastaus['data']
self.image_url = [image["url"] varten kuva sisään self.image_url]tulosta (self.image_url)
palata self.image_url# Muokkaa olemassa olevaa kuvaa:
imageGen.editImage(
imageName = "Eläimet",
maskinnimi = "naamio",
ImageCount = 1,
Kuvan koko = "1024x1024",
Kehotus = "Kotka seisoo joen rannalla juomassa vettä suuren vuoren kanssa"
)
# Lataa muokattu kuva:
imageGen.downloadImage (names=[
"Uudet eläimet",
])
The convertImage menetelmä muuntaa maskin kuvan RGBA-muotoon. Voit saavuttaa tämän käyttämällä muuntaa menetelmä Pythonin tyynypaketista (tuotu PIL-muodossa).
Kun se on muunnettu, se tallentaa uuden maskin olemassa olevan maskin ohituksena. Siten kuvan muuntaminen on ensimmäinen tehtävä editointimenetelmä (muokkaa kuvaa) toteuttaa.
The kuva lukee kohdekuvan olemassa olevasta tiedostosta, kun taas naamio lukee muunnetun maskin kuvan, jossa on oltava läpinäkyvä alue.
Voit merkitä läpinäkyvän alueen maskista käyttämällä kuvankäsittelyohjelma kuten Gimp tai Photoshop.
Esimerkiksi kuva, jota haluamme muokata yllä olevan koodin kehotteen avulla, on:
Oletetaan nyt, että haluat korvata joen rannalla seisovan antiloopin kotkalla, kuten kehotteessa sanotaan.
Tältä naamio näyttää:
Koska yllä olevan koodin kehotteen avainsana sanoo "joen rannalla seisova kotka", kotka täyttää tyhjän kohdan ja korvaa siellä aiemmin olleen antiloopin.
Tässä uusi kuva tässä tapauksessa:
Voit yrittää leikkiä kuvanmuokkauksen päätepisteen kanssa käyttämällä muita valokuvia.
Kuvamuunnelmien luominen Pythonissa OpenAI API: n avulla
Muunnelman päätepiste luo vaihtoehtoisia kuvia olemassa olevasta kuvasta. Laajenna kuvageneraattoriluokkaa lisäämällä kuvan muunnosmenetelmä alla olevan kuvan mukaisesti:
luokkaaImageGenerator:
def__sen sisällä__(itse) -> str:
...
defkuvamuunnelmia(self, ImageName, VariationCount, ImageSize):
vastaus = openai. Image.create_variation(
kuva = auki("{}.png".format (ImageName), "rb"),
n = VariationCount,
koko = ImageSize
)
self.image_url = vastaus['data']
self.image_url = [image["url"] varten kuva sisään self.image_url]
tulosta (self.image_url)
palata self.image_url
# Instantoi luokka
imageGen = ImageGenerator()# Luo muunnelmia olemassa olevalle kuvalle
imageGen.imageVariations(
Kuvannimi = "New_Animals",
VariationCount = 2,
Kuvan koko = "1024x1024"
)
# Lataa muunnelmat
imageGen.downloadImage (names=[
"Variaatio1",
"Variaatio2",
]
)
Yllä oleva koodi luo muunnelmia kuvasta.
Käytä OpenAI: ta hyödyksesi
Vaikka jotkut ihmiset pelkäävät tekoälyn varastavan heidän työpaikkansa, se saattaa olla turvasatama – jos opit hallitsemaan ja käyttämään sitä. Tämä OpenAI-kuvanluontiopetus on vain yksi monista tekoälyn käyttötapauksista todellisessa maailmassa. OpenAI-sovellusliittymät tarjoavat käteviä valmiiksi koulutettuja malleja, jotka voit helposti integroida sovellukseesi. Joten voit ottaa haasteen vastaan ja rakentaa jotain hyödyllistä tämän opetusohjelman avulla.
Vaikka kuvien luontisovellusliittymä on vielä beta-vaiheessa kirjoitettaessa, sen avulla voit jo luoda kuvitteellisia taideteoksia. Toivottavasti se saa lisää päivityksiä, jotta skaalaus voidaan tehdä ja eri kuvakoot hyväksytään.