Stable diffusion界面介绍使用方法

分享

Stable diffusion界面介绍使用方法

导入多个文件可供专业用户使用 - [试用Pro] (craftdocs://openSubscription)。

标签权重

  • 在输入 Prompt 标签的时候,有时候想到啥就会写啥,默认写在前面的权重会最高
  • stable Diffusion 中也可以通过特定符号提升关键词的权重
  • 其中 () 是加强权重,[] 是降低权重,{}NAI() 的“实现”,<> 用于嵌入
  • 例如:(eye) > [eye](eye:1.4) 会比正常情况多增加约 40%(eye:0.6) 会减少约 40 %
# 默认关键词是1.1倍
(eye) = (eye:1.1)
((eye)) = (eye:1.21)
(((eye))) = (eye:1.331)
((((eye)))) = (eye:1.4641)
(((((eye)))) = (eye:1.61051)
((((((eye)))))) = (eye:1.771561)
[eye] = (eye:0.9090909090909091)
[[eye]] = (eye:0.8264462809917355)
[[[eye]]] = (eye:0.7513148009015778)
[[[[eye]]]] = (eye:0.6830134553650707)
[[[[[eye]]]]] = (eye:0.6209213230591552)
[[[[[[eye]]]]]] = (eye:0.5644739300537775)

文生图

如图所示 Stable Diffusion WebUI 的操作界面主要分为:模型区域、功能区域、参数区域、出图区域。

  1. txt2img 为文生图功能,重点参数介绍:
  2. 正向提示词:描述图片中希望出现的内容
  3. 反向提示词:描述图片中不希望出现的内容
  4. Sampling method:采样方法,推荐选择 Euler a 或 DPM++ 系列,采样速度快
  5. Sampling steps:迭代步数,数值越大图像质量越好,生成时间也越长,一般控制在 30-50 就能出效果
  6. Restore faces:可以优化脸部生成
  7. Width/Height:生成图片的宽高,越大越消耗显存,生成时间也越长,一般方图 512x512,竖图 512x768,需要更大尺寸,可以到 Extras 功能里进行等比高清放大
  8. CFG:提示词相关性,数值越大越相关,数值越小越不相关,一般建议 7-12 区间
  9. Batch count/Batch size:生成批次和每批数量,如果需要多图,可以调整下每批数量
  10. Seed:种子数,-1 表示随机,相同的种子数可以保持图像的一致性,如果觉得一张图的结构不错,但对风格不满意,可以将种子数固定,再调整 prompt 生成

!Pasted image 20230420091620.png

图生图

img2img 功能可以生成与原图相似构图色彩的画像,或者指定一部分内容进行变换。可以重点使用 Inpaint 图像修补这个功能:

  1. Resize mode:缩放模式,Just resize 只调整图片大小,如果输入与输出长宽比例不同,图片会被拉伸。Crop and resize 裁剪与调整大小,如果输入与输出长宽比例不同,会以图片中心向四周,将比例外的部分进行裁剪。Resize and fill 调整大小与填充,如果输入与输出分辨率不同,会以图片中心向四周,将比例内多余的部分进行填充
  2. Mask blur:蒙版模糊度,值越大与原图边缘的过度越平滑,越小则边缘越锐利
  3. Mask mode:蒙版模式,Inpaint masked 只重绘涂色部分,Inpaint not masked 重绘除了涂色的部分
  4. Masked Content:蒙版内容,fill 用其他内容填充,original 在原来的基础上重绘
  5. Inpaint area:重绘区域,Whole picture 整个图像区域,Only masked 只在蒙版区域
  6. Denoising strength:重绘幅度,值越大越自由发挥,越小越和原图接近

!Pasted image 20230420091608.png

ControlNet

安装完 ControlNet 后,在 txt2img 和 img2img 参数面板中均可以调用 ControlNet。操作说明:

  1. Enable:启用 ControlNet
  2. Low VRAM:低显存模式优化,建议 8G 显存以下开启
  3. Guess mode:猜测模式,可以不设置提示词,自动生成图片
  4. Preprocessor:选择预处理器,主要有 OpenPose、Canny、HED、Scribble、Mlsd、Seg、Normal Map、Depth
  5. Model:ControlNet 模型,模型选择要与预处理器对应
  6. Weight:权重影响,使用 ControlNet 生成图片的权重占比影响
  7. Guidance strength(T):引导强度,值为 1 时,代表每迭代 1 步就会被 ControlNet 引导 1 次
  8. Annotator resolution:数值越高,预处理图像越精细
  9. Canny low/high threshold:控制最低和最高采样深度
  10. Resize mode:图像大小模式,默认选择缩放至合适
  11. Canvas width/height:画布宽高
  12. Create blank canvas:创建空白画布
  13. Preview annotator result:预览注释器结果,得到一张 ControlNet 模型提取的特征图片
  14. Hide annotator result:隐藏预览图像窗口

!Pasted image 20230420091558.png

LoRA 模型训练说明

前面提到 LoRA 模型具有训练速度快,模型大小适中(100MB 左右),配置要求低(8G 显存),能用少量图片训练出风格效果的优势。

以下简要介绍该模型的训练方法:

第 1 步:数据预处理

在 Stable Diffusion WebUI 功能面板中,选择 Train 训练功能,点选 Preprocess images 预处理图像功能。在 Source directory 栏填入你要训练的图片存放目录,在 Destination directory 栏填入预处理文件输出目录。width 和 height 为预处理图片的宽高,默认为 512x512,建议把要训练的图片大小统一改成这个尺寸,提升处理速度。勾选 Auto focal point crop 自动焦点裁剪,勾选 Use deepbooru for caption 自动识别图中的元素并打上标签。点击 Preprocess 进行图片预处理。

第 2 步:配置模型训练参数

在这里可以将模型训练放到 Google Colab 上进行,调用 Colab 的免费 15G GPU 将大大提升模型训练速度。LoRA 微调模型训练工具我推荐使用 Kohya,运行 Kohya Colab: https://colab.research.google.com/github/Linaqruf/kohya-trainer/blob/main/fast-kohya-trainer.ipynb

配置训练参数:

先在 content 目录建立 training_dir/training_data 目录,将步骤 1 中的预处理文件上传至该数据训练目录。然后配置微调模型命名和数据训练目录,在 Download Pretrained Model 栏配置需要参考的预训练模型文件。其余的参数可以根据需要调整设置。

第 3 步:训练模型

参数配置完成后,运行程序即可进行模型训练。训练完的模型将被放到 training_dir/output 目录,我们下载 safetensors 文件格式的模型,存放到 stable-diffusion-webui/models/Lora 目录中即可调用该模型。由于直接从 Colab 下载速度较慢,另外断开 Colab 连接后也将清空模型文件,这里建议在 Extras 中配置 huggingface 的 Write Token,将模型文件上传到 huggingface 中,再从 huggingface File 中下载,下载速度大大提升,文件也可进行备份。

!Pasted image 20230420091545.png

2. Prompt 语法技巧

文生图模型的精髓在于 Prompt 提示词,如何写好 Prompt 将直接影响图像的生成质量。

提示词结构化

Prompt 提示词可以分为 4 段式结构:画质画风 + 画面主体 + 画面细节 + 风格参考

  1. 画面画风:主要是大模型或 LoRA 模型的 Tag、正向画质词、画作类型等
  2. 画面主体:画面核心内容、主体人/事/物/景、主体特征/动作等
  3. 画面细节:场景细节、人物细节、环境灯光、画面构图等
  4. 风格参考:艺术风格、渲染器、Embedding Tag 等

!Pasted image 20230420091524.png

提示词语法

  1. 提示词排序:越前面的词汇越受 AI 重视,重要事物的提示词放前面
  2. 增强/减弱:(提示词:权重数值),默认 1,大于 1 加强,低于 1 减弱。如 (doctor:1.3)
  3. 混合:提示词 | 提示词,实现多个要素混合,如 [red|blue] hair 红蓝色头发混合
    • 和 AND:用于连接短提示词,AND 两端要加空格
  4. 分步渲染:[提示词 A:提示词 B:数值],先按提示词 A 生成,在设定的数值后朝提示词 B 变化。如[dog:cat:30] 前 30 步画狗后面的画猫,[dog:cat:0.9] 前面 90%画狗后面 10%画猫
  5. 正向提示词:masterpiece, best quality 等画质词,用于提升画面质量
  6. 反向提示词:nsfw, bad hands, missing fingers……, 用于不想在画面中出现的内容
  7. Emoji:支持 emoji,如 😍 形容表情,🖐 修饰手

!Pasted image 20230420091511.png

常用提示词举例:

!Pasted image 20230420091452.png

3. ChatGPT 辅助生成提示词

我们也可以借助 ChatGPT 帮我们生成提示词参考。

  1. 给 ChatGPT 一段示例参考:https://dreamlike.art/guides/using-openai-chat-gpt-to-write-stable-diffusion-prompts
  2. 根据参考生成 Prompts,再添加细节润色

!Pasted image 20230420091443.png

4. Stable Diffusion 全中文环境配置

在实际使用中,我们还可以把 Stable Diffusion 配置成全中文环境,这将大大增加操作友好度。全中文环境包括了 Stable Diffusion WebUI 的汉化和 Prompt 支持中文输入。

Stable Diffusion WebUI 汉化

  1. 安装中文扩展插件:点击 Extensions 选择 Install from URL,输入 https://github.com/VinsonLaro/stable-diffusion-webui-chinese ,点击 Install,并重启 WebUI
  2. 切换到中文模式:在 Settings 面板中,将 User interface 中的 Localization 设置成 Chinese 中文模式,重启 WebUI 即可切换到中文界面

!Pasted image 20230420091433.png

Prompt 中文输入

  1. 下载提示词中文扩展插件: https://github.com/butaixianran/Stable-Diffusion-Webui-Prompt-Translator ,将项目作为 zip 文件下载,解压后放到 stable-diffusion-webui/extensions 目录中,重启 WebUI
  2. 调用百度翻译 API:去 api.fanyi.baidu.com 申请一个免费 API Key,并将翻译服务开通。在管理控制台的开发者信息页中确认 APP ID 和 密钥
  3. 在 Stable Diffusion WebUI 的 Prompt Translator 面板中,选择百度翻译引擎,并将申请的 APP ID 和 密钥填写进去,点击保存
  4. 使用:在 Stable Diffusion WebUI 页面顶部会出现一个翻译工具栏,我们在提示词输入框中输入中文,点击工具栏中的翻译就能自动把提示词替换成英文

!Pasted image 20230420091410.png

阅读更多

Web Worker多线程的开挖到开埋

Web Worker多线程的开挖到开埋

Web Worker多线程的开挖到开埋 回归点本行,web worker之前只是照着文档使用一回,想着零档起手,那就从头开始整理一下,费曼嘛,分享到网上也单纯的只是想,也许互联网上的某个角落只要有一个人觉得有用,那就算有用了。 公司是处理物联网相关内容,会有大量的实时数据需要二次处理,或者历史数据重新整理分析等等,特别是现在的招标企业领导又特别喜欢看大屏、报表之类的,物联网的大屏是又要数据又要效果,然后还不能让页面响应等太久,鉴于JS的特性,所以大屏交互上的,能让CSS干的尽量让CSS干,美其名曰基于动画展示效果和性能考虑,实质上是单纯喜欢用CSS去捣鼓,然后某日想起web worker的特性: 文件限制:Worker 不能读取本地文件,脚本必须来自网络 脚本限制:Worker 不能执行 alert() 和 confirm() 方法,但可以使用 XMLHttpRequest 对象。 通信机制:Worker 与主线程通过消息进行通信。 DOM 限制:Worker 线程无法访问主线程的 DOM 对象,但可以访问 navigator

Warp,给终端增加一些协作的空间

Warp,给终端增加一些协作的空间 前端开发遇到老项目的时候,经常会遇到各种版本依赖的问题,这时候肯定特别怀念最早的原生的三架马车的代码,自从有了node_modules之后,黑洞都不及node_modules的深,当这种很老的项目跑不起来的时候,很自然的偶尔需要一些外部力量的协助,在同一个环境里面,直接把外部力量拖到显示器前,是高效的选择,但有时候是现状又不允许,这时候借助远程协助的工具,其中又有一些其它不便的影响,这种场景下远程协助的目的,最终也是操作终端,那如果对方就是直接可以操作我的终端呢? 所以Warp来了。 关于WARP 顺带说一下Warp,之前因为颜值好看,一直代替了默认终端来使用的,当然好不好看还是要看个人的,直接上官方的图。 其它的基础的功能跟大部分的终端功能差不多,只是官方说是基于RUST的速度快,还有就是它的快的功能。 官网经常改版,最新的官方口号也改了“The intelligent terminal.”更智能了。 关于刚刚上面提到的协作 准备两个账号,一个账号本机,一个账号远程,如果无另一个账号的话,则另外一个只能只读,就是查看,不可进行远

Something is wrong

Something is wrong 本内容纯属胡思乱想产物,属于作者灵魂飞舞。 其中没有任何观点,如有则是纯属巧合,非故意为之,如看完有任何误会或想法,均属观众自主行为,与作者无关。 上个月增驾了 D 照,虽然家里领导还没有同意,但挡不内内心自然而然的开始关注摩托车的一些话题:品牌的可靠性,类型的舒适度,再如城市禁摩区域,哪些省的高速对于摩托的禁行;各大视频平台上(抖音、B 站、视频号)相关视频一大堆,各UP 主视频里面的套路都差不多。对这些行为本身的好坏暂且不评价,因为无法看到全貌,站在不同立场,解读肯定会有不同,只是思考一下视频的现状。 这些视频大致都有类似的情节: (视频大家自己搜)摩托车 UP 主随车带着《交通法》和一堆相关法规资料,在高速收费站尝试上高速;到了收费站,礼貌性地跟工作人员员要卡,对方照例以“规定”为由阻拦;驾驶员要么不接受劝阻,直接驶上高速,要么在收费站口呼叫警察叔叔。如果是情况一成功上高速之后,

上海驾驶证增驾D照的流程回顾解析

上海驾驶证增驾D照的流程回顾解析

说到摩托车,看港片过来的人,谁也忘不了刘德华骑着那辆红白配色的铃木摩托车,载着身穿洁白婚纱的吴倩莲飞驰在街道上的场景。还有一种情绪就是《天若有情》配上了《灰色轨迹》。 一个朋友某日开着一辆摩托来公司访问,访谈中间聊到的摩托驾照,经过公司的损友捣鼓,遂与其一拍即合,上个月底报名,到这个月底全部考完,等下个星期增驾之后的新驾照,想着回顾一下,希望我开始的时候遇到的一些盲点可以让大家提前避开,虽然年轻人有时候是需要多走一些弯路,不过能走直路的弯路咱还是避开吧。 当然如果有教练当然最好,下面的这些就不用看了,教练会告诉你哪一步需要干什么,你要做的就是配合教练就行了。 关于费用 每个地方每个教练的费用不一样,或多或少都会有点差异,这里就不说了,直接把跟公家对接的费用列一下: * 体检:100元 * 报名:60元(这个不太确定了,记得现场交了,但是没有找到支付记录) * 科目一和四:40元 * 科目二和三:10元 * 工本费:10元 共:220元 如果说你是天赋选手,上手直接就会开的话,那就上面这么多钱,你就可以增驾到D照了。 如果你不是天赋选手,上手有点难度,又有想自