(不知道放在这里合不合适,汗,总体上是和Koishi无关的,但是和我之前提问的帖子有关)
之前在论坛里提了一个相关的问题,十分感谢大佬的回复,但是不是很懂node.js,一直没有调试成功,就放着没管了。
今天突然又想起来,去查了查,发现一种相对来说简单一点的实现方案,分享给有需要的朋友。
适用情形:自建后端,stable diffusion webui。
Stable Diffusion本身是有safety checker功能的,但是webui去年版本更新之后,这个功能变成了插件,无法在API里调用。有网友将插件修改为自定义脚本,通过API控制脚本达到过滤的功能。
基础使用方法:安装之后,在txt2img或img2img的POST中加入以下参数
"script_name": "CensorScript",
"script_args": [true,true],
进一步自定义:
- 自定义过滤强度:在venv\Lib\site-packages\diffusers\pipelines\stable_diffusion文件夹下找到safety_checker.py文件,修改第65行、73行的adjustment参数(二次元图片我的设置是两个都改成-0.03)越正越严格,越负越宽松
- 与controlnet同时使用:在api里同时调用controlnet和censorscript似乎会报错,原因不明,我个人的解决方法是在extensions\sdapi-scripts\scripts\CensorScript.py中修改如下内容强制开启
def run(self,p,nsfw_check=True,nsfw_mosaic=True)