最近在研究AIGC,先是玩了一下Midjourney,后来Midjourney免费额度用完了,也不再开放免费额度给新用户使用了,于是转而研究Stable Diffusion。
Stable Diffusion(以下简称SD)的最大优点就是开源免费,而且对硬件的要求不高,Mac M1芯片就能跑,当然如果是高端N卡当然是更好了。关于Stable Diffusion的介绍和使用方法,我另外用视频介绍,今天主要介绍SD的扩展(插件)。
官方的SD已经内部集成了多个扩展,比如Lora就是原生集成的,所有官方内部集成的扩展放在了stable-diffusion-webui/extensions-builtin文件夹,而用户自定义安装的扩展是放在stable-diffusion-webui/extensions文件夹。
在默认情况下,SD只支持使用英文+有限的Emoji颜文字来作为提示词(prompt),对于我们国人尤其是英语不好的国人非常不友好。为此,有些扩展能够支持在界面上让用户输入英文,然后翻译成英文,用户再手动把翻译后的prompt添加到提示词文本框中,这种使用方式任然不够方便,我们追求的是真正用中文直接写提示词,而不是要在界面上复杂的操作。另外很多扩展其实是WebUI前端增加的特性,对API无效,如果我们要基于WebAPI开发第三方AIGC应用,那么就无法使用中文提示词。于是我开发了这款SD的扩展:
本扩展基于ParisNeo/prompt_translator扩展进行的二次开发,增加了一些新特性,对国人和AIGC开发者更友好。
1. 直接使用中文编写提示词,即使完全不会英文都不受影响。
以下是使用中文写提示词的示例:
2.完美兼容SD的提示词语法,支持中英文混输。
对于SD提示词语法中的权重括号、Lora尖括号等语法都支持,也支持中文和英文混着输入。以下是混输的示例:
3.本地自然语言处理模型进行翻译,使用时无需连接百度翻译、Google翻译等服务,可离线使用。
本插件在首次安装使用时需要联网下载约2.4G的翻译模型到本地,这个过程可能会花费几分钟到几十分钟的时间,具体视网络情况而定。下载模型保存在stable-diffusion-webui/extensions/sd-prompt-translator/scripts/models。如果重启了SD,那么再次使用时会在加载模型时耗费几秒的时间,然后接下来使用就很顺畅了。
因为接下来实际使用时都是使用本地模型进行翻译,没有连接百度翻译、谷歌翻译等互联网服务,所以可以完全离线使用。
4.支持自定义翻译字词。
如果有一些特定词汇翻译错误,或者是某些触发词,我们可以使用自定义翻译字词功能。在stable-diffusion-webui/extensions/sd-prompt-translator/scripts/translations.csv中保存了大量常用的中文触发词对应的英文prompt,你可以手动修改该文件内容,增加自己的自定义翻译内容。
5.默认翻译中文,可选择翻译其他50多种语言。
除了默认的中文外,你如果熟悉其他语言,也可以设置其他语言为提示词的输入语言,具体设置在WebUI界面的“提示词翻译器”的“源语言”中设置。以下是设置成日语后,使用日语提示词生成图像的示例:
6.API支持,对开发AIGC应用更友好。
如果我们启用了API,那么在txt2img这个API调用时,可以直接使用中文字符串作为promt参数,以下是通过Postman调用API的示例,我们从命令行中也可以看到,我们的提示词被自动翻译成了系统能识别的英文prompt,并产生了想要的图片。
1.打开Stable Diffusion,并切换到扩展Extensions标签页,并在下方选择"从网址安装" Install from URL,然后输入本扩展的地址:
然后点击“安装”Install按钮。