抽空记录中,不研究内容prompt,目前在别人写的prompt下用不同工具调优。
目前的感觉是,场景物体细节越多的图,人物手和面容(眼睛、睫毛)的正常生成非常困难,即使有相关的Lora和negative prompt的进行加持,但基本上只在肢体离镜头比较近的时候才能正常work。既要保证场景内容丰富,又要保证肢体正常绘制,基本不可能一次正确生成,目前的策略是在喜欢的构图上进行肢体细节调优。
基于stable-diffusion-webui 1.6.0
写的使用说明,版本更新时间是20230928
。
预训练模型下载网站:
基本使用方法
项目安装
项目地址:https://github.com/AUTOMATIC1111/stable-diffusion-webui
windows 环境下用 git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui
下载到本地,双击执行 webui-user.bat
以自动安装环境。
目录说明
1 | - modules // 网络定义 |
启动参数
webui-user.bat
1 | @echo off |
参数获取
只需要在 PNG info
中拖入图片就可以获取生成时使用的相关参数,这看起来是因为SD-webui会将参数信息植入到图像中进行保存,如果 parameters
返回 None
,则说明该图片可能不由SD-webui生成,或许是由 Midjourney
生成。
使用相关参数大概率可以复现出该图,但需要注意的是需要自己下载 positive prompt
中的 Lora
模型以及 negative prompt
中的 embedding
,即便确保无误也无法完全复现,则证明该图是经过本人多次处理如Inpainting、Outpainting得到的结果。
插件安装
一般有两种安装方法,一种是在 Extensions/Avaliable
中从 https://raw.githubusercontent.com/AUTOMATIC1111/stable-diffusion-webui-extensions/master/index.json
读取可安装的插件列表,想安装什么插件就搜索关键字然后找到 stars
最多的那个;另外一种是从 Extensions/install from URL
中从 git repository
中下载。
Civitai Helper
该插件能扫描所有模型,从Civitai下载模型信息和预览图进行显示。
安装完成后,需要先在tag
页面中进行扫描操作:
这个操作可以从civitai上下载匹配的模型对应的缩略图,需要等待一段时间(取决于下载模型的多少):
扫描完成后,点击图标:
即可显示模型和对应的缩略图,更多使用方法请见 github:
注:没有缩略图显示部分需要在对应模型目录下补一个同名图片。
ADetailer
可以用yolo模型检测手和脸的位置,并为这些部位进行单独重绘。
提示词
a1111-sd-webui-tagcomplete
一个prompt自动补全插件。可以在youtube获取中文翻译。具体步骤如下:
- 在google drive中下载
danbooru-SC.csv
简体中文翻译文件。 - 将
danbooru-SC.csv
放在extensions\a1111-sd-webui-tagcomplete\tags
中。 - 于stable-diffusion-webui的配置中,
Settings\Tag Autocomplete
的Tag filename
和Translation filename
选项中分别设置danbooru-SC.csv
安装完成后可以在txt2img和img2img的prompt中看到相关选项:
sd-webui-prompt-all-in-one
sd-webui-prompt-all-in-one旨在提高提示词/反向提示词输入框的使用体验。它拥有更直观、强大的输入界面功能,它提供了自动翻译、历史记录和收藏等功能。可以结合a1111-sd-webui-tagcomplete使用。如果页面在sd-webui初次启动时没有正常显示该插件内容,可以 F5
刷新页面。
分块扩散
multidiffusion-upscaler-for-automatic1111
基于 Mixture of Diffusers 和 MultiDiffusion 的分块扩散模型。
感觉 Tile VAE
部分可以正常使用,但是 Tile Diffusion
在 size 比较大的图像上容易导致内容重复绘制。
安装完成后可以在txt2img和img2img的选项卡中看到相关选项:
ControlNet相关
sd-webui-controlnet
基于 ControlNet 的条件扩散模型。
安装完成后可以在txt2img和img2img的选项卡中看到相关选项:
sd-webui-depth-lib
可以在对应位置摆上和调整手势深度图作为controlNet的输入。
在 900 Hands Library for Depth Library | ControlNet 网站上可以下载更多的不同手势的深度图。
下载后的 .zip
文件解压后里面的图片和 extensions/sd-webui-depth-lib/map
的深度图手势进行融合。
OpenPose Editor Tab
这个插件可以生成2D的openpose
sd-webui-3d-open-pose-editor
基于SD的超分
sd-webui-stablesr
基于StableSR的图像超分模型。
因为工作内容相关,所以对这个模型理解比较深入。
安装完成后可以在img2img的Script
的选项卡中选择以看到相关选项:
下载好的StableSR预训练模型需要放置在extensions\sd-webui-stablesr\models
中
LyCORIS
“All its features have been integrated into the native LoRA extension
LyCORIS models can now be used as if there are regular LoRA models”
看起来后面的stable-diffusion-webui把这个功能集成了。
a1111-sd-webui-lycoris
安装插件后,需要在 model
的目录下创建一个文件名为 LyCoris
的文件夹,然后将模型保存其中,调用模型需在 prompt
中写入 <lyco:model:1>
的形式。
界面设置
sd_vae显示
在Setting->Show all pages
中找到Quicksetting list
,在其中加上sd_vae
,如下图所示:
随后点击Apply settings
之后Reload UI
,可以看到页面上出现VAE的选项:
Face Restoration
从1.5.0更新到1.6.0之后页面不再显示这个页面,需要到 Setting/Show all pages
中找到 Options in main UI
,搜索 face_resotration
和face_restoration_mode
等都选上才能显示。
模型
Stable Diffusion
对于Stable Diffusion而言,1.99GB的一般是fp16的模型,更大的一般是fp32的模型。
SHMILY梦幻水彩,水彩风图像。
ghostmix_v20Bakedvae,类似攻壳机动队图像。
XXMix_9realistic,景深风格人像居多。
majicMIX系列,如:
Dark Sushi Mix 大颗寿司Mix,二次元画风。
VAE
- vae-ft-mse-840000-ema-pruned-vae.pt:该模型可以使生成的图片对比度更高,色彩更加丰富。
下面是例子:
LoRA
- add_detail,用以增加细节。
- more_detail,用来增加细节。
- Jellyfish-noise,用来生成水母森林。
- loong2-000015,用来生成中国龙。
- NijiExpressive_v2,用来生成忍者风格的人物。
epi_noiseoffset,提高暗场景下单的对比度。
iu_v35,画的是IU。
- BeautyNwsjMajic2-01,画的是娜乌斯嘉。
- sxz-death-knight,魔兽世界的骑士风格。
- hipoly_3dcg_v7-epoch,可以增加手部出图的稳定性。
- geometric_shapes,几何形状。
- Ink scenery,山水墨画。
- reference sheet-model,绘制参考图
- 焱落纱_v1.0,熔岩衣服
- Sun and Shadow(LAS),强烈的光影对比。
- FilmVelvia2, 胶片风。
- anxiang, 中国古风。
- circrex,机甲风
LyCORIS
- GoodHand,用来增加手部稳定出图概率。
embedding
大部分是在做手,一部分在做肢体。
上采样方法
- 4x-UltrSharp
- R-ESRGAN 4x+Anime6B
- 8x_NMKD-Superscale_150000_G
- StableSR
功能
Inpainting
尽量使用和 text2img
相同的 prompt、negative prompt 和 sampling method 等。
Outpainting
一种使用场景是当相同的prompt无法在指定图像长宽比例生成对应的内容时,如 1024X1024
产生正常内容,而相同的prompt在 1024x1536
中可能产生多个主体,此时可以使用Outpainting进行在 1024X1024
的大小进行外拓展,以在期望图像比例达到类似的效果。
一种方法是在 img2img
的 tab 中使用 script
的 Outpainting mk2
,如下图设置将 1024X1024
的图片展成 1024X1536
的图片:
结果图如下,当然我对其中不合理的倒影部分进行了 Inpainting :
Gif效果展示:
Script
prompt matrix
貌似是使用在prompt中使用语法|prompt1 | prompt2 | prompt3
,然后进行抽奖。
手部调整
参考:https://www.youtube.com/watch?v=f7zanMM2FEc
embedding(textural inversion)
有的是面向通用模型,有的只是针对特定模型,结合prompt matrix进行。
LyCORIS/LORA
基于LyCORIS或者LORA模型控制:
如:
- GoodHand系列