0
点赞
收藏
分享

微信扫一扫

小白学 python:在 Python 中使用 OpenAI 生成图像

在 Python 中使用 OpenAI 生成图像

我们目前生活在人工智能时代。用于自动化流程的图像,包括徽标、广告、库存图像等的图像生成。因此,这里我们将使用OpenAI 通过 Python [ChatGPT API] 生成图像。DALL – E 模型有多种用途,今天我们将讨论如何使用其 Python ChatGPT API [OpenAI API] 生成新图像并编辑现有图像。但是,在继续之前,让我们先了解一下 DALL E 是什么。

小白学 python:在 Python 中使用 OpenAI 生成图像_Image

使用 Python 创建 AI 图像

使用 Python 创建 AI 图像

DALL-E由OpenAI开发。它基于 GPT-3 模型的修改版本,允许 AI 模型从文本或图像输入生成图像。DALL – E 经过 35 亿个参数的训练,使其能够无缝地对图像执行各种任务。DALL – E 有许多用例,例如社交媒体内容创建、徽标创建、编辑图像、广告生成等,因此使其成为当今时代的宝贵工具。

在 Python 中使用 OpenAI 生成图像

在这里,我们将看到在 Python 中使用 DALL – E API 的步骤。使用 DALL – E API,我们可以使用 Python 代码生成和编辑图像。

第一步:创建OpenAI账户后,登录您的OpenAI账户。

步骤2:如下图所示,登录后,在右上角菜单中选择“个人” ,然后选择“查看API密钥”。

小白学 python:在 Python 中使用 OpenAI 生成图像_Image_02

 

步骤3:

完成步骤2后,将显示包含API密钥的页面,并且可以看到“创建新密钥”按钮。单击该密钥时会生成一个密钥,将其复制并将其保存在其他位置,因为在后续步骤中将需要它。

小白学 python:在 Python 中使用 OpenAI 生成图像_API_03

 

第 4 步:

现在启动任何文本编辑器或在线笔记本,例如Google ColabJupyter Notebook。在这里,我们使用 Google Colab 笔记本通过下面列出的命令安装Python 中的Open AI库。

pip install -q openai

第 5 步

导入openai库,然后进行如下操作。将创建的密钥存储在下面提到的变量中。

import openai 
openai.api_key='API_KEY'

第 6 步

从PIL库导入requests库和Image模块。

# 导入其他图书馆
import requests 
from PIL import Image

第 7 步:

现在我们定义一个函数来使用 DALL E API 的“ create”端点生成图像。

python

# 文本到图像的生成函数
# 使用 DALL-E API 的创建端点
# 函数接收一个字符串参数
def generate(text): 
res = openai.Image.create( 
	# 描述生成图像的文本
	prompt=text, 
	# 要生成的图像数量
	n=1, 
	# 设置生产图片的大小
	size="256x256", 
) 
# 返回一张图片的 URL
# 我们只生成一张图片
return res["data"][0]["url"]

上面的函数接受一个字符串作为参数并将其传递到 API 端点。其他使用的参数是n =“使用该提示生成的图像数量”size =“生成的图像的大小”。该 API 可以生成Base64格式或URL 格式的图像。我们返回生成图像的 URL 作为输出。

第 8 步:

现在我们使用文本提示生成图像。

# 提示描述所需图像
text = "batman art in red and blue color"
# 调用自定义函数 "generate
# 将输出保存在 "url1 "中
url1 = generate(text) 
# 使用请求库以字节为单位获取图像
response = requests.get(url1) 
# 使用 PIL 库中的图像模块查看图像
Image.open(response.raw)

输出:

小白学 python:在 Python 中使用 OpenAI 生成图像_Python_04

红色和蓝色的蝙蝠侠艺术

如何生成图像的变体?

在这里,我们将使用 DALL E 上面生成的相同图像并生成其变体。

由于 DALL E 只接受大小小于4 MB且采用RGBA格式的方形 PNG图像,因此我们使用以下代码以扩展名 png 和 RGBA 格式保存图像。

response = requests.get(url1) 
# 以 PNG 格式保存图像
with open("img.png", "wb") as f: 
f.write(response.content) 
# 打开保存的图像并将其转换为 "RGBA "格式
# 转换后的图像保存在结果中
result = Image.open('img.png').convert('RGBA') 
# 将新图像保存为 PNG 格式
result.save('img_rgba.png','PNG')

为了生成现有图像的变体,我们使用DALL-E API 的“create_edit”端点。

输出:

小白学 python:在 Python 中使用 OpenAI 生成图像_Image_05

如何通过 DALL E API 使用遮罩图像编辑图像?

在此部分中,将上传遮罩并提供文本提示以更改图像。应更改图像的位置由蒙版的透明部分指示,并且提示应描述整个新图像,而不仅仅是被擦除的区域。

在将图像和蒙版作为参数传递给 API 之前,请确保图像和蒙版的大小相同(方形 PNG)且大小小于 4MB。我们将使用以下图像。

小白学 python:在 Python 中使用 OpenAI 生成图像_Python_06

输入图像

另外,编写一个提示,使其描述完整的新图像,而不仅仅是需要替换的透明区域。 使用以下代码行来编辑图像。

# 使用 DALL - E 应用程序接口的 create_edit 端点
response = openai.Image.create_edit( 
# 在读取模式下打开原始图像
image=open("img_rgba.png", "rb"), 
mask=open("mask.png", "rb"), 
prompt="gotham city skyline behind batman", 
n=1, 
size="256x256"
) 

# 将所有图像的 URL 保存在新变量 "res "中
res = response['data'] 

# 循环保存和显示图像
for i in range(len(res)): 
# 在 res 中保存图像的 URL
image_url = res[i]['url'] 
response = requests.get(image_url, stream=True) 
# 打开图像
k = Image.open(response.raw) 
# 显示图像
k.show() 
# 保存图片
with open(f"img_mask_edit_{i}.png", "wb") as f: 
	f.write(response.content)

输出:

小白学 python:在 Python 中使用 OpenAI 生成图像_API_07

 

遮罩的非透明部分不必与原始图像匹配(如上例所示),因为在创建输出时不会使用它们。

关于使用 AI 生成图像的常见问题

Q1:如何在Python中使用OpenAI库?

首先,我们需要在 Python 终端中使用 pip install openai 安装 OpenAI 包。之后,我们需要提供密钥,该密钥可以在 OpenAI 网站本身上找到,但为此,您首先需要在他们的网站上创建一个帐户。

问题2:如何生成AI图像?

在这一进程中,OpenAI 的 Dall-E 项目是一场革命,它可以根据用户提供的文本提示创建最先进的图像。使用此工具,只需单击一下即可将您的想象力带入图片中。尽管该工具不是完全免费的,但为了探索它并分析其工作原理,我们向新用户提供了一些免费的图像生成计数。

问题3:ChatGPT可以生成图像吗?

不,ChatGPT 并非旨在生成图像,而是被设计为 ChatBot。它可以对问题提供有效的答案和建议,但无法根据要求创建任何可视化或图像。ChatGPT 是一种基于 Transformer 的模型,非常适合 NLP 相关任务。

问题4:如何在Python中访问OpenAI API?

如果您想访问 OpenAI API,那么您需要首先在 OpenAI 网站上创建您的帐户。之后,您可以获得您可以使用的帐户唯一的 API 密钥。之后,您可以按照本文使用 Python 脚本创建精彩的图像。但 OpenAI API 并非免费用于商业目的,但您可以将其用于某些试用或教育目的。

问题5:如何使用OpenAI图像生成器?

完成上述在 Python 中使用 OpenAI API 的步骤后,我们只需要使用带有一些提示的 create 函数来为该提示创建所需数量的图像。此外,我们可以使用库提供的 create_variations() 函数创建现有图像的变体。

举报

相关推荐

0 条评论