上篇文章介绍了 Stable-Diffusion 的安装部署,结尾的时候遗留了几个问题:
- SD-WebUI 中文本地化
- SD-WebUI 实例共享
- SD-WebUI 参数详解
本篇文章主要说明如何使用本地化插件,以及如何共享自己的服务,并简要说明下生成参数。
中文本地化
webui 默认是英文,因为名词比较多,国人体验会不太好。如果能不上手修改代码并将 UI 改成中文,会更好些。好在官方给我们提供了很方便的解决方案。
创建本地化文件
第一个方法是在设置界面找到 Download localization template
按钮,点击它会下载一个本地化文件的模板。编辑并翻译该文件每个词的映射,然后将它放在extensions/stable-diffusion-webui-localization-zh_CN/localizations/
文件夹下,并重命名为zh_CN.json
。
下载本地化插件
第二个方法是使用别人的本地化插件。推荐插件地址:stable-diffusion-webui-localization-zh_CN
可直接在 GitHub 下载压缩包,然后解压到目录extensions
下。有开发基础的可以通过git clone
下载,可以通过git pull
去更新插件。
当然 webui 也给了我们安装方法,如图:
安装后记得重启下 webui。
服务共享
因为 webui 使用了 Gradio 库,我们可以直接使用他的转发服务。
执行程序时添加启动参数--share
开启共享服务,添加--gradio-auth
参数设备登录信息,后面跟上用户名和密码username:password
。可以有多用户,使用英文逗号分隔即可。
windows 可直接编辑webui-user.bat
的COMMANDLINE_ARGS
参数。
export COMMANDLINE_ARGS="--share --gradio-auth yokonsan:666666"
端口转发
添加启动参数--listen
使服务监听外部网络连接。
启动后,你会得到一个形如https://xxx.gradio.app
的链接,这样你的朋友可以通过这个链接从别的客户端访问到你部署的 SD 服务了。
使用 --listen
会启用默认的安全保护设置,插件功能会失效。
监听端口修改
参数 --port xxxx
修改默认端口7860
,自定义服务监听的端口。
对于 Linux 系统,如需监听低于 1024
的任何端口,程序需要以 root
权限运行或授权 CAP_NET_BIND_SERVICE
能力,因此建议使用高于 1024
的端口。
生成参数介绍
本文不对每个参数做详细的说明,这里先简要介绍下。
[!INFO] INFO 下面的内容是我直接使用 ChatGPT 服务 翻译的 stable-diffusion wiki 内容。
生成图像时,输入参数的名称在不同的界面之间略有不同,但它们通常具有相同的功能。 以下是这些参数的简要说明:
- Prompt(正向提示词):生成图像的文字描述。
- Negative prompt(反向提示词):不希望在图像中出现的事物的文字描述。
- Sampling Steps(采样步数):扩散模型通过从随机高斯噪声向符合提示的图像迈出小步骤来工作。这是应该完成的步骤数量。更多的步骤意味着从噪声到图像的步骤更小、更精确。增加这个参数直接增加了生成图像所需的时间。收益递减,取决于采样器。
- Sampling method(Sampler 采样器):使用哪种采样器。Euler a(ancestral 简称)可以在步骤较少的情况下产生很大的多样性,但很难进行微小的调整。非 ancestral 采样器随着步骤数量的增加,产生的图像基本相同,如果不确定可以使用 LMS。
- Batch count/n_iter(批次):生成一组图像的批次数。
- Batch size(每批数量):同时生成的图像数量。增加这个值可以提高性能,但也需要更多的 VRAM。总图像数是这个值与批次计数相乘的结果。
- CFG Scale(无分类器指导比例):图像与提示的匹配程度。增加这个值会导致图像更接近您的提示词(根据模型),但也会在一定程度上降低图像质量。可以通过增加采样步骤来在一定程度上对抗这种影响。
- Width(宽):单个图像的宽度(以像素为单位)。增加这个值需要更多的 VRAM。随着分辨率的增加,大尺度上的图像连贯性(模型是在 512x512 上训练的)变差。非常小的值(例如 256 像素)也会降低图像质量。
- Height(高):与 Width 相同,但针对单个图像的高度。
- Seed:随机数生成器的起始点。保持相同的种子可以多次生成相同(或几乎相同)的图像。没有比其他种子更好的种子,但如果您的输入参数略有变化,之前产生好结果的种子可能仍然会产生好结果。