Stable Diffusion实践手册
最近突然想折腾折腾AI绘画,找了个教程本地化部署了一下,又花了一天时间了解相关内容,捣鼓模型好久也终于是能出图了。本篇post并不是教程,因为我也不会,仅仅是一些绘图方法的记录。
本篇的内容基于已在本地部署好的Stable Diffusion模型,相关教程可以看:Stable Diffusion|全方位教程指南 - openai.wiki。我就是对照这篇教程操作的,讲得很详细。也可以使用其他人做好的整合包。
下面是一些具体画图时的操作,或者说备忘吧。
0 用 Tiled Diffusion & VAE 生成大型图像
Stable Diffusion模型还是很吃显存的,我的笔记本3060+6G显存第一遍出图只能跑512×512分辨率的,如果再高就会爆显存。而且超分辨率也开不了,所以会影响图的细节质量。
所幸,有大佬开发了一个插件可以让小显存也能跑出很大的图,详细技术内容我也不懂,但是大概原理是把大型图像分割为多个小块分别生成,最后再拼起来,也就是用时间换显存,经测试无论是效果还是效率都很不错,特在此记录。
用 Tiled Diffusion & VAE 生成大型图像 - pkuliyi2015
插件包括超大图像绘制,图生图放大等,上方链接中有中文文档记录了安装和使用方法。部分功能我其实还用不到,仅在此写一下常用的基础功能。
- text2img:
- 可以用Tiled VAE降低缓存占用,通常按照默认设置即可。
- 如果爆显存了可以降低Tile大小。
- 如果颜色错误或灰暗,启用编码器颜色修复Encoder Color Fix。
- img2img:
- 可以用Tiled Diffusion+Tiled VAE。
- Tiled Diffusion参数(由原作者提供):
- 降噪 = 0.4,步数 = 20,采样器 = Euler a,放大器 = RealESRGAN++,负面提示语=EasyNegative,
- 方法(Method) = MultiDiffusion, 分块批处理规模(tile batch size) = 8, 分块高度(tile size height) = 96, 分块宽度(tile size width) = 96, 分块重叠(overlap) = 32
- 如果爆显存可以调小分块高度/宽度,如64×64,但是速度也会降低。
- 全局提示语 = masterpiece, best quality, highres, extremely detailed 8k wallpaper, very clear, 全局负面提示语 = EasyNegative.
- 注意全局提示语中不能有明显的具体对象的提示语,因为插件的原理是分块生成,所以具体化的提示词会导致生成多个对象(比如提示语1girl就可能会在画面里出现好几个girl)。
- Tiled Noise Inversion可以用于高质量图片放大,通常denoise<0.6,CFG敏感度不大。
- Tiled VAE开启即可,设置同上。
所以我的基本工作流程如下:
- 开启Tiled VAE,按照所需的比例先跑小图,找到合适的小图后固定种子开始高清修复。
- 开启Tiled VAE,用Hires. fix修复图片,通常1.5或2倍。
- 再发送到img2img放大,开启Tiled VAE+Tiled Diffusion(Tiled Noise Inversion),出成品图。
更高级的用法以后再探索吧…
1 Flat-2D Animerge(ckpt)
这是一个卡通画风的大模型,可以用于绘制一些动漫风格的人物或场景,正如名字所说,画风是比较“flat”的,大幅的色块较多而细节较少,效果不错。
以下几张是用该模型跑的图,前两张是作者给出的样例,后两张是我自己跑的:
1 |
|
1 |
|
( 这一下就看出差距来了 :( ,毕竟我的笔记本只能跑512×512的分辨率,也用不了超分辨率,画质稍微高一点显存就爆了,所以缺失很多细节。 )
作者给出的使用指导:
- (highly recommended) Use the dynamic thresholding plugin (all example images do with cfg scale 10 mimic 7): https://github.com/mcmonkeyprojects/sd-dynamic-thresholding
- Set the CFG scale to 10.0
- Click the checkbox “Enable Dynamic Thresholding (CFG Scale Fix)”
- Set the Mimic CFG Scale to 7
- If you don’t want to use this plugin, then set the config scale to 5 or 6
- (highly recommended) Use a negative embedding for best results
- I use verybadimagenegative_v1.3 and easynegative (all examples use this)
- verybadimagenegative_v1.3
- easynegative
- Place the downloaded files into the “embeddings” folder of the SD WebUI
- In the negative prompt, paste “verybadimagenegative_v1.3, easynegative”
- (highly recommended) Upscaling at 2x using R-ESRGAN 4x+ Anime6B works very well (no need for high weights, 0.45 will work fine). Additionally, generating the pre-upscaled image at a higher resolution such as 768x768 will improve quality a lot.
- This merge is very easy to prompt, and does not require a ton of prompt engineering to get good results. The following format will yield decent results:
- Prompt:
- (best-quality:0.8), perfect anime illustration, <normal description of the image, e.g. a woman running in tokyo at night, a flaming meteor, etc.>
- Negative:
- (worst quality:0.8), verybadimagenegative_v1.3, easynegative, (surreal:0.8), (modernism:0.8), (art deco:0.8), (art nouveau:0.8)
- Prompt:
- The model is capable of NSFW
值得注意的主要是一些配置和Prompt/Negative。配置基本上按照作者的来就行,Negative也是基本固定的,Prompt可以用一句话描述场景即可,算是挺方便。不使用VAE的画面和画风还挺对应的,也可以搭配其他VAE使用。
2 Cetus-Mix(ckpt)
一个比较主流的二次元大模型,画风比较亮丽,对提示词要求也不高。
给出三张样例,第一张是作者的样例,后两张是我跑的:
1 |
|
作者给出的指导:
- Hands-fix is still waiting to be improved.
- Highres-fix(upscaler) is strongly recommended(using the SwinIR_4x,R-ESRGAN 4x+anime6B by myself) in order to not make blurry images.
- Recommend: Clip skip 2, Sampler:DPM++2M Karras, Steps:20+
- CFG scale:4-8 Vae:Pastel-Waifu-Diffusion.vae.pt(The vae used by Pastel-mix si just good enough)
- Highres.fix:SwinIR_4x, Hires steps:10+, Denoising strength:0.4+, Upscale by: 1.5+
实际测试中VAE使用vae-ft-mse-840000-ema-pruned也不错。
3 ligne claire style(cogecha焦茶)(lora)
这个lora模型是用知名画师焦茶的作品训练出来的(查资料的时候发现画师本人已经去世,哀悼)。焦茶是ligne clarie风格的杰出画师之一,他的画擅长用线条去勾勒,用色块去构造明暗变化,且配色大胆,整体画面既不会炫目,又不失色彩。
以下是我跑的两张图:
1 |
|
![pic 9]
( 在图像放大过程中其实损失了一些画风上的特征,尤其是背景部分,不过人物的画风基本上保留了下来。 )
lora的推荐权重在1.0左右,搭配一些二次元画风的模型可以得到较好效果。