1.开发sd webui扩展简介

本文节选自webUI官方文档的介绍

扩展只是extensions目录中的一个子目录。

Web UI 通过以下方式与已安装的扩展进行交互:

  • 如果扩展install.py脚本存在,则执行该脚本。
  • 目录中的扩展脚本的scripts执行方式与普通用户脚本相同,但以下情况除外:
    • sys.path已扩展至包含扩展目录,因此您可以放心导入其中的任何内容。但是,请使用唯一的文件名,或将文件放在具有唯一名称的文件夹中,因为模块将根据您导入时使用的名称缓存到全局 Python 模块树中,从而给其他恰好使用相同名称的组件带来意外。
    • 您可以使用它scripts.basedir()来获取当前扩展的目录(因为用户可以随意命名它)
      • 注意:scripts.basedir()必须在扩展导入阶段使用,
        如果在其他时间则会返回webui rootclick 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)

有关如何开发自定义脚本(通常会完成大部分扩展工作)的信息,请参阅开发自定义脚本

本地化扩展

为项目进行本地化的首选方法是创建扩展。扩展的基本文件结构应如下:


 📁 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

内部流程图:

1.开发sd webui扩展简介

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

(1)
上一篇 14小时前
下一篇 7小时前

相关推荐

发表回复

登录后才能评论
本文授权以下站点有原版访问授权 https://www.shxcj.com https://www.2img.ai https://www.2video.cn