图像生成open in new window beta

了解如何使用我们的DALL·E模型生成或操作图像

介绍

图片 API 提供了三种与图片交互的方法:

  1. 根据文本提示从头开始创建图像
  2. 根据新文本提示创建现有图像的编辑
  3. 创建现有图像的变体

本指南涵盖了使用这三个 API 端点的基础知识以及有用的代码示例。要查看它们的实际效果,请查看我们的DALL·E 预览应用程序open in new window

提示

图片 API 处于测试阶段。在此期间,API 和模型将根据您的反馈进行改进。为确保所有用户都能轻松制作原型,默认速率限制为每分钟 50 张图像。如果您想提高速率限制,请查看这篇帮助中心文章open in new window。随着我们对使用和容量要求的更多了解,我们将提高默认速率限制。

用法

生成

图像生成端点允许您在给定文本提示的情况下创建原始图像。生成的图像的大小可以为 256x256、512x512 或 1024x1024 像素。较小的尺寸生成速度更快。您可以使用nopen in new window参数一次请求 1-10 张图像。

response = openai.Image.create(
  prompt="a white siamese cat",
  n=1,
  size="1024x1024"
)
image_url = response['data'][0]['url']

描述越详细,您就越有可能获得您或您的最终用户想要的结果。您可以探索DALL·E 预览应用程序open in new window中的示例以获得更多提示灵感。这是一个简单的例子:

提示生成
一只白色的暹罗猫img
一只白色暹罗猫的特写工作室摄影肖像,它看起来好奇,背光的耳朵img

使用response_formatopen in new window参数,每个图像都可以作为 URL 或 Base64 数据返回。网址将在一小时后过期。

编辑

图像编辑open in new window端点允许您通过上传蒙版来编辑和扩展图像。遮罩的透明区域指示应编辑图像的位置,提示应描述完整的新图像,而不仅仅是擦除区域。此端点可以启用类似我们 DALL·E 预览应用程序中的编辑器的open in new window体验。

response = openai.Image.create_edit(
  image=open("sunlit_lounge.png", "rb"),
  mask=open("mask.png", "rb"),
  prompt="阳光充足的室内休息区,泳池内有一只火烈鸟",
  n=1,
  size="1024x1024"
)
image_url = response['data'][0]['url']
图像遮罩输出
imgimgimg

提示:一个阳光充足的室内休息区,带有一个包含火烈鸟的游泳池

上传的图片和遮罩必须是小于 4MB 的正方形 PNG 图片,并且必须具有相同的尺寸。生成输出时不使用遮罩的非透明区域,因此它们不一定需要像上面的示例那样与原始图像匹配。

变体

图像变体open in new window端点允许您生成给定图像的变体。

生成图像变体

response = openai.Image.create_variation(
  image=open("corgi_and_cat_paw.png", "rb"),
  n=1,
  size="1024x1024"
)
image_url = response['data'][0]['url']
图像输出
imgimg

与编辑端点类似,输入图像必须是大小小于 4MB 的方形 PNG 图像。

内容审核

提示和图像根据我们的内容政策open in new window进行过滤,当提示或图像被标记时返回错误。如果您对误报或相关问题有任何反馈,请通过我们的帮助中心open in new window联系我们。

特定语言提示

使用内存图像数据

上面指南中的 Python 示例使用该open函数从磁盘读取图像数据。在某些情况下,您可能会将图像数据保存在内存中。BytesIO下面是一个使用存储在对象中的图像数据的 API 调用示例:

from io import BytesIO

# This is the BytesIO object that contains your image data
byte_stream: BytesIO = [your image data]
byte_array = byte_stream.getvalue()
response = openai.Image.create_variation(
  image=byte_array,
  n=1,
  size="1024x1024"
)

图像数据操作

在将图像传递给 API 之前对图像执行操作可能很有用。PIL这是一个用于调整图像大小的示例:

from io import BytesIO
from PIL import Image

# Read the image file from disk and resize it
image = Image.open("image.png")
width, height = 256, 256
image = image.resize((width, height))

# Convert the image to a BytesIO object
byte_stream = BytesIO()
image.save(byte_stream, format='PNG')
byte_array = byte_stream.getvalue()

response = openai.Image.create_variation(
  image=byte_array,
  n=1,
  size="1024x1024"
)

错误处理

API 请求可能会由于无效输入、速率限制或其他问题而返回错误。这些错误可以用一个try...except语句来处理,错误的详细信息可以在e.error

try:
  openai.Image.create_variation(
    open("image.png", "rb"),
    n=1,
    size="1024x1024"
  )
  print(response['data'][0]['url'])
except openai.error.OpenAIError as e:
  print(e.http_status)
  print(e.error)
Last Updated:
Contributors: fangming78@sina.com