人工智能 | 文生图大模型

文摘   2024-11-07 08:00   北京  

简介

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 的用法。

推荐学习

人工智能测试开发训练营为大家提供全方位的人工智能测试知识和技能培训行业专家授课,实战驱动,并提供人工智能答疑福利内容包含ChatGPT与私有大语言模型的多种应用,人工智能应用开发框架 LangChain,视觉与图像识别自动化测试,人工智能产品质量保障与测试,知识图谱与模型驱动测试,深度学习应用带你一站式掌握人工智能测试开发必备核心技能,快速提升核心竞争力!


霍格沃兹测试学院
霍格沃兹测试学院致力于培养专业的测试人才,推动测试行业的技术更新和发展,我们本着此宗旨,为您提供测试技术培训和实战,让您真正的可以在测试能力上获得提升。
 最新文章