目录
1. 概述
2. 一键起飞
2.1 webui
2.2 基础用法
2.3 必装插件
2.4 Stable Diffusion WebUI Forge
2.5 ComfyUI
2.6 Fooocus
2.7 diffusers
3 LoRA
3.1 原理
3.2 训练流程和准备
3.3 上手训练
4. 深入原理
4.1 使用教程
4.2 原理
4.3 训练阶段
4.4 采样阶段
4.5 采样器
4.6 大模型微调
5. 部署
显存不足应对方案
6. 商业价值
美观性、风格化和可控性是时下流行的 文成图 面临的三座大山,所谓美观性,指的是符合美学规则,不能有脸部畸变、 手指扭曲等瑕疵;所谓风格化,指的是能生成动漫、二次元等多种多样的风格;所谓可控性,指的是可以自由的控制生成图片中人物的性别、年龄、质态、种族、服装以及场景、光线等的能力. SDXL在图像生成的精细度、真实性、提示词忠实度和准确性上都有显著的提高,而且再也不需要冗长的咒语才能生成差强人意的图片;LoRA仅需要数十张目标人物的图就可以高质量的生成特定人物;ControlNet大幅提升了对于姿态、线条等的控制能力. 一批批现象级应用涌现了出来,具体参见最全盘点!2023中国诞生了哪些AIGC应用产品
sd-webui界面,新手建议使用
Fooocus
ComfyUI
1. 概述
Stable Diffusion,简称SD,通过引入隐向量空间(而不是在像素空间扩散)来解决 Diffusion 速度瓶颈,除了可专门用于文生图任务,还可以用于图生图、特定角色刻画,甚至是超分或者修复任务。文生图模型参数量比较大,基于pixel的方法限于算力往往只能生成64x64大小的图像,比如OpenAI的DALL-E2和谷歌的Imagen,然后再通过超分辨模型将图像分辨率提升至256x256和1024x1024; 而基于latent的SD是在latent空间操作的,它可以直接生成256x256和512x512甚至更高分辨率的图像。基于latent的扩散模型的优势在于计算效率更高效,因为图像的latent空间要比图像pixel空间要小,这也是SD的核心优势。Stable Diffusion不仅是一个完全开源的模型(代码,数据,模型全部开源),而且它的参数量只有1B左右,大部分人可以在普通的显卡上进行推理甚至精调模型。毫不夸张的说,Stable Diffusion的出现和开源对AIGC的火热和发展是有巨大推动作用的,因为它让更多的人能快地上手AI作画。
Note: SD对硬件要求普遍较高,即使推理最好也要有8G以上的显存,具体性价比参见常见显卡AI跑图性能、性价比表
2. 一键起飞
2.1 webui
可参考浅谈【Stable-Diffusion WEBUI】(AI绘图)的基础和使用
Windows下推荐使用一键启动包 ,模型下载stable-diffusion-v1-5, 推荐模型majicMIX realistic 麦橘写实 更多模型选择参见Stablediffusion模型与模型训练背后的事
Ai绘画模型Chilloutmix详尽解说,关于模型的超详细小知识
wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-py310_23.3.1-0-Linux-x86_64.sh \
&& sh Miniconda3-py310_23.3.1-0-Linux-x86_64.sh -b -p /opt/conda
pip install diffusers transformers scipy ftfy accelerate
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui
cd stable-diffusion-webui
默认GPU运行
#python launch.py --listen --api --xformers --enable-insecure-extension-access
./webui.sh --listen --api --xformers --enable-insecure-extension-access
#如果没有GPU,也可以CPU运行
./webui.sh --listen --api --enable-insecure-extension-access --skip-torch-cuda-test --no-half --no-half-vae
默认参数出来的效果差强人意,需要加入较多的"咒语"才能调出,可以切换到Chilloutmix-Ni-pruned-fp16-fix模型,设置如下参数,或者后面加入不同的Lora提升效果(模型下载链接参看全网Stable Diffusion WebUI Model模型资源汇总)
2.2 基础用法
通用起手式 三段式表达
第一段: 画质tag,画风tag
第二段:画面主体,主体强调,主体细节概括。(主体可以是人、事、物、景)画面核心内容
第三段:画面场景细节,或人物细节,embedding tag。画面细节内容
第二段一般提供人数,人物主要特征,主要动作(一般置于人物之前),物体主要特征,主景或景色框架等
质量词→前置画风→前置镜头效果→前置光照效果→(带描述的人或物AND人或物的次要描述AND镜头效果和光照)*系数→全局光照效果→全局镜头效果→画风滤镜
画质词:(masterpiece:1.2), best quality, highres,extremely detailed CG,perfect lighting,8k wallpaper,
真实系:photograph, photorealistic,
插画风:Illustration, painting, paintbrush,
二次元:anime, comic, game CG,
3D:3D,C4D render,unreal engine,octane render,
负面词:NSFW, (worst quality:2), (low quality:2), (normal quality:2), lowres, normal quality, ((monochrome)),((grayscale)), skin spots, acnes, skin blemishes, age spot, (ugly:1.331), (duplicate:1.331), (morbid:1.21), (mutilated:1.21), (tranny:1.331), mutated hands, (poorly drawn hands:1.5), blurry, (bad anatomy:1.21), (bad proportions:1.331), extra limbs, (disfigured:1.331), (missing arms:1.331), (extra legs:1.331), (fused fingers:1.5), (too many fingers:1.5), (unclear eyes:1.331), lowers, bad hands, missing fingers, extra digit,bad hands, missing fingers, (((extra arms and legs))),
实例:
Prompt:masterpiece,beat quality,1girl
Negative Prompt:nsfw,blush,lowres, bad anatomy, bad hands, text, error, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality, normal quality, jpeg artifacts,signature, watermark, username, blurry, artist name,bad feet,big head,fused body,multiple hands,multiple legs,multiple hands,multiple breast,multiple lower legs,multiple thighs,fused body,twist body
Steps: 40, Sampler: Euler a, CFG scale: 10
粗略的介绍一下对于大量prompt情况下的权重控制 - 哔哩哔哩
1.权重的用法涉及到构图和添加更多元素,如果有想要调整画面元素构成比的人,一定要先在prompt配置好权重方便后续调整。
2.不要出现拼写错误,比如:(extreme detailed night sky,:1.5)
3.如果括号包含了多内容,AI只关心末尾部分prompt权重,比如(crystal_plant,flower:1.3)实际上等效crystal_plant,(flower:1.3),而并不能把他们全都包含起来一起处理,正确的块处理方式是((promptA,promptB,promptC):1.1), 用括号把他们包起来当做结构块处理。
4.颜色决定了构图,所以涉及颜色的权重最好固定死 或者不要有大幅度的改动,同样的,迭代次数也会影响色彩分布,有时候低迭代和高迭代会有构图的区别。
5.取值可以稍微的不合理,但是最好合理,比如身上的可爱蝴蝶大翅膀。
6.高的权重prompt并不会替代低权重prompt,只决定了你让AI更加去注意哪点。
7.prompt靠前的也会提高权重,这和输入顺序以及神经网络构成相关,并没有详细的计算等值
SD出来图的经常出现脸部畸变、手指异位、模糊等瑕疵,对于要求不高的地方还能勉强使用,对于要求高的场景需要反复调试,这很考验经验和耐心,目前总结出的一些方法如下
Adetailer治愈脸崩
adetailer adetailer
stablediffusion手指修复方法 各种手势姿态调整
Stable diffusion生成细节度拉满的超高分辨率画面
2.3 必装插件
双语对照 bilingual-localization、localization-zh_CN
C站助手 Civitai-Helper
prompts-all-in-one 自动翻译、收藏提示词
&