SD微调 dreambooth & Lora & controlNet 持续更新中

微调:步骤

1 选择预训练模型 如ResNet VGG

2 准备新的数据集

3 构建模型

4 冻结部分模型

5 定义损失函数和优化器

6 微调模型

7 评估模型

8 微调的策略

https://www.zhangzhenhu.com/aigc/dreamBooth.html

dreambooth

(fix the object, then generate the same object in different scene)

DreamBooth 并不是一个独立的图像生成模型,它是一种微调技术,通过对现有的预训练好的图像生成模型进行微调, 进而实现能通过文本 Prompt 控制生成同一个主体的不同场景的图像。

DreamBooth 仅仅是在文本 Prompt 动了手脚,不需要对扩算模型做任何改动

最大的特点是Subject-Driven,针对某一个特定的主体,生成这个主体可以是一个动物或者某个物体,包括人都是可以的

todo: 实际训练一把人像或者狗

LORA

https://juejin.cn/post/7229787490257190973

代码链接

Low-Rank Adaptation of Large Language Models(Lora)是一种为了解决大语言模型微调而开发的技术。它将预训练模型权重冻结,并将可训练的秩分解矩阵注入到Transformer架构的每一层,大大减少了下游任务的可训练参数数量。具体来说,它将原始矩阵分解为两个矩阵的乘积,其中一个矩阵的秩比另一个矩阵的秩低。这时只需要运用低秩矩阵来进行运算,这样,可以减少模型参数数量,提高训练吞吐量,并且在模型质量上表现出色,且不会增加推理延迟。

代码改动: 就把unet attention里面的dense层换成了dense_lora

LoRA的做法是将一个权重矩阵分解为两个矩阵存储,能起到的作用可以用下图表示,参数量由(1000* 2000)减少到(1000* 2+2000*2), 大概300多倍!

controlNet

fixed your position,then generate a lot of same position but not different style pics

它是在预训练的 Stable Diffusion 模型基础上, 为其增加了一个额外的输入,这个输入是另外一张图像,比如姿态图、线稿、草图等等, 这个额外的输入作为 Stable Diffusion 的一个控制条件(condition), 它可以控制 Stable Diffusion 生成的图像结果,使其符合我们输入的条件图像特征。

ControlNet 在训练时,原始 Stable Diffusion 的 Unet 部分是冻住的,参数不更新, 仅仅 ControlNet 部分的参数进行更新

textual inversion

  • 目标:与DreamBooth一样,都是想要微调模型生成特定目标或风格的图像

  • 方法:通过在vocabulary中添加一个额外的embedding来学习输入的新特征。预训练模型的所有参数都锁住,只有新的embedding被训练

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值