简介
Dall-E 由 OpenAI 发布,是一种基于深度学习的生成模型,它是一种改进的 GPT 模型,专门用于图像生成。Dall-E 可以根据文本描述生成与之相符合的原创性、真实的图像。
Dall-E 通过一个拥有 120 亿参数的 Transformer 模型来理解自然语言的输入,并生成相应的图片。这些图片不仅限于现实中已存在的图像,还包括虚拟的、现实中不存在的图像。
Dall-E 发展
Dall-E 和 Dall-E 2
Dall-E 最早发布于 2021 年 1 月 5 日由 OpenAI 发布,它具备生成逼真图像的能力。一年后的 2022 年 4 月 OpenAI 宣布了新版本的 DALL-E 2,这一版本具备更为强大的功能,并且在分辨率方便也提高了 4 倍。以下是 Dall-E 所具备的扩展的功能:
- 图像生成。
- 扩展图像。
- 修改已有图像。
- 根据已有的图像生成新的图像。
Dall-E 2 的局限性
尽管 Dall-E 2 的功能已经非常强大,然而开发者也公开提出了它的局限性,对于图像的属性,Dall-E 2 是没有一个很准确的判断的,并且细节方面还有很多的欠缺。
并且基于安全考虑,Dall-E 2 是不会生成包含暴力、政治等敏感图片的。
Dall-E 3 的增强
相比较 Dall-E 2 的图像生成,Dall-E 3 对图像的增强有以下几个方面:
- 提示优化:详细的提示会带来更为准确的图片结果。
- 清晰度:可选择standard标准与HD高清两种。
- 多尺寸:接受三种尺寸(1024px x 1024px、1792px x 1024px 和 1024px x 1792px)。
- 多风格:natural 自然和 vivid 生动两种。
应用场景
- 定制化图像生成
- 虚拟设定和游戏开发
- 产品设计和广告营销
- 自然语言处理和计算机视觉研究
实战示例
OpenAI 提供了三种 API 调用的方式,如下所示:
- Dall-E 3 和 Dall-E 2:根据文本提示从头开始创建图像。
- Dall-E 2:根据新的文本,替换预先存在的图像的某些区域。
- Dall-E 2:根据图像生成图像的变体。
生成图像
前提:已安装 openai 库
保存图片需要提前下载 requests 库:pip install requests
# 实例化 openai 的对象
client = OpenAI(base_url="xxx",api_key="xxxx")
def generate_image_path():
# 生成图片路径
return os.path.join("img_" + datetime.datetime.now().strftime("%Y%m%d%H%M%S") + ".png")
def test_image_normal():
# 文生图,指定模型,给出提示语和大小限制
response = client.images.generate(
model="dall-e-3",
prompt="一只猫在窗户边睡觉",
size="1024x1024",
)
# 得到生成的图片链接
image_url = response.data[0].url
print(image_url)
# 下载并保存图像
image_response = requests.get(image_url)
with open(generate_image_path(), 'wb') as f:
f.write(image_response.content)
增加图像生成的条件
def test_image_style():
# 文生图
response = client.images.generate(
model="dall-e-3",
prompt="一只猫在窗户边睡觉",
size="1024x1024",
style="natural",
quality="standard",
n=1
)
image_url = response.data[0].url
print(image_url)
生成多个图像
def test_image_num():
response = client.images.generate(
model="dall-e-2",
prompt="一只猫在窗户边睡觉",
n=3
)
for i, image in enumerate(response.data):
image_response = requests.get(image.url)
with open(generate_image_path(), 'wb') as f:
f.write(image_response.content)
print(f"生成的第{i}张图片地址是:{image.url}")
修改图像
下载 img1.png 下载 img2.png
def test_change_image():
# 将图1根据提示在图2的标记上进行修改
response = client.images.edit(
model="dall-e-2",
image=open("img1.png", "rb"),
mask=open('img2.png', 'rb'),
prompt="A sunlit indoor lounge area with a pool containing a flamingo",
n=1,
size="256x256"
)
# 生成的图像路径
image_url = response.data[0].url
# 存储图片
image_response = requests.get(image_url)
with open(generate_image_path(), 'wb') as f:
f.write(image_response.content)
生成变体图像
下载ori_img.png
def test_variation_image():
response = client.images.create_variation(
model="dall-e-2",
# 给出原图像
image=open("ori_img.png", "rb"),
n=1,
size="1024x1024",
)
# 获取生成的图片路径
image_url = response.data[0].url
# 保存图片
image_response = requests.get(image_url)
with open(generate_image_path(), 'wb') as f:
f.write(image_response.content)
总结
- 了解 Dall-E 的功能。
- 了解 Dall-E 的用法。
【霍格沃兹测试开发】7天软件测试快速入门带你从零基础/转行/小白/就业/测试用例设计实战
【霍格沃兹测试开发】最新版!Web 自动化测试从入门到精通/ 电子商务产品实战/Selenium (上集)
【霍格沃兹测试开发】最新版!Web 自动化测试从入门到精通/ 电子商务产品实战/Selenium (下集)
【霍格沃兹测试开发】明星讲师精心打造最新Python 教程软件测试开发从业者必学(上集)
【霍格沃兹测试开发】明星讲师精心打造最新Python 教程软件测试开发从业者必学(下集)
【霍格沃兹测试开发】精品课合集/ 自动化测试/ 性能测试/ 精准测试/ 测试左移/ 测试右移/ 人工智能测试
【霍格沃兹测试开发】腾讯/ 百度/ 阿里/ 字节测试专家技术沙龙分享合集/ 精准化测试/ 流量回放/Diff
【霍格沃兹测试开发】Pytest 用例结构/ 编写规范 / 免费分享
【霍格沃兹测试开发】JMeter 实时性能监控平台/ 数据分析展示系统Grafana/Docker 安装
【霍格沃兹测试开发】接口自动化测试的场景有哪些?为什么要做接口自动化测试?如何一键生成测试报告?
【霍格沃兹测试开发】面试技巧指导/ 测试开发能力评级/1V1 模拟面试实战/ 冲刺年薪百万!
【霍格沃兹测试开发】腾讯软件测试能力评级标准/ 要评级表格的联系我
【霍格沃兹测试开发】Pytest 与Allure2 一键生成测试报告/ 测试用例断言/ 数据驱动/ 参数化
【霍格沃兹测试开发】App 功能测试实战快速入门/adb 常用命令/adb 压力测试
【霍格沃兹测试开发】阿里/ 百度/ 腾讯/ 滴滴/ 字节/ 一线大厂面试真题讲解,卷完拿高薪Offer !
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。