系统环境
CPU: AMD Ryzen 7 4800HS with Radeon Graphics 2.90 GHz
GPU: NVIDIA GeForce GTX 1660 Ti with Max-Q Design
RAM: 24GB + 6GB(GPU)
OS: Windows 10 21H2
最近似乎AI绘画大火,一下子自己的各种信息流中都充斥着这些东西,又刚刚听说一个叫NovelAI商业公司二次元模型泄露了,而且效果非常好,就搞来玩了玩。
有B站up出过视频教程了:https://www.bilibili.com/video/BV1aD4y1y7Gg
然后NovelAI似乎还是魔改过框架,和Stable Diffusion web UI出来的效果不完全一样,有能力的可以按照这个整一个(而且可以白嫖colab显卡):https://colab.research.google.com/drive/1X-62QjZJpZ5Ewo3w6xr9D23Tu90udvQI。
另外注意,现在Stable Diffusion web UI迭代非常快,具体操作可能会有差异。
前期准备
首先需要下载的东西有模型框架(Stable Diffusion web UI)和训练好的模型(也就是泄露的NovelAI),前者是开源的,通过GitHub下载后可以一键安装配置,后者则需要通过BT等手段下载,这里贴出一个磁链(不过我是用高校PT站下载的awa
总的泄露模型有50+GB,但其实里面有很多个不同的模型,每个也就几G,可以选择性下载。
框架搭建
首先安装好显卡驱动什么的,还有Python(我开始用的是3.9报错了,换成了3.10)。
到GitHub把这个项目下载或clone下来:AUTOMATIC1111/stable-diffusion-webui: Stable Diffusion web UI (github.com)
然后直接双击运行其中的webui-user.bat,会自动建一个venv虚拟环境并在其中安装包,因为要装的Pytorch什么的还是比较大的,所以要等很久,可以看看任务管理器在跑就行。网络不好的情况下可能会需要用到一些魔法_(:D)∠)_
我整个过程大概花了二十分钟。
到此为止框架就基本搭建好了,也能看到提醒我们没有模型文件,需要加载。
加载模型
在之前下载的模型文件包/stableckpt目录下就是我们需要用到的模型,每个文件夹都对应了一个不同的模型,带有sfw的意思是Safe For Work,即没有涩涩(x
将animevae.pt和某个文件夹下的model.ckpt、config.yaml放到stable-diffusion-webui\models\Stable-diffusion\目录下并分别改名为model.vae.pt、model.ckpt、model.yaml即可,其中只有model.ckpt是必须的(下载时也是可以只下载一个model.ckpt文件的),animefull-final-pruned比较小(4G左右,其他7G),感觉效果也差不多。
再次运行webui-user.bat,又加载了一些东西,然后就能看到已经成功跑起来了,浏览器访问提示的URL即可。
开始玩吧!
我刚开始生成的图片全黑,在上面给出的视频评论区中找到了解决方法。
6. gtx16xx的显卡生成图只有黑色/绿色
在webui-user.bat里面,set COMMANDLINE_ARGS=后面加上如下参数
–lowvram –precision full –no-half
(实际上GitHub仓库中就有人提issue,wiki里也有写解决方案
输入参数、点击Generate就能自动生成老婆辣(bushi
默认参数的话6G显存好像也就占一半….
进阶 | 调参经验
可以选择将novelaileak/stableckpt/modules/modules/下的文件全部复制到stable-diffusion-webui/models/hypernetworks/文件夹下(没有就新建),浏览器前端Settings里就可以调,可以改变一些风格,比如福瑞什么的。设置完记得Apply。
Settings中的Stable Diffusion面板
另外可以将Stop last layers of CLIP model改成2,效果会有挺大提升(也可以试试其他数值)。注意这个功能是2022/10/10最近才被Merge进去的:Added ability to ignore last n layers in FrozenCLIPEmbedder by MarkovInequality · Pull Request #1992 · AUTOMATIC1111/stable-diffusion-webui (github.com) 所以记得用最新的代码。
然后来简单介绍一下参数。
左边最上面两个文本框是最重要的,Prompt(画会靠近这些参数)和Negative prompt(画会远离这些参数)。
正向参数栗子:masterpiece, best quality, 1girl, white and purple hair, red buttons, blue hair, transparent sleeves, light smile
其中masterpiece, best quality可能改善质量,可以选择加在自己参数前面。
反向参数栗子: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
这些参数会防止图像劣化,可以直接复制过去。
Sampling Steps是迭代次数,越大越耗时,一般20左右就足够了,太大提升也有限。
Sampling method是迭代算法,可以自己试试,感觉Euler和DDIM就不错,不同算法适合的迭代次数不尽相同。
Width和Height是图像大小,不建议开太大,这个模型不太擅长生成大尺寸图片,特别是只有一个人的情况下,而且贼慢,可以考虑后期用waifu2x等工具超分辨率。
接下来三个选项我也没用过。
Batch count是连续生成几次,Batch size是一次生成几张。例如Batch size=2,Batch count=3就是每次同时生成两张图片,生成三轮。注意Batch size其实就是利用显卡并行计算,受到显存制约,开太大会爆显存。
CFG Scale参数制约度,越高越接近参数(但可能会是强扭的瓜),越低越让AI自由发挥。在img2img中还有一个Denoising strength参数,描述的是图像模仿自由度,越高越自由发挥,越低和参考图像越接近。
Seed就是随机种子,可以指定,-1就是随机种子。
Script还没用过。
另外还有些图片模仿、图片置换、风格整合迁移等等的功能还没研究、、