## 插件描述 本插件用于将画图请求转发给stable diffusion webui。 ## 环境要求 使用前先安装stable diffusion webui,并在它的启动参数中添加 "--api"。 具体信息,请参考[文章](https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/API)。 部署运行后,保证主机能够成功访问http://127.0.0.1:7860/docs 请**安装**本插件的依赖包```webuiapi``` ``` pip install webuiapi ``` ## 使用说明 请将`config.json.template`复制为`config.json`,并修改其中的参数和规则。(如果修改了webui的`host`和`port`,也需要在配置文件中更改) ### 画图请求格式 用户的画图请求格式为: ``` <画图触发词><关键词1> <关键词2> ... <关键词n>: ``` - 本插件会对画图触发词后的关键词进行逐个匹配,如果触发了规则中的关键词,则会在画图请求中重载对应的参数。 - 规则的匹配顺序参考`config.json`中的顺序,每个关键词最多被匹配到1次,如果多个关键词触发了重复的参数,重复参数以最后一个关键词为准。 - 关键词中包含`help`或`帮助`,会打印出帮助文档。 第一个"**:**"号之后的内容会作为附加的**prompt**,接在最终的prompt后 例如: 画横版 高清 二次元:cat 会触发三个关键词 "横版", "高清", "二次元",prompt为"cat" 若默认参数是: ```json "width": 512, "height": 512, "enable_hr": false, "prompt": "8k" "negative_prompt": "nsfw", "sd_model_checkpoint": "perfectWorld_v2Baked" ``` "横版"触发的规则参数为: ```json "width": 640, "height": 384, ``` "高清"触发的规则参数为: ```json "enable_hr": true, "hr_scale": 1.6, ``` "二次元"触发的规则参数为: ```json "negative_prompt": "(low quality, worst quality:1.4),(bad_prompt:0.8), (monochrome:1.1), (greyscale)", "steps": 20, "prompt": "masterpiece, best quality", "sd_model_checkpoint": "meinamix_meinaV8" ``` 以上这些规则的参数会和默认参数合并。第一个":"后的内容cat会连接在prompt后。 得到最终参数为: ```json "width": 640, "height": 384, "enable_hr": true, "hr_scale": 1.6, "negative_prompt": "(low quality, worst quality:1.4),(bad_prompt:0.8), (monochrome:1.1), (greyscale)", "steps": 20, "prompt": "masterpiece, best quality, cat", "sd_model_checkpoint": "meinamix_meinaV8" ``` PS: 实际参数分为两部分: - 一部分是`params`,为画画的参数;参数名**必须**与webuiapi包中[txt2img api](https://github.com/mix1009/sdwebuiapi/blob/fb2054e149c0a4e25125c0cd7e7dca06bda839d4/webuiapi/webuiapi.py#L163)的参数名一致 - 另一部分是`options`,指sdwebui的设置,使用的模型和vae需写在里面。它和(http://127.0.0.1:7860/sdapi/v1/options )所返回的键一致。