随心玩玩(十三)Stable Diffusion初窥门径

写在前面:时代在进步,技术在进步,赶紧跑来玩玩


文章目录

  • 简介
  • 配置要求
  • 安装部署
  • 下载模型
  • 启动ui
  • 插件安装教程
  • 分区提示词插件
  • Adetailer插件
  • 提示词的分步采样
  • 采样器选择
    • 采样器的收敛性
    • UniPC采样器
  • 高分辨率修复 (Hires. fix)
  • 图生图
  • ControlNet
    • 介绍
    • 控制类型
      • 线稿类型
      • 结构类型
      • 参考类型
      • 重绘类型
    • 总结

简介

Stable Diffusion是一种人工智能(AI)模型,可以根据训练数据创建图像。
Stable Diffusion使用的是一种称为潜在扩散模型(LDM)的东西。
Stable Diffusion用于根据文本提示生成图像,并使用修复和外部绘制的过程改变现有的图像。

参考资料1:
https://www.lifewire.com/what-is-stable-diffusion-7485593
参考资料2:
https://en.wikipedia.org/wiki/Stable_Diffusion
参考资料3:
https://stablediffusionweb.com/

不想写的太长,更详细的介绍请查看参考资料

配置要求

显存 > 6G
内存 > 16G

安装部署

参考资料:
https://github.com/AUTOMATIC1111/stable-diffusion-webui
可以看这个视频:
https://www.bilibili.com/video/BV1gj411R7eQ/

先创建一个环境
conda create --name light python=3.9

然后git clone安装WebUI项目或者下载压缩包,下载慢的话可以使用代理:https://mirror.ghproxy.com/
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui
或者国内用代理下载更快
git clone https://mirror.ghproxy.com//https://github.com/AUTOMATIC1111/stable-diffusion-webui

等待WebUI项目下载完成
在这里插入图片描述

回到conda环境,
首先,我们需要先安装torch,因为torch默认是装最新的版本不支持我们的CUDA11.7
可以到这个网站https://pytorch.org/get-started/previous-versions/,CTRL+F搜索CUDA 11/12找自己版本对应的pytorch安装pytorch

以我的CUDA 11.7为例子,pip进行安装:
pip install torch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 -i https://pypi.tuna.tsinghua.edu.cn/simple
安装python lighting,==后填上自己的版本号,因为我上面pytorch装的2.0.1,所以我pytorch-lightning也装2.0.1
pip install pytorch-lightning==2.0.1 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
提前安装opencv库,这些都是踩了无数坑后才知道的…
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple opencv-python
安装scipy
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple scipy
清华源没有tb_nightly,切换阿里云
pip install tb_nightly -i https://mirrors.aliyun.com/pypi/simple

下载完后进入项目主目录,安装requirements_versions.txt
pip install -r requirements_versions.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
这可能会将花费比较长时间…

下载模型

https://www.liblib.art/下一个自己喜欢的,注意的是需要下载checkpoint类型模型
全部类型,选择checkpoint
在这里插入图片描述

我下载的是lu简笔画风卡通模型_v2.safetensors,大家可以找自己喜欢的,然后把这个文件复制到项目主目录下的models/Stable-diffusion文件夹里
在这里插入图片描述
注意这里可能会出现中文乱码的问题,是linux操作系统的问题…很坑
因此,我在服务器上用mv重新命名了一下这个文件名成中文的:
mv lu.safetensors lu简笔画风卡通模型_v2.safetensors

下面是模型推荐

https://huggingface.co/gsdf/Counterfeit-V2.5
配合EasyNegative使用,上面的萝姬就是用这个模型,很好看,tag写起来也简单。

https://huggingface.co/andite/anything-v4.0
祖师爷,出图质量稳定,插图风格很不错。

https://huggingface.co/datasets/gsdf/EasyNegative
用这个负面tag就可以写很简单了。

https://huggingface.co/TASUKU2023/Chilloutmix
真人模型,不过我没怎么用过,还是喜欢二次元的图,不过之后可能研究配合Lora玩赛博COS。

来源: https://www.bilibili.com/read/cv21987039/

启动ui

启动UI还要远程安装一些文件,
因为我们连不上github,因此我们需要修改一下配置文件,如果你们能连上github就跳过这步:

需要修改的下载github路径配置文件在:
stable-diffusion-webui/modules/launch_utils.py

我们去编辑一下launch_utils.py,推荐先在本地编辑在传会服务器
或者大佬直接用vim
vim modules/launch_utils.py

搜索prepare_environment
在https://github.com开头的网址前面都加上代理网址
https://mirror.ghproxy.com,推荐使用ctrl+r替换
"https://github.com 替换成"https://mirror.ghproxy.com/https://github.com
'https://github.com 替换成'https://mirror.ghproxy.com/https://github.com

注意:这个文件可能会随项目后续更新,所以可能不一定是一样的,各位只能自行判断了。
在这里插入图片描述

我们可以看看webui.sh,根据提示,我们应该去webui-user.sh修改一下自己的配置

#!/usr/bin/env bash
#################################################
# Please do not make any changes to this file,  #
# change the variables in webui-user.sh instead #
#################################################

修改我自己的webui-user.sh,各位看者自行把握了,毕竟这是我的个人设置了…
重点是:修改python3 executable路径,改成刚刚安装的conda环境light

# python3 executable
python_cmd="/home/$(whoami)/anaconda3/envs/light/bin/python3"

添加执行权限
chmod +x webui.sh
在项目主目录用webui.sh启动
如果你的服务器不能开放端口,那么使用--listen
./webui.sh --listen --no-half --device-id 2
如果可以的话,使用--share
./webui.sh --share --no-half --device-id 2
--no-half表示不用半精度,防止出现黑图像
--device-id表示使用指定的GPU

等待安装下载,喝杯咖啡…
这里就会使用到之前配置的github链接进行下载文件在这里插入图片描述

然后等待模型加载
出现一个报错:
OSError: Can’t load tokenizer for ‘openai/clip-vit-large-patch14’. If you were trying to load it from ‘https://huggingface.co/models’, make sure you don’t have a local directory with the same name. Otherwise, make sure ‘openai/clip-vit-large-patch14’ is the correct path to a directory containing all relevant files for a CLIPTokenizer tokenizer.

解决方案见这篇:
https://blog.csdn.net/SuperB666/article/details/132826492
具体做法是先在这个镜像网站下载所有文件:
https://hf-mirror.com/openai/clip-vit-large-patch14/tree/main

又可以泡杯茶了…
同和解决方案的博客做法一样,创建stable-diffusion-webui/.cache/huggingface/transformers目录,把文件都丢上去
注意:.cache是创建隐藏目录
在这里插入图片描述
在两个文件各两处搜索:openai/clip-vit-large-patch14
改成stable-diffusion-webui/.cache/huggingface/transformers的绝对路径,
请自行参考解决方案博客。

这是那两个文件位置:
stable-diffusion-webui/repositories/generative-models/sgm/modules/encoders/modules.py
stable-diffusion-webui/repositories/stable-diffusion-stability-ai/ldm/modules/encoders/modules.py

重新启动webui.sh
出现Model loaded in 21.8s (load weights from disk: 1.3s, create model: 0.6s, apply weights to model: 19.5s, calculate empty prompt: 0.2s).表明启动成功!

然后本地做个隧道
本机设置:
win+r开启cmd,
使用以下命令将本地端口与服务器端相映射:
ssh -L [本地端口]:localhost:[远程端口] [远程用户名]@[远程IP] -p [ssh连接端口]
例如:
ssh -L 7860:localhost:7860 root@172.31.224.191 -p 22
自行更改ip和用户名后,输入密码连接即可

本地访问127.0.0.1:7860
在这里插入图片描述

尝试生成一张图片,这个模型看了下显存卡2占用大概是8G左右,
注意:卡0需要有300M的空间预留,不然会OOM
在这里插入图片描述

插件安装教程

详细可见参考资料:https://www.bilibili.com/video/BV1Qw411N7uM(推荐观看)

注意:
受限于SD的安全策略 开启监听后默认不允许安装插件
解决办法是在webui-user.sh 的export COMMANDLINE_ARGS 参数中增以下参数
–enable-insecure-extension-access
参考资料:https://zhuanlan.zhihu.com/p/640499741

# Commandline arguments for webui.py, for example: export COMMANDLINE_ARGS="--medvram --opt-split-attention"
export COMMANDLINE_ARGS="--listen --enable-insecure-extension-access"

点击extensions-》available
url换成镜像:https://mirror.ghproxy.com/https://raw.githubusercontent.com/AUTOMATIC1111/stable-diffusion-webui-extensions/master/index.json
点击load from,去掉location,搜索hans,找到zh_Hans Localization
对需要的插件点击install即可,这里我们安装中文汉化
在这里插入图片描述

安装好后,去到setting,点击apply setting,最后点击reload UI
在这里插入图片描述
再去到setting,找到user interface,到localization选择zh-hans插件,在apply后再重启一边UI
在这里插入图片描述

第二种方式使用从url下载,同样的也是安装好后apply setting再reload UI即可
https://github.com/canisminor1990/sd-webui-lobe-theme.git
这里只为了演示,大家仍就可以从安装列表搜索的方式安装
注意:如果因为网络问题安装不了,可以使用代理哦~
https://mirror.ghproxy.com/https://github.com/canisminor1990/sd-webui-lobe-theme.git
在这里插入图片描述

最后我们尝试增加两个功能参数在UI,在setting找到user interface,
在这里插入图片描述
添加sd_vae和clip_stop_at_last_layers,重启UI
在这里插入图片描述

最后设置成功:
在这里插入图片描述

分区提示词插件

参考资料:https://www.bilibili.com/video/BV1Fa4y1S7bS/

安装regional prompter
在这里插入图片描述
如果网络不好出现:
fatal: unable to access ‘https://github.com/hako-mikan/sd-webui-regional-prompter.git/’: GnuTLS recv error (-110): The TLS connection was non-properly terminated.

那么可以用URL镜像下载:
https://mirror.ghproxy.com/https://github.com/hako-mikan/sd-webui-regional-prompter.git

重启UI,出现regional prompter表示安装成功
在这里插入图片描述

打开regional prompter,勾选启用

我发现效果不是很好…我决定换个checkpoint,我下了_GhostInShell_大佬的模型试试,同时查看一下regional prompter更多的教程

参考资料:https://zhuanlan.zhihu.com/p/632947775

关键点:
勾选使用常见提示词,提示词的开头加上公共提示词:

公共提示词
BREAK
区域 0 的提示词
BREAK
区域 1 的提示词

上面我们就有三个提示词:(1)公共提示词;(2) 区域 0 的提示词;(3)区域 1 的提示词。公共提示词会被添加到每个区域的提示词开头。

这是我的例子:

two girl 
BREAK
a girl with green hair,red eyes
BREAK
a girl with black hair,green eyes

在这里插入图片描述

regional prompter的设置
在这里插入图片描述
这时候我想画三个人…
那么可以改分割比率为1,1,1

three girl 
BREAK
a girl,green hair,
BREAK
a girl,black hair
BREAK
a girl,white hair

在这里插入图片描述

总结:
在安装和使用regional prompter时遇到了一些问题。

网络问题可以尝试使用URL镜像下载。

效果不佳的问题,可以尝试更多的模型。

可以查看更多regional prompter的教程,也许有一些技巧可以提高效果,

比如在提示词的开头加上公共提示词以及区域的提示词。

Adetailer插件

Adetailer是人脸重绘修复插件,会自动检测人类生成蒙版进行重绘

官网:https://github.com/Bing-su/adetailer

输入https://github.com/Bing-su/adetailer.git进行安装

也可以通过直接从“扩展”选项卡安装它
在这里插入图片描述
选择启用

感觉效果一般…

提示词的分步采样

语法:
[物体1:物体2:介入时机]

决定主框架的物体放在前面,而汲取主特征的物体放在后面,介入时机是0到1之间的小数,表示从百分之多少开始介入

先抽卡-》确定种子-》设置介入参数

一般从0.3开始尝试,提前介入0.2会太早

物体2可以采用1.5倍强调

推荐流程:抽卡-》固定种子-》设置参数[物体1:(物体2:1.x):0.3] -》设置参数[物体1:(物体2:1.x):0.x]

采样器选择

参考资料:https://www.bilibili.com/video/BV1FN411i7sB/ (Stable diffusion采样器全解析,30种采样算法教程,推荐观看)
在这里插入图片描述
图片来源:https://www.bilibili.com/opus/838501405743382562

采样器的收敛性

如SDE不收敛采样器,收敛性并非一成不变,ETA参数即噪声倍率值,控制添加噪声的强度,进而控制发散程度,甚至可以完全关闭,在设置中找到采样方法Eta系数:

在这里插入图片描述

可以将这个参数添加到快捷键:
在这里插入图片描述
选择2M SDE Karras采样器做实验
在这里插入图片描述

使用脚本,画XYZ plot
在这里插入图片描述
ETA为1时不收敛,ETA为0有收敛趋势
在这里插入图片描述

UniPC采样器

优势:最新采样器,低步数快速出图

参数有:
UniPC variant
UniPC skip type
UniPC order
UniPC lower order final

将这4个参数添加到快捷菜单中:
在这里插入图片描述
首先是变体,有三个,当步骤 < 10 时,建议使用 bh1 进行无条件采样,否则使用 bh2。
什么是无条件采样,那就无任何提示词
solver_type (str, default bh2) — Solver type for UniPC. It is recommended to use bh1 for unconditional sampling when steps < 10, and bh2 otherwise.
参考资料:https://huggingface.co/docs/diffusers/main/en/api/schedulers/unipc
我们使用uniPC时候,应该使用bh2,cfg值适当降低至3~4
在这里插入图片描述

第二参数,UniPC skip type:
>51*512选 time_uniform
<512*512选logSNR
两者都不行,请尝试time_quadratic
选择time_uniform即可,因为大部分场景不会涉及小于512的情况

在这里插入图片描述

第三个参数,UniPC order
这个值我们需要微调
生成器会先生成高阶特征,再生成低阶特征
高阶特征:图像中具有较高层次结构的特征,如场景,体型,信号处理中的低频部分,可以理解成高斯模糊后图片的大光影结构
低阶特征:图像中具有较低层次结构的特征,如边缘,纹理,信号处理中的高频部分
低阶步数就是生成低阶特征的步数,一般不会设置太大,1~3之间就行
官网建议:solver_order (int, default 2) — The UniPC order which can be any positive integer. The effective order of accuracy is solver_order + 1 due to the UniC. It is recommended to use solver_order=2 for guided sampling, and solver_order=3 for unconditional sampling.

solver_order (int, 默认值 2) — UniPC 顺序,可以是任何正整数。由于 UniC 的原因,有效精度顺序为 solver_order + 1。建议使用 solver_order=2 进行引导采样,使用 solver_order=3 进行无条件采样。

记住默认为有条件为2就好

其实可以按照画面需求进行设置,如果觉得画面太过平滑,可以设置成3,4…但是过高手部会出现奇怪细节

也就是步数越高,细节更多,越 不够唯美

在这里插入图片描述

第四个参数,UniPC lower order final保持勾选即可,不然会出现鬼图

高分辨率修复 (Hires. fix)

参考资料:https://medium.com/rendernet/using-hires-fix-to-upscale-your-stable-diffusion-images-8d8e2826593e

先生成低分辨率再超分

下面这几个比较常用:latent效果个人感觉不好
在这里插入图片描述

放大倍数,不要调太大会占不下显存
在这里插入图片描述

可以在 0–150 范围内设置 HiRes 步长
将其保持为 0 会使 HiRes 步骤 = 采样步骤
因此,如果您的采样步数为 20,而 HiRes 步数为 0,则总步数为 40。

选择正确的 HiRes 步数非常重要,因为将其设置得太低或太高都会使图像结果恶化。我们发现选择 10-15 个 一般效果较佳

但是,如果采样步数超过 50,那么最好将 HiRes 步数设置为采样步数的一半。

在这里插入图片描述

去噪,默认降噪强度为0.7。然而,在很多情况下,这往往过于强烈。
建议首先使用 0.3–0.5 之间的值,然后根据结果将其调高或调低

如果出现网络问题无法下载:Unable to load RealESRGAN model https://github.com/xinntao/Real-ESRGAN/releases/download/v0.2.2.4/RealESRGAN_x4plus_anime_6B.pth

那么可以自行下载一下,根据提示丢到
stable-diffusion-webui/models/RealESRGAN/RealESRGAN_x4plus_anime_6B.pth

个人感觉比较占显存,放大2倍就要16G显存了。

图生图

图生图必装:Interrogate图像反推

下面是Interrogate模型:
https://github.com/AUTOMATIC1111/TorchDeepDanbooru/releases/download/v1/model-resnet_custom_v3.pt
放至stable-diffusion-webui/models/torch_deepdanbooru/

记得重启项目,上传图片,点击Interrogate(下图红色框框位置),自动填充prompt,然后点生成
当然可以自己调整一下参数
在这里插入图片描述

刚刚用的就是最基础的图生图,在原图上修改,如高清转化,图片放大等。下面介绍其他几个功能:

涂鸦模式,是在原图上进行简单的手绘,让AI完成润色

局部重绘,需要重绘的地方用画笔画出来,写好提示词

涂鸦重绘,类似局部重绘,会多考虑颜色

上传重绘蒙版,其实就是局部重绘

批处理,用的不多

参数调整:
重绘幅度,对原图的改造程度,大家可以0~1自己调整试试,取决于自己的需求
在这里插入图片描述
缩放图像
在这里插入图片描述
仅调整大小如果长宽比不一致会出现拉伸,那么可以选择裁剪后缩放,
缩放后填充空白,有点像重绘
潜空间放大,在潜空间进行,这时候要调高cfg

类似PS羽化效果,透明程度越高被影响越小
在这里插入图片描述
小幅修改使用原版
大幅修改,但又不想产生割裂,使用填充
更多的自由发挥空间,使用潜空间噪声或者空白潜空间,注意的是这里需要搭配较高cfg
在这里插入图片描述

重绘区域,仅蒙版区域下面的预留边缘像素才会生效
在这里插入图片描述

ControlNet

介绍

ControlNet是一种网络结构,通过添加额外控制条件,来控制出图效果。

参考资料:
https://github.com/Mikubill/sd-webui-controlnet(官网,适合高玩直接上手)
https://openai.wiki/controlnet-install.html(推荐新手照着做)
https://openai.wiki/controlnet-models-download.html (模型下载,当然我下面也提供百度盘)

首先安装ControlNet插件,然后下载模型:
打开“扩展”选项卡。
在选项卡中打开“从 URL 安装”选项卡。
输入https://github.com/Mikubill/sd-webui-controlnet.git
(下不动的话使用代理,https://mirror.ghproxy.com/https://github.com/Mikubill/sd-webui-controlnet.git
安装后等消息:已安装到 stable-diffusion-webui\extensions\sd-webui-controlnet。
切换到设置,应用并重新启动 UI
完全重新启动 webui,退出启动的应用,重新用webui.sh启动

重启提示:ControlNet init warning: Unable to install insightface automatically. Please try run pip install insightface manually.
手动安装pip install insightface即可,注意切换环境

目前ControlNet 1.1的所有14个模型都处于beta测试阶段。
从 ControlNet 1.1 下载模型:https://huggingface.co/lllyasviel/ControlNet-v1-1/tree/main
您需要下载以“.pth”结尾的模型文件。
将模型放入stable-diffusion-webui\extensions\sd-webui-controlnet\models中。只需要下载“pth”文件。
在这里插入图片描述

请勿右键单击 HuggingFace 网站中的文件名进行下载。一些用户右键单击这些 HuggingFace HTML 网站,并将这些 HTML 页面保存为 PTH/YAML 文件。他们没有下载正确的文件。请点击 HuggingFace 中的小下载箭头“↓”图标进行下载。

我提供了百度盘可以用百度盘下载,失效了记得踹我一脚
Sd15模型:
链接:https://pan.baidu.com/s/1f8Ya8mnD379yIb0uZCG75w?pwd=2jem
提取码:2jem
sdxl模型:
链接:https://pan.baidu.com/s/1z_TtoQ_EdQbL8YiumCns7Q?pwd=nip8
提取码:nip8
本地存放地址:[你安装sd的位置]/stable-diffusion-webui/extensions/sd-webui-controlnet/models

注意玩的模型目前主流的是SD1.5和SDXL,当然你可以选择你需要的模型进行下载,反正我是一股脑全扔上去了

像我现在用的鬼混模型就是SD1.5,但还是把SDXL装了(其实可以不装)
在这里插入图片描述

下面是SD1.5的ControlNet模型介绍,关于模型的描述为官方描述【机器翻译】,可供参考。

ControlNet/models/control_sd15_canny.pthControlNet+SD1.5 模型,用于使用精明边缘检测来控制 SD。
ControlNet/models/control_sd15_depth.pthControlNet+SD1.5模型使用Midas深度估计来控制SD。
ControlNet/models/control_sd15_hed.pthControlNet+SD1.5 型号使用 HED 边缘检测(软边缘)控制 SD。
ControlNet/models/control_sd15_mlsd.pthControlNet+SD1.5模型使用M-LSD线检测来控制SD(也可以与传统的Hough变换一起使用)。
ControlNet/models/control_sd15_normal.pthControlNet+SD1.5 模型使用法线贴图控制 SD。最好使用该 Gradio 应用程序生成的法线贴图。只要方向正确,其他法线贴图也可以工作(左边看红色,右边看蓝色,上看绿色,下看紫色)。
ControlNet/models/control_sd15_openpose.pthControlNet+SD1.5 模型,使用 OpenPose 姿势检测控制 SD。直接操纵姿势骨架也应该有效。
ControlNet/models/control_sd15_scribble.pthControlNet+SD1.5模型使用人类涂鸦控制SD。该模型使用边界边缘进行训练,具有非常强大的数据增强功能,以模拟类似于人类绘制的边界线。
ControlNet/models/control_sd15_seg.pthControlNet+SD1.5模型使用语义分割来控制SD。协议是ADE20k。
ControlNet/annotator/ckpts/body_pose_model.pth第三方模型:Openpose的姿势检测模型。
ControlNet/annotator/ckpts/hand_pose_model.pth第三方模型:Openpose的手部检测模型。
ControlNet/annotator/ckpts/dpt_hybrid-midas-501f0c75.pt第三方模型:迈达斯深度估计模型。
ControlNet/annotator/ckpts/mlsd_large_512_fp32.pth第三方模型:M-LSD检测模型。
ControlNet/annotator/ckpts/mlsd_tiny_512_fp32.pth第三方模型:M-LSD的另一个较小的检测模型(我们不使用这个)。
ControlNet/annotator/ckpts/network-bsds500.pth第三方模型:霍尔效应器件边界检测。
ControlNet/annotator/ckpts/upernet_global_small.pth第三方模型:Uniformer 语义分割。

泡杯咖啡吧…少女下载中…

下载模型
将模型放入正确的文件夹后,您可能需要刷新才能看到模型。刷新按钮位于“模型”下拉列表的右侧。
我选择直接重启应用…

出现Warning问题:

Warning: ControlNet failed to sync submodules. Please try run `git submodule init` and `git submodule update` manually.

解决方案参考:https://github.com/Mikubill/sd-webui-controlnet/pull/2428
反正是warning,就不管了

下面是安装好了模型,下面从控制类型开始介绍吧

在这里插入图片描述

控制类型

控制类型用于固定画面的基本结构

注意:在使用的时候可能会下载额外的模型,大家自行下载放至指定的位置即可,比如:Downloading: “https://huggingface.co/lllyasviel/Annotators/resolve/main/res101.pth” to /home4/likeghee/work_place/sd/stable-diffusion-webui/extensions/sd-webui-controlnet/annotator/downloads/leres/res101.pth。那么就下载这个pth放到stable-diffusion-webui/extensions/sd-webui-controlnet/annotator/downloads/leres下面即可

我们启controlnet,打开允许预览,勾选完美像素模式,不要勾选低显存模式,是用你的CPU来跑的
在这里插入图片描述

完美像素模式,1.1版本的新功能,作用是自动计算分辨率
在这里插入图片描述

线稿类型

那么一般的线稿类型有: Canny,软边缘,涂鸦,线稿,直线

选择Canny,点击下面的执行按钮,我们就可以在预处理结果预览看到结果
在这里插入图片描述
写上提示词,生成图片,你会发现生成的图片就固定了画面的基本结构
Canny是边缘检测算法,根据灰度梯度判断图片边缘,那么自然就有梯度阈值进行过滤,越低保留的线条越多。
实际使用还是靠感觉了

在这里插入图片描述
软边缘有四种提取算法,软边缘一般有过渡效果,没有那么锐利,具体作用不详
在这里插入图片描述
涂鸦,提取线稿比较粗糙,不常用
在这里插入图片描述

线稿,类似手绘的线稿,动漫类线稿比写实类线稿细节更少,按自己需求使用
在这里插入图片描述

直线,只提取直线,弯曲线条忽略,不适合人像图,适合建筑之类的
在这里插入图片描述

结构类型

深度,提取图片的深度来控制出图效果,越黑表示离我们越远,越白的部分离我们越近,不同算法提取的深度细节同,可以根据自己的需求选择
在这里插入图片描述

法线图,空间中平面方向的信息图,与深度图类似,用于传输图像中的空间的一个组成,会有不同颜色,其实就是颜色表示平面所对的那个方向,算法选用bae即可
在这里插入图片描述

姿态,控制人物面部和肢体动作的控制器,目前来看面部特征识别效果还不是不太行,要用的话直接选DW_openpose_full这个算法即可,使用了双向卷积处理图像,效果更好也更快
在这里插入图片描述

我们可以使用open pose editor来编辑骨骼,然后发送姿势回controlNet
在这里插入图片描述
语义分割,自动识别画面中的物体,并分割成不同的区域,然后用不同的颜色表示,一般情况下20K优于coco,这个数据集做CV的应该很熟悉了,COCO数据集数据种类不多,算法方面OneFormer更快更准确,直接用默认的即可。
在这里插入图片描述

参考类型

Reference控制器
用输入图片作为参考来控制AI出图的一种控制器,adain只会进行视觉分割迁移,only会迁移内容,adain+attn是二者的结合,可以理解为参考原始内容并且ai还会有一定程度的发挥
在这里插入图片描述
风格忠诚度参数可以调节,越大越忠于原图
在这里插入图片描述
个人觉得这个参考的控制还不太稳定

修订控制器

将上传图片作为条件作为输出,但是我们一般用咒语,这里提出了图片也能作为条件作为控制,建议直接使用作为补充
在这里插入图片描述
参数噪声增强,只有0和1选择有点类似ETA参数,可以理解成AI是否自我发挥

InstructP2P控制器
类似图生图,感觉作用不强

shuffle控制器
只是像素打乱,用于画风迁移,感觉作用不强

IP-Adapter控制器
类似修订,但是效果更好,推荐使用plus版本
在这里插入图片描述

重绘类型

局部重绘
图生图也有局部重绘,但是会出现画面撕裂扭曲,ctrlnet就是为了解决这个问题
可以选择only预处理器,第一个和第二个是一样的,
+lama会产生一个比较干净的画面,会用lama模型先对图像进行预处理
在这里插入图片描述

分块/模糊
分块就是先分割成若干块,并识别出每块信息,好处是分块处理减小硬件的压力。

如果提示词与某块中的对象匹配,就会不改变对象定义的情况下,生成新的细节,
如果提示词与某块中的对象不匹配,那就以对象为准,降低提示词的影响,
以此达到局部和全局的统一
在这里插入图片描述

重上色
给图片重上色彩风格,如老照片的上色

总结

介绍了这么多控制器,建议还是看看别人更多的成功案例,我这里并不深入,可能给不了太多的启发…

并且没有介绍组合单元用法,更多的功能就交给各位自行探索了…

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/625750.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jetson nano VNC远程桌面配置及使用(nomachine)

文章目录 jetson nano VNC远程桌面配置及使用1.Nomachine介绍2.在电脑端安装Nomachine3.在Jetson Nano端安装Nomachine4.电脑端连接及使用步骤5.修改分辨率6.NoMachine常见问题6.1 黑屏6.2 白屏 jetson nano VNC远程桌面配置及使用 本节适用于Jetson Nano没有单独显示器可以给…

2023年跨国企业如何实现跨境数据传输合规化(上)

一、什么是数据跨境传输&#xff1f; 首先了解一个概念&#xff0c;什么是数据跨境传输&#xff1f; 数据跨境传输简单概括就是指信息通过互联网等网络媒介&#xff0c;在跨国企业之间进行传递和交换的过程。 有一则官方网站关于全球化数字化的数据统计&#xff1a;仅2019 年…

MyBatisPlus学习笔记二

接上&#xff1a;MyBatisPlus学习笔记一&#xff1a; MyBatisPlus学习笔记一-CSDN博客 1、条件构造器 MyBatisPlus支持各种复杂的where条件&#xff0c;可以满足日常开发的所有需求。 1.1、集成体系 1.2、实例 查询 lambda查询 更新 1.3、总结 2、自定义sql 我们可以利用MyB…

强化学习AI构建实战 - 基于“黄金点”游戏(二)

服务端接口 为了让大家的AI可以顺利地进行游戏&#xff0c;并验证我们对策略和AI的一些实现&#xff0c;我们需要一些基础设施来帮助我们完成一些工作。这些工作包括游戏回合的控制、参与者之间的数据同步、游戏数据的储存等功能。 为了简化这些基础工作&#xff0c;以便大家…

VM虚拟化——物理机迁移至虚拟化

一、安装迁移工具 VMware vCenter Converter Standalone 【安装向导】 【最终用户专利协议】 【最终用户许可协议】 【安装位置】 【安装类型】默认本地安装 【用户体验设置】 【准备安装】 二、迁移 【转换机器】 【源主机】 填ip、用户名和密码 最好是用administ…

什么是DDOS高防ip?DDOS高防ip是怎么防护攻击的

随着互联网的快速发展&#xff0c;网络安全问题日益突出&#xff0c;DDoS攻击和CC攻击等网络威胁对企业和网站的正常运营造成了巨大的威胁。为了解决这些问题&#xff0c;高防IP作为一种网络安全服务应运而生。高防IP通过实时监测和分析流量&#xff0c;识别和拦截恶意流量&…

PattPatel-“Introduction to Computing Systems“(4)期末样卷题目解析:C语言递归

C语言的递归我觉得最主要的还是要把Patt&Patel的部分好好理解下&#xff08;因为有和硬件结合的部分&#xff09;&#xff0c;但因为今天就考试&#xff08;来不及做这样的事情&#xff09;&#xff0c;先把之前模拟卷的题目给尝试弄明白&#xff0c;然后考完试之后继续学习…

vue-ESlint代码规范及修复

1. 介绍 ESLint:是一个代码检查工具&#xff0c;用来检查你的代码是否符合指定的规则(你和你的团队可以自行约定一套规则)。 在创建项目时&#xff0c;我们使用的是 JavaScript Standard Style 代码风格的规则。 规范网址&#xff1a;https://standardjs.com/rules-zhcn.htm…

力扣-刷MySQL(详细解析)

&#x1f389;欢迎您来到我的MySQL基础复习专栏 ☆* o(≧▽≦)o *☆哈喽~我是小小恶斯法克&#x1f379; ✨博客主页&#xff1a;小小恶斯法克的博客 &#x1f388;该系列文章专栏&#xff1a;重拾MySQL &#x1f379;文章作者技术和水平很有限&#xff0c;如果文中出现错误&am…

uniApp 顶部导航栏右侧添加文字按钮

{"path" : "pages/allin/MessageCenter/MessageCenter","style" : {"navigationBarTitleText": "消息中心","enablePullDownRef…

如何在Eclipse IDE中安装TestNG插件

目录 使用Eclipse Marketplace安装TestNG插件 通过输入URL安装TestNG 1.点击安装新软件 2.输入URL以安装TestNG 3.遵循正常的安装过程 4.重新启动Eclipse 在Eclipse中安装TestNG插件的视频 在这篇文章中&#xff0c;我们将介绍如何在Eclipse IDE中安装TestNG插件&#x…

JVM-Arthas高效的监控工具

一、arthas介绍 3.选择监控哪个进程 4.进入具体进程 二、arthas的基础命令与基本操作 1.查询包含Java的系统属性&#xff1a; 命令&#xff1a;sysprop |grep java 1.查询不含Java的系统属性&#xff1a; 命令&#xff1a;sysprop | grep -v java 3.打印历史命令 命令&#…

C语言从入门到实战——结构体与位段

结构体与位段 前言一、结构体类型的声明1.1 结构体1.1.1 结构的声明1.1.2 结构体变量的创建和初始化 1.2 结构的特殊声明1.3 结构的自引用 二、 结构体内存对齐2.1 对齐规则2.2 为什么存在内存对齐2.3 修改默认对齐数 三、结构体传参四、 结构体实现位段4.1 什么是位段4.2 位段…

基于springboot的流浪动物救助管理系统

&#x1f345;点赞收藏关注 → 私信领取本源代码、数据库&#x1f345; 本人在Java毕业设计领域有多年的经验&#xff0c;陆续会更新更多优质的Java实战项目希望你能有所收获&#xff0c;少走一些弯路。&#x1f345;关注我不迷路&#x1f345;一 、设计说明 1.1研究背景 随着…

windows平台高dpi介绍

flutter在windows平台如何自定义dpi设置 系统层级的支持(windows平台对高dpi的支持) 主要有两点&#xff1a; 设置系统的缩放比例 (系统及系统自带的app会根据这个设置来进行缩放&#xff1b;自己的app需要结合自己设置的dpi awareness来实现对应的dpi支持)设置进程的dpi aw…

BIOS知识枝桠——RAID 磁盘阵列

文章目录 前言一、RAID介绍二、RAID等级分类1.RAID02.RAID13.RAID24.RAID3和RAID45.RAID5和RAID66.RAID77.RAID10 BIOS下组建RAID 前言 假设存在多块磁盘&#xff0c;如果不组建阵列&#xff0c;磁盘与磁盘之间是没有任何关系的。磁盘A和B&#xff0c;放在A中的文件与B磁盘没有…

vue中使用component中的is渲染组件如何使用,:is 等价 v-if渲染组件。

动态组件顾名思义动态加载不同的组件&#xff0c;is属性用于加载不同组件&#xff0c;传参使用属性传递 1、使用v-for遍历component&#xff0c;组件都会执行 <componentv-for"(item, index) in TAB_PANE":key"index":is"item.componentName"…

Java多线程——并发和并行、实现方法

多线程 并发和并行 实现方法 代码演示 方式一 package com.qiong.thread1;public class MyThread extends Thread{Overridepublic void run() {for (int i 0; i < 20; i) {System.out.println(getName() "Hello World");}} }package com.qiong.thread1;public…

运筹说 第65期 | 动态规划的基本概念和基本原理

20世纪50年代初&#xff0c;美国数学家R. Bellman 等人在解决多阶段决策优化问题时提出了一种高效的求解方法——动态规划&#xff08;Dynamic Programming&#xff09;&#xff0c;该方法基于多阶段决策优化问题的特点&#xff0c;把多阶段问题转换为一系列互相联系的单阶段问…

2024抖店选品方法,及侧重方向思路(全新版本),可收藏备用

我是王路飞。 做无货源抖店的商家&#xff0c;牢记【选品重于泰山】这句话。 要知道电商的本质就是产品&#xff0c;你所有的运营手段也都是围绕产品进行的&#xff0c;店铺内的流量也都是冲着产品来的。 产品不行&#xff0c;哪怕再多的流量、再高的曝光率&#xff0c;也带…