实现用gpt的api和他对话后,我们试着调用DALL·E的api进行绘画
参考文档
运行代码
python
from openai import OpenAI
client = OpenAI()
user_prompt = input("请输入您想生成的图片描述: ")
response = client.images.generate(
model="dall-e-3",
prompt=user_prompt,
size="1024x1024",
quality="standard",
n=1,
)
image_url = response.data[0].url
print(f"生成的图片链接: {image_url}")
运行结果
生成图片
花费了我4美分,生成了以下图片,看起来还算可以
新需求1
接下来我们想要用dall-e-2来对图片进行修改,而且想让python直接显示出图片来,而不是去点击URL
我们需要先下载requests
和Pillow
库,用requests
获取图片然后用Pillow
来显示,在CMD的当中使用下面的命令去下载即可
python
pip install requests Pillow
我们还需要做一张想要改变哪个位置的mask图片,我是用美图秀秀随便扣的,注意要和原图保持相同的尺寸
运行代码
python
from openai import OpenAI
import requests
from PIL import Image
from io import BytesIO
client = OpenAI()
user_prompt = input("请问你想如何修改图片: ")
response = client.images.edit(
model="dall-e-2",
image=open("E:/Game_Program/勇者.png", "rb"),
mask=open("E:/Game_Program/mask.png", "rb"),
prompt=user_prompt,
size="1024x1024",
n=1,
)
image_url = response.data[0].url
print(f"生成的图片链接: {image_url}")
# 获取并显示图片
response = requests.get(image_url)
img = Image.open(BytesIO(response.content))
img.show()
运行结果
用了好几美分试了几次,发现生成的图片和第一张还是一样的,不知道哪里出问题了,有兴趣的朋友可以试试
新需求2
接下来我们直接通过上传的图片来生成2张新的图片,这个比较简单,应该不会出错,依旧是用到dall-e-2
运行代码
python
from openai import OpenAI
import requests
from PIL import Image
from io import BytesIO
client = OpenAI()
response = client.images.create_variation(
model="dall-e-2",
image=open("E:/Game_Program/勇者.png", "rb"),
size="1024x1024",
n=2,
)
for data in response.data:
image_url = data.url
print(f"生成的图片链接: {image_url}")
# 获取并显示图片
response = requests.get(image_url)
img = Image.open(BytesIO(response.content))
img.show()
运行结果
生成图片
干掉我8美分,生成的两张图片有点一言难尽啊,太抽象了吧