AI绘画-Stable Diffusion
2023-05-25 22:47:15 0 举报
AI智能生成
Stable Diffusion
作者其他创作
大纲/内容
基础
2022 年 2 ⽉,Disco Diffusion 横空出世
2022 年 4 ⽉,DALL·E 2 与 Midjourney 相继内测
2022 年 5 ⽉,Google 发布 Imagen
2022 年 7 ⽉,Stable Diffusion 重磅来袭
2022 年 4 ⽉,DALL·E 2 与 Midjourney 相继内测
2022 年 5 ⽉,Google 发布 Imagen
2022 年 7 ⽉,Stable Diffusion 重磅来袭
https://colab.research.google.com/github/alembics/disco-diffusion/blob/main/Disco_Diffusion.ipynb#scrollTo=SetupTop
Disco Diffusion
DALL·E 2
https://openai.com/dall-e-2/
Midjourney
https://discord.gg/midjourney
部署
1 windows系统请采用秋叶一键部署包安装,一键部署包作者和链接如下:
https://www.bilibili.com/video/BV1iM4y1y7oA/?share_source=copy_web&vd_source=43cc0d3785a52cc3923cbf16ae943cce
2 Mac系统安装过程请参考直播回放(行动营课程直播回放 / B站极客时间官方账号), 课程中会采用视频方式逐步讲解,带大家安装好sd,此处仅为用户尽早体验sd基本安装步骤如下:
(1) brew命令https://brew.sh
(2)brew install cmake protobuff rust python@3.10 git wget (阿里云)
pip3 install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cpu
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
git clone https://gitee.com/wilsonyin/stable-diffusion-webui
pip3 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install gfpgan
webui.sh
使用
文生图
根据提示词⽣成图⽚
子主题
Seed 决定了画⾯内容
CFG Scale 决定了画家⾃由度
步⻓影响时间与效果,通常 30 够了
⽂⽣图-Step
参数控制这些去噪步骤的数量
⽂⽣图-CFG
CFG 2 - 6:⼴告素材,但可能不会按照提示操作
CFG 7 - 10:建议⽤于⼤多数提示,好;创造⼒和引导式⼀代之间的平衡
CFG 10 - 15:当您确定提示是好,⾜够具体
CFG 16 - 20:⼀般不推荐,除⾮提示⾮常详细
⽂⽣图-采样器
⽤于在⽣成过程中对图像进⾏去噪的⽅法
它们需要不同的持续时间和不同的数量
它们需要不同的持续时间和不同的数量
图⽣图
根据提示词 + 图⽚⽣成图⽚
CFG Scale
Denoising strength
图扩展图
根据提示词 + MASK + 图⽚⽣成图⽚
提示词
语义 Tag
关键词逗号分隔
关键词逗号分隔
混合
关键词 | 分隔
关键词 | 分隔
权重
(提示词:权重数值)
<1 减弱
>1 加强
(提示词:权重数值)
<1 减弱
>1 加强
交替
[轮流使⽤关键词]
开始 是猫
后⾯ 像狗
[轮流使⽤关键词]
开始 是猫
后⾯ 像狗
强化效果
[强化关键词]
best quality,
masterpiece,
[强化关键词]
best quality,
masterpiece,
反向词效果
[去掉不要的]
nsfw, bad face…
[去掉不要的]
nsfw, bad face…
控制类
[强化形态]
full body shot(全身照)
[强化形态]
full body shot(全身照)
控制类
[强化形态]
cowboy shot(半身照)
[强化形态]
cowboy shot(半身照)
控制类
光线
cinematic lighting (电影光)
dynamic lighting (动感光)
视线
looking at viewer
looking at another
looking away
looking back
looking up
画⻛
sketch
视⻆
dynamic angle
from above
from below
wide shot
cinematic lighting (电影光)
dynamic lighting (动感光)
视线
looking at viewer
looking at another
looking away
looking back
looking up
画⻛
sketch
视⻆
dynamic angle
from above
from below
wide shot
玩法
1.你想要⼀张照⽚还是⼀幅画?
2. 照⽚的主题是什么?⼈?是动物还是⻛景?
3. 你想添加哪些详细信息?
‣ 特殊照明:柔和、环境、环形灯、霓虹灯
‣ 环境:室内、室外、⽔下、太空
‣ 配⾊⽅案:充满活⼒、深⾊、柔和
‣ 视⻆:前、头顶
‣ 背景:纯⾊、 星云、森林
4. 以特定的艺术⻛格?3D 渲染
5. 特定照⽚类型?微距、⻓焦
2. 照⽚的主题是什么?⼈?是动物还是⻛景?
3. 你想添加哪些详细信息?
‣ 特殊照明:柔和、环境、环形灯、霓虹灯
‣ 环境:室内、室外、⽔下、太空
‣ 配⾊⽅案:充满活⼒、深⾊、柔和
‣ 视⻆:前、头顶
‣ 背景:纯⾊、 星云、森林
4. 以特定的艺术⻛格?3D 渲染
5. 特定照⽚类型?微距、⻓焦
现实⽣活中⼥孩的照⽚,电影照明,从窗户偷看,鲜艳的⾊彩,散景,电影海报⻛格
Photo of real life girl, cinematic lighting, peeking from window, vibrant colors,
bokeh, movie poster style
Photo of real life girl, cinematic lighting, peeking from window, vibrant colors,
bokeh, movie poster style
大模型玩法
⼤模型
(安装位置)
(安装位置)
模型常⻅格式
(ckpt 格式)
(ckpt 格式)
模型常⻅格式
(diffusers 格式)
(diffusers 格式)
sd 各个部分 (unet,vae-变分⾃编码器,
clip-⽂本编码器)
训练好的权重 (⼀般是 bin 格式)
scheduler (调度算法)
tokenizer (分词器)
clip-⽂本编码器)
训练好的权重 (⼀般是 bin 格式)
scheduler (调度算法)
tokenizer (分词器)
模型常⻅格式
(Safetensors 格式)
Hugging Face 推出⾃⼰的储存格式
⽐ ckpt 格式加载速度更快、更安全
(Safetensors 格式)
Hugging Face 推出⾃⼰的储存格式
⽐ ckpt 格式加载速度更快、更安全
模型搜索
(civitai)
https://civitai.com/
(civitai)
https://civitai.com/
模型特点
(novelai)
⼆次元模型,来⾃于 novelai 变种
(novelai)
⼆次元模型,来⾃于 novelai 变种
https://civitai.com/models/66/anything-v3
模型特点
(Guofeng3)
中国华丽古⻛⻛格模型,
也可以说是⼀个古⻛游戏⻆⾊模型,
具有 2.5D 的质感。
(Guofeng3)
中国华丽古⻛⻛格模型,
也可以说是⼀个古⻛游戏⻆⾊模型,
具有 2.5D 的质感。
子主题
https://civitai.com/models/10415/guofeng3
模型特点
(dreamlike)
逼真的 mid ⻛格
(dreamlike)
逼真的 mid ⻛格
https://huggingface.co/dreamlike-art/dreamlike-diffusion-1.0
模型特点
(protogen)
真⼈⻛格
(protogen)
真⼈⻛格
https://civitai.com/models/3666/protogen-x34-photorealism-official-release
模型转换
FP32:单精度浮点数
FP16:半精度浮点数
BF16:(Brain Float16) 是 FP32 尾数截断
FP32:单精度浮点数
FP16:半精度浮点数
BF16:(Brain Float16) 是 FP32 尾数截断
Model Converter
模型转换
修剪
⽤来估计变量的局部均值
修剪
⽤来估计变量的局部均值
修剪
⽤来估计变量的局部均值
⽤来估计变量的局部均值
如果您在训练时将 EMA 设置为“false”,它会根据历史中提取数据。这有利于多样性。
如果你在训练时将 EMA 设置为“真”,它会根据最近的历史记录⽽不是所有历史记录。适合制作⾃定义模型。
模型融合
独特的⻛格和擅⻓的⽅⾯
VAE
独特的⻛格和擅⻓的⽅⾯
VAE
模型融合
⼈像 + ⼆次元
⼈像 + ⼆次元
SD 可控使用
WebUI 扩展安装⽅法
1. Open "Extensions" tab.
2. Open "Install from URL" tab in
the tab.
3. Enter URL of this repo to "URL
for extension's git repository".
4. Press "Install" button.
5. Reload/Restart Web UI.
2. Open "Install from URL" tab in
the tab.
3. Enter URL of this repo to "URL
for extension's git repository".
4. Press "Install" button.
5. Reload/Restart Web UI.
精准可控(提示词)
提示词的强化
反向提示词的强化
提示词的强化
反向提示词的强化
精准可控(区域)
Latent Couple
Latent Couple
精准可控(区域)
多⼈合照
Latent couple 与 Composable LoRA(后⾯讲到)
多⼈合照
Latent couple 与 Composable LoRA(后⾯讲到)
https://github.com/opparco/stable-diffusion-webui-composable-lora
精准可控(区域)
笔画区域 控制
精准可控(动画)
SD 可控使⽤⼀
a beautiful forest by Asher Brown Durand, trending on Artstation
SD 可控使⽤⼀
a beautiful forest by Asher Brown Durand, trending on Artstation
https://github.com/deforum-art/deforum-for-automatic1111-webui
精准可控(ChatGPT)
⽣成⼀致性图像
Prompt: a forest path with trees
ChatGPT: Describe 5 unique fantasy settings
given the prompt "{prompt}" with 4 keywords
per item
⽣成⼀致性图像
Prompt: a forest path with trees
ChatGPT: Describe 5 unique fantasy settings
given the prompt "{prompt}" with 4 keywords
per item
https://github.com/hallatore/stable-diffusion-webui-chatgpt-utilities
子主题
ControlNet
在⽂本描述之外添加⼀些额外条件来控制扩散模型
实现了⼈体姿势/图像边缘/深度图/语义⾊块图/法线图等多种⽅式对⽣成的图像
实现了⼈体姿势/图像边缘/深度图/语义⾊块图/法线图等多种⽅式对⽣成的图像
https://github.com/Mikubill/sd-webui-controlnet
https://huggingface.co/lllyasviel/ControlNet/tree/main/models
子主题
子主题
M-LSD
room
room
HED Boundary
Scribbles
Human Pose
Segmentation
Depth
Normal
多个 control net
子主题
子主题
真⼈⼆次元化
Canny + ⼆次元⼤模型
Canny + ⼆次元⼤模型
https://stablediffusionweb.com/ControlNet#demo
SD 微调模型
如何让画⾯中的⼈物或事物变成⾃⼰
如何让画⾯⻛格变成特定效果
如何让画⾯⻛格变成特定效果
在较⼩的数据集上⽣成准确的模型,其训练成本⽐训练原始模型所涉及的成本低得多。
通过微调学习,你可以在你⾃⼰的数据集上微调稳定的扩散模型。
通过微调学习,你可以在你⾃⼰的数据集上微调稳定的扩散模型。
分解为⼏个关键模型
1. 将输⼊提示投影到潜在空间的⽂本编码器。(与图像关联的标题称为“提示”)
2. ⼀种变分⾃动编码器 (VAE),它将输⼊图像投影到图像向量空间的潜在空间。
3. 改进潜在向量并产⽣另⼀个潜在向量的扩散模型,以编码⽂本提示为条件。
4. 给定扩散模型的潜在向量⽣成图像的解码器。
2. ⼀种变分⾃动编码器 (VAE),它将输⼊图像投影到图像向量空间的潜在空间。
3. 改进潜在向量并产⽣另⼀个潜在向量的扩散模型,以编码⽂本提示为条件。
4. 给定扩散模型的潜在向量⽣成图像的解码器。
1. ⽂本编码器将输⼊⽂本提示投影到潜在空间。
2. VAE 的图像编码器部分将输⼊图像投影到潜在空间。
3. 对于给定的时间步⻓,将少量噪声添加到图像潜在向量中。
4. 扩散模型使⽤来⾃这两个空间的潜在向量以及时间步⻓嵌⼊来预测添加到图像潜在的噪声。
5. 计算预测噪声和步骤 3 中添加的原始噪声之间的重建损失。
6. 使⽤梯度下降对扩散模型参数进⾏优化。
在微调期间仅更新扩散模型参数,⽽(预训练的)⽂本和图像编码器保持冻结状态。
2. VAE 的图像编码器部分将输⼊图像投影到潜在空间。
3. 对于给定的时间步⻓,将少量噪声添加到图像潜在向量中。
4. 扩散模型使⽤来⾃这两个空间的潜在向量以及时间步⻓嵌⼊来预测添加到图像潜在的噪声。
5. 计算预测噪声和步骤 3 中添加的原始噪声之间的重建损失。
6. 使⽤梯度下降对扩散模型参数进⾏优化。
在微调期间仅更新扩散模型参数,⽽(预训练的)⽂本和图像编码器保持冻结状态。
Textual Inversion
Hypernetworks
Dreambooth
LoRA
Embeddings 及 hypernetwork 使用
https://textual-inversion.github.io/
允许你在⾃⼰的图⽚上训练神经⽹络的⼀⼩部分,并在⽣成新图⽚时使⽤结果。
是你训练的神经⽹络的⼀⼩部分。
是你训练的神经⽹络的⼀⼩部分。
Textual Inversion Embeddings
训练
Initialization text
指定图像特征的初始化⽂本
在 Initialization ⽂本中写上你想学习的标签
Pre token
⽤于嵌⼊的每个标记的⼤⼩
假设你指定了⼀个初始⽂本“tree”,其中包含⼀个名为“zzzzhello”的向量(⼀个标记)嵌⼊。
在不使⽤提示“a zzzzhello by monet”的情况下使⽤它给出与“a tree by monet”相同的输出。
训练
Initialization text
指定图像特征的初始化⽂本
在 Initialization ⽂本中写上你想学习的标签
Pre token
⽤于嵌⼊的每个标记的⼤⼩
假设你指定了⼀个初始⽂本“tree”,其中包含⼀个名为“zzzzhello”的向量(⼀个标记)嵌⼊。
在不使⽤提示“a zzzzhello by monet”的情况下使⽤它给出与“a tree by monet”相同的输出。
Textual Inversion Embeddings
训练
Embedding:选择你想学习的 Embedding
Learning rate:学习速度(将值设置得太⾼会破坏嵌⼊)
如果你在训练信息⽂本框中看到“Loss: nan”,则表示训练失败并且嵌⼊已死
Batch size
⽤于⼀次学习的图像数量。增加它会使⽤更多 VRAM 并减慢
计算速度,但会提⾼准确性。
Dataset directory
包含⽤于训练的图像的⽬录
训练
Embedding:选择你想学习的 Embedding
Learning rate:学习速度(将值设置得太⾼会破坏嵌⼊)
如果你在训练信息⽂本框中看到“Loss: nan”,则表示训练失败并且嵌⼊已死
Batch size
⽤于⼀次学习的图像数量。增加它会使⽤更多 VRAM 并减慢
计算速度,但会提⾼准确性。
Dataset directory
包含⽤于训练的图像的⽬录
训练
MaxStep
完成这么多步数后,训练将停⽌
MaxStep
完成这么多步数后,训练将停⽌
特点
模型⽂件⼩,~30KB
通常不能捕获物品细节,擅⻓⻛格转换
可在 Prompt 中同时使⽤多个 Embeddings
模型⽂件⼩,~30KB
通常不能捕获物品细节,擅⻓⻛格转换
可在 Prompt 中同时使⽤多个 Embeddings
Textual Inversion Embeddings
训练过程差不多
唯⼀的要求是使⽤⾮常⾮常低的学习率,
⽐如 0.000005 或 0.0000005。
唯⼀的要求是使⽤⾮常⾮常低的学习率,
⽐如 0.000005 或 0.0000005。
Hypernetwork
Hypernetwork
使⽤
安装位置
/root/stable-diffusion-webui/models/hypernetworks
使⽤
安装位置
/root/stable-diffusion-webui/models/hypernetworks
Hypernetwork
特点
模型⽂件适中,~87MB
适合学习较⼤的概念,如艺术⻛格、某些⼩众物品
在较低训练步数就能看到⼀些结果,训练较容易
特点
模型⽂件适中,~87MB
适合学习较⼤的概念,如艺术⻛格、某些⼩众物品
在较低训练步数就能看到⼀些结果,训练较容易
Dreambooth及LoRA
DreamBooth
只需上传 3-5 张指定物体的照⽚,
再⽤⽂字描述想要⽣成的背景、动作或表情,
就能让指定物体“闪现”到你想要的场景中,动作表情也
都栩栩如⽣。
只需上传 3-5 张指定物体的照⽚,
再⽤⽂字描述想要⽣成的背景、动作或表情,
就能让指定物体“闪现”到你想要的场景中,动作表情也
都栩栩如⽣。
在推理时,我们可以将唯⼀标识符植⼊不同的句⼦中,以在不同的上下⽂中合成主题。
(a) 微调低分辨率⽂本到图像模型,输⼊图像与包含独特信息的⽂本提示配对标识符和主体所属类别的名称。
(b) 使⽤从我们的输⼊图像集中获取的成对的低分辨率和⾼分辨率图像微调超分辨率组件,这使我们能够保持对主体⼩细节的⾼保真度。
(b) 使⽤从我们的输⼊图像集中获取的成对的低分辨率和⾼分辨率图像微调超分辨率组件,这使我们能够保持对主体⼩细节的⾼保真度。
如何训练
基础模型
DreamBooth 微调对超参数⾮常敏感,容易过拟合。
基础模型
DreamBooth 微调对超参数⾮常敏感,容易过拟合。
https://colab.research.google.com/github/ShivamShrirao/diffusers/blob/main/examples/dreambooth/
DreamBooth_Stable_Diffusion.ipynb#scrollTo=y4lqqWT_uxD2
DreamBooth_Stable_Diffusion.ipynb#scrollTo=y4lqqWT_uxD2
DreamBooth
DreamBooth 容易过拟合。为了获得⾼质量的图像,
我们必须在训练步骤数和学习率之间找到⼀个“最佳点”。
DreamBooth 需要更多的⼈脸训练步骤 800-1200 步运
⾏良好。
除了 UNet 之外,训练⽂本编码器对质量也有很⼤影响。
(train_text_encoder)
DreamBooth 容易过拟合。为了获得⾼质量的图像,
我们必须在训练步骤数和学习率之间找到⼀个“最佳点”。
DreamBooth 需要更多的⼈脸训练步骤 800-1200 步运
⾏良好。
除了 UNet 之外,训练⽂本编码器对质量也有很⼤影响。
(train_text_encoder)
DreamBooth
DreamBooth 容易过拟合。为了获得⾼质量的图像,
我们必须在训练步骤数和学习率之间找到⼀个“最佳点”。
DreamBooth 需要更多的⼈脸训练步骤 800-1200 步运
⾏良好。
除了 UNet 之外,训练⽂本编码器对质量也有很⼤影响。
(train_text_encoder)
DreamBooth 容易过拟合。为了获得⾼质量的图像,
我们必须在训练步骤数和学习率之间找到⼀个“最佳点”。
DreamBooth 需要更多的⼈脸训练步骤 800-1200 步运
⾏良好。
除了 UNet 之外,训练⽂本编码器对质量也有很⼤影响。
(train_text_encoder)
训练⼈脸时使⽤ Prior Preservation
如果我们尝试将⼀个新⼈合并到模型中,
我们想要保留的类可能是 person
结合使⽤新⼈的照⽚和其他⼈的照⽚来减少过度拟合
如果我们尝试将⼀个新⼈合并到模型中,
我们想要保留的类可能是 person
结合使⽤新⼈的照⽚和其他⼈的照⽚来减少过度拟合
模型⽂件很⼤,2-4GB
适于训练⼈脸、宠物和物件
使⽤时需要加载模型
可以进⾏模型融合,跟其他模型⽂件融合成新的模型
本地训练时需要⾼显存,>=12GB
推荐训练⼈物*画⻛
适于训练⼈脸、宠物和物件
使⽤时需要加载模型
可以进⾏模型融合,跟其他模型⽂件融合成新的模型
本地训练时需要⾼显存,>=12GB
推荐训练⼈物*画⻛
LoRA
https://github.com/bmaltais/kohya_ss
https://jihulab.com/hunter0725/sd-webui-additional-networks
子主题
https://jihulab.com/hunter0725/sd-webui-additional-networks
https://jihulab.com/hunter0725/sd-webui-additional-networks
模型⼤⼩适中,8~140MB
使⽤时只需要加载对应的 LoRA 模型,可以多个不同的(LoRA 模型 + 权重)叠加使⽤
可以进⾏ LoRA 模型其他模型的融合
本地训练时需要显存适中,>=7GB
推荐训练⼈物
使⽤时只需要加载对应的 LoRA 模型,可以多个不同的(LoRA 模型 + 权重)叠加使⽤
可以进⾏ LoRA 模型其他模型的融合
本地训练时需要显存适中,>=7GB
推荐训练⼈物
模型资料
链接:https://pan.baidu.com/s/1tQ4uIcs4zZHCTGjnc6vO-A?pwd=GEEK提取码:GEEK
0 条评论
下一页