如何使用DALL·E API:创建惊艳图像的秘诀

注意:本文将教你如何使用OpenAI的DALL·E图像API,但请确保你已经获得了相应的API访问权限。

你是否曾经想过能够通过简单的文字描述生成令人惊艳的图像?OpenAI的DALL·E图像API为你提供了这个机会。本文将向你展示如何使用DALL·E API的三个关键端点:生成、编辑和变化,以及一些有用的提示和技巧。

开场故事

想象一下,你是一名创意设计师,你的任务是为一家时尚杂志创建独特的封面图像。你需要一种方法来将你的创意快速转化为视觉艺术,而不需要繁琐的图像编辑工作。幸运的是,有一种新颖的技术可以帮助你实现这一目标,那就是使用DALL·E API。在本文中,我们将探讨如何使用这个API来生成、编辑和变换图像,让你的创意得以充分展示。

准备工作

在开始之前,你需要完成一些准备工作。

导入必要的库

首先,导入你需要的Python库。这些库将帮助你与DALL·E API进行交互,并进行图像处理。

import openai  # OpenAI Python库,用于进行API调用
import requests  # 用于下载图像
import os  # 用于访问文件路径
from PIL import Image  # 用于显示和编辑图像

设置API密钥

在继续之前,确保你已经获取了OpenAI的API密钥,并将其设置为环境变量。你可以在终端中运行以下命令来设置API密钥:

export OPENAI_API_KEY="你的API密钥"

设置保存图像的目录

为了保存生成的图像,创建一个目录,以便后续使用。你可以使用以下代码来创建目录:

# 设置保存DALL·E图像的目录
image_dir_name = "images"
image_dir = os.path.join(os.curdir, image_dir_name)

# 如果目录不存在,则创建它
if not os.path.isdir(image_dir):
    os.mkdir(image_dir)

使用DALL·E API

现在,让我们深入了解如何使用DALL·E API的不同端点来生成、编辑和变换图像。

生成图像

生成端点用于根据文本描述生成图像。你只需提供一个文本描述,DALL·E就会尝试创建相应的图像。

必要输入:

  • prompt(str):对所需图像的文本描述。最大长度为1000个字符。

可选输入:

  • n(int):要生成的图像数量。必须介于1和10之间,默认为1。
  • size(str):生成图像的尺寸。必须是以下尺寸之一:"256x256"、"512x512"或"1024x1024"。较小的图像生成速度更快,默认为"1024x1024"。
  • response_format(str):生成的图像返回格式。必须是"url"或"b64_json"之一,默认为"url"。
  • user(str):代表你的最终用户的唯一标识符,有助于OpenAI监测和检测滥用。了解更多信息。

让我们看看如何使用DALL·E API生成图像的示例:

# 设置文本描述
prompt = "一个赛博朋克的猴子黑客,梦想着一堆美味的香蕉,数字艺术"

# 调用OpenAI API
generation_response = openai.Image.create(
    prompt=prompt,
    n=1,
    size="1024x1024",
    response_format="url",
)

# 打印响应
print(generation_response)

上述代码将返回生成的图像的URL。你可以将这个URL用于下载图像,如下所示:

# 保存图像
generated_image_name = "生成的图像.png"  # 任何你喜欢的名称,文件类型应为.png
generated_image_filepath = os.path.join(image_dir, generated_image_name)
generated_image_url = generation_response["data"][0]["url"]  # 从响应中提取图像URL
generated_image = requests.get(generated_image_url).content  # 下载图像

with open(generated_image_filepath, "wb") as image_file:
    image_file.write(generated_image)  # 将图像写入文件

接下来,我们可以使用PIL库来显示生成的图像:

# 显示生成的图像
print(generated_image_filepath)
Image.open(generated_image_filepath)

变换图像

变换端点用于生成与输入图像相似的新图像(变体)。

必要输入:

  • image(str):要用作变体基础的图像。必须是有效的PNG文件,小于4MB,并且是正方形。

可选输入:

  • n(int):要生成的图像数量。必须介于1和10之间,默认为1。
  • size(str):生成图像的尺寸。必须是以下尺寸之一:"256x256"、"512x512"或"1024x1024"。较小的图像生成速度更快,默认为"1024x1024"。
  • response_format(str):生成的图像返回格式。必须是"url"或"b64_json"之一,默认为"url"。
  • user(str):代表你的最终用户的唯一标识符,

有助于OpenAI监测和检测滥用。了解更多信息。

以下是如何生成图像变体的示例:

# 调用OpenAI API,使用`create_variation`而不是`create`
variation_response = openai.Image.create_variation(
    image=generated_image,  # 从上面生成的图像获取
    n=2,
    size="1024x1024",
    response_format="url",
)

# 打印响应
print(variation_response)

类似于生成图像,我们可以将变体的URL用于下载图像,如下所示:

# 保存变体图像
variation_urls = [datum["url"] for datum in variation_response["data"]]  # 提取URL
variation_images = [requests.get(url).content for url in variation_urls]  # 下载图像
variation_image_names = [f"变体图像_{i}.png" for i in range(len(variation_images))]  # 创建名称
variation_image_filepaths = [os.path.join(image_dir, name) for name in variation_image_names]  # 创建文件路径
for image, filepath in zip(variation_images, variation_image_filepaths):  # 遍历变体
    with open(filepath, "wb") as image_file:  # 打开文件
        image_file.write(image)  # 将图像写入文件

接下来,我们可以使用PIL库来显示生成的原始图像和变体图像:

# 显示原始图像
print(generated_image_filepath)
Image.open(generated_image_filepath)

# 显示新的变体图像
for variation_image_filepaths in variation_image_filepaths:
    print(variation_image_filepaths)
    Image.open(variation_image_filepaths)

编辑图像

编辑端点使用DALL·E生成现有图像的指定部分。编辑需要三个输入:要编辑的图像、指定要重新生成的部分的蒙版和描述所需图像的提示。

必要输入:

  • image(str):要编辑的图像。必须是有效的PNG文件,小于4MB,并且是正方形。
  • mask(str):另一个图像,其完全透明区域(例如,alpha为零的区域)指示图像应该进行编辑。必须是有效的PNG文件,小于4MB,并且与图像具有相同的尺寸。
  • prompt(str):对所需图像的文本描述。最大长度为1000个字符。

可选输入:

  • n(int):要生成的图像数量。必须介于1和10之间,默认为1。
  • size(str):生成图像的尺寸。必须是以下尺寸之一:"256x256"、"512x512"或"1024x1024"。较小的图像生成速度更快,默认为"1024x1024"。
  • response_format(str):生成的图像返回格式。必须是"url"或"b64_json"之一,默认为"url"。
  • user(str):代表你的最终用户的唯一标识符,有助于OpenAI监测和检测滥用。了解更多信息。

编辑需要一个“蒙版”,以指定图像的哪个部分需要重新生成。蒙版是一个图像,其中alpha值为0(透明)的任何像素都将重新生成。下面的代码创建一个1024x1024的蒙版,其中底半部分是透明的:

# 创建一个蒙版
width = 1024
height = 1024
mask = Image.new("RGBA", (width, height), (0, 0, 0, 1))  # 创建一个不透明的图像蒙版

# 将底半部分设置为透明
for x in range(width):
    for y in range(height // 2, height):  # 仅循环遍历蒙版的底半部分
        # 将alpha(A)设置为零以使像素变为透明
        alpha = 0
        mask.putpixel((x, y), (0, 0, 0, alpha))

# 保存蒙版
mask_name = "底半部分蒙版.png"
mask_filepath = os.path.join(image_dir, mask_name)
mask.save(mask_filepath)

现在,我们可以使用这个蒙版来编辑图像,生成一些编辑的示例:

# 编辑图像

# 调用OpenAI API
edit_response = openai.Image.create_edit(
    image=open(generated_image_filepath, "rb"),  # 来自生成部分的图像
    mask=open(mask_filepath, "rb"),  # 来自上面的蒙版
    prompt=prompt,  # 来自生成部分的文本描述
    n=1,
    size="1024x1024",
    response_format="url",
)

# 打印响应
print(edit_response)

与前面的示例一样,我们可以将编辑的图像的URL用于下载图像,如下所示:

# 保存图像
edited_image_name = "编辑后的图像.png"  # 任何你喜欢的名称,文件类型应为.png
edited_image_filepath = os.path.join(image_dir, edited_image_name)
edited_image_url = edit_response["data"][0]["url"]  # 从响应中提取图像URL
edited_image = requests.get(edited_image_url).content  # 下载图像

with open(edited_image_filepath, "wb") as image_file:
    image_file.write(edited_image)  # 将图像写入文件

现在,我们可以使用PIL库来显示原始图像和编辑后的图像:

# 显示原始图像
print(generated_image_filepath)
Image.open(generated_image_filepath)

# 显示编辑后的图像
print(edited_image_filepath)
Image.open(edited_image_filepath)

小贴士

在使用DALL·E API时,以下是一些有用的小贴士:

  • 尝试不同的文本描述:通过尝试不同的文本描述来获得不同风格和主题的图像。
  • **实验编辑

**:尝试使用不同的蒙版和文本描述来编辑图像,以获得不同的效果。

  • 注意图像尺寸:选择适合你项目需要的图像尺寸,较小的图像生成速度更快。
  • 保留API密钥安全:确保不分享你的API密钥,以防止滥用。

现在,你已经了解如何使用DALL·E API生成、编辑和变换图像,你可以尝试将这些技巧应用到你的创意项目中,为你的设计工作增添一些魔法。

结论

DALL·E API为创意设计师和艺术家提供了一个令人兴奋的机会,可以通过简单的文本描述来生成、编辑和变换惊艳的图像。无论你是在制作杂志封面、广告宣传、艺术作品还是任何其他创意项目,DALL·E API都可以成为你的得力助手。

现在,赶快尝试一下这个令人着迷的技术,看看它如何为你的创意世界带来新的可能性!

本文由作者 王大神 原创发布于 大神网的AI博客。

转载请注明作者:王大神

原文出处:如何使用DALL·E API:创建惊艳图像的秘诀

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 2023年9月13日
下一篇 2023年9月13日

相关推荐

  • 使用InstructPix2Pix学习图像编辑指令:创造性地编辑您的图像

    想象一下,您正在处理一张普通的照片,但您有一些特殊的编辑要求。您想把照片中的一位朋友变成一个机械人,或者将照片中的场景转换成一个未来的科幻世界。通常情况下,您可能需要具备高超的图像编辑技能或使用复杂…

    2023年9月13日
    00
  • Stable Diffusion 提示词词缀使用指南(Prompt)

    你是否曾经想过,如何使用稳定扩散(Stable Diffusion)模型来生成精美的图像?本文将为你提供关于如何构建有效的提示词(Prompt)的详细指南,以便让AI按照你的愿望生成图像。无需担心,我们将逐步解释提示词的构…

    2023年9月14日
    00
  • ChatGPT DALL·E 3 绘画模型试用体验

    在数字化时代,人工智能技术不断进步,为我们带来了越来越多令人惊叹的应用。最近,我有幸体验了ChatGPT DALL·E 3绘画模型,这是一项令人兴奋的尝试。在这篇文章中,我将分享我的体验和感想。 申请与准备 首先,我…

    2023年10月12日
    00
  • Auto-Photoshop-StableDiffusion-Plugin:释放Photoshop中的AI潜力

    曾经,艺术家们依赖于各种工具和技巧来创作令人惊叹的图像。然而,如今,随着人工智能技术的不断进步,图像编辑的方式正在发生革命性的变化。在这个变革的前沿,有一款令人兴奋的插件——Auto-Photoshop-StableDiffus…

    2023年10月29日
    00
  • AI绘画模型网站大全

    最近,AI技术在艺术领域的应用引起了广泛的关注和热议。在过去的几年里,各种AI绘画模型不断涌现,为艺术家和创作者们提供了新的工具和创作灵感。今天,我们将为大家介绍一些顶级的AI绘画模型资源,让您能够轻松找…

    2023年4月1日
    03
  • 在Stable-diffusion-webui中安装instructpix2pix

    故事从一个普通的一天开始。你站在电脑前,手持一张美丽的风景照片,心中却有一些小小的遗憾。照片中的天空可能不够蓝,或者你想增加一些夕阳的光辉。过去,要实现这些编辑,你可能需要费时费力地使用复杂的图像编…

    2023年2月4日
    00
  • WordPress 6.4发布:全新多功能主题与更流畅的内容创作体验

    WordPress 6.4今日发布,带来了令人激动的更新,包括全新多功能主题Twenty Twenty-Four和更流畅的内容创作工具。这次更新将进一步提升网站编辑体验,不论你是新手还是经验丰富的创作者,都能在6.4版中找到满足内容…

    2023年11月11日
    00
  • 如何使用Python快速、方便地将照片背景换成白色

    在数字化时代,我们经常需要处理照片,不论是为了美化自己的社交媒体照片,还是为了编辑产品图片以展示在电子商务网站上。有时,我们可能想要改变照片的背景,使其更加吸引人或适应特定的需求。最近,我也遇到了这…

    2023年10月22日
    00
  • Midjourney新网站:探索更快、更强、更美的创意之旅

    在数字创意领域,我们时刻追求更多的灵感和工具,以激发我们的创造力。而今,Midjourney经过一番努力,终于上线了全新版本的网站,为创意设计者们带来了一个令人惊艳的平台。这个新网站不仅令人眼前一亮,还在速度…

    2023年10月26日
    00