AI 绘画核心技术与实战
南柯
某头部大厂图像团队技术 leader,高级算法专家
6373 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 36 讲
AI 绘画核心技术与实战
15
15
1.0x
00:00/00:00
登录|注册

18|DreamBooth和LoRA:低成本实现IP专属的AI绘画模型

你好,我是南柯。
学完前两章内容,我们已经掌握了 AI 绘画的基本原理,也熟悉了 AI 绘画的经典解决方案。从这一讲开始,我们正式进入课程的综合演练篇,一起探讨图像定制化生成与编辑的经典算法方案。
使用 Stable Diffusion 模型的时候,基于 prompt 生成图像已经是我们比较熟悉的模式,比如一个人在某个地方做某件事。这种方式生成的图像类似开盲盒,因为我们在看到效果之前,并不确定图中生成的物体和风格是什么样的。
而接下来我们要学习的定制化图像生成技术就不同了,它的目标是控制指定的一个人在某个地方做某件事,或者控制生成的图片是某只动物,再或者生成的图像是某个确定的风格。
可不要小看了这个定制化的思想,海外非常流行的 LensaAI 和国内风靡一时的“妙鸭相机”,它们都是定制化图像生成的具体产品方案。今天这一讲,我们要学习三种经典的定制化算法方案,分别是 Textual Inversion、DreamBooth 和 LoRA。

Textual Inversion

为了帮你更好地理解 Textual Inversion 这个算法,我先带你回顾下 SD 词嵌入向量的使用方式。
在 SD AI 绘画过程中,我们输入的 prompt 首先会经过 tokenizer 完成分词,得到每个分词的 token_id。之后在预训练的词嵌入库中根据 token_id 拿到词嵌入向量,并将这些词嵌入向量拼接在一起,输入到 CLIP 的文本编码器。接着,经过 CLIP 文本编码器提取到的文本表征,便可以通过交叉注意力机制控制图像生成。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

LoRA:低成本实现IP专属的AI绘画模型 LoRA是一种低成本实现IP专属的AI绘画模型的方法,通过矩阵的秩因子分解,将处理一个大的权重矩阵的任务转变为处理两个较小的权重矩阵,从而有效减少可学习参数,为模型训练和存储提供便利。LoRA技术不仅可以用于大语言模型的训练,还能够用于AI绘画模型的微调。相比原始模型,LoRA的参数量少,训练效率高,对硬件环境的要求更低,且在训练后可以直接将LoRA添加到原模型中,模型的推理速度不受任何影响。此外,LoRA的使用还能节省存储空间。总的来说,LoRA技术为定制化图像生成提供了一种低成本、高效率的解决方案。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《AI 绘画核心技术与实战》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(3)

  • 最新
  • 精选
  • 易企秀-郭彦超
    置顶
    老师,关于Textual Inversion您有没有这方面的研究: 目前S需要输入几张图像进行训练才能获取对应的特征,去替换对应位置的clip embedding输入,那有没有一种不需要训练的方案, 比如我给一张或多张图,通过一个模型去提取对应的特征,然后将这些特征替换输入的文本token embedding,进而实现类似的效果,大大降低了使用成本,交互上也更便捷了

    作者回复: 你好,这个问题非常好。事实上,这也是单张图像、无需训练实现AI相册的精髓所在,我们最近已经突破了这个技术,但是在操作过程中要加入很多其他技巧才能实现DreamBooth这种多图训练的效果。后面在加餐中会和大家探讨这种One-shot Train-Free的技术,敬请期待~

    2023-08-28归属地:北京
    4
  • Seeyo
    老师,请教两个问题 1、关于dreambooth和lora,除了计算能耗外,dreambooth的效果是否基本优于lora? 2、人物定制方面,我想定制多个人物,比如甲乙丙丁,在我实验dreambooth时,我先训练了甲,然后拿甲得到的模型去训练乙之后,发现模型的画质和画风大幅下降。请问多人物训练该如何通过dreambooth制定? 如果走lora路线,比如制作十个lora,让模型一同加载,是否会影响人物人脸的一致性?(这部分我还未开始实验) 想听听老师对于多人物定制的建议,因为线上部署时,希望模型初始化只发生在服务启动环节,后续不做模型的切换。

    作者回复: 你好。针对第一个问题,我个人的经验来看,DreamBooth和LoRA的效果是差不多的,但LoRA的可学习参数更好,对于抑制过拟合会有一定的作用。针对第二个问题,如果是定制多个人物,我建议还是通过一个LoRA来实现,在训练的时候注意给每个人物打上独立的tag(第23讲会包含这部分技巧),这样实际部署时,同一个LoRA模型用不同的tag触发不同的形象。如果按照甲乙丙丁的方式去训练,会出现模型能力遗忘和部署困难两个问题。如果10个LoRA模型一起加载,大概率会出现四不像的问题,因为本质上来说,10个LoRA的权重都需要通过weight加载到基础模型上。希望能够帮助到你。

    2023-08-28归属地:上海
    2
    3
  • Toni
    当训练某个LoRA1 时,基础模型W1 的参数保持不变。如果W1的维度是d1xd1, 训练LoRA1时调整两个矩阵 A1 和矩阵 B1 的权重,最后A1xB1的维度也将是d1xd1,因此输出的结果就可以表示为W1+ A1xB1。 问题1: 在使用LoRA1 时,基础模型只能选W1? 问题2: 使用LoRA1 时,如果选择了另一个基础模型W2,其具有d2xd2的维度,输出W2+ A1xB1是否会严重偏离预期? 如何评估这样的结果?

    作者回复: 你好。针对第一个问题,实际上对于AI绘画这个任务,我们的LoRA模型作用于UNet中Attention模块的投影层,也就是用于计算Q、K、V向量的投影矩阵。对于一个AI绘画基础模型而言,我们知道其中UNet有多个注意力层,最终LoRA权重需要分别作用于这些层。LoRA模型和基础模型是绑定的。针对问题2,理解了问题1问题2就好懂了,举例来说,对于SD1.5和它的一个微调模型而言,网络整体结构是一样的,只是模型权重不同,因此问题中的d2和d1是一样的。LoRA还能起作用,但是效果上会有折损,尤其当两个基础模型原始风格差距较大的时候。这里没有很好的评估方式,对于AI绘画模型的定制化生成任务而言,更多的还是主观评估。希望能帮助到你。

    2023-08-29归属地:瑞士
    1
收起评论
显示
设置
留言
3
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部