Hugging Face发布diffuser模型AI绘画库初尝鲜!

简介: 本文讲解 Hugging Face 发布的专注于 diffuser 模型的开源库,仅仅通过几行代码就开始生成自己的艺术作画,并对比相同文本提示下各大厂商业产品生成的结果。
143a05b90be04f7c816b08fe943b618a~tplv-k3u1fbpfcp-zoom-1.image
💡 作者: 韩信子@ ShowMeAI
📘 深度学习实战系列https://www.showmeai.tech/tutorials/42
📘 TensorFlow 实战系列https://www.showmeai.tech/tutorials/43
📘 本文地址https://www.showmeai.tech/article-detail/312
📢 声明:版权所有,转载请联系平台与作者并注明出处
📢 收藏 ShowMeAI查看更多精彩内容
69dc3270c6cf40e88f2f60d7401db4cc~tplv-k3u1fbpfcp-zoom-1.image

工具库 transformers 的开源方 Hugging Face 刚刚发布了一个用于构建 diffuser 模型的全新库。如果您不知道diffuser模型是什么,你可以查看 ShowMeAI 的另外一篇文章介绍 📘 你给文字描述, AI 艺术作画,精美无比!附源码,快来试试!

随着 AI 技术的发展,我们现在在互联网上看到的那些美丽、富有创意、极具艺术美感的绘画与视频,很多是来自 AI 之手!典型的AI艺术创作例如 OpenAI 的 DALL-E2、谷歌的 Imagen 和 Midjourney 的产品,所有这些产品服务都使用 diffuser 模型,下图为一些创作结果。

ec4c416b49024ea38f4440df20350224~tplv-k3u1fbpfcp-zoom-1.image

Hugging Face 发布了一个专注于 diffuser 模型的开源库,我们可以基于它,仅仅通过几行代码就开始生成自己的艺术作画。不过这个 diffuser 库是一个基础实现版本,训练和学习的数据也没有上面提到的几个大厂商业产品多,在本篇文章中,ShowMeAI 就带大家来探索新库,并生成一些我们自己的艺术画作,也对比一下相同文本提示下的大厂商业产品生成的结果。

💡 快速尝鲜

我们先在命令行通过 pip install diffusers 安装本次使用到的工具库,然后导入我们需要用到的模块和功能(在这里我们调用整个扩散模型流水线 DiffusionPipeline),并且我们导入一个小型预训练模型ldm-text2im-large-256

from diffusers import DiffusionPipeline

model_id = "CompVis/ldm-text2im-large-256"

# 预训练模型
ldm = DiffusionPipeline.from_pretrained(model_id)

接着我们就可以基于这个预训练模型作画啦,我们唯一需要做的事情就是给模型一句文本提示(在 diffuser 模型里叫 prompt 提示)。下面我们尝试生成一幅『松鼠吃香蕉』的画作。

# 给定文本提示和作画
prompt = "A painting of a squirrel eating a banana"
images = ldm([prompt], num_inference_steps=50, eta=.3, guidance_scale=6)
images[0]
0ab7d7e6afcd42349c826b59bc8628df~tplv-k3u1fbpfcp-zoom-1.image

上面就是模型最终生成的图像,当然受限于我们的计算资源和预训练模型大小,我们生成的图像不像 DALL-E 2 那样令人惊艳,但是我们仅仅用 5 行代码也生成了一副和提示文本匹配的图像,还是很让人感觉神奇。

下面是『松鼠吃香蕉』的另一幅画:

images = ldm(
    [prompt],
    num_inference_steps=100,
    eta=.3,
    guidance_scale=6
)
images['sample'][0]
8baba137fd0243168afd36daf520b6d8~tplv-k3u1fbpfcp-zoom-1.image

💡 文本提示

📌 高分辨率

自三大扩散模型(DALL-E 2、Imagen 和 Midjourney)发布以来,大家都开始发挥想象力,尝试各种各样的文本提示,让模型生成艺术图。例如,许多人发现添加『4K画质』或『在Unity中渲染』可以增强三巨头生成的图像的真实感(尽管它们都没有以 4K 分辨率生成)。

如果我们对 Hugging Face 的 diffuser 模型进行同样的尝试,会发生什么?

prompt = "a photorealistic image of a squirrel eating a banana"
images = ldm(
    [prompt],
    num_inference_steps=100,
    eta=.3,
    guidance_scale=6
)
images['sample'][0]
96de856546d14c9eab222e082e561dd1~tplv-k3u1fbpfcp-zoom-1.image
6472bd80f0f74061a540076ef262bc89~tplv-k3u1fbpfcp-zoom-1.image
a11a01e0f71e43359c9c3421c0daa6c2~tplv-k3u1fbpfcp-zoom-1.image

很显然它还不能生成高清的 4K 图,但是图像中的一些细节有丰富一些。

📌 场景与逻辑

我们把场景做得复杂一点点,比如给到的文本提示中,有不同的物体和位置关系,我们看看会生成什么样的结果,提示文字为an italian person eating pizza on top of the colosseum in rome

prompt = "an italian person eating pizza on top of the colosseum in rome"
images = ldm(
    [prompt],
    num_inference_steps=100,
    eta=.3,
    guidance_scale=6
)
images['sample'][0]
a38e215440ab486380b3ba5fe5ada853~tplv-k3u1fbpfcp-zoom-1.image

看得出来,这个简单的 diffuser 模型在很努力地复现我们文本中提到的人、斗兽场、披萨,但是对于更细节的位置关系,似乎它还没有做得非常好,这里的人并没有坐在罗马斗兽场顶部,而且斗兽场的拱门颜色和天空颜色也不完全匹配。

📌 更抽象的情况

回到松鼠,尝试生成更抽象的图像,例如 a giant squirrel destroying a city『一只巨大的松鼠摧毁一座城市』,我们随机采样了一些结果如下,好坏参半:

prompt = "a giant squirrel destroying a city" 
images = ldm(
    [prompt],
    num_inference_steps=100,
    eta=.3,
    guidance_scale=6
)
images['sample'][0]
abb452c5e35d41c88c210206ee1f5ad5~tplv-k3u1fbpfcp-zoom-1.image
prompt = "a giant squirrel destroying a city"
images = ldm(
    [prompt],
    num_inference_steps=50,
    eta=.3,
    guidance_scale=6
)
images['sample'][0]
de77cebe69f9498c8601a0149d0ff505~tplv-k3u1fbpfcp-zoom-1.image
prompt = "a giant squirrel destroying a city"
images = ldm(
    [prompt],
    num_inference_steps=100,
    eta=.3,
    guidance_scale=2
)
images['sample'][0]
8298c7818ba54e02a8d410f258436ccb~tplv-k3u1fbpfcp-zoom-1.image

我们似乎观察到,目前这个小模型似乎很难融合两个通常相关度没那么高的概念,即『(巨型)松鼠』和『城市』。我们从一些生成的效果不是特别好的图片可以观察出这一点,下面的结果中,要么对城市与天际线做了很好的描述却忽略了松鼠,要么对松鼠和自然环境做了很好的描述,却没有特别强的城市背景:

prompt = "a landscape image showing a giant squirrel destroying a city"
images = ldm(
    [prompt],
    num_inference_steps=50,
    eta=.8,
    guidance_scale=2
)
images['sample'][0]
1460dea771f14737a00bdbb35fdae02b~tplv-k3u1fbpfcp-zoom-1.image
prompt = "a landscape image showing a giant squirrel destroying a city"
images = ldm(
    [prompt],
    num_inference_steps=50,
    eta=.8,
    guidance_scale=2
)
images['sample'][0]
b5d3301646924d12a7d0fd0331b01736~tplv-k3u1fbpfcp-zoom-1.image

多次运行这些提示后,我们发现当前这个小模型下,总是在主体之间切换但很难将两者融合在一起。

💡 DALL-E 2的结果

我们把同样的内容"a dramatic shot of a giant squirrel destroying a modern city"灌给 DALL-E 2 ,让它从提示做图,得到的结果如下:

4be3e98615ca4363a98c29b3b290cb9e~tplv-k3u1fbpfcp-zoom-1.image

果然在更庞大的AI模型下,生成的结果更自然,也能把不同的细节关联起来。

💡 总结

这就是 Hugging Face 新库的初尝鲜!尽管目前开源的小模型上,还有一系列的问题,但是这类模型就像一把钥匙,解锁一些令人敬畏的人工智能类人的艺术创造水平。

短期看,这个小小的预训练模型当然无法取代 DALL-E 2、Imagen 或 Midjourney,但随着开源社区的强大,它会表现越来越好。

参考资料

e9190f41b8de4af38c8a1a0c96f0513b~tplv-k3u1fbpfcp-zoom-1.image

目录
相关文章
|
4天前
|
人工智能 供应链 PyTorch
TimesFM 2.0:用 AI 预测流量、销量和金融市场等走势!谷歌开源超越统计方法的预测模型
TimesFM 2.0 是谷歌研究团队开源的时间序列预测模型,支持长达2048个时间点的单变量预测,具备零样本学习能力,适用于零售、金融、交通等多个领域。
68 23
TimesFM 2.0:用 AI 预测流量、销量和金融市场等走势!谷歌开源超越统计方法的预测模型
|
8天前
|
人工智能 编解码
通义万相2.1:VBench榜单荣登第一!阿里通义万相最新视频生成模型,支持生成1080P长视频
万相2.1是阿里通义万相最新推出的视频生成模型,支持1080P无限长视频生成,具备复杂动作展现、物理规律还原、艺术风格转换等功能。
168 26
通义万相2.1:VBench榜单荣登第一!阿里通义万相最新视频生成模型,支持生成1080P长视频
|
8天前
|
机器学习/深度学习 人工智能 安全
GLM-Zero:智谱AI推出与 OpenAI-o1-Preview 旗鼓相当的深度推理模型,开放在线免费使用和API调用
GLM-Zero 是智谱AI推出的深度推理模型,专注于提升数理逻辑、代码编写和复杂问题解决能力,支持多模态输入与完整推理过程输出。
112 24
GLM-Zero:智谱AI推出与 OpenAI-o1-Preview 旗鼓相当的深度推理模型,开放在线免费使用和API调用
|
10天前
|
数据采集 人工智能 算法
Seer:上海 AI Lab 与北大联合开源端到端操作模型,结合视觉预测与动作执行信息,使机器人任务提升成功率43%
Seer是由上海AI实验室与北大等机构联合推出的端到端操作模型,结合视觉预测与动作执行,显著提升机器人任务成功率。
49 20
Seer:上海 AI Lab 与北大联合开源端到端操作模型,结合视觉预测与动作执行信息,使机器人任务提升成功率43%
|
10天前
|
人工智能 测试技术
陶哲轩联手60多位数学家出题,世界顶尖模型通过率仅2%!专家级数学基准,让AI再苦战数年
著名数学家陶哲轩联合60多位数学家推出FrontierMath基准测试,评估AI在高级数学推理方面的能力。该测试涵盖数论、实分析等多领域,采用新问题与自动化验证,结果显示最先进AI通过率仅2%。尽管存在争议,这一基准为AI数学能力发展提供了明确目标和评估工具,推动AI逐步接近人类数学家水平。
62 37
|
10天前
|
人工智能 编解码 自然语言处理
Aria-UI:港大联合 Rhymes AI 开源面向 GUI 智能交互的多模态模型,整合动作历史信息实现更加准确的定位
Aria-UI 是香港大学与 Rhymes AI 联合开发的多模态模型,专为 GUI 智能交互设计,支持高分辨率图像处理,适用于自动化测试、用户交互辅助等场景。
64 11
Aria-UI:港大联合 Rhymes AI 开源面向 GUI 智能交互的多模态模型,整合动作历史信息实现更加准确的定位
|
2天前
|
存储 人工智能 数据可视化
昇腾AI行业案例(五):基于 DANet 和 Deeplabv3 模型的遥感图像分割
欢迎学习《基于 DANet 和 Deeplabv3 模型的遥感图像分割》实验。在本实验中,你将深入了解如何运用计算机视觉(CV)领域的 AI 模型,搭建一个高效精准的遥感地图区域分割系统,并利用开源数据集和昇腾 AI 芯片对模型效果加以验证。
6 0
昇腾AI行业案例(五):基于 DANet 和 Deeplabv3 模型的遥感图像分割
|
3天前
|
存储 Serverless 文件存储
AI 场景下,函数计算 GPU 实例模型存储最佳实践
当前,函数计算 FC 已被广泛应用在各种 AI 场景下,函数计算支持通过使用容器镜像部署 AI 推理应用,并且提供多种选项来访问训练好的模型。为了帮助开发者高效地在函数计算上部署 AI 推理应用,并快速解决不同场景下的模型存储选型问题,本文将对函数计算的 GPU 模型存储的优缺点及适用场景进行对比分析,以期为您的模型存储决策提供帮助。
|
13天前
|
人工智能 物联网
如何将Together AI上基于Qwen2-7B训练的模型部署到ModelScope平台
如何将Together AI上基于Qwen2-7B训练的模型部署到ModelScope平台
56 10
|
2天前
|
机器学习/深度学习 人工智能 自然语言处理
昇腾AI行业案例(四):基于 Bert 模型实现文本分类
欢迎学习《昇腾行业应用案例》的“基于 Bert 模型实现文本分类”实验。在本实验中,您将学习如何使用利用 NLP (natural language processing) 领域的AI模型来构建一个端到端的文本系统,并使用开源数据集进行效果验证。为此,我们将使用昇腾的AI硬件以及CANN等软件产品。
10 0