本期我们聊聊模子融合和模子练习。光用别人的模子能满足一时之需,但我们想更进一步,融入个人的审美导向,就必要自己天生模子。实在不难,只要一步一步跟着做就行~
模子融合
模子融合按照字面意思理解就行。其优势是可以综合两个模子的特点,比方三次元和二次元的融合,可能有非常奇异的效果。我们先学习一下界面。
模子A,B(C):最少归并2个模子,最多归并3个模子。
自定义名称【可选】:融合模子的名字,建议把两个模子和所占比例加入到名称之中,比方“Anything_v4.5_0.5_3Guofeng3_0.5”
融合比例M:意思是模子A占(1-M)x100%, 模子B占Mx100%
融合算法:推荐用“加权和”
输出模子格式:ckpt是默认格式,safetensors格式可以理解为CKPT的升级版,可以拥有更快的AI绘图天生速率,而且不会被反序列化攻击。
**存储办精度模子:**通过降低模子的精度来淘汰显存占用。
复制配置文件:选择A,B 或 C即可。
嵌入VAE模子:嵌入当前的vae模子,相当于加了滤镜。缺点是会增加模子巨细。
删除匹配键名的表达式的权重【可选】:可以理解为,你想删除模子内的某个元素时,可以将其键值进行匹配删除。
我们尝试归并Anything_v4.5(二次元)和3Guofeng3_0(三次元)两种风格。看看会不会有风趣的事情发生。
归并速率非常快,耗时为2分左右,在右侧我们已经可以看到输出后的模子路径已自动放置Stable Diffusion的主模子目次内,我们无需任何设置就已经可以加载并使用归并后的模子。
我们用同一个prompt在A,B和AB模子天生一张图片看看(为了便于比力,接纳ControlNet控制画面内容):
模子A:国风,偏真人效果

咒语:
- best_quality, masterpiece, 4K, 1girl, chinese style, hanfu, smiling, red lips, pursed lips, closed mouse, left hand down, green belts, landscape, hill, mountain, stone, tree, streams, pear blossom, birds, petals, windy, blurry foreground, blurry backgound
- Negative prompt: EasyNegative, badhandv4, (easynegative:1.0), (worst quality, low quality:1.4), (lip, nose, tooth, rouge, lipstick, eyeshadow:1.4), (blush:1.2), (jpeg artifacts:1.4), (depth of field, bokeh, blurry, film grain, chromatic aberration, lens flare:1.0), (1boy, abs, muscular, rib:1.0), greyscale, monochrome, dusty sunbeams, trembling, motion lines, motion blur, emphasis lines, text, title, logo, signature, backlighting
- Steps: 30, Sampler: DPM++ SDE Karras, CFG scale: 7, Seed: 1954584771, Size: 768x1024, Model hash: 3732b141fb, Model: Anything_v4.5_0.5_3Guofeng3_0.5, Clip skip: 2, ControlNet Enabled: True, ControlNet Module: depth_leres, ControlNet Model: control_depth [92c999f3], ControlNet Weight: 1, ControlNet Guidance Start: 0, ControlNet Guidance End: 1
复制代码 模子B:二次元风格

咒语:
- best_quality, masterpiece, 4K, 1girl, chinese style, hanfu, smiling, red lips, pursed lips, closed mouse, left hand down, white dress, , green belts, landscape, hill, mountain, stone, tree, streams, pear blossom, birds, petals, windy, blurry foreground, blurry backgound
- Negative prompt: EasyNegative, badhandv4, (easynegative:1.0), (worst quality, low quality:1.4), (lip, nose, tooth, rouge, lipstick, eyeshadow:1.4), (blush:1.2), (jpeg artifacts:1.4), (depth of field, bokeh, blurry, film grain, chromatic aberration, lens flare:1.0), (1boy, abs, muscular, rib:1.0), greyscale, monochrome, dusty sunbeams, trembling, motion lines, motion blur, emphasis lines, text, title, logo, signature, backlighting
- Steps: 30, Sampler: DPM++ SDE Karras, CFG scale: 7, Seed: 1954584771, Size: 768x1024, Model hash: 6e430eb514, Model: anything-v4.5-pruned, Clip skip: 2, ControlNet Enabled: True, ControlNet Module: depth_leres, ControlNet Model: control_depth [92c999f3], ControlNet Weight: 1, ControlNet Guidance Start: 0, ControlNet Guidance End: 1
复制代码 融合模子AB:

咒语:
- best_quality, masterpiece, 4K, 1girl, chinese style, hanfu, smiling, red lips, pursed lips, closed mouse, left hand down, green belts, landscape, hill, mountain, stone, tree, streams, pear blossom, birds, petals, windy, blurry foreground, blurry backgound
- Negative prompt: EasyNegative, badhandv4, (easynegative:1.0), (worst quality, low quality:1.4), (lip, nose, tooth, rouge, lipstick, eyeshadow:1.4), (blush:1.2), (jpeg artifacts:1.4), (depth of field, bokeh, blurry, film grain, chromatic aberration, lens flare:1.0), (1boy, abs, muscular, rib:1.0), greyscale, monochrome, dusty sunbeams, trembling, motion lines, motion blur, emphasis lines, text, title, logo, signature, backlighting
- Steps: 30, Sampler: DPM++ SDE Karras, CFG scale: 7, Seed: 1954584771, Size: 768x1024, Model hash: 3732b141fb, Model: Anything_v4.5_0.5_3Guofeng3_0.5, Clip skip: 2, ControlNet Enabled: True, ControlNet Module: depth_leres, ControlNet Model: control_depth [92c999f3], ControlNet Weight: 1, ControlNet Guidance Start: 0, ControlNet Guidance End: 1
复制代码 效果非常惊艳!利用这个方法我们能快速天生新模子,劳绩新的创意!
LoRA模子练习
模子练习指的是自己提供练习集,然后练习。能够实现自己所盼望的风格。模子练习有肯定的上手难度,以是本文将尽可能过细地讲解练习过程。模子练习有许多方法,比方Dream booth、Textual Inversion (embedding)、Hypernetwork和著名的Lora等方式。本日我们先容LoRA模子练习方式,其它方式我们在以后再先容。
(1)下载项目
前人栽树 ,后人纳凉 ♂️。我们这里出于方便直接用aki大佬的练习脚本吧!http://github.com/Akegarasu/lora-scripts
留意不要直接下zip压缩包,而是用git递归下载子模块。
- git clone --recurse-submodules https://github.com/Akegarasu/lora-scripts
复制代码 下载完lora-scripts后解压到符合位置,由于直接运行会报错,以是用管理员身份打开PowerShell后输入:
- Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
复制代码 然后输入”Y“。出于安全思量,在脚本实行完之后将输入下述下令改回默认权限:
- Set-ExecutionPolicy -ExecutionPolicy Restricted
复制代码 运行install-cn.ps1脚本安装依赖。由于是国内源,下载速率应该非常快。
(2)预备练习集
完毕之后我们来预备一些图片作为练习集吧不必要太多1520张enough。
练习分辨率
练习时的分辨率 宽,高,可以黑白正方形,但必须为64的整数倍。建议使用大于 512x512 且小于 1024x1024 的值,长宽比根据练习集的占比决定,一般来说方形的可以照顾到各种不同的分辨率。如果多数为长图可以使用512x768这种分辨率,如果宽图居多则可以使用768x512等。
好比笔者想练习可莉的模子(问就是玩原玩的)。首先在网上收集一些图片,一种方法是下载好图片由PS软件裁剪至同一巨细(没有的话用birme工具),另一种是用SD自带的裁剪(不推荐,可能把人物主文体剪)。然后我们前去”图片预处置惩罚“文件夹,目的是天生图片的tag(图片格式必须是png),如下所示:
设置源目次和目的目次(两者不同)。调整符合的长宽(必须是64倍数)。推荐选择”自动面部核心裁剪“和”使用Deepbooru天生标签“。然后点击”preprocess“就可以开始了。天生的目次中,每个图片和标签文本逐一对应。建议查抄一下标签的内容,如果觉得不好可以手动修改。
完成后可以将将文件夹重命名为"x_{名字}“,“x”表示练习次数,比方"5_klee”。
(3)配置参数
我们配置一下参数,我们可以在PowerShell运行run_gui.ps1,打开一个网页:
我们来先容一下这些参数:
底模路径:用于练习的基础模子,尽量选祖宗级别的模子练出来的LoRA会更通用。如果在融合模子上练习可能会仅仅在你练习的底模上天生图片拥有不错的效果 但是失去了通用性。可以自己决议
什么是祖宗级别的模子? sd1.5 2.0、novelai 原版泄漏模子。也就黑白融合模子。融合模子好比 anything 系列融合了一大堆,orangemix系列融合了 anything 和 basil 更灵车了等等。在他们上面练习的会迁移性更差一些。
**练习数据集路径:这个必须是图片文件夹的父文件夹!**比方你在".\train\5_klee"放了许多照片,那么应该填".\train"
修改分辨率,输出目次等参数。
开启 ARB 桶,以允许使用非固定宽高比的图像来练习(简单来说就是不必要手动剪裁了)。ARB 桶在肯定程度上会增加练习时间。ARB桶分辨率必须大于练习分辨率
别的还有和练习相关的参数:
(4)练习
我们然后开始练习吧~
建议关闭一切占显存的应用,包罗SD。 可以看到GPU根本上是占满的。
练习完成后在output文件夹下可以看到许多模子:
我们来试试效果吧~
留意提示词要加上lora插件**lora:klee:1**
高级教程:
学习率与优化器设置
学习率设置
UNet和TE的学习率通常是不同的,由于学习难度不同,通常UNet的学习率会比TE高 。
如图所示,我们希望UNet和TE都处于一个恰恰的位置(绿色部分),但是这个值我们不知道。
如果UNet练习不敷,那么天生的图会不像,UNet练习过度会导致面部扭曲大概产生大量色块。TE练习不敷会让出图对Prompt的服从度低,TE练习过度则会天生多余的物品。
总学习步数 = (图片数量 * 重复次数 * epoch)/ 批次巨细
以UNet学习率为1e-4为例,一般来说图片较少的时间练习人物必要至少1000步,练习画风则必要至少2500步,练习概念则必要至少3000步。这里只是最低的步数,图片多则必要更多步数。学习率更大可以得当淘汰步数,但并非线性关系,使用两倍的学习率必要使用比之前步数的一半更多的步数。
决定学习率和步数的最好方法是先练习,再测试。一般比力好的初始值为UNet使用1e-4,TE使用5e-5
学习率调整策略(lr_scheduler)
推荐使用余弦退火cosine。如果开启预热,预热步数应该占总步数的5%-10%。
如果使用带重启的余弦退火cosine_with_restarts,重启次数不应该超过4次。
批次巨细 (batch_size)
Batch size 越大梯度越稳定,也可以使用更大的学习率来加速收敛,但是占用显存也更大。
一般而言 2 倍的 batch_size 可以使用两倍的 UNet 学习率,但是TE学习率不能提高太多。
优化器
这里只先容最常用的三种:
- AdamW8bit:启用的int8优化的AdamW优化器,默认选项。
- Lion:Google Brain发表的新优化器,各方面表现优于AdamW,同时占用显存更小,可能必要更大的batch size以保持梯度更新稳定。
- D-Adaptation:FB发表的自顺应学习率的优化器,调参简单,无需手动控制学习率,但是占用显存巨大(通常必要大于8G)。使用时设置学习率为1即可,同时学习率调整策略使用constant。必要添加"–optimizer_args decouple=True"来分离UNet和TE的学习率。(这些设置练习UI都会帮你自动处置惩罚)
网络设置网络布局(LoRA/LoCon/LoHa/DyLoRA)
不同网络布局对应不同的矩阵低秩分解方法。LoRA 是老祖宗,只控制模子中的线性层和1x1卷积层,后续的不同网络布局都是在 LoRA 的基础上进行改进。
LyCORIS 对其进行改进,添加了其他几种算法:
- LoCon 加入了对卷积层 (Conv) 的控制
- LoHa(哈达玛积)和 LoKr(克罗内克积)
- IA3
理论上来说 LyCORIS 会比 LoRA 拥有更加强的微调效果,但是也更加容易过拟合。
必要留意的是,不同的网络布局一般必要对应不同的 dim 以及学习率。
网络巨细
网络巨细应该根据现实的练习集图片数量和使用的网络布局决定
上表中值为我自己的角色练习推荐值,练习画风和概念必要得当增加 Linear 部分巨细。推荐值并非对各个不同的数据集都是最优的,必要自己实验得出最优。Conv 的巨细最好不要超过8。
网络Alpha(network_alpha)
alpha在练习期间缩放网络的权重,alpha越小学习越慢,关系可以认为是负线性相关的。
一般设置为dim/2大概dim/4。如果选择1,则必要提高学习率大概使用D-Adapation优化器。
高级设置
Caption 相关
caption dropout
网上关于这几个caption dropout的说明少之又少,以致作者在文档内里也没有包含这些参数,只能在代码注释内里找到说明。但是caption dropout在某些环境下对模子性能有提升,以是拿出来讲一下。
caption_dropout_rate:丢弃全部标签的概率,对一个图片概率不使用caption或class token
caption_dropout_every_n_epochs:每N个epoch丢弃全部标签。
caption_tag_dropout_rate:按逗号分隔的标签来随机丢弃tag的概率。如果使用DB+标签的练习方法练习画风,推荐使用这个参数,能够有用防止tag过拟合,一般选择0.2-0.5之间的值。练习人物则无需开启。
token 热身
两个token热身相关的参数。
token_warmup_min:最小学习的token数量,token_warmup_step: 在多少步后达到最大token数量。
token_warmup可以理解为另一种形式的caption dropout,但是如果不随机打乱token,则只会学习前面N个token。本人并未实测过启用这两个参数的效果,有兴趣可以自行实验。
噪声相关
噪声偏移(noise_offset)
在练习过程中加入全局的噪声,改善图片的亮度变化范围(能天生更黑大概更白的图片)。
如果必要开启,推荐设置值为0.1,同时必要增加学习步数作为网络收敛更慢的补偿。
多分辨率/金字塔噪声 multires_noise_iterations、multires_noise_discount
多分辨率/金字塔噪声相关参数。iteration设置在6-8,再高提升不大。discount设置在0.3-0.8之间,更小的值必要更多步数。
其他一堆参数
- CLIP_SKIP CLIP模子使用倒数第N层的输出,必要与底模使用的值保持同等,如果是基于NAI的二次元模子,应当使用2。如果是SD1.5等真实模子应当使用1。天生时也应该使用同样的值。
- Min-SNR-γ 发表于今年CVPR23上的一种加速扩散模子收敛的方法。不同样本批次的学习难度不同导致梯度方向不同等以是收敛慢,于是引入根据信噪比调整学习率比重。 设置在5左右的值是实验效果比力好的,但是留意优化器使用D-Adaptation的时间不适用,由于学习率是优化器控制的。
- 数据加强相关 数据加强是在练习时及时对图片做变更的方法,可用于防止过拟合,能用的一共有四种: color_aug, flip_aug, face_crop_aug_range, random_crop。 此中只有翻转(flip_aug)能和cache latent兼容,由于latent可以直接翻转。 四种都不推荐使用,由于裁剪图片的两种cropping方法都会导致tag对应不上。color_aug无法启用cache latent导致练习慢,得不偿失。翻转的flip_aug在图像不对称的环境下表现差,会导致无法正确天生人物不对称的特性(刘海、发饰等)。
- max_grad_norm 限制模子更新梯度的巨细,改善数值稳定性。梯度的范数超过这个值将会被缩放到这个巨细,一般来说无需设置。
- gradient_accumulation_steps 梯度累积步数,用于在小显存上模拟大batch size的效果。如果显存富足使用4以上的batch size就没必要启用。
- log_with、wandb_api_key 选择logger范例,可选tensorboard大概wandb。使用wandb必要指定api key。
- prior_loss_weight DB练习当中先验部分的权重,控制正则化图像的强度,论文中使用的是1的值,如无特别环境无需更改。
- debug_dataset 不练习模子,仅输出练习集元数据和练习参数信息,可以用来查抄各项设置是否正确。
- vae_batch_size cache lantent的时间VAE编码器的batch size,和练习效果无关。一般来说使用2-4可以加速一点cache latent的过程。由于VAE编码器自己参数量比力小,实测在Linux机器上8G的显卡也能开启4。Windows下系统占用显存较多,显存小于10G不建议开启。
关于AI绘画技能储备
学好 AI绘画 岂论是就业照旧做副业赢利都不错,但要学会 AI绘画 照旧要有一个学习规划。末了各人分享一份全套的 AI绘画 学习资料,给那些想学习 AI绘画 的小伙伴们一点帮助!
对于0基础小白入门:
如果你是零基础小白,想快速入门AI绘画是可以思量的。
一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以找到适合自己的学习方案
包罗:stable diffusion安装包、stable diffusion0基础入门全套PDF,视频学习教程。带你从零基础系统性的学好AI绘画!
必要的可以微信扫描下方CSDN官方认证二维码免费领取【包管100%免费】
1.stable diffusion安装包 (全套教程文末领取哈)
随着技能的迭代,目前 Stable Diffusion 已经能够天生非常艺术化的图片了,完全有赶超人类的架势,已经有不少工作被这类服务替换,好比制作一个 logo 图片,画一张虚拟妻子照片,画质堪比相机。
最新 Stable Diffusion 除了有win多个版本,就算说底端的显卡也能玩了哦!别的还带来了Mac版本,仅支持macOS 12.3或更高版本。
2.stable diffusion视频合集
我们在学习的时间,每每书籍源码难以理解,阅读困难,这时间视频教程教程是就很适合了,生动形象加上案例实战,一步步带你入坑stable diffusion,科学风趣才能更方便的学习下去。
3.stable diffusion模子下载
stable diffusion每每一开始使用时图片等无法达到理想的天生效果,这时则必要通过使用大量练习数据,调整模子的超参数(如学习率、练习轮数、模子巨细等),可以使得模子更好地顺应数据集,并天生更加真实、正确、高质量的图像。
4.stable diffusion提示词
提示词是构建由文本到图像模子解释和理解的单词的过程。可以把它理解为你告诉 AI 模子要画什么而必要说的语言,整个SD学习过程中都离不开这本提示词手册。
5.AIGC视频教程合集
观看全面零基础学习视频,看视频学习是最快捷也是最有用果的方式,跟着视频中老师的思路,从基础到深入,照旧很容易入门的。
实战案例
纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到现实当中去,这时间可以搞点实战案例来学习。
这份完整版的学习资料已经上传CSDN,朋友们如果必要可以微信扫描下方CSDN官方认证二维码免费领取【包管100%免费】
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |