Használja az OpenAI DALL·E 2 modelljét a képek Python használatával történő előállításához.
Ha valaha is használta a ChatGPT-t, akkor tanúja volt az intuíciójának. Az OpenAI API-kkal a kódgenerálás, a szövegkiegészítés, a szöveg-összehasonlítás, a modelltanítás és a képgenerálás mind a táskában található, amelyet a fejlesztők felfedezhetnek és az alkalmazásokba integrálhatnak.
Ebből az oktatóanyagból megtudhatja, hogyan használhatja az OpenAI API-ját Pythonnal képek generálására, szerkesztésére és variálására természetes nyelvi utasítások segítségével.
Az OpenAI első lépései Python használatával
Az oktatóprogram elindítása előtt be kell állítania néhány dolgot. Először győződjön meg arról, hogy a Python legújabb verzióját telepítette a számítógépére. Ha olyan Linux disztribúciót használ, mint az Ubuntu, akkor érdemes lehet látni hogyan kell telepíteni a Python-t Ubuntura.
Hozzon létre egy új mappát a projekthez, és nyissa meg a parancssort a projektkönyvtárba.
Következő az OpenAI csomag telepítése. Telepíteni kell
párna képek RGBA formátumba konvertálásához a képszerkesztő végpont használata közben. Érdemes lehet telepíteni is python-dotenv; ezt fogja használni a titkos kulcsok elfedésére.Javasoljuk a dedikált Python virtuális környezet a függőségek elkülönítésére.
A projektben használt kód elérhető a GitHub adattár és az MIT licence alapján ingyenesen használható.
A telepítéshez a python-dotenv, párna, és openai csomagokat, futtassa a következő parancsot a terminálban:
pip install openai python-dotenv párna
Most pedig irány OpenAI és jelentkezzen be az irányítópultra, hogy megkapja API-kulcsát:
- Miután bejelentkezett, kattintson a profil ikonjára a jobb felső részben.
- Menj API kulcsok megtekintése. Ha az API-kulcs nem látható, kattintson a gombra Hozzon létre új titkos kulcsot újat generálni.
- Másolja ki a generált titkos kulcsot, és illessze be biztonságos helyre a számítógépén. Biztonsági okokból érdemes beilleszteni egy környezeti változófájlba a projekt gyökérkönyvtárában.
Képek létrehozása és szerkesztése az OpenAI API-val a Pythonban
Az OpenAI API képgenerálása végpontokat tartalmaz új képek generálásához, képváltozatok létrehozásához és szerkesztéséhez.
A következő szakaszokban ezeket a végpontokat tekintheti meg a képek generálásához, szerkesztéséhez, módosításához és letöltéséhez természetes nyelvi utasítások segítségével.
Képek generálása az OpenAI API használatával
A kép létrehozásának végpontja három kulcsszó argumentumot fogad el. Ezek tartalmazzák gyors, n, és méret.
A gyors A kulcsszó egy szöveges karakterlánc, amely leírja a létrehozni kívánt képet n az API-hívás során generálandó képek száma. A méret a képméret, és az írás pillanatában csak 256x256, 512x512 és 1024x1024 pixelt fogad el a hivatalos tájékoztatás szerint. OpenAI képgenerálási dokumentáció.
A következő kód természetes nyelvű promptok segítségével képeket hoz létre, és kiadja az URL-t (képcímeket):
import openai
import os
import kéréseket
tól től dotenv import load_dotenv
tól től PIL import Kép
load_dotenv()osztályImageGenerator:
def__benne__(maga) -> str:
self.image_url: str
openai.api_key = os.getenv("OPENAI_API_KEY")
maga. APIKey = openai.api_key
self.name = Egyik semdefgenerImage(self, Prompt, ImageCount, ImageSize):
próbáld ki:
maga. APIKey
válasz = openai. Image.create(
prompt = Prompt,
n = képszám,
méret = Képméret,
)
self.image_url = válasz['adat']
self.image_url = [image["url"] számára kép ban ben self.image_url]
nyomtatás (self.image_url)
Visszatérés self.image_url
kivéve openai.error. OpenAIERror mint e:
nyomtatás (e.http_status)
nyomtatás (e.error)defletöltésKép(én, nevek)-> Egyik sem:
próbáld ki:
self.name = nevek
számára url ban ben self.image_url:
kép = requests.get (url)
számára név ban ben self.name:
val vel nyisd ki("{}.png".formátum (név), "wb") mint f:
f.write (image.content)
kivéve:
nyomtatás("Hiba történt")
Visszatérés self.name# Példányosítsa az osztályt
imageGen = Képgenerátor()# Képek generálása:
imageGen.generateImage(
Prompt = "Óriás oroszlán, medve, majom és tigris egy vízesésen állva",
ImageCount = 2,
Képméret = "1024x1024"
)
# Töltse le a képeket:
imageGen.downloadImage (names=[
"Állatok",
"Állatok 2"
])
A fenti kód tartalmaz egy ImageGenerator osztály a image_url és APIKey attribútumokat. A generImage módszer alkalmazkodik a képgenerálás végpontjának követelményeihez. Ez generál n A természetes nyelvű promptot használó URL-ek, attól függően ImageCount érték.
Azonban, self.image_url kibontja a generált kép URL-címeit a JSON-válaszból egy listába a for ciklus használatával a listaértelmezésben.
A kimenet így néz ki:
Végül a letöltésKép metódus letölti az egyes képeket a generált címek lekérésével. Ez a módszer elfogadja n az egyes képekhez adni kívánt nevek száma.
Képek szerkesztése az OpenAI API használatával
A szerkesztési végpont lehetővé teszi egy meglévő kép szerkesztését egy maszksablon alapján. A maszk egy RGBA formátum, megjegyzésekkel ellátott, átlátszó területtel, és meg kell egyeznie a szerkeszteni kívánt kép méretével.
Ha megad egy maszkot, a szerkesztési végpont lecseréli a maszkolt területét a meglévő kép új promptjával, hogy újat hozzon létre. Adja hozzá a következő metódusokat a fenti előző osztályhoz:
osztályImageGenerator:
def__benne__(maga, ...):
...defconvertImage(én, maszkNév):
image = Image.open("{}.png".formátum (maskName))
rgba_image = image.convert("RGBA")
rgba_image.save("{}.png".formátum (maskName))Visszatérés rgba_image
defKép szerkesztése(self, imageName, maskName, ImageCount, ImageSize, Prompt) -> str:
self.convertImage (maskName)
válasz = openai. Image.create_edit(
kép = open("{}.png".formátum (képnév), "rb"),
maszk = open("{}.png".formátum (maskName), "rb"),
prompt = Prompt,
n = képszám,
méret = Képméret,
)
self.image_url = válasz['adat']
self.image_url = [image["url"] számára kép ban ben self.image_url]nyomtatás (self.image_url)
Visszatérés self.image_url# Meglévő kép szerkesztése:
imageGen.editImage(
imageName = "Állatok",
maszkNév = "maszk",
ImageCount = 1,
Képméret = "1024x1024",
Prompt = "Egy sas a folyóparton ivóvizet egy nagy hegytel"
)
# Töltse le a szerkesztett képet:
imageGen.downloadImage (names=[
"Új állatok",
])
A convertImage módszer a maszkképet RGBA formátumba konvertálja. Ezt a segítségével érheti el alakítani módszer a Python párnacsomagjából (PIL-ként importálva).
Az átalakítás után az új maszkot a meglévő felülírásaként menti. Így a képátalakítás az első feladat a szerkesztési módszer (Kép szerkesztése) végrehajtja.
A kép beolvassa a célképet egy meglévő fájlból, míg a maszk beolvassa a konvertált maszkképet, amelynek átlátszó területtel kell rendelkeznie.
A segítségével kijelölhet egy átlátszó területet a maszkban képszerkesztő szoftver mint a Gimp vagy a Photoshop.
Például a kép, amelyet a fenti kódban lévő prompt segítségével szeretnénk szerkeszteni, a következő:
Most tegyük fel, hogy a folyóparton álló antilopot egy sasra szeretnéd cserélni, ahogy az a promptban is szerepel.
Így néz ki a maszk:
Mivel a fenti kódból a promptban szereplő kulcsszó azt mondja, hogy "egy sas áll a folyóparton", az üres helyet egy sas tölti fel, felváltva a korábban ott lévő antilopot.
Íme az új kép ebben az esetben:
Megpróbálhat játszani a képszerkesztő végponttal más fényképek használatával.
Képváltozatok generálása Pythonban az OpenAI API használatával
A variációs végpont alternatív képeket generál egy meglévő képből. Bővítse tovább a képgenerátor osztályát egy képváltozatos módszer hozzáadásával az alábbiak szerint:
osztályImageGenerator:
def__benne__(maga) -> str:
...
defimageVariations(self, ImageName, VariationCount, ImageSize):
válasz = openai. Image.create_variation(
kép = open("{}.png".formátum (Képnév), "rb"),
n = VariationCount,
méret = Képméret
)
self.image_url = válasz['adat']
self.image_url = [image["url"] számára kép ban ben self.image_url]
nyomtatás (self.image_url)
Visszatérés self.image_url
# Példányosítsa az osztályt
imageGen = Képgenerátor()# Változatok generálása egy meglévő képhez
imageGen.imageVariations(
Képnév = "New_Animals",
VariationCount = 2,
Képméret = "1024x1024"
)
# Töltse le a változatokat
imageGen.downloadImage (names=[
"1. variáció",
"2. variáció",
]
)
A fenti kód egy kép variációit generálja.
Használja az OpenAI-t saját előnyére
Bár egyesek attól tartanak, hogy a mesterséges intelligencia ellophatja a munkájukat, végül is menedék lehet – ha megtanulja irányítani és használni. Ez az OpenAI képalkotási oktatóanyag csak egy a sok mesterséges intelligencia felhasználási eset közül a való világban. Az OpenAI API-k praktikus, előre betanított modelleket kínálnak, amelyeket könnyedén integrálhat az alkalmazásba. Így vállalhatod a kihívást, és építhetsz valami értékeset ebből az oktatóanyagból.
Bár a képgeneráló API még a megírás pillanatában béta állapotban van, már most lehetővé teszi képzeletbeli műalkotások készítését. Remélhetőleg további frissítéseket kap, hogy lehetővé tegye a felskálázást, és elfogadja a különböző képméreteket.