本文节选自webUI官方文档的介绍
扩展只是extensions
目录中的一个子目录。
Web UI 通过以下方式与已安装的扩展进行交互:
- 如果扩展
install.py
脚本存在,则执行该脚本。 - 目录中的扩展脚本的
scripts
执行方式与普通用户脚本相同,但以下情况除外:sys.path
已扩展至包含扩展目录,因此您可以放心导入其中的任何内容。但是,请使用唯一的文件名,或将文件放在具有唯一名称的文件夹中,因为模块将根据您导入时使用的名称缓存到全局 Python 模块树中,从而给其他恰好使用相同名称的组件带来意外。- 您可以使用它
scripts.basedir()
来获取当前扩展的目录(因为用户可以随意命名它)- 注意:
scripts.basedir()
必须在扩展导入阶段使用,
如果在其他时间则会返回webui root
。click to see scripts.basedir() usage example
- 注意:
- 目录中扩展的 javascript 文件
javascript
被添加到页面中 - 目录中扩展的本地化文件
localizations
被添加到设置中;如果有两个同名的本地化文件,则它们不会合并,而会用一个替换另一个。 - 扩展的
style.css
文件已添加到页面 - 如果扩展
preload.py
的根目录中有文件,则在解析命令行参数之前加载该文件 - 如果扩展程序
preload.py
包含一个preload
函数,则会调用该函数,并将命令行参数解析器作为参数传递给该函数。以下是如何使用它来添加命令行参数的示例:
def preload(parser):
parser.add_argument("--wildcards-dir", type=str, help="directory with wildcards", default=None)
有关如何开发自定义脚本(通常会完成大部分扩展工作)的信息,请参阅开发自定义脚本。
- 如何将信息文本(又名 PNG 信息)写入图像的示例sd-webui-infotext-example
本地化扩展
为项目进行本地化的首选方法是创建扩展。扩展的基本文件结构应如下:
📁 webui root directory
┗━━ 📁 extensions
┗━━ 📁 webui-localization-la_LA <----- name of extension
┗━━ 📁 localizations <----- the single directory inside the extension
┗━━ 📄 la_LA.json <----- actual file with translations
使用此文件结构创建一个 github 存储库,并要求合作者部分列出的任何人将您的扩展添加到 wiki。
如果您的语言需要 javascript/css 甚至 python 支持,您也可以将其添加到扩展中。
安装.py
install.py
是启动器在 WebUI 启动前以单独进程启动的脚本launch.py
,用于安装扩展的依赖项。它必须位于扩展的根目录中,而不是脚本目录中。该脚本启动时会将PYTHONPATH
环境变量设置为 WebUI 的路径,因此您可以直接import launch
使用它的功能:
import launch
if not launch.is_installed("aitextgen"):
launch.run_pip("install aitextgen==0.6.0", "requirements for MagicPrompt")
元数据.ini
metadata.ini
包含有关扩展程序的元数据。它是可选的,但如果存在,则必须位于扩展程序的根目录中。
编写元数据文件时,请注意,虽然部分名称不区分大小写,但键却不区分大小写。
小贴士
添加额外的文本反转目录
此代码进入扩展脚本:
path = os.path.join(modules.scripts.basedir(), "embeddings")
modules.sd_hijack.model_hijack.embedding_db.add_embedding_dir(path)
用户示例
https://github.com/udon-universe/stable-diffusion-webui-extension-templates
https://github.com/AliceQAQ/sd-webui-gradio-demo
https://github.com/wcdnail/sd-web-ui-wexperimental
https://github.com/EnsignMK/ExampleSendText
内部流程图:

Paragoger衍生者AI训练营。发布者:arnehuo,转载请注明出处:https://www.shxcj.com/archives/9960