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

目录
相关文章
|
23天前
|
机器学习/深度学习 人工智能 并行计算
"震撼!CLIP模型:OpenAI的跨模态奇迹,让图像与文字共舞,解锁AI理解新纪元!"
【10月更文挑战第14天】CLIP是由OpenAI在2021年推出的一种图像和文本联合表示学习模型,通过对比学习方法预训练,能有效理解图像与文本的关系。该模型由图像编码器和文本编码器组成,分别处理图像和文本数据,通过共享向量空间实现信息融合。CLIP利用大规模图像-文本对数据集进行训练,能够实现zero-shot图像分类、文本-图像检索等多种任务,展现出强大的跨模态理解能力。
66 2
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
当语言遇见智慧火花:GPT家族历代模型大起底,带你见证从平凡到卓越的AI进化奇迹!
【10月更文挑战第6天】随着自然语言处理技术的进步,GPT系列模型(Generative Pre-trained Transformers)成为该领域的明星。从GPT-1的开创性工作,到GPT-2在规模与性能上的突破,再到拥有1750亿参数的GPT-3及其无需微调即可执行多种NLP任务的能力,以及社区驱动的GPT-NeoX,这些模型不断进化。虽然它们展现出强大的语言理解和生成能力,但也存在如生成错误信息或偏见等问题。本文将对比分析各代GPT模型的特点,并通过示例代码展示其部分功能。
101 2
|
23天前
|
编解码 物联网 API
"揭秘SD文生图的神秘面纱:从选择模型到生成图像,一键解锁你的创意图像世界,你敢来挑战吗?"
【10月更文挑战第14天】Stable Diffusion(SD)文生图功能让用户通过文字描述生成复杂图像。过程包括:选择合适的SD模型(如二次元、2.5D、写实等),编写精准的提示词(正向和反向提示词),设置参数(迭代步数、采样方法、分辨率等),并调用API生成图像。示例代码展示了如何使用Python实现这一过程。
55 4
|
14天前
|
人工智能
AI科学家太多,谁靠谱一试便知!普林斯顿新基准CORE-Bench:最强模型仅有21%准确率
【10月更文挑战第21天】普林斯顿大学研究人员提出了CORE-Bench,一个基于计算可重复性的AI代理基准,涵盖计算机科学、社会科学和医学领域的270个任务。该基准旨在评估AI代理在科学研究中的准确性,具有多样性、难度级别和现实相关性等特点,有助于推动AI代理的发展并提高计算可重复性。
35 4
|
24天前
|
人工智能 自然语言处理
从迷茫到精通:揭秘模型微调如何助你轻松驾驭AI新热点,解锁预训练模型的无限潜能!
【10月更文挑战第13天】本文通过简单的问题解答形式,结合示例代码,详细介绍了模型微调的全流程。从选择预训练模型、准备新任务数据集、设置微调参数,到进行微调训练和评估调优,帮助读者全面理解模型微调的技术细节和应用场景。
61 6
|
1月前
|
人工智能 自然语言处理 安全
【通义】AI视界|Adobe推出文生视频AI模型,迎战OpenAI和Meta
本文精选了过去24小时内的重要科技新闻,包括微软人工智能副总裁跳槽至OpenAI、Adobe推出文本生成视频的AI模型、Meta取消高端头显转而开发超轻量设备、谷歌与核能公司合作为数据中心供电,以及英伟达股价创下新高,市值接近3.4万亿美元。这些动态展示了科技行业的快速发展和激烈竞争。点击链接或扫描二维码获取更多资讯。
|
29天前
|
机器学习/深度学习 人工智能 TensorFlow
解锁AI潜力:让开源模型在私有环境绽放——手把手教你搭建专属智能服务,保障数据安全与性能优化的秘密攻略
【10月更文挑战第8天】本文介绍了如何将开源的机器学习模型(如TensorFlow下的MobileNet)进行私有化部署,包括环境准备、模型获取与转换、启动TensorFlow Serving服务及验证部署效果等步骤,适用于希望保护用户数据并优化服务性能的企业。
48 4
|
29天前
|
机器学习/深度学习 人工智能 自然语言处理
揭开模型微调Fine-Tuning的神秘面纱:如何在预训练基础上巧妙调整,解锁定制AI解决方案的秘密武器
【10月更文挑战第8天】模型微调是在预训练模型基础上,利用特定领域数据进一步训练,以优化模型在特定任务上的表现。此方法广泛应用于自然语言处理和计算机视觉等领域,通过调整预训练模型的部分或全部参数,结合适当的正则化手段,有效提升模型性能。例如,使用Hugging Face的Transformers库对BERT模型进行微调,以改善文本匹配任务的准确率。
53 1
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
【AI大模型】BERT模型:揭秘LLM主要类别架构(上)
【AI大模型】BERT模型:揭秘LLM主要类别架构(上)
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
【AI大模型】ChatGPT模型原理介绍(下)
【AI大模型】ChatGPT模型原理介绍(下)

热门文章

最新文章

下一篇
无影云桌面