本教程将向你展示如何使用DALL-E API从你的Raspberry Pi上生成随机的AI艺术。
近年来,人工智能(AI)是一个取得了巨大飞跃的领域,这在很大程度上要归功于OpenAI等团队的努力。
这些新项目的一个巨大优势是,其中许多项目允许你以实惠的价格使用它们的网络来执行各种任务。
由此带来的一个有趣功能是能够根据给定的提示生成艺术。有许多API可以实现这一点,但我们将重点关注的是OpenAI的DALL-E。
你可以在你的Raspberry Pi上使用DALL-E AI,根据你给出的提示生成图像。我们选择使用DALL-E,因为它的API非常简单,而且我们在之前的Raspberry Pi ChatGPT教程中已经探索过它。
https://pimylifeup.com/raspberry-pi-chatgpt/
当然,DALL-E不是免费使用的,你可以在其网站上查看其定价。虽然价格不是特别贵,但如果你试图生成大量图像,费用可能会累积起来。
使用DALL-E API的一个优点是,你可以执行通常需要昂贵图形处理器(GPU)来生成的AI任务。所有的计算都在他们的云服务器上处理,因此本指南甚至可以在Raspberry Pi Zero W上运行。
从你的Raspberry Pi生成AI图像的一个潜在用例是拥有一个定期更新的动态艺术显示屏。
设备
下面是在我们的Raspberry Pi上使用DALL-E生成AI图像时所使用的设备列表。
推荐设备
- Raspberry Pi
- Micro SD卡
- 电源适配器
- 以太网线或Wi-Fi
可选设备
- Raspberry Pi保护壳
- USB鼠标
- USB键盘
- HDMI线
- 显示器
以上设备都可以在在树莓派开发者和上海晶珩进行购买,本教程最后一次测试是在运行最新版本的Raspberry Pi OS Bookworm 64位的Raspberry Pi 5上进行的。
获取你的OpenAI API密钥以使用DALL-E
要在你的Raspberry Pi上使用DALL-E AI生成图像,你需要一个OpenAI API密钥。
以下步骤将指导你获取所需的API密钥。
1.在生成OpenAI API密钥之前,你必须注册一个账户。
你可以通过访问平台注册页面免费创建一个账户。如果你已经有了一个账户,你可以跳过这一步并登录。https://platform.openai.com/signup
2.登录账户后,你必须确保点击“API”选项,而不是“ChatGPT”。
3.进入API部分后,在侧边栏中点击“API keys”部分。在其折叠状态下,此选项也由挂锁图标表示。
4.现在你的设备已经打开了“API Keys”屏幕,你必须点击“Create New Secret Key”按钮。
5.系统将提示你给这个OpenAI密钥命名(1.)。这有助于在界面中更容易地识别该密钥。
设置名称后,点击“Create Secret key”(2.)按钮。
6.你的Raspberry Pi生成AI图像的一个潜在用例是拥有一个定期更新的动态艺术显示屏。
确保你复制了密钥,因为它将不会再次显示。复制密钥后,你可以继续本指南。
请记住,OpenAI不是一项免费服务。他们有时会给你一小笔信用额度来试用他们提供的各种AI模型。否则,你必须设置账单以使用该服务。
在你的Raspberry Pi上使用DALL-E生成图像
在本部分中,我们将向你展示如何使用AI DALL-E从你的Raspberry Pi上生成图像。
为了使这项工作能够完成,我们将编写一个使用OpenAI库的简短脚本。这个库允许我们用几行简短的代码轻松请求生成的图像。
准备你的Raspberry Pi
1.在我们可以编写脚本以使用DALL-E从你的Raspberry Pi上生成图像之前,我们必须做一些准备工作。
你的第一个任务是运行下面的两个命令来更新包列表和任何过时的包。
sudo apt update
sudo apt upgrade -y
2.升级过程完成后,我们必须安装Python、其虚拟环境模块和名为“pip”的包管理器。
你可以通过在终端中使用以下命令来安装这些包。
sudo apt install python3 python3-venv python3-pip
设置Python虚拟环境
3.现在我们已经有了所需的所有包,我们必须为我们的脚本设置一个Python虚拟环境。
这项任务的第一部分是创建一个目录来存储我们的脚本和虚拟环境。
使用下面的命令,我们使用mkdir命令在你的主目录中创建一个名为“dalle”的目录。
https://pimylifeup.com/mkdir-command-linux/
mkdir ~/dalle
4.创建目录后,你想使用cd命令切换到它。
https://pimylifeup.com/cd-command/
cd ~/dalle
5.在我们可以安装OpenAI Python库之前,我们必须创建虚拟环境。
在编写我们的脚本并安装OpenAI Python库之前,我们必须创建虚拟环境。
python3 -m venv env
6.现在,我们必须使用以下命令告诉终端使用这个虚拟环境。
你必须在之前创建的“dalle”目录内运行此命令。在使用你的Raspberry Pi的AI图像生成脚本时,你也必须运行此命令。
source env/bin/activate
安装OpenAI Python库
7.现在我们已经在虚拟环境中,我们可以安装OpenAI Python库。
这个库将允许我们轻松地使用DALL-E生成AI图像并将它们保存到我们的Raspberry Pi上。
python3 -m pip install openai
编写脚本以在Raspberry Pi上使用DALL-E生成图像
8.一切准备就绪后,我们可以继续编写一个Python脚本,该脚本将与DALL-E交互并使用其AI生成图像。由于我们之前安装了库,这个过程相对简单。
nano generate.py
编写Python脚本
9.在这个文件中,你必须输入以下行。这个脚本相当简单,但我们将随着讲解每个代码块。
导入所需库
a.这个脚本的第一行将导入OpenAI库。
我们将使用这个库向DALL-E AI发出请求以生成图像,并将其结果保存到Raspberry Pi上。
from openai import OpenAI
设置OpenAI库
c. 我们的下一步是实例化OpenAI库,并将其引用存储在我们名为“client”的变中。
我们需要传递给这个函数的唯一内容是你之前生成的密钥。请确保将“SECRETKEY”替换为你的OpenAI API密钥。
client = OpenAI(
api_key = 'SECRETKEY'
)
为DALL-E编写生成提示
d. 接下来,我们将创建一个名为“generation_prompt”的变量,用于存储我们对DALL-E AI的提示。这个提示是AI用于生成图像的内容。
在我们的示例中,我们将此变量设置为文本“一只白色的暹罗猫”。
generation_prompt="A white siamese cat"
从你的Raspberry Pi向DALL-E发出API调用
E.一切准备就绪后,我们可以使用OpenAI库生成一个新的图像。这个函数调用有几个不同的参数我们必须指定。
- model: 在本指南中,我们专注于使用DALL-E 3在我们的Raspberry Pi上生成图像。因此,我们将模型设置为“dall-e-3”。如果你愿意,可以通过将其设置为“dall-e-2”来使用更便宜的旧版本。
- prompt: 此参数允许你告诉DALL-E你想要生成什么图像、你想要的风格以及其他内容。在我们的示例中,我们传递了之前在脚本中设置的“generation_prompt”变量。
- size: 这允许你设置图像的大小。我们将其设置为“1024x1024”,因为这两个模型都支持此大小。
- 对于DALL-E 3,支持以下大小:
。1024×1024
1792×1024
1024×1792
。对于DALL-E 2,支持以下图像大小:
256×256
512×512
1024×1024
- quality: 仅对于DALL-E 3,你可以指定是想要“standard”还是“hd”质量。HD图像生成的最终细节质量更好。但是,HD图像生成的成本更高。
- n: 我们在这里设置的最后一个选项是要为你的提示生成的图像数量。
。对于DALL-E 3,此值只能设置为1。如果你想要同一提示的变体,则需要进行多次调用。
。对于DALL-E 2,你可以将此值设置为1到10之间的任意值。
response = client.images.generate(
model="dall-e-3",
prompt=generation_prompt,
size="1024x1024",
quality="standard",
n=1
)
处理生成的图像
f. 在收到DALL-E AI图像生成器的响应后,我们将想要从中获取URL并将其存储在我们的“image_url”变量中。我们将使用这个URL在下一个函数调用中下载并保存图像。
image_url = response.data[0].url
g. 最后,为了结束脚本,我们使用“urllib”库从DALL-E检索并保存AI生成的图像到我们的Raspberry Pi,文件名为“image.png”。
urllib.request.urlretrieve(image_url, "image.png")
最终脚本
10.在添加所有之前的代码行之后,你应该会得到与我们下面所示类似的内容。
from openai import OpenAI
import urllib.request
client = OpenAI(
api_key = 'SECRETKEY'
)
generation_prompt="A white siamese cat"
response = client.images.generate(
model="dall-e-3",
prompt=generation_prompt,
size="1024x1024",
quality="standard",
n=1
)
image_url = response.data[0].url
urllib.request.urlretrieve(image_url, "image.png")
11.现在,你可以通过按CTRL + X,然后按Y,再按ENTER来保存并退出文件。
测试你的AI图像生成脚本
12.脚本编写完成后,我们现在可以运行它来生成AI图像并将其保存到我们的Raspberry Pi上。脚本将使用你定义的提示向OpenAI请求一个新图像。
python3 generate.py
13.图像生成完成后,你将在与脚本相同的目录中得到一个名为“image.png”的文件。此图像是由DALL-E生成的并保存到你的Raspberry Pi上的图像。下面是一个使用提示“一只白色的暹罗猫”生成的图像示例。
使用OpenAI的DALL-E生成的图像