聚热点 juredian

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

来源:AI科技评论

编辑:桃子

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

作为一个强大、公开且足够简单的模型,最近大火的 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/

本文经授权转载自微信公众号「AI科技评论」(ID:aitechtalk)

搜索建议: