大神微调Stable Diffusion,打造神奇宝贝新世界

简介: 大神微调Stable Diffusion,打造神奇宝贝新世界

【新智元导读】不再依赖提示库,输入任意文本都可生成。


作为一个强大、公开且足够简单的模型,最近大火的 Stable Diffusion 在文本生成图像之外,给了大家无限的创作可能性。

最近,来自 Lambda Labs 的机器学习研究员 Justin Pinkney 对该模型进行了微调,构建了一个神奇宝贝生成器!

来看一些有趣的例子~

下图是输入名字后生成的一些神奇宝贝:戴珍珠耳环的少女、奥巴马、特朗普、鲍里斯·约翰逊、龙猫、Hello Kitty。

Lady Gaga、鲍里斯·约翰逊、普京、默克尔、特朗普、柏拉图:

耶稣基督:

除了现有的角色和公共人物,你还可以输入一个描述来生成自己想象的神奇宝贝:骷髅祭司

你也可以输入自己的姓名或网名,生成属于自己的神奇宝贝形象。这可太酷了,推特上的网友纷纷用自己的名字展开创作,看看自己如果变成神奇宝贝会是什么样子。

图注:网友 Jo Barf Creepy 的神奇宝贝形象

图注:网友 Elizabeth Holmes 的神奇宝贝形象

图注:网友 Upbeatblue 的神奇宝贝形象

图注:网友 Onion-sama 的神奇宝贝形象

输入一些漫画角色的名字也可以获得相匹配的神奇宝贝:

而那些陪伴人们童年的神奇宝贝在这个生成器中也有了新的样貌:皮卡丘、妙蛙种子、喷火龙、树才怪、路卡利欧、梦幻。

神奇宝贝生成器是如何“生成”的


Pinkney 在推特上展示了这个神奇宝贝生成器的训练过程。

传送门:https://github.com/LambdaLabsML/examples/tree/main/stable-diffusion-finetuning他表示,Stable Diffusion 是一个很好的通用模型,但要获得特定风格的输出不是件容易的事,这通常需要做大量枯燥的工作,制作复杂的文本提示库,或者你也可以偷懒只对图像生成模型进行微调。Pinkney 在神奇宝贝图像的数据集上对初始的 Stable Diffusion 进行了微调。首先是构建一个数据集。数据集包含神奇宝贝图像和对应的文本描述,比如妙蛙种子被描述成“一个红眼睛的绿色神奇宝贝图像”,绿毛虫则被描述为“一个长着红鼻子的绿黄两色玩具”。

图注:神奇宝贝数据集当然,这些描述不是人工完成的,而是使用了神经网络来代劳,即图像描述模型 BLIP。虽然这些描述还不是十分完美,但也足够用了。然后,他在 A6000 上只花费了几个小时对 AI 模型进行训练,让模型学习以神奇宝贝的风格来生成图像,但将先前的知识保留一段时间,最终对数据集产生过拟合。开始时,样本是正常图像的样子,然后逐渐获得神奇宝贝的风格,随着训练的继续,最终呈现一个与原始提示不同的神奇宝贝图像:这是一种很简单的微调,但它运行得非常好。有了这样一个微调后的模型,无论你给它什么提示,它都会生成神奇宝贝。所以不必再煞费苦心地想提示语了。在创建神奇宝贝时,你可以选择输出多个:

图注:带翅膀的机械猫Pinkney 表示,欢迎大家用更复杂的方式把这个模型专门地用在新领域。像这样的小工具就是 Stable Diffusion 这类 AI 模型开源好处的体现。

One more thing


这个模型在网上引起创作热潮后,Pinkney 又发布了一篇博客补充了一些额外的工作细节。

他发现,令人惊讶的是,这个模型竟然设法记住了初始 Stable Diffusion 的一些通用知识,而它只是在一个有限的数据集上训练了几千步。但是,对神奇宝贝进行微调时,模型实际上很快就会开始过度拟合,如果只是以一种简单的方式从中采样,模型就会为新的提示生成胡言乱语式的神奇宝贝,也就是说,它已经灾难性地遗忘了它所训练的原始数据)。但是 Stable Diffusion 在训练期间保持模型的指数移动平均 (EMA) 版本,通常用于推理。因此,如果使用 EMA 权重,我们实际上是在使用原始模型和微调模型的平均值。事实证明,这对于生成神奇宝贝而言是必不可少的。此外,你还可以通过直接将新模型与初始模型的权重进行平均来微调效果,以控制生成神奇宝贝的数量。微调和对模型进行平均的操作可以将原始内容与微调后的风格有效混合。

图注:左边是完全微调的模型,右边是只微调注意力层的模型。另外,你也可以冻结模型的不同部分来进行微调,比如上图是两种微调方式的生成效果,可以看到,只微调了注意力层的模型可以生成更正常的 Yoda,但并不太擅长制作神奇宝贝。

参考资料:

https://www.justinpinkney.com/pokemon-generator/

相关文章
|
Linux
认识Linux指令之 “tar” 指令
认识Linux指令之 “tar” 指令
292 0
认识Linux指令之 “tar” 指令
|
7月前
|
机器学习/深度学习 人工智能 程序员
Reflexion:让AI智能体学会反思的神奇技术
想象一下AI智能体能像人类一样从错误中学习,Reflexion技术让智能体不再需要重新训练就能自我改进。本文通过一个智能体助手小R的成长故事,带你轻松理解这个改变智能体学习方式的创新技术。
432 2
|
机器学习/深度学习 计算机视觉
RT-DETR改进策略【模型轻量化】| 替换骨干网络为 MobileViTv1高效的信息编码与融合模块,获取局部和全局信息
RT-DETR改进策略【模型轻量化】| 替换骨干网络为 MobileViTv1高效的信息编码与融合模块,获取局部和全局信息
696 62
RT-DETR改进策略【模型轻量化】| 替换骨干网络为 MobileViTv1高效的信息编码与融合模块,获取局部和全局信息
|
存储 机器学习/深度学习 编解码
免费的视频增强模型Video2X
免费的视频增强模型Video2X
2591 2
|
XML 安全 Linux
【Linux】深入探究CentOS防火墙(Firewalld):基础概念、常用命令及实例操作
【Linux】深入探究CentOS防火墙(Firewalld):基础概念、常用命令及实例操作
|
自然语言处理 Python
如何使用自然语言处理库`nltk`进行文本的基本处理
这段Python代码展示了如何使用`nltk`库进行文本的基本处理,包括分词和词频统计。首先需要安装`nltk`库,然后通过`word_tokenize`方法将文本拆分为单词,并使用`FreqDist`类统计每个单词的出现频率。运行代码后,会输出每个词的出现次数,帮助理解文本的结构和常用词。
411 1
|
存储 大数据 关系型数据库
从 ClickHouse 到阿里云数据库 SelectDB 内核 Apache Doris:快成物流的数智化货运应用实践
目前已经部署在 2 套生产集群,存储数据总量达百亿规模,覆盖实时数仓、BI 多维分析、用户画像、货运轨迹信息系统等业务场景。
790 0
|
设计模式 网络协议 算法
《跟闪电侠学Netty》阅读笔记 - Netty入门程序解析(一)
《跟闪电侠学Netty》阅读笔记 - Netty入门程序解析(一)
452 1
《跟闪电侠学Netty》阅读笔记 - Netty入门程序解析(一)
|
Linux
支持exfat和ntfs格式的U盘
该文档提供了在Linux系统中支持exFAT和NTFS格式U盘的方法。首先,通过安装EPEL库(需管理员权限)开始,使用`yum -y install epel-release`命令。接着,对于RHEL/CentOS 7,需添加Nux Dextop仓库并安装exfat支持库,命令为`rpm -Uvh
719 0
|
编解码 数据可视化 定位技术
Python中gdal读取多波段HDF栅格遥感影像数据图层文件并依据像素绘制直方图
Python中gdal读取多波段HDF栅格遥感影像数据图层文件并依据像素绘制直方图
429 1

热门文章

最新文章

下一篇
开通oss服务