最近ai生成图片比较盛行,网络上有开箱即用的NovelAi等付费网站
前期准备
- 一台做好是N卡的机器,AMD也可但是只能使用cpu,执行效率低下(也可以考虑ubuntu环境下的Rocm-smi,有类似N卡的cuda功能)
- 一个良好的网络环境
更新到显卡驱动的最新版本
AMD:
amd software adrenalin edition
Nvdia:
geforce-experience
模型文件
novelAI
stable_diffusion
waifu_diffusion
sd-v1-5
环境配置
Python遇到选项一路next就好 谨记勾选“Add Python to PATH”!
git一样一路next即可!
安装git 以及python 3.10.6以上版本
相关下载地址:
git
python
更新pip到最新版本:
python -m pip install --upgrade pip
设置python路径
如果遇到找不到python的情况,可以修改当前目录下 /venv/pyvenv.cfg
文件
网络配置
Python的服务器在大洋彼岸的阿麦瑞卡 在大陆会有众所周知的原因会主动劣化对外链接质量 所以有两种方法:
- 使用tun/tap层面的流量代理,比如openvpn,wiregurad (推荐)
更新pip的更新源为国内高校的分发站点:
windows下默认目录在:C:\Users\用户名\AppData\Local\pip\pip.ini
国内知名镜像站点:
>阿里云 https://mirrors.aliyun.com/pypi/simple/
>中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
>豆瓣(douban) http://pypi.douban.com/simple/
>清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/
>中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/方案1:将pip.ini更改为清华源:
[global]
timeout = 6000
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
trusted-host = pypi.tuna.tsinghua.edu.cn
方案2:在cmd执行:
pip config set global.index-url https://mirrors.ustc.edu.cn/pypi/web/simple
方案3
直接将huggingface放入用户目录的 ".cache" 目录下
相关目录: “C:\Users\用户名.cache”
下载地址:https://cloud.kleos.top/d/od/win-tools/huggingface/huggingface.zip
stable diffusion开启说明
- 下载stable diffusion:
stable diffusion 解压zip
模型放置
将上方下载的模型“model.ckpt”放入 "~~\stable-diffusion-webui-master\models\Stable-diffusion"下
根据显存优化
第一步: 用记事本编辑 webui-user.bat
第二步: 找到COMMANDLINE_ARGS= , 在后面输入参数
比如: COMMANDLINE_ARGS=--medvram
如果你是4GB显存想生成512x512 (或更大) 图片,
使用 --medvram 参数
如果你是2GB显存,
使用 --lowvram参数
图上--opt-split-attention 参数也是一个减少内存使用的优化参数。
打开webui-user.bat
参数设置
用如下设置可以让输出结果和目前NovelAI网站上的一致。:
标准方法(Euler)
- Sampling method那里选择Euler (不是Euler a)
- Sampling Steps设置为28
- CFG Scale设置为11
- 在所有的描述语前面加上masterpiece, best quality
- 负面描述语使用:nsfw, lowres, bad anatomy, bad hands, text, error, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, username, blurry, artist name (注:nsfw不是必须的,只是网站默认,它不会影响输出质量,具体意思不明白的可以搜一下)
- 点击Settings进入设定页面,找到Stable Diffusion版块,在Stop At last layers of CLIP model选项下(这里和原教程用词不一样,应该是UI更新了),把数值改成2,然后点击上面的Apply Settings应用更改。
Euler a默认效果
如果要复制NovelAI网站Euler_a输出结果,除了要做上述步骤外,还要点击Settings进入设定页面,找到Sampler parameters版块,在最下面Eta noise seed delta那里把值设为31337,然后点击上面的Apply Settings应用更改。
现在可以着手测试了。
进阶玩法
使用局域网设备(同路由器下)访问此设备运行的程序
webui-user.bat追加为为“set COMMANDLINE_ARGS= --listen”
公网访问
使用 --share 参数,可以从公网访问你本地部署的Stable Diffusion。用这个参数启动完成后,在命令行窗口可以看到一个链接:xxx.app.gradio,其中XXX每次启动后是变化的,在浏览器用这个网址链接就可以在公网上用电脑或者手机访问你搭建的Stable Diffusion了,链接是有期限的为72小时,命令行窗口有提示。
Nginx反向代理,可使用自定义域名
详见后续更新
更换端口
使用 --port xxxx 参数,让服务监听指定端口, xxxx 是你期望的端口。记住所有小于1024的端口都需要root/admin权限,因此建议使用大于1024的端口,默认端口为7860。
使用 --share --gradio-auth 用户名:密码 参数可以添加共享认证功能,可选的,你可以在命令上分别添加多组用户名和密码(用户:密码1, 用户2:密码2),命令里的符号记得用英文符号。
注意事项
- 如果你的输出不是图片而是纯黑色或绿色,说明显卡不支持半精度浮点数(已知16XX卡有此问题);你需要添加 --precision
full --no-half 参数, 而且如果你使用.vae文件,它会占用更多显存,你还需要添加 --no-half-vae参数。(满足普通设置卡生成图片尺寸设的太大批次里也是有概率出纯黑图,为资源不够造成的) - 确保关闭浏览器硬件加速,如果出现out of memory报错,关闭任何可能占用显存的应用,另外如果你用了GFPGAN可能要去掉它。