亚马逊AWS官方博客

在 SageMaker Notebook Instance 上设置 Stable Diffusion 与 Automatic1111

在过去的两年里,生成式人工智能工具经历了爆炸性增长,包括许多免费和开源的模型和库。但设置和使用这些工具也面临很多挑战,不断变化的软件和硬件要求使得维护本地安装变得困难且繁琐。

现在引入 Amazon SageMaker Notebook Instances! Notebook Instances 预安装了常用的机器学习工具和库,具备完全配置的 Jupyter Lab 环境以及内置 GPU 支持。

本文主要讲解如何在 SageMaker Notebook Instance 上快速轻松地设置以下工具:

我们将使用 SageMaker 的 Lifecycle Configuration Script 自动化完成整个流程。

具体操作指引如下。

初始设置

为了测试设置过程,首先请手动安装所需的组件。手动安装后、可以按照安装操作来创建配置脚本,这些脚本将在创建新的 SageMaker Notebook Instance 或重新启动现有实例时运行。

首先,需要配备 GPU 的实例。ml.g4dn.xlarge 或 ml.g4dn.2xlarge 应该适用。这些实例类型包括带有 16 GB VRAM 的 T4 GPU,应该足以运行我们将要安装的所有 AI 工具。请记住,不同的模型将具有不同的内存要求,一些模型可能需要超过 16 GB VRAM 才能成功运行。

本博文中的所有步骤都在 us-east-1(北弗吉尼亚)区域进行了测试,但其他支持 ml.g4dn 实例类型的区域也可以使用。

创建 Notebook Instance

从 AWS 控制台搜索栏中搜索 sage,然后点击 Amazon SageMaker:

接下来,在 Notebooks 下找到 notebook instances 选项卡:

点击 Create instance,选择 g4dn.2xlarge 类型,如下所示:

在打开高级配置之后(见上面截图底部),可以看到新 Notebook Instance 的默认卷大小为 5 GB,将其增加到 256 GB,因为大型机器学习模型以及未来生成的视频或图像需要较大空间:

注意如果想减小磁盘空间,128 GB 也足够安装所需的所有软件,并且还有剩余的空间用于输出。此外,确保给用户对 Notebook Instance root 权限(见下图),因需要安装额外的软件。

在 Permissions and Encryption 下,我们需要将执行角色Execution Role附加到实例上。以下是 SageMakerNotebook Instance 将用于访问其他 AWS 资源的权限集合:

目前,这个执行角色允许完全访问 S3,通过以下策略:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:*",
                "s3-object-lambda:*"
            ],
            "Resource": "*"
        }
    ]
}

根据实际需求,也可酌情限制权限仅适用于单个预先存在的 S3 存储桶。稍后 – 当完成上传配置文件和模型数据时,可以将权限进一步缩小。对于生命周期配置脚本工作,只需要设置存储文件的 S3 存储桶具有读取权限。如果 S3 存储桶命名为 aiml-shared-files,那么下面的策略将允许足够的访问权限供生命周期脚本运行(只读访问单个 S3 存储桶):

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action

": [
                "s3:ListBucket"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:s3:::aiml-shared-files"
            ]
        },
        {
            "Action": [
                "s3:GetObject"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:s3:::aiml-shared-files/*"
            ]
        }
    ]
}

在此阶段,无需对其他设置进行任何更改, SageMaker Notebook Instance 创建已准备就绪。点击 Create notebook instance 开始创建:

请注意,创建实例可能需要几分钟时间。

安装软件

一旦实例运行,其状态将从 Pending 变为 InService。点击 Open JupyterLab 以访问笔记本:

这将打开一个新的标签页。在 URL 栏中,你会看到类似以下内容:

https://sd-notebook-ijip.notebook.us-east-1.sagemaker.aws/lab

每个 SageMaker Notebook Instance 都有唯一的 URL。这意味着可以独立于 AWS 管理控制台授予对实例的访问权限。SageMaker API 提供了用于生成签名 URL 的功能,可以与其他人共享。当你需要授予对 SageMaker Notebook Instance 的访问权限,但不想为用户创建永久 IAM 凭据时,这可能很方便。此处了解更多关于生成签名 URL 的信息

一旦打开 JupyterLab 页面,点击终端图标以打开新的终端:

如果运行 ls 命令,将看到 SageMaker 笔记本的主目录/home/ec2-user 的列表:

名为 SageMaker 的目录是唯一在实例重新启动时将被保存的目录。这很重要要记住:SageMaker 笔记本的设置使得重新启动实例将重置其文件系统(除了 SageMaker 文件夹之外)到初始状态。

这在解决重新启动实例时,为修复安装某些破坏系统软件引入的问题时非常有用,但对于新用户可能会有些困惑。

我们希望确保 Stable Diffusion WebUI 和任何其他模型检查点或软件下载,都会在重新启动后仍然存在,因此首先使用 cd 进入 SageMaker 目录,然后使用 pwd 确认是否在正确的位置,如下所示:

cd SageMaker
pwd

第二个命令 pwd 将显示当前的工作目录(以便确保其正确位置)。它应该报告/home/ec2-user/SageMaker,如下所示:

从 GitHub 获取 stable-diffusion-webui

从 SageMaker 目录内运行以下命令以将 stable-diffusion-webui 安装到 SageMaker 目录内:

cd ~/SageMaker
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git

测试 stable-diffusion-webui

在安装其他内容之前,需测试 stable-diffusion-webui 是否正常工作。从 SageMaker Notebook Instance 上的终端执行以下命令:

cd ~/SageMaker/stable-diffusion-webui
./webui.sh --share --xformers

若测试成功,将创建一个新的 Python 虚拟环境,安装 stable-diffusion-webui 所需的包,还将从 Hugging Face 获取一个 Stable Diffusion 模型检查点,我们将用它来生成图像和视频。

脚本运行可能需要一些时间。届时会看到类似下面显示的输出,其中包含一个公共的 Gradio URL 和一行指示 Stable Diffusion 模型成功加载:

点击 Gradio URL,在浏览器中打开 Web 界面,并尝试创建第一个图像:

测试完成后,选择运行 webui.sh 的终端窗口,按 Ctrl+C 来终止脚本。

届时可能收到警告消息,如下所示,但这些可以安全地忽略:

# Thread: MainThread(139798412330816)
File: "/home/ec2-user/SageMaker/stable-diffusion-webui/launch.py", line 48, in <module>
  main()
File: "/home/ec2-user/SageMaker/stable-diffusion-webui/launch.py", line 44, in main
  start()
File: "/home/ec2-user/SageMaker/stable-diffusion-webui/modules/launch_utils.py", line 436, in start
  webui.webui()
File: "/home/ec2-user/SageMaker/stable-diffusion-webui/webui.py", line 126, in webui
  server_command = shared.state.wait_for_server_command(timeout=5)
File: "/home/ec2-user/SageMaker/stable-diffusion-webui/modules/shared_state.py", line 62, in wait_for_server_command
  if self._server_command_signal.wait(timeout):
File: "/home/ec2-user/anaconda3/envs/JupyterSystemEnv/lib/python3.10/threading.py", line 607, in wait
  signaled = self._cond.wait(timeout)
File: "/home/ec2-user/anaconda3/envs/JupyterSystemEnv/lib/python3.10/threading.py", line 324, in wait
  gotit = waiter.acquire(True, timeout)
File: "/home/ec2-user/SageMaker/stable-diffusion-webui/modules/initialize_util.py", line 156, in sigint_handler
  dumpstacks()
File: "/home/ec2-user/SageMaker/stable-diffusion-webui/modules/initialize_util.py", line 143, in dumpstacks
  for filename, lineno, name, line in traceback.extract_stack(stack):

安装额外的扩展

接下来,开始安装本文先前提到的其它软件。这些工具(如 ControlNet)被打包为 stable-diffusion-webui 的 extensions,应该安装在 extensions 文件夹中。

从终端执行以下命令以开始安装过程:

cd ~/SageMaker/stable-diffusion-webui/extensions/
git clone https://github.com/Mikubill/sd-webui-controlnet
git clone https://github.com/OpenTalker/SadTalker
git clone https://github.com/deforum-art/sd-webui-deforum
git clone https://github.com/v8hid/infinite-zoom-automatic1111-webui
git clone https://github.com/jovijovi/stable-diffusion-webui-nsfw-filter

运行 ls -1(注意:减号后的字符是数字 1,不是小写的 L),将看到所有这些 GitHub 存储库现在都存在于 extensions 文件夹中:

大多数工具需要安装其他 Python 包(下次运行 stable-diffusion-webui 的 webui.sh 脚本时将自动获取这些包)。其中有一些工具需要手动下载已训练的机器学习模型,大小从几百兆字节到数千兆字节不等。

还有一些工具(如 SadTalker 和 Deforum)对视频处理有特殊要求。为了满足这些工具的要求,需要在 SageMaker Notebook Instance 上额外安装 ffmpeg,因为 Notebook Instance 的默认环境不包含 ffmpeg。

安装额外依赖项:

为 SadTalker 安装模型数据

首先,使用 cd 进入 SadTalker 目录:

cd SadTalker
pwd

现在,你应该位于 SadTalker 扩展文件夹内:

SadTalker 包括一个自动获取所需训练模型的脚本。可以从 SadTalker 目录内运行以下命令来获取这些模型文件:

bash scripts/download_models.sh

运行此脚本后,将会出现一个新的 checkpoints 文件夹。运行 ls 来验证 checkpoints 文件夹是否存在:

为 ControlNet 安装模型数据

由于模型文件的大小较大,因此需要下载 ControlNet 所需的模型文件稍微困难一些,这些模型文件的大小为几个吉字节。

我们将首先返回到主目录:

cd ~/SageMaker/

ControlNet 的作者通过他们的 Hugging Face 项目提供了预训练模型。

为了下载它们,需要使用 Git LFS 这个工具,它旨在通过提供对它们的文本“指针”来启用将大文件存储在 Git 存储库之外。

SageMaker 笔记本环境不包括 git-lfs,因此需要先安装它:

sudo amazon-linux-extras install epel -y
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.rpm.sh | sudo bash
sudo yum install git-lfs -y
git lfs install

如果一切顺利,应该在最后一行看到 Git LFS Initialized,如下所示:

注意:如果此时重新启动 SageMakerNotebook Instance,将不得不重新安装 Git LFS,因为(再次强调)在 SageMaker 文件夹之外安装的任何内容都将在下次重新启动时丢失。稍后我们将创建一个生命周期配置脚本来解决这个问题。

现在,准备获取 ControlNet 模型文件:

git clone https://huggingface.co/lllyasviel/ControlNet-v1-1

由于下载所有模型检查点(.pth)文件可能需要一些时间。我们可以通过在新创建的 ControlNet-v1-1 目录上运行 ls 来检查它们是否已正确下载:

ls -lh ControlNet-v1-1/

届时可看到一个充满 .pth 和 .yaml 文件的文件夹。.pth 文件是模型文件,而 .yaml 文件包含每个 .pth 文件的模型元数据:

将文件从 ControlNet-v1-1 复制到 stable-diffusion-webui/extensions/sd-webui-controlnet/models/,可以通过执行以下命令完成:

mv ControlNet-v1-1/* stable-diffusion-webui/extensions/sd-webui-controlnet/models/

注意:.pth 文件非常大,故移动而不是复制。这显着加快了速度并节省了磁盘空间。

安装 ffmpeg

Stable Diffusion WebUI 的几个扩展需要处理视频(SadTalker、Deforum 和 Infinite Zoom 都生成 .mp4 文件作为输出)。

这些工具使用 ffmpeg 创建其视频输出,而 SageMaker 笔记本环境默认情况下未安装 ffmpeg。在 SageMakerNotebook Instance 上安装 ffmpeg 的最简单方法是使用 John Van Sickle 创建的静态版本

从 SageMaker 目录中,使用以下命令安装它们:

cd ~/SageMaker
wget "https://johnvansickle.com/ffmpeg/builds/ffmpeg-git-amd64-static.tar.xz"
tar -xvf ffmpeg*.tar.xz
sudo cp ffmpeg-*-static/ffmpeg /usr/local/bin/
sudo cp ffmpeg-*-static/ffprobe /usr/local/bin/
sudo cp ffmpeg-*-static/qt-faststart /usr/local/bin/

(重新)测试 stable-diffusion-webui

当所有扩展和模型文件都已准备好,现在需要重新运行 webui.sh 脚本,允许 stable-diffusion-webui 获取新扩展所需的所有依赖项,并将它们安装到 Python 虚拟环境中:

screen -S sdwebui
cd ~/SageMaker/stable-diffusion-webui
./webui.sh --share --xformers

关于 screen 命令的注意事项:这将创建一个虚拟 shell,webui.sh 脚本可以在其中运行,即使意外关闭了终端窗口仍然可以保持正常运行。可以使用 Ctrl + A,然后 Ctrl + D 断开与屏幕会话的连接,并可以在新终端中使用 screen -r <name>重新连接,其中<name>是屏幕的会话号或名称(复制粘贴上面的命令后,会话名称将变为 sdwebui)。此处了解有关 screen 的更多信息

关于 webui.sh 的说明–share 标志将允许我们通过 Gradio 提供的公共反向代理访问 Web UI。–xformers 标志用于加速 Stable Diffusion 推理(在此处了解有关 xformers 的更多信息)。Gradio 提供的公共链接有效期为 72 小时(在此处了解有关共享 Gradio 应用程序的更多信息)。停止并重新启动 webui.sh 脚本将生成一个新的 Gradio 共享链接,仍然有效期为 72 小时。

stable-diffusion-webui 启动需要一些时间,因为需要安装新扩展的许多附加依赖项。

启动完成后,界面顶部将出现 Deforum、SadTalker 和 Infinite Zoom 标签:

底部还出现了 NSFW(成人内容)过滤器:

更改 stable-diffusion-webui 默认设置

正在使用的模型(Stable Diffusion v1.5)存在一些限制,若需绕过这些限制,需要调整 stable-diffusion-webui 的默认设置。

首先,该模型的训练数据集包含从开放互联网收集的许多图像,其中包括一些裸体和色情内容。因此,该模型有时会生成裸体或色情内容的输出。

此外,该模型难以准确复制人脸,需要使用其他工具,如 CodeFormerGFPGAN 来修复人脸。

为了防止产生不适合儿童的内容,我们将自动将‘裸体’、‘不宜公开展示’等关键词加入到模型的过滤提示中,并激活已安装的不宜公开展示(NSFW)内容过滤器。同时,为了修复人脸图像,CodeFormer 将被默认启用。

在 stable-diffusion-webui 文件夹内,查找名为 ui-config.json 的文件。该文件包含 Web UI 的所有设置,包括默认提示、人脸恢复设置、图像放大设置等。

由于 ui-config.json 文件长度较长,因此已将其包含在博客文章的底部。读者可通过向下滚动查看文件。应将文件内容复制并粘贴到本地文件中,然后上传到 SageMaker Notebook 实例,并遵循下述步骤进行操作。

这个修改过的 ui-config.json 版本具有以下功能:

  • 默认启用最强大的设置 NSFW 过滤器
  • 在大多数提示中添加了“nude”和“nsfw”等关键词
  • 更改默认采样方法为“Euler a”(不知道这是什么意思?你可以从这篇文章了解更多信息
  • 默认启用最强大的设置人脸修复工具“CodeFormer”

将 ui-config.json 上传到 SageMaker 环境

可使用内置的 Jupyter Lab 文件浏览器将 ui-config.json 上传到 SageMaker 环境。首先,导航到 stable-diffusion-webui 文件夹:

接下来,将本地的 ui-config.json 副本拖放到文件浏览器上。并确认其覆盖现有的 ui-config.json 副本:

将环境保存到 S3

接下来,将通过创建生命周期配置脚本来自动化创建(和启动)SageMaker 笔记本。这些脚本具有 5 分钟的执行时间限制,这意味着我们不能重新从互联网下载所有模型文件、扩展和其他依赖项,这将需要超过 5 分钟的时间,并且还会浪费托管这些文件的服务的带宽。

为了解决这个问题,我们需要将环境保存到 S3。按此操作后,每次我们创建(或重新启动)一个 SageMaker 环境时,都可以直接从 S3 获取所需的任何数据,而不是从互联网上获取。

因复制到 S3 的文件非常大,所以建议使用 s5cmd 工具,该工具可进行非常快速的批量 S3 上传和下载。但这个工具默认情况下不包括在 Amazon SageMaker 笔记本环境中,因此需要先安装它:

cd ~/SageMaker
curl -L https://github.com/peak/s5cmd/releases/download/v2.0.0/s5cmd_2.0.0_Linux-64bit.tar.gz | tar -xz s5cmd
sudo cp s5cmd /usr/local/bin/

将本地环境复制到 S3 之前,先删除不再需要的文件和目录:

cd ~/SageMaker
rm -rf ControlNet-v1-1
rm -rf *.tar.gz
rm -rf *.tgz
rm -rf *.tar.xz
rm -rf lost+found
cd stable-diffusion-webui
rm -rf __pycache__
rm -rf outputs
rm -rf venv

操作完成后,开始同步到 S3:

cd ~/SageMaker
s5cmd sync . s3://sd-notebook-config

命令完成,便可开始进行自动化

自动化

上文已经花了很多时间将我们的环境设置成我们想要的方式。如何确保这些更改持久化?当重新启动时,SageMakerNotebook Instance 会重置为其初始状态,这意味着我们安装到/usr/bin 或/usr/local/bin 等位置的工具,如 ffmpeg 和 git-lfs,将在重新启动后消失。

若需要确保:

  1. 每当创建新的 SageMakerNotebook Instance 时,都会重新安装 stable-diffusion-webui、所有扩展和支持工具(如 ffmpeg)。
  2. 在重新启动实例后,任何未保留(ffmpeg、git-lfs)的工具都应该被重新安装,并且 webui.sh 脚本应该在新的 screen 会话中自动启动。

可以使用 SageMaker 生命周期配置脚本来实现这一点。

编写两个脚本:

  • on-create 脚本,当首次创建 SageMakerNotebook Instance 时运行
  • on-start 脚本,每当启动 SageMaker 笔记本时运行

当我们首次创建 SageMakerNotebook Instance 时,这两个脚本都将被运行

以下是脚本。下面的说明将解释如何从 AWS Web 控制台创建新的生命周期配置:

on-start 脚本

#!/bin/bash
set -ex
echo "Preparing to run updates and installs as ec2-user"
sudo -i -u ec2-user << EOF
cd ~/SageMaker
sudo amazon-linux-extras install epel -y
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.rpm.sh | sudo bash
sudo yum install git-lfs -y
git lfs install --force
sudo cp ffmpeg-*-static/ffmpeg /usr/local/bin/
sudo cp ffmpeg-*-static/ffprobe /usr/local/bin/
sudo cp ffmpeg-*-static/qt-faststart /usr/local/bin/
cd stable-diffusion-webui
rm screenlog.*
screen -dmLS webui ./webui.sh --share --xformers
EOF
echo "Done"

on-create 脚本

#!/bin/bash
set -ex
echo "Preparing to download stable-diffusion-webui and supporting software"
sudo -i -u ec2-user << EOF
cd ~/SageMaker
aws s3 cp s3://sd-notebook-config/s5cmd .
chmod u+x s5cmd
./s5cmd sync s3://sd-notebook-config/* .
cd stable-diffusion-webui
chmod u+x webui.sh
EOF
echo "Done"

创建生命周期配置(从Web 控制台)

首先,单击“Lifecycle 配置”,然后选择“Notebook 实例”选项卡:

然后,单击“创建配置”:

将上面的“on-start”脚本粘贴到“启动笔记本”脚本窗口中:

将上面的“on-create”脚本粘贴到“创建笔记本”脚本窗口中:

滚动到页面底部,然后单击“创建配置”:

这将返回到生命周期配置页面。新配置届时会显示:

测试脚本

测试生命周期配置是否正常工作,方法为创建一个新的 SageMaker Notebook Instance。返回到“Notebook 实例”列表,然后单击“创建 Notebook Instance”:

选择一个名称,并选择一个带 GPU 的实例类型(g4dn.xlarge 和 g4dn.2xlarge 都应该可以工作),然后单击展开“附加配置”:

从“附加配置”选项中,选择一个大磁盘大小(大于 100GB 的任何大小都应该可以),并从“生命周期配置”下拉菜单中选择你的生命周期配置

最后,为 SagemakerNotebook Instance 选择一个执行角色,该角色具有读取生命周期配置脚本访问的 S3 桶的权限,然后单击“创建 Notebook Instance”:

检查所有是否正常工作

一旦实例启动,通过打开 Jupyter Lab 登录:

运行 screen 并查看是否有一个 screen 会话正在运行(应该有一个名为 webui 的活动会话):

如果没有,返回验证是否正确地复制粘贴了 on-create 和 on-start 脚本,并确保 S3 存储桶包含 stable-diffusion-webui 文件夹和其他依赖项。

运行 screen -r webui 来连接,并查找 Gradio URL:

点击链接以访问 Web 界面。尝试创建一些测试图像(和视频),以确认一切是否正常工作!

最后的步骤

完成以上所有操作,这意味着 on-create 脚本正在工作。要测试 on-start,请尝试关闭你的实例并重新启动它,然后再次检查 screen 会话是否正在运行以及是否可以访问(新的)Gradio URL。

故障排除

可能会发现当您传递一个 .mp3 文件给 SadTalker 时,它无法生成视频,并且会出现一个关于无法定位 ffprobe 的错误。如果发生这种情况,请使用 screen -r 命令从终端连接到 screen 会话,然后使用 Ctrl + C 终止 webui.sh 脚本。然后可以启动一个新的 screen 会话并使用以下命令重启 webui.sh:

cd ~/SageMaker/stable-diffusion-webui 
screen -S webui ./webui.sh --share --xformers

下一步

尝试将生命周期配置应用于你自己的工作流程。生命周期配置是创建一致、定制的 SageMaker 笔记本环境的绝佳方式,适用于你(或你的团队)。

UI Config 文件

{
    "txt2img/Prompt/visible": true,
    "txt2img/Prompt/value": "",
    "txt2img/Negative prompt/visible": true,
    "txt2img/Negative prompt/value": "nsfw, nude",
    "txt2img/Interrupt/visible": true,
    "txt2img/Skip/visible": true,
    "txt2img/Generate/visible": true,
    "txt2img/\u2199\ufe0f/visible": true,
    "txt2img/\ud83d\uddd1\ufe0f/visible": true,
    "txt2img/Styles/visible": true,
    "txt2img/Styles/value": [],
    "txt2img/\ud83d\udd8c\ufe0f/visible": true,
    "txt2img/\ud83d\udd04/visible": true,
    "txt2img/\ud83d\udccb/visible": true,
    "txt2img/Close/visible": true,
    "txt2img/Tabs@txt2img_extra_tabs/selected": null,
    "txt2img/Sampling method/visible": true,
    "txt2img/Sampling method/value": "Euler a",
    "txt2img/Sampling steps/visible": true,
    "txt2img/Sampling steps/value": 20,
    "txt2img/Sampling steps/minimum": 1,
    "txt2img/Sampling steps/maximum": 150,
    "txt2img/Sampling steps/step": 1,
    "txt2img/Upscaler/visible": true,
    "txt2img/Upscaler/value": "Latent",
    "txt2img/Hires steps/visible": true,
    "txt2img/Hires steps/value": 0,
    "txt2img/Hires steps/minimum": 0,
    "txt2img/Hires steps/maximum": 150,
    "txt2img/Hires steps/step": 1,
    "txt2img/Denoising strength/visible": true,
    "txt2img/Denoising strength/value": 0.7,
    "txt2img/Denoising strength/minimum": 0.0,
    "txt2img/Denoising strength/maximum": 1.0,
    "txt2img/Denoising strength/step": 0.01,
    "txt2img/Upscale by/visible": true,
    "txt2img/Upscale by/value": 2.0,
    "txt2img/Upscale by/minimum": 1.0,
    "txt2img/Upscale by/maximum": 4.0,
    "txt2img/Upscale by/step": 0.05,
    "txt2img/Resize width to/visible": true,
    "txt2img/Resize width to/value": 0,
    "txt2img/Resize width to/minimum": 0,
    "txt2img/Resize width to/maximum": 2048,
    "txt2img/Resize width to/step": 8,
    "txt2img/Resize height to/visible": true,
    "txt2img/Resize height to/value": 0,
    "txt2img/Resize height to/minimum": 0,
    "txt2img/Resize height to/maximum": 2048,
    "txt2img/Resize height to/step": 8,
    "txt2img/Hires checkpoint/visible": true,
    "txt2img/Hires checkpoint/value": "Use same checkpoint",
    "txt2img/Hires sampling method/visible": true,
    "txt2img/Hires sampling method/value": "Use same sampler",
    "txt2img/Hires prompt/visible": true,
    "txt2img/Hires prompt/value": "",
    "txt2img/Hires negative prompt/visible": true,
    "txt2img/Hires negative prompt/value": "nsfw, nude",
    "customscript/refiner.py/txt2img/Checkpoint/visible": true,
    "customscript/refiner.py/txt2img/Checkpoint/value": "",
    "customscript/refiner.py/txt2img/Switch at/visible": true,
    "customscript/refiner.py/txt2img/Switch at/value": 0.8,
    "customscript/refiner.py/txt2img/Switch at/minimum": 0.01,
    "customscript/refiner.py/txt2img/Switch at/maximum": 1.0,
    "customscript/refiner.py/txt2img/Switch at/step": 0.01,
    "txt2img/Width/visible": true,
    "txt2img/Width/value": 512,
    "txt2img/Width/minimum": 64,
    "txt2img/Width/maximum": 2048,
    "txt2img/Width/step": 8,
    "txt2img/Height/visible": true,
    "txt2img/Height/value": 512,
    "txt2img/Height/minimum": 64,
    "txt2img/Height/maximum": 2048,
    "txt2img/Height/step": 8,
    "txt2img/Switch dims/visible": true,
    "txt2img/Batch count/visible": true,
    "txt2img/Batch count/value": 1,
    "txt2img/Batch count/minimum": 1,
    "txt2img/Batch count/maximum": 100,
    "txt2img/Batch count/step": 1,
    "txt2img/Batch size/visible": true,
    "txt2img/Batch size/value": 1,
    "txt2img/Batch size/minimum": 1,
    "txt2img/Batch size/maximum": 8,
    "txt2img/Batch size/step": 1,
    "txt2img/CFG Scale/visible": true,
    "txt2img/CFG Scale/value": 7.0,
    "txt2img/CFG Scale/minimum": 1.0,
    "txt2img/CFG Scale/maximum": 30.0,
    "txt2img/CFG Scale/step": 0.5,
    "customscript/seed.py/txt2img/Seed/visible": true,
    "customscript/seed.py/txt2img/Seed/value": -1,
    "txt2img/Random seed/visible": true,
    "txt2img/Reuse seed/visible": true,
    "customscript/seed.py/txt2img/Extra/visible": true,
    "customscript/seed.py/txt2img/Extra/value": false,
    "customscript/seed.py/txt2img/Variation seed/visible": true,
    "customscript/seed.py/txt2img/Variation seed/value": -1,
    "txt2img/\ud83c\udfb2\ufe0f/visible": true,
    "txt2img/\u267b\ufe0f/visible": true,
    "customscript/seed.py/txt2img/Variation strength/visible": true,
    "customscript/seed.py/txt2img/Variation strength/value": 0.0,
    "customscript/seed.py/txt2img/Variation strength/minimum": 0,
    "customscript/seed.py/txt2img/Variation strength/maximum": 1,
    "customscript/seed.py/txt2img/Variation strength/step": 0.01,
    "customscript/seed.py/txt2img/Resize seed from width/visible": true,
    "customscript/seed.py/txt2img/Resize seed from width/value": 0,
    "customscript/seed.py/txt2img/Resize seed from width/minimum": 0,
    "customscript/seed.py/txt2img/Resize seed from width/maximum": 2048,
    "customscript/seed.py/txt2img/Resize seed from width/step": 8,
    "customscript/seed.py/txt2img/Resize seed from height/visible": true,
    "customscript/seed.py/txt2img/Resize seed from height/value": 0,
    "customscript/seed.py/txt2img/Resize seed from height/minimum": 0,
    "customscript/seed.py/txt2img/Resize seed from height/maximum": 2048,
    "customscript/seed.py/txt2img/Resize seed from height/step": 8,
    "txt2img/Override settings/value": null,
    "txt2img/Script/visible": true,
    "txt2img/Script/value": "None",
    "customscript/prompt_matrix.py/txt2img/Put variable parts at start of prompt/visible": true,
    "customscript/prompt_matrix.py/txt2img/Put variable parts at start of prompt/value": false,
    "customscript/prompt_matrix.py/txt2img/Use different seed for each picture/visible": true,
    "customscript/prompt_matrix.py/txt2img/Use different seed for each picture/value": false,
    "customscript/prompt_matrix.py/txt2img/Select prompt/visible": true,
    "customscript/prompt_matrix.py/txt2img/Select prompt/value": "positive",
    "customscript/prompt_matrix.py/txt2img/Select joining char/visible": true,
    "customscript/prompt_matrix.py/txt2img/Select joining char/value": "comma",
    "customscript/prompt_matrix.py/txt2img/Grid margins (px)/visible": true,
    "customscript/prompt_matrix.py/txt2img/Grid margins (px)/value": 0,
    "customscript/prompt_matrix.py/txt2img/Grid margins (px)/minimum": 0,
    "customscript/prompt_matrix.py/txt2img/Grid margins (px)/maximum": 500,
    "customscript/prompt_matrix.py/txt2img/Grid margins (px)/step": 2,
    "customscript/prompts_from_file.py/txt2img/Iterate seed every line/visible": true,
    "customscript/prompts_from_file.py/txt2img/Iterate seed every line/value": false,
    "customscript/prompts_from_file.py/txt2img/Use same random seed for all lines/visible": true,
    "customscript/prompts_from_file.py/txt2img/Use same random seed for all lines/value": false,
    "customscript/prompts_from_file.py/txt2img/List of prompt inputs/visible": true,
    "customscript/prompts_from_file.py/txt2img/List of prompt inputs/value": "",
    "customscript/xyz_grid.py/txt2img/X type/visible": true,
    "customscript/xyz_grid.py/txt2img/X type/value": "Seed",
    "customscript/xyz_grid.py/txt2img/X values/visible": true,
    "customscript/xyz_grid.py/txt2img/X values/value": "",
    "customscript/xyz_grid.py/txt2img/Y type/visible": true,
    "customscript/xyz_grid.py/txt2img/Y type/value": "Nothing",
    "customscript/xyz_grid.py/txt2img/Y values/visible": true,
    "customscript/xyz_grid.py/txt2img/Y values/value": "",
    "customscript/xyz_grid.py/txt2img/Z type/visible": true,
    "customscript/xyz_grid.py/txt2img/Z type/value": "Nothing",
    "customscript/xyz_grid.py/txt2img/Z values/visible": true,
    "customscript/xyz_grid.py/txt2img/Z values/value": "",
    "customscript/xyz_grid.py/txt2img/Draw legend/visible": true,
    "customscript/xyz_grid.py/txt2img/Draw legend/value": true,
    "customscript/xyz_grid.py/txt2img/Keep -1 for seeds/visible": true,
    "customscript/xyz_grid.py/txt2img/Keep -1 for seeds/value": false,
    "customscript/xyz_grid.py/txt2img/Include Sub Images/visible": true,
    "customscript/xyz_grid.py/txt2img/Include Sub Images/value": false,
    "customscript/xyz_grid.py/txt2img/Include Sub Grids/visible": true,
    "customscript/xyz_grid.py/txt2img/Include Sub Grids/value": false,
    "customscript/xyz_grid.py/txt2img/Grid margins (px)/visible": true,
    "customscript/xyz_grid.py/txt2img/Grid margins (px)/value": 0,
    "customscript/xyz_grid.py/txt2img/Grid margins (px)/minimum": 0,
    "customscript/xyz_grid.py/txt2img/Grid margins (px)/maximum": 500,
    "customscript/xyz_grid.py/txt2img/Grid margins (px)/step": 2,
    "customscript/xyz_grid.py/txt2img/Use text inputs instead of dropdowns/visible": true,
    "customscript/xyz_grid.py/txt2img/Use text inputs instead of dropdowns/value": false,
    "txt2img/Swap X/Y axes/visible": true,
    "txt2img/Swap Y/Z axes/visible": true,
    "txt2img/Swap X/Z axes/visible": true,
    "txt2img/\ud83d\udcc2/visible": true,
    "txt2img/\ud83d\udcbe/visible": true,
    "txt2img/\ud83d\uddc3\ufe0f/visible": true,
    "txt2img/\ud83d\uddbc\ufe0f/visible": true,
    "txt2img/\ud83c\udfa8\ufe0f/visible": true,
    "txt2img/\ud83d\udcd0/visible": true,
    "txt2img/Description/visible": true,
    "txt2img/Description/value": "",
    "txt2img/Cancel/visible": true,
    "txt2img/Replace preview/visible": true,
    "txt2img/Save/visible": true,
    "txt2img/Preferred VAE/visible": true,
    "txt2img/Preferred VAE/value": "None",
    "txt2img/Stable Diffusion version/visible": true,
    "txt2img/Stable Diffusion version/value": "Unknown",
    "txt2img/Activation text/visible": true,
    "txt2img/Activation text/value": "",
    "txt2img/Preferred weight/visible": true,
    "txt2img/Preferred weight/value": 0.0,
    "txt2img/Preferred weight/minimum": 0.0,
    "txt2img/Preferred weight/maximum": 2.0,
    "txt2img/Preferred weight/step": 0.01,
    "txt2img/Random prompt/visible": true,
    "txt2img/Random prompt/value": "",
    "txt2img/txt2img_extra_sort_order/value": "Default Sort",
    "txt2img/Show dirs/value": true,
    "img2img/Prompt/visible": true,
    "img2img/Prompt/value": "",
    "img2img/Negative prompt/visible": true,
    "img2img/Negative prompt/value": "nsfw, nude",
    "img2img/Interrogate\nCLIP/visible": true,
    "img2img/Interrogate\nDeepBooru/visible": true,
    "img2img/Interrupt/visible": true,
    "img2img/Skip/visible": true,
    "img2img/Generate/visible": true,
    "img2img/\u2199\ufe0f/visible": true,
    "img2img/\ud83d\uddd1\ufe0f/visible": true,
    "img2img/Styles/visible": true,
    "img2img/Styles/value": [],
    "img2img/\ud83d\udd8c\ufe0f/visible": true,
    "img2img/\ud83d\udd04/visible": true,
    "img2img/\ud83d\udccb/visible": true,
    "img2img/Close/visible": true,
    "img2img/Tabs@img2img_extra_tabs/selected": null,
    "img2img/Tabs@mode_img2img/selected": null,
    "img2img/img2img/visible": true,
    "img2img/sketch/visible": true,
    "img2img/inpaint/visible": true,
    "img2img/inpaint sketch/visible": true,
    "img2img/Input directory/visible": true,
    "img2img/Input directory/value": "",
    "img2img/Output directory/visible": true,
    "img2img/Output directory/value": "",
    "img2img/Inpaint batch mask directory (required for inpaint batch processing only)/visible": true,
    "img2img/Inpaint batch mask directory (required for inpaint batch processing only)/value": "",
    "img2img/Append png info to prompts/visible": true,
    "img2img/Append png info to prompts/value": false,
    "img2img/PNG info directory/visible": true,
    "img2img/PNG info directory/value": "",
    "img2img/Resize mode/visible": true,
    "img2img/Resize mode/value": "Just resize",
    "img2img/Mask blur/visible": true,
    "img2img/Mask blur/value": 4,
    "img2img/Mask blur/minimum": 0,
    "img2img/Mask blur/maximum": 64,
    "img2img/Mask blur/step": 1,
    "img2img/Mask transparency/value": 0,
    "img2img/Mask transparency/minimum": 0,
    "img2img/Mask transparency/maximum": 100,
    "img2img/Mask transparency/step": 1,
    "img2img/Mask mode/visible": true,
    "img2img/Mask mode/value": "Inpaint masked",
    "img2img/Masked content/visible": true,
    "img2img/Masked content/value": "original",
    "img2img/Inpaint area/visible": true,
    "img2img/Inpaint area/value": "Whole picture",
    "img2img/Only masked padding, pixels/visible": true,
    "img2img/Only masked padding, pixels/value": 32,
    "img2img/Only masked padding, pixels/minimum": 0,
    "img2img/Only masked padding, pixels/maximum": 256,
    "img2img/Only masked padding, pixels/step": 4,
    "img2img/Sampling method/visible": true,
    "img2img/Sampling method/value": "Euler a",
    "img2img/Sampling steps/visible": true,
    "img2img/Sampling steps/value": 20,
    "img2img/Sampling steps/minimum": 1,
    "img2img/Sampling steps/maximum": 150,
    "img2img/Sampling steps/step": 1,
    "customscript/refiner.py/img2img/Checkpoint/visible": true,
    "customscript/refiner.py/img2img/Checkpoint/value": "",
    "customscript/refiner.py/img2img/Switch at/visible": true,
    "customscript/refiner.py/img2img/Switch at/value": 0.8,
    "customscript/refiner.py/img2img/Switch at/minimum": 0.01,
    "customscript/refiner.py/img2img/Switch at/maximum": 1.0,
    "customscript/refiner.py/img2img/Switch at/step": 0.01,
    "img2img/Width/visible": true,
    "img2img/Width/value": 512,
    "img2img/Width/minimum": 64,
    "img2img/Width/maximum": 2048,
    "img2img/Width/step": 8,
    "img2img/Height/visible": true,
    "img2img/Height/value": 512,
    "img2img/Height/minimum": 64,
    "img2img/Height/maximum": 2048,
    "img2img/Height/step": 8,
    "img2img/\u21c5/visible": true,
    "img2img/\ud83d\udcd0/visible": true,
    "img2img/Scale/visible": true,
    "img2img/Scale/value": 1.0,
    "img2img/Scale/minimum": 0.05,
    "img2img/Scale/maximum": 4.0,
    "img2img/Scale/step": 0.05,
    "img2img/Unused/visible": true,
    "img2img/Unused/value": 0,
    "img2img/Unused/minimum": 0,
    "img2img/Unused/maximum": 100,
    "img2img/Unused/step": 1,
    "img2img/Batch count/visible": true,
    "img2img/Batch count/value": 1,
    "img2img/Batch count/minimum": 1,
    "img2img/Batch count/maximum": 100,
    "img2img/Batch count/step": 1,
    "img2img/Batch size/visible": true,
    "img2img/Batch size/value": 1,
    "img2img/Batch size/minimum": 1,
    "img2img/Batch size/maximum": 8,
    "img2img/Batch size/step": 1,
    "img2img/CFG Scale/visible": true,
    "img2img/CFG Scale/value": 7.0,
    "img2img/CFG Scale/minimum": 1.0,
    "img2img/CFG Scale/maximum": 30.0,
    "img2img/CFG Scale/step": 0.5,
    "img2img/Image CFG Scale/value": 1.5,
    "img2img/Image CFG Scale/minimum": 0,
    "img2img/Image CFG Scale/maximum": 3.0,
    "img2img/Image CFG Scale/step": 0.05,
    "img2img/Denoising strength/visible": true,
    "img2img/Denoising strength/value": 0.75,
    "img2img/Denoising strength/minimum": 0.0,
    "img2img/Denoising strength/maximum": 1.0,
    "img2img/Denoising strength/step": 0.01,
    "customscript/seed.py/img2img/Seed/visible": true,
    "customscript/seed.py/img2img/Seed/value": -1,
    "img2img/Random seed/visible": true,
    "img2img/Reuse seed/visible": true,
    "customscript/seed.py/img2img/Extra/visible": true,
    "customscript/seed.py/img2img/Extra/value": false,
    "customscript/seed.py/img2img/Variation seed/visible": true,
    "customscript/seed.py/img2img/Variation seed/value": -1,
    "img2img/\ud83c\udfb2\ufe0f/visible": true,
    "img2img/\u267b\ufe0f/visible": true,
    "customscript/seed.py/img2img/Variation strength/visible": true,
    "customscript/seed.py/img2img/Variation strength/value": 0.0,
    "customscript/seed.py/img2img/Variation strength/minimum": 0,
    "customscript/seed.py/img2img/Variation strength/maximum": 1,
    "customscript/seed.py/img2img/Variation strength/step": 0.01,
    "customscript/seed.py/img2img/Resize seed from width/visible": true,
    "customscript/seed.py/img2img/Resize seed from width/value": 0,
    "customscript/seed.py/img2img/Resize seed from width/minimum": 0,
    "customscript/seed.py/img2img/Resize seed from width/maximum": 2048,
    "customscript/seed.py/img2img/Resize seed from width/step": 8,
    "customscript/seed.py/img2img/Resize seed from height/visible": true,
    "customscript/seed.py/img2img/Resize seed from height/value": 0,
    "customscript/seed.py/img2img/Resize seed from height/minimum": 0,
    "customscript/seed.py/img2img/Resize seed from height/maximum": 2048,
    "customscript/seed.py/img2img/Resize seed from height/step": 8,
    "img2img/Override settings/value": null,
    "img2img/Script/visible": true,
    "img2img/Script/value": "None",
    "customscript/img2imgalt.py/img2img/Override `Sampling method` to Euler?(this method is built for it)/visible": true,
    "customscript/img2imgalt.py/img2img/Override `Sampling method` to Euler?(this method is built for it)/value": true,
    "customscript/img2imgalt.py/img2img/Override `prompt` to the same value as `original prompt`?(and `negative prompt`)/visible": true,
    "customscript/img2imgalt.py/img2img/Override `prompt` to the same value as `original prompt`?(and `negative prompt`)/value": true,
    "customscript/img2imgalt.py/img2img/Original prompt/visible": true,
    "customscript/img2imgalt.py/img2img/Original prompt/value": "",
    "customscript/img2imgalt.py/img2img/Original negative prompt/visible": true,
    "customscript/img2imgalt.py/img2img/Original negative prompt/value": "nsfw, nude",
    "customscript/img2imgalt.py/img2img/Override `Sampling Steps` to the same value as `Decode steps`?/visible": true,
    "customscript/img2imgalt.py/img2img/Override `Sampling Steps` to the same value as `Decode steps`?/value": true,
    "customscript/img2imgalt.py/img2img/Decode steps/visible": true,
    "customscript/img2imgalt.py/img2img/Decode steps/value": 50,
    "customscript/img2imgalt.py/img2img/Decode steps/minimum": 1,
    "customscript/img2imgalt.py/img2img/Decode steps/maximum": 150,
    "customscript/img2imgalt.py/img2img/Decode steps/step": 1,
    "customscript/img2imgalt.py/img2img/Override `Denoising strength` to 1?/visible": true,
    "customscript/img2imgalt.py/img2img/Override `Denoising strength` to 1?/value": true,
    "customscript/img2imgalt.py/img2img/Decode CFG scale/visible": true,
    "customscript/img2imgalt.py/img2img/Decode CFG scale/value": 1.0,
    "customscript/img2imgalt.py/img2img/Decode CFG scale/minimum": 0.0,
    "customscript/img2imgalt.py/img2img/Decode CFG scale/maximum": 15.0,
    "customscript/img2imgalt.py/img2img/Decode CFG scale/step": 0.1,
    "customscript/img2imgalt.py/img2img/Randomness/visible": true,
    "customscript/img2imgalt.py/img2img/Randomness/value": 0.0,
    "customscript/img2imgalt.py/img2img/Randomness/minimum": 0.0,
    "customscript/img2imgalt.py/img2img/Randomness/maximum": 1.0,
    "customscript/img2imgalt.py/img2img/Randomness/step": 0.01,
    "customscript/img2imgalt.py/img2img/Sigma adjustment for finding noise for image/visible": true,
    "customscript/img2imgalt.py/img2img/Sigma adjustment for finding noise for image/value": false,
    "customscript/loopback.py/img2img/Loops/visible": true,
    "customscript/loopback.py/img2img/Loops/value": 4,
    "customscript/loopback.py/img2img/Loops/minimum": 1,
    "customscript/loopback.py/img2img/Loops/maximum": 32,
    "customscript/loopback.py/img2img/Loops/step": 1,
    "customscript/loopback.py/img2img/Final denoising strength/visible": true,
    "customscript/loopback.py/img2img/Final denoising strength/value": 0.5,
    "customscript/loopback.py/img2img/Final denoising strength/minimum": 0,
    "customscript/loopback.py/img2img/Final denoising strength/maximum": 1,
    "customscript/loopback.py/img2img/Final denoising strength/step": 0.01,
    "customscript/loopback.py/img2img/Denoising strength curve/visible": true,
    "customscript/loopback.py/img2img/Denoising strength curve/value": "Linear",
    "customscript/loopback.py/img2img/Append interrogated prompt at each iteration/visible": true,
    "customscript/loopback.py/img2img/Append interrogated prompt at each iteration/value": "None",
    "customscript/outpainting_mk_2.py/img2img/Pixels to expand/visible": true,
    "customscript/outpainting_mk_2.py/img2img/Pixels to expand/value": 128,
    "customscript/outpainting_mk_2.py/img2img/Pixels to expand/minimum": 8,
    "customscript/outpainting_mk_2.py/img2img/Pixels to expand/maximum": 256,
    "customscript/outpainting_mk_2.py/img2img/Pixels to expand/step": 8,
    "customscript/outpainting_mk_2.py/img2img/Mask blur/visible": true,
    "customscript/outpainting_mk_2.py/img2img/Mask blur/value": 8,
    "customscript/outpainting_mk_2.py/img2img/Mask blur/minimum": 0,
    "customscript/outpainting_mk_2.py/img2img/Mask blur/maximum": 64,
    "customscript/outpainting_mk_2.py/img2img/Mask blur/step": 1,
    "customscript/outpainting_mk_2.py/img2img/Fall-off exponent (lower=higher detail)/visible": true,
    "customscript/outpainting_mk_2.py/img2img/Fall-off exponent (lower=higher detail)/value": 1.0,
    "customscript/outpainting_mk_2.py/img2img/Fall-off exponent (lower=higher detail)/minimum": 0.0,
    "customscript/outpainting_mk_2.py/img2img/Fall-off exponent (lower=higher detail)/maximum": 4.0,
    "customscript/outpainting_mk_2.py/img2img/Fall-off exponent (lower=higher detail)/step": 0.01,
    "customscript/outpainting_mk_2.py/img2img/Color variation/visible": true,
    "customscript/outpainting_mk_2.py/img2img/Color variation/value": 0.05,
    "customscript/outpainting_mk_2.py/img2img/Color variation/minimum": 0.0,
    "customscript/outpainting_mk_2.py/img2img/Color variation/maximum": 1.0,
    "customscript/outpainting_mk_2.py/img2img/Color variation/step": 0.01,
    "customscript/poor_mans_outpainting.py/img2img/Pixels to expand/visible": true,
    "customscript/poor_mans_outpainting.py/img2img/Pixels to expand/value": 128,
    "customscript/poor_mans_outpainting.py/img2img/Pixels to expand/minimum": 8,
    "customscript/poor_mans_outpainting.py/img2img/Pixels to expand/maximum": 256,
    "customscript/poor_mans_outpainting.py/img2img/Pixels to expand/step": 8,
    "customscript/poor_mans_outpainting.py/img2img/Mask blur/visible": true,
    "customscript/poor_mans_outpainting.py/img2img/Mask blur/value": 4,
    "customscript/poor_mans_outpainting.py/img2img/Mask blur/minimum": 0,
    "customscript/poor_mans_outpainting.py/img2img/Mask blur/maximum": 64,
    "customscript/poor_mans_outpainting.py/img2img/Mask blur/step": 1,
    "customscript/poor_mans_outpainting.py/img2img/Masked content/visible": true,
    "customscript/poor_mans_outpainting.py/img2img/Masked content/value": "fill",
    "customscript/prompt_matrix.py/img2img/Put variable parts at start of prompt/visible": true,
    "customscript/prompt_matrix.py/img2img/Put variable parts at start of prompt/value": false,
    "customscript/prompt_matrix.py/img2img/Use different seed for each picture/visible": true,
    "customscript/prompt_matrix.py/img2img/Use different seed for each picture/value": false,
    "customscript/prompt_matrix.py/img2img/Select prompt/visible": true,
    "customscript/prompt_matrix.py/img2img/Select prompt/value": "positive",
    "customscript/prompt_matrix.py/img2img/Select joining char/visible": true,
    "customscript/prompt_matrix.py/img2img/Select joining char/value": "comma",
    "customscript/prompt_matrix.py/img2img/Grid margins (px)/visible": true,
    "customscript/prompt_matrix.py/img2img/Grid margins (px)/value": 0,
    "customscript/prompt_matrix.py/img2img/Grid margins (px)/minimum": 0,
    "customscript/prompt_matrix.py/img2img/Grid margins (px)/maximum": 500,
    "customscript/prompt_matrix.py/img2img/Grid margins (px)/step": 2,
    "customscript/prompts_from_file.py/img2img/Iterate seed every line/visible": true,
    "customscript/prompts_from_file.py/img2img/Iterate seed every line/value": false,
    "customscript/prompts_from_file.py/img2img/Use same random seed for all lines/visible": true,
    "customscript/prompts_from_file.py/img2img/Use same random seed for all lines/value": false,
    "customscript/prompts_from_file.py/img2img/List of prompt inputs/visible": true,
    "customscript/prompts_from_file.py/img2img/List of prompt inputs/value": "",
    "customscript/sd_upscale.py/img2img/Tile overlap/visible": true,
    "customscript/sd_upscale.py/img2img/Tile overlap/value": 64,
    "customscript/sd_upscale.py/img2img/Tile overlap/minimum": 0,
    "customscript/sd_upscale.py/img2img/Tile overlap/maximum": 256,
    "customscript/sd_upscale.py/img2img/Tile overlap/step": 16,
    "customscript/sd_upscale.py/img2img/Scale Factor/visible": true,
    "customscript/sd_upscale.py/img2img/Scale Factor/value": 2.0,
    "customscript/sd_upscale.py/img2img/Scale Factor/minimum": 1.0,
    "customscript/sd_upscale.py/img2img/Scale Factor/maximum": 4.0,
    "customscript/sd_upscale.py/img2img/Scale Factor/step": 0.05,
    "customscript/sd_upscale.py/img2img/Upscaler/visible": true,
    "customscript/sd_upscale.py/img2img/Upscaler/value": "None",
    "customscript/xyz_grid.py/img2img/X type/visible": true,
    "customscript/xyz_grid.py/img2img/X type/value": "Seed",
    "customscript/xyz_grid.py/img2img/X values/visible": true,
    "customscript/xyz_grid.py/img2img/X values/value": "",
    "customscript/xyz_grid.py/img2img/Y type/visible": true,
    "customscript/xyz_grid.py/img2img/Y type/value": "Nothing",
    "customscript/xyz_grid.py/img2img/Y values/visible": true,
    "customscript/xyz_grid.py/img2img/Y values/value": "",
    "customscript/xyz_grid.py/img2img/Z type/visible": true,
    "customscript/xyz_grid.py/img2img/Z type/value": "Nothing",
    "customscript/xyz_grid.py/img2img/Z values/visible": true,
    "customscript/xyz_grid.py/img2img/Z values/value": "",
    "customscript/xyz_grid.py/img2img/Draw legend/visible": true,
    "customscript/xyz_grid.py/img2img/Draw legend/value": true,
    "customscript/xyz_grid.py/img2img/Keep -1 for seeds/visible": true,
    "customscript/xyz_grid.py/img2img/Keep -1 for seeds/value": false,
    "customscript/xyz_grid.py/img2img/Include Sub Images/visible": true,
    "customscript/xyz_grid.py/img2img/Include Sub Images/value": false,
    "customscript/xyz_grid.py/img2img/Include Sub Grids/visible": true,
    "customscript/xyz_grid.py/img2img/Include Sub Grids/value": false,
    "customscript/xyz_grid.py/img2img/Grid margins (px)/visible": true,
    "customscript/xyz_grid.py/img2img/Grid margins (px)/value": 0,
    "customscript/xyz_grid.py/img2img/Grid margins (px)/minimum": 0,
    "customscript/xyz_grid.py/img2img/Grid margins (px)/maximum": 500,
    "customscript/xyz_grid.py/img2img/Grid margins (px)/step": 2,
    "customscript/xyz_grid.py/img2img/Use text inputs instead of dropdowns/visible": true,
    "customscript/xyz_grid.py/img2img/Use text inputs instead of dropdowns/value": false,
    "img2img/Swap X/Y axes/visible": true,
    "img2img/Swap Y/Z axes/visible": true,
    "img2img/Swap X/Z axes/visible": true,
    "img2img/\ud83d\udcc2/visible": true,
    "img2img/\ud83d\udcbe/visible": true,
    "img2img/\ud83d\uddc3\ufe0f/visible": true,
    "img2img/\ud83d\uddbc\ufe0f/visible": true,
    "img2img/\ud83c\udfa8\ufe0f/visible": true,
    "img2img/Description/visible": true,
    "img2img/Description/value": "",
    "img2img/Cancel/visible": true,
    "img2img/Replace preview/visible": true,
    "img2img/Save/visible": true,
    "img2img/Preferred VAE/visible": true,
    "img2img/Preferred VAE/value": "None",
    "img2img/Stable Diffusion version/visible": true,
    "img2img/Stable Diffusion version/value": "Unknown",
    "img2img/Activation text/visible": true,
    "img2img/Activation text/value": "",
    "img2img/Preferred weight/visible": true,
    "img2img/Preferred weight/value": 0.0,
    "img2img/Preferred weight/minimum": 0.0,
    "img2img/Preferred weight/maximum": 2.0,
    "img2img/Preferred weight/step": 0.01,
    "img2img/Random prompt/visible": true,
    "img2img/Random prompt/value": "",
    "img2img/img2img_extra_sort_order/value": "Default Sort",
    "img2img/Show dirs/value": true,
    "extras/Tabs@mode_extras/selected": null,
    "extras/Input directory/visible": true,
    "extras/Input directory/value": "",
    "extras/Output directory/visible": true,
    "extras/Output directory/value": "",
    "extras/Show result images/visible": true,
    "extras/Show result images/value": true,
    "extras/Generate/visible": true,
    "extras/Tabs@extras_resize_mode/selected": null,
    "customscript/postprocessing_upscale.py/extras/Resize/visible": true,
    "customscript/postprocessing_upscale.py/extras/Resize/value": 4,
    "customscript/postprocessing_upscale.py/extras/Resize/minimum": 1.0,
    "customscript/postprocessing_upscale.py/extras/Resize/maximum": 8.0,
    "customscript/postprocessing_upscale.py/extras/Resize/step": 0.05,
    "customscript/postprocessing_upscale.py/extras/Width/visible": true,
    "customscript/postprocessing_upscale.py/extras/Width/value": 512,
    "customscript/postprocessing_upscale.py/extras/Width/minimum": 64,
    "customscript/postprocessing_upscale.py/extras/Width/maximum": 2048,
    "customscript/postprocessing_upscale.py/extras/Width/step": 8,
    "customscript/postprocessing_upscale.py/extras/Height/visible": true,
    "customscript/postprocessing_upscale.py/extras/Height/value": 512,
    "customscript/postprocessing_upscale.py/extras/Height/minimum": 64,
    "customscript/postprocessing_upscale.py/extras/Height/maximum": 2048,
    "customscript/postprocessing_upscale.py/extras/Height/step": 8,
    "extras/\u21c5/visible": true,
    "customscript/postprocessing_upscale.py/extras/Crop to fit/visible": true,
    "customscript/postprocessing_upscale.py/extras/Crop to fit/value": true,
    "customscript/postprocessing_upscale.py/extras/Upscaler 1/visible": true,
    "customscript/postprocessing_upscale.py/extras/Upscaler 1/value": "None",
    "customscript/postprocessing_upscale.py/extras/Upscaler 2/visible": true,
    "customscript/postprocessing_upscale.py/extras/Upscaler 2/value": "None",
    "customscript/postprocessing_upscale.py/extras/Upscaler 2 visibility/visible": true,
    "customscript/postprocessing_upscale.py/extras/Upscaler 2 visibility/value": 0.0,
    "customscript/postprocessing_upscale.py/extras/Upscaler 2 visibility/minimum": 0.0,
    "customscript/postprocessing_upscale.py/extras/Upscaler 2 visibility/maximum": 1.0,
    "customscript/postprocessing_upscale.py/extras/Upscaler 2 visibility/step": 0.001,
    "customscript/postprocessing_gfpgan.py/extras/GFPGAN visibility/visible": true,
    "customscript/postprocessing_gfpgan.py/extras/GFPGAN visibility/value": 0,
    "customscript/postprocessing_gfpgan.py/extras/GFPGAN visibility/minimum": 0.0,
    "customscript/postprocessing_gfpgan.py/extras/GFPGAN visibility/maximum": 1.0,
    "customscript/postprocessing_gfpgan.py/extras/GFPGAN visibility/step": 0.001,
    "customscript/postprocessing_codeformer.py/extras/CodeFormer visibility/visible": true,
    "customscript/postprocessing_codeformer.py/extras/CodeFormer visibility/value": 0,
    "customscript/postprocessing_codeformer.py/extras/CodeFormer visibility/minimum": 0.0,
    "customscript/postprocessing_codeformer.py/extras/CodeFormer visibility/maximum": 1.0,
    "customscript/postprocessing_codeformer.py/extras/CodeFormer visibility/step": 0.001,
    "customscript/postprocessing_codeformer.py/extras/CodeFormer weight (0 = maximum effect, 1 = minimum effect)/visible": true,
    "customscript/postprocessing_codeformer.py/extras/CodeFormer weight (0 = maximum effect, 1 = minimum effect)/value": 0,
    "customscript/postprocessing_codeformer.py/extras/CodeFormer weight (0 = maximum effect, 1 = minimum effect)/minimum": 0.0,
    "customscript/postprocessing_codeformer.py/extras/CodeFormer weight (0 = maximum effect, 1 = minimum effect)/maximum": 1.0,
    "customscript/postprocessing_codeformer.py/extras/CodeFormer weight (0 = maximum effect, 1 = minimum effect)/step": 0.001,
    "extras/\ud83d\udcc2/visible": true,
    "extras/\ud83d\uddbc\ufe0f/visible": true,
    "extras/\ud83c\udfa8\ufe0f/visible": true,
    "extras/\ud83d\udcd0/visible": true,
    "pnginfo/Send to txt2img/visible": true,
    "pnginfo/Send to img2img/visible": true,
    "pnginfo/Send to inpaint/visible": true,
    "pnginfo/Send to extras/visible": true,
    "modelmerger/Primary model (A)/visible": true,
    "modelmerger/Primary model (A)/value": null,
    "modelmerger/\ud83d\udd04/visible": true,
    "modelmerger/Secondary model (B)/visible": true,
    "modelmerger/Secondary model (B)/value": null,
    "modelmerger/Tertiary model (C)/visible": true,
    "modelmerger/Tertiary model (C)/value": null,
    "modelmerger/Custom Name (Optional)/visible": true,
    "modelmerger/Custom Name (Optional)/value": "",
    "modelmerger/Multiplier (M) - set to 0 to get model A/visible": true,
    "modelmerger/Multiplier (M) - set to 0 to get model A/value": 0.3,
    "modelmerger/Multiplier (M) - set to 0 to get model A/minimum": 0.0,
    "modelmerger/Multiplier (M) - set to 0 to get model A/maximum": 1.0,
    "modelmerger/Multiplier (M) - set to 0 to get model A/step": 0.05,
    "modelmerger/Interpolation Method/visible": true,
    "modelmerger/Interpolation Method/value": "Weighted sum",
    "modelmerger/Checkpoint format/visible": true,
    "modelmerger/Checkpoint format/value": "safetensors",
    "modelmerger/Save as float16/visible": true,
    "modelmerger/Save as float16/value": false,
    "modelmerger/Copy config from/visible": true,
    "modelmerger/Copy config from/value": "A, B or C",
    "modelmerger/Bake in VAE/visible": true,
    "modelmerger/Bake in VAE/value": "None",
    "modelmerger/Discard weights with matching name/visible": true,
    "modelmerger/Discard weights with matching name/value": "",
    "modelmerger/Save metadata/visible": true,
    "modelmerger/Save metadata/value": true,
    "modelmerger/Add merge recipe metadata/visible": true,
    "modelmerger/Add merge recipe metadata/value": true,
    "modelmerger/Copy metadata from merged models/visible": true,
    "modelmerger/Copy metadata from merged models/value": true,
    "modelmerger/Read metadata from selected checkpoints/visible": true,
    "modelmerger/Merge/visible": true,
    "train/Tabs@train_tabs/selected": null,
    "train/Name/visible": true,
    "train/Name/value": "",
    "train/Initialization text/visible": true,
    "train/Initialization text/value": "*",
    "train/Number of vectors per token/visible": true,
    "train/Number of vectors per token/value": 1,
    "train/Number of vectors per token/minimum": 1,
    "train/Number of vectors per token/maximum": 75,
    "train/Number of vectors per token/step": 1,
    "train/Overwrite Old Embedding/visible": true,
    "train/Overwrite Old Embedding/value": false,
    "train/Create embedding/visible": true,
    "train/Enter hypernetwork layer structure/visible": true,
    "train/Enter hypernetwork layer structure/value": "1, 2, 1",
    "train/Select activation function of hypernetwork. Recommended : Swish / Linear(none)/visible": true,
    "train/Select activation function of hypernetwork. Recommended : Swish / Linear(none)/value": "linear",
    "train/Select Layer weights initialization. Recommended: Kaiming for relu-like, Xavier for sigmoid-like, Normal otherwise/visible": true,
    "train/Select Layer weights initialization. Recommended: Kaiming for relu-like, Xavier for sigmoid-like, Normal otherwise/value": "Normal",
    "train/Add layer normalization/visible": true,
    "train/Add layer normalization/value": false,
    "train/Use dropout/visible": true,
    "train/Use dropout/value": false,
    "train/Enter hypernetwork Dropout structure (or empty). Recommended : 0~0.35 incrementing sequence: 0, 0.05, 0.15/visible": true,
    "train/Enter hypernetwork Dropout structure (or empty). Recommended : 0~0.35 incrementing sequence: 0, 0.05, 0.15/value": "0, 0, 0",
    "train/Overwrite Old Hypernetwork/visible": true,
    "train/Overwrite Old Hypernetwork/value": false,
    "train/Create hypernetwork/visible": true,
    "train/Source directory/visible": true,
    "train/Source directory/value": "",
    "train/Destination directory/visible": true,
    "train/Destination directory/value": "",
    "train/Width/visible": true,
    "train/Width/value": 512,
    "train/Width/minimum": 64,
    "train/Width/maximum": 2048,
    "train/Width/step": 8,
    "train/Height/visible": true,
    "train/Height/value": 512,
    "train/Height/minimum": 64,
    "train/Height/maximum": 2048,
    "train/Height/step": 8,
    "train/Existing Caption txt Action/visible": true,
    "train/Existing Caption txt Action/value": "ignore",
    "train/Keep original size/visible": true,
    "train/Keep original size/value": false,
    "train/Create flipped copies/visible": true,
    "train/Create flipped copies/value": false,
    "train/Split oversized images/visible": true,
    "train/Split oversized images/value": false,
    "train/Auto focal point crop/visible": true,
    "train/Auto focal point crop/value": false,
    "train/Auto-sized crop/visible": true,
    "train/Auto-sized crop/value": false,
    "train/Use BLIP for caption/visible": true,
    "train/Use BLIP for caption/value": false,
    "train/Use deepbooru for caption/visible": true,
    "train/Use deepbooru for caption/value": false,
    "train/Split image threshold/visible": true,
    "train/Split image threshold/value": 0.5,
    "train/Split image threshold/minimum": 0.0,
    "train/Split image threshold/maximum": 1.0,
    "train/Split image threshold/step": 0.05,
    "train/Split image overlap ratio/visible": true,
    "train/Split image overlap ratio/value": 0.2,
    "train/Split image overlap ratio/minimum": 0.0,
    "train/Split image overlap ratio/maximum": 0.9,
    "train/Split image overlap ratio/step": 0.05,
    "train/Focal point face weight/visible": true,
    "train/Focal point face weight/value": 0.9,
    "train/Focal point face weight/minimum": 0.0,
    "train/Focal point face weight/maximum": 1.0,
    "train/Focal point face weight/step": 0.05,
    "train/Focal point entropy weight/visible": true,
    "train/Focal point entropy weight/value": 0.15,
    "train/Focal point entropy weight/minimum": 0.0,
    "train/Focal point entropy weight/maximum": 1.0,
    "train/Focal point entropy weight/step": 0.05,
    "train/Focal point edges weight/visible": true,
    "train/Focal point edges weight/value": 0.5,
    "train/Focal point edges weight/minimum": 0.0,
    "train/Focal point edges weight/maximum": 1.0,
    "train/Focal point edges weight/step": 0.05,
    "train/Create debug image/visible": true,
    "train/Create debug image/value": false,
    "train/Dimension lower bound/visible": true,
    "train/Dimension lower bound/value": 384,
    "train/Dimension lower bound/minimum": 64,
    "train/Dimension lower bound/maximum": 2048,
    "train/Dimension lower bound/step": 8,
    "train/Dimension upper bound/visible": true,
    "train/Dimension upper bound/value": 768,
    "train/Dimension upper bound/minimum": 64,
    "train/Dimension upper bound/maximum": 2048,
    "train/Dimension upper bound/step": 8,
    "train/Area lower bound/visible": true,
    "train/Area lower bound/value": 4096,
    "train/Area lower bound/minimum": 4096,
    "train/Area lower bound/maximum": 4194304,
    "train/Area lower bound/step": 1,
    "train/Area upper bound/visible": true,
    "train/Area upper bound/value": 409600,
    "train/Area upper bound/minimum": 4096,
    "train/Area upper bound/maximum": 4194304,
    "train/Area upper bound/step": 1,
    "train/Resizing objective/visible": true,
    "train/Resizing objective/value": "Maximize area",
    "train/Error threshold/visible": true,
    "train/Error threshold/value": 0.1,
    "train/Error threshold/minimum": 0,
    "train/Error threshold/maximum": 1,
    "train/Error threshold/step": 0.01,
    "train/Interrupt/visible": true,
    "train/Preprocess/visible": true,
    "train/Embedding/visible": true,
    "train/Embedding/value": null,
    "train/\ud83d\udd04/visible": true,
    "train/Hypernetwork/visible": true,
    "train/Hypernetwork/value": null,
    "train/Embedding Learning rate/visible": true,
    "train/Embedding Learning rate/value": "0.005",
    "train/Hypernetwork Learning rate/visible": true,
    "train/Hypernetwork Learning rate/value": "0.00001",
    "train/Gradient Clipping/visible": true,
    "train/Gradient Clipping/value": "disabled",
    "train/Batch size/visible": true,
    "train/Batch size/value": 1,
    "train/Gradient accumulation steps/visible": true,
    "train/Gradient accumulation steps/value": 1,
    "train/Dataset directory/visible": true,
    "train/Dataset directory/value": "",
    "train/Log directory/visible": true,
    "train/Log directory/value": "textual_inversion",
    "train/Prompt template/visible": true,
    "train/Prompt template/value": "style_filewords.txt",
    "train/Do not resize images/visible": true,
    "train/Do not resize images/value": false,
    "train/Max steps/visible": true,
    "train/Max steps/value": 100000,
    "train/Save an image to log directory every N steps, 0 to disable/visible": true,
    "train/Save an image to log directory every N steps, 0 to disable/value": 500,
    "train/Save a copy of embedding to log directory every N steps, 0 to disable/visible": true,
    "train/Save a copy of embedding to log directory every N steps, 0 to disable/value": 500,
    "train/Use PNG alpha channel as loss weight/visible": true,
    "train/Use PNG alpha channel as loss weight/value": false,
    "train/Save images with embedding in PNG chunks/visible": true,
    "train/Save images with embedding in PNG chunks/value": true,
    "train/Read parameters (prompt, etc...) from txt2img tab when making previews/visible": true,
    "train/Read parameters (prompt, etc...) from txt2img tab when making previews/value": false,
    "train/Shuffle tags by ',' when creating prompts./visible": true,
    "train/Shuffle tags by ',' when creating prompts./value": false,
    "train/Drop out tags when creating prompts./visible": true,
    "train/Drop out tags when creating prompts./value": 0,
    "train/Drop out tags when creating prompts./minimum": 0,
    "train/Drop out tags when creating prompts./maximum": 1,
    "train/Drop out tags when creating prompts./step": 0.1,
    "train/Choose latent sampling method/visible": true,
    "train/Choose latent sampling method/value": "once",
    "train/Train Embedding/visible": true,
    "train/Train Hypernetwork/visible": true,
    "webui/Tabs@tabs/selected": null,
    "txt2img/Tabs@txt2img_controlnet_tabs/selected": null,
    "txt2img/Input Directory/visible": true,
    "txt2img/Input Directory/value": "",
    "txt2img/New Canvas Width/visible": true,
    "txt2img/New Canvas Width/value": 512,
    "txt2img/New Canvas Width/minimum": 256,
    "txt2img/New Canvas Width/maximum": 1024,
    "txt2img/New Canvas Width/step": 64,
    "txt2img/New Canvas Height/visible": true,
    "txt2img/New Canvas Height/value": 512,
    "txt2img/New Canvas Height/minimum": 256,
    "txt2img/New Canvas Height/maximum": 1024,
    "txt2img/New Canvas Height/step": 64,
    "txt2img/Create New Canvas/visible": true,
    "txt2img/Enable/visible": true,
    "txt2img/Enable/value": false,
    "txt2img/Low VRAM/visible": true,
    "txt2img/Low VRAM/value": false,
    "txt2img/Pixel Perfect/visible": true,
    "txt2img/Pixel Perfect/value": false,
    "txt2img/Allow Preview/visible": true,
    "txt2img/Allow Preview/value": false,
    "txt2img/Preview as Input/value": false,
    "txt2img/Control Type/visible": true,
    "txt2img/Control Type/value": "All",
    "txt2img/Preprocessor/visible": true,
    "txt2img/Preprocessor/value": "none",
    "txt2img/Model/visible": true,
    "txt2img/Model/value": "None",
    "txt2img/Control Weight/visible": true,
    "txt2img/Control Weight/value": 1.0,
    "txt2img/Control Weight/minimum": 0.0,
    "txt2img/Control Weight/maximum": 2.0,
    "txt2img/Control Weight/step": 0.05,
    "txt2img/Starting Control Step/visible": true,
    "txt2img/Starting Control Step/value": 0.0,
    "txt2img/Starting Control Step/minimum": 0.0,
    "txt2img/Starting Control Step/maximum": 1.0,
    "txt2img/Starting Control Step/step": 0.01,
    "txt2img/Ending Control Step/visible": true,
    "txt2img/Ending Control Step/value": 1.0,
    "txt2img/Ending Control Step/minimum": 0.0,
    "txt2img/Ending Control Step/maximum": 1.0,
    "txt2img/Ending Control Step/step": 0.01,
    "txt2img/Preprocessor resolution/value": -1,
    "txt2img/Preprocessor resolution/minimum": 64,
    "txt2img/Preprocessor resolution/maximum": 2048,
    "txt2img/Preprocessor resolution/step": 10,
    "txt2img/Threshold A/value": -1,
    "txt2img/Threshold A/minimum": 64,
    "txt2img/Threshold A/maximum": 1024,
    "txt2img/Threshold A/step": 1,
    "txt2img/Threshold B/value": -1,
    "txt2img/Threshold B/minimum": 64,
    "txt2img/Threshold B/maximum": 1024,
    "txt2img/Threshold B/step": 1,
    "txt2img/Control Mode/visible": true,
    "txt2img/Control Mode/value": "Balanced",
    "txt2img/Resize Mode/visible": true,
    "txt2img/Resize Mode/value": "Crop and Resize",
    "txt2img/[Loopback] Automatically send generated images to this ControlNet unit/visible": true,
    "txt2img/[Loopback] Automatically send generated images to this ControlNet unit/value": false,
    "txt2img/Presets/visible": true,
    "txt2img/Presets/value": "New Preset",
    "txt2img/Preset name/visible": true,
    "txt2img/Preset name/value": "",
    "customscript/censor.py/txt2img/Enable NSFW filter/visible": true,
    "customscript/censor.py/txt2img/Enable NSFW filter/value": true,
    "customscript/censor.py/txt2img/Safety checker adjustment/visible": true,
    "customscript/censor.py/txt2img/Safety checker adjustment/value": 0.5,
    "customscript/censor.py/txt2img/Safety checker adjustment/minimum": -0.5,
    "customscript/censor.py/txt2img/Safety checker adjustment/maximum": 0.5,
    "customscript/censor.py/txt2img/Safety checker adjustment/step": 0.001,
    "customscript/movie2movie.py/txt2img/Duration/visible": true,
    "customscript/movie2movie.py/txt2img/Duration/value": 50.0,
    "customscript/movie2movie.py/txt2img/Duration/minimum": 10.0,
    "customscript/movie2movie.py/txt2img/Duration/maximum": 200.0,
    "customscript/movie2movie.py/txt2img/Duration/step": 10,
    "customscript/movie2movie.py/txt2img/Save preprocessed/visible": true,
    "customscript/movie2movie.py/txt2img/Save preprocessed/value": false,
    "img2img/Controlnet input directory/visible": true,
    "img2img/Controlnet input directory/value": "",
    "img2img/Tabs@img2img_controlnet_tabs/selected": null,
    "img2img/Input Directory/visible": true,
    "img2img/Input Directory/value": "",
    "img2img/New Canvas Width/visible": true,
    "img2img/New Canvas Width/value": 512,
    "img2img/New Canvas Width/minimum": 256,
    "img2img/New Canvas Width/maximum": 1024,
    "img2img/New Canvas Width/step": 64,
    "img2img/New Canvas Height/visible": true,
    "img2img/New Canvas Height/value": 512,
    "img2img/New Canvas Height/minimum": 256,
    "img2img/New Canvas Height/maximum": 1024,
    "img2img/New Canvas Height/step": 64,
    "img2img/Create New Canvas/visible": true,
    "img2img/Enable/visible": true,
    "img2img/Enable/value": false,
    "img2img/Low VRAM/visible": true,
    "img2img/Low VRAM/value": false,
    "img2img/Pixel Perfect/visible": true,
    "img2img/Pixel Perfect/value": false,
    "img2img/Allow Preview/value": false,
    "img2img/Preview as Input/value": false,
    "img2img/Upload independent control image/visible": true,
    "img2img/Upload independent control image/value": false,
    "img2img/Control Type/visible": true,
    "img2img/Control Type/value": "All",
    "img2img/Preprocessor/visible": true,
    "img2img/Preprocessor/value": "none",
    "img2img/Model/visible": true,
    "img2img/Model/value": "None",
    "img2img/Control Weight/visible": true,
    "img2img/Control Weight/value": 1.0,
    "img2img/Control Weight/minimum": 0.0,
    "img2img/Control Weight/maximum": 2.0,
    "img2img/Control Weight/step": 0.05,
    "img2img/Starting Control Step/visible": true,
    "img2img/Starting Control Step/value": 0.0,
    "img2img/Starting Control Step/minimum": 0.0,
    "img2img/Starting Control Step/maximum": 1.0,
    "img2img/Starting Control Step/step": 0.01,
    "img2img/Ending Control Step/visible": true,
    "img2img/Ending Control Step/value": 1.0,
    "img2img/Ending Control Step/minimum": 0.0,
    "img2img/Ending Control Step/maximum": 1.0,
    "img2img/Ending Control Step/step": 0.01,
    "img2img/Preprocessor resolution/value": -1,
    "img2img/Preprocessor resolution/minimum": 64,
    "img2img/Preprocessor resolution/maximum": 2048,
    "img2img/Preprocessor resolution/step": 10,
    "img2img/Threshold A/value": -1,
    "img2img/Threshold A/minimum": 64,
    "img2img/Threshold A/maximum": 1024,
    "img2img/Threshold A/step": 1,
    "img2img/Threshold B/value": -1,
    "img2img/Threshold B/minimum": 64,
    "img2img/Threshold B/maximum": 1024,
    "img2img/Threshold B/step": 1,
    "img2img/Control Mode/visible": true,
    "img2img/Control Mode/value": "Balanced",
    "img2img/Resize Mode/value": "Crop and Resize",
    "img2img/[Loopback] Automatically send generated images to this ControlNet unit/value": false,
    "img2img/Presets/visible": true,
    "img2img/Presets/value": "New Preset",
    "img2img/Preset name/visible": true,
    "img2img/Preset name/value": "",
    "customscript/censor.py/img2img/Enable NSFW filter/visible": true,
    "customscript/censor.py/img2img/Enable NSFW filter/value": true,
    "customscript/censor.py/img2img/Safety checker adjustment/visible": true,
    "customscript/censor.py/img2img/Safety checker adjustment/value": 0.5,
    "customscript/censor.py/img2img/Safety checker adjustment/minimum": -0.5,
    "customscript/censor.py/img2img/Safety checker adjustment/maximum": 0.5,
    "customscript/censor.py/img2img/Safety checker adjustment/step": 0.001,
    "customscript/movie2movie.py/img2img/Duration/visible": true,
    "customscript/movie2movie.py/img2img/Duration/value": 50.0,
    "customscript/movie2movie.py/img2img/Duration/minimum": 10.0,
    "customscript/movie2movie.py/img2img/Duration/maximum": 200.0,
    "customscript/movie2movie.py/img2img/Duration/step": 10,
    "customscript/movie2movie.py/img2img/Save preprocessed/visible": true,
    "customscript/movie2movie.py/img2img/Save preprocessed/value": false,
    "extension/Tabs@sadtalker_source_image/selected": null,
    "extension/Tabs@sadtalker_driven_audio/selected": null,
    "extension/Tabs@sadtalker_checkbox/selected": null,
    "extension/Pose style/visible": true,
    "extension/Pose style/value": 0,
    "extension/Pose style/minimum": 0,
    "extension/Pose style/maximum": 46,
    "extension/Pose style/step": 1,
    "extension/face model resolution/visible": true,
    "extension/face model resolution/value": 256,
    "extension/preprocess/visible": true,
    "extension/preprocess/value": "crop",
    "extension/Still Mode (fewer head motion, works with preprocess `full`)/visible": true,
    "extension/Still Mode (fewer head motion, works with preprocess `full`)/value": false,
    "extension/batch size in generation/visible": true,
    "extension/batch size in generation/value": 2,
    "extension/batch size in generation/minimum": 0,
    "extension/batch size in generation/maximum": 10,
    "extension/batch size in generation/step": 1,
    "extension/GFPGAN as Face enhancer/visible": true,
    "extension/GFPGAN as Face enhancer/value": false,
    "extension/Generate/visible": true,
    "extension/Tabs@sadtalker_genearted/selected": null,
    "iz_interface/Generate video/visible": true,
    "iz_interface/Interrupt/visible": true,
    "iz_interface/Batch Count/visible": true,
    "iz_interface/Batch Count/value": 1,
    "iz_interface/Batch Count/minimum": 1,
    "iz_interface/Batch Count/maximum": 25,
    "iz_interface/Batch Count/step": 1,
    "iz_interface/Total video length [s]/visible": true,
    "iz_interface/Total video length [s]/value": 5,
    "iz_interface/Common Prompt Prefix/visible": true,
    "iz_interface/Common Prompt Prefix/value": "Huge spectacular Waterfall in ",
    "iz_interface/Common Prompt Suffix/visible": true,
    "iz_interface/Common Prompt Suffix/value": "epic perspective,(vegetation overgrowth:1.3)(intricate, ornamentation:1.1),(baroque:1.1), fantasy, (realistic:1) digital painting , (magical,mystical:1.2) , (wide angle shot:1.4), (landscape composed:1.2)(medieval:1.1),(tropical forest:1.4),(river:1.3) volumetric lighting ,epic, style by Alex Horley Wenjun Lin greg rutkowski Ruan Jia (Wayne Barlowe:1.2)",
    "iz_interface/Negative Prompt/visible": true,
    "iz_interface/Negative Prompt/value": "frames, border, edges, borderline, text, character, duplicate, error, out of frame, watermark, low quality, ugly, deformed, blur, bad-artist",
    "iz_interface/Export prompts/visible": true,
    "iz_interface/Clear prompts/visible": true,
    "iz_interface/Seed/visible": true,
    "iz_interface/Seed/value": -1,
    "iz_interface/Sampler/visible": true,
    "iz_interface/Sampler/value": "Euler a",
    "iz_interface/Output Width/visible": true,
    "iz_interface/Output Width/value": 512,
    "iz_interface/Output Width/minimum": 16,
    "iz_interface/Output Width/maximum": 2048,
    "iz_interface/Output Width/step": 16,
    "iz_interface/Output Height/visible": true,
    "iz_interface/Output Height/value": 512,
    "iz_interface/Output Height/minimum": 16,
    "iz_interface/Output Height/maximum": 2048,
    "iz_interface/Output Height/step": 16,
    "iz_interface/Guidance Scale/visible": true,
    "iz_interface/Guidance Scale/value": 8,
    "iz_interface/Guidance Scale/minimum": 0.1,
    "iz_interface/Guidance Scale/maximum": 15,
    "iz_interface/Guidance Scale/step": 0.1,
    "iz_interface/Sampling Steps for each outpaint/visible": true,
    "iz_interface/Sampling Steps for each outpaint/value": 35,
    "iz_interface/Sampling Steps for each outpaint/minimum": 1,
    "iz_interface/Sampling Steps for each outpaint/maximum": 150,
    "iz_interface/Sampling Steps for each outpaint/step": 1,
    "iz_interface/Frames per second/visible": true,
    "iz_interface/Frames per second/value": 30,
    "iz_interface/Frames per second/minimum": 1,
    "iz_interface/Frames per second/maximum": 60,
    "iz_interface/Frames per second/step": 0.1,
    "iz_interface/Zoom mode/visible": true,
    "iz_interface/Zoom mode/value": "Zoom-out",
    "iz_interface/number of start frame dupe/visible": true,
    "iz_interface/number of start frame dupe/value": 0,
    "iz_interface/number of start frame dupe/minimum": 1,
    "iz_interface/number of start frame dupe/maximum": 60,
    "iz_interface/number of start frame dupe/step": 0.1,
    "iz_interface/number of last frame dupe/visible": true,
    "iz_interface/number of last frame dupe/value": 0,
    "iz_interface/number of last frame dupe/minimum": 1,
    "iz_interface/number of last frame dupe/maximum": 60,
    "iz_interface/number of last frame dupe/step": 0.1,
    "iz_interface/Zoom Speed/visible": true,
    "iz_interface/Zoom Speed/value": 1.0,
    "iz_interface/Zoom Speed/minimum": 0.1,
    "iz_interface/Zoom Speed/maximum": 20.0,
    "iz_interface/Zoom Speed/step": 0.1,
    "iz_interface/Mask Blur/visible": true,
    "iz_interface/Mask Blur/value": 48,
    "iz_interface/Mask Blur/minimum": 0,
    "iz_interface/Mask Blur/maximum": 64,
    "iz_interface/Mask Blur/step": 0.1,
    "iz_interface/Masked content/visible": true,
    "iz_interface/Masked content/value": "latent noise",
    "iz_interface/Enable Upscale/visible": true,
    "iz_interface/Enable Upscale/value": false,
    "iz_interface/Upscaler/visible": true,
    "iz_interface/Upscaler/value": "None",
    "iz_interface/Upscale by factor/visible": true,
    "iz_interface/Upscale by factor/value": 2,
    "iz_interface/Upscale by factor/minimum": 1,
    "iz_interface/Upscale by factor/maximum": 8,
    "iz_interface/Upscale by factor/step": 0.5,
    "iz_interface/\ud83d\udcc2/visible": true,
    "iz_interface/\ud83d\udcbe/visible": true,
    "iz_interface/\ud83d\uddc3\ufe0f/visible": true,
    "iz_interface/\ud83d\uddbc\ufe0f/visible": true,
    "iz_interface/\ud83c\udfa8\ufe0f/visible": true,
    "iz_interface/\ud83d\udcd0/visible": true,
    "deforum_interface/Show more info/visible": true,
    "deforum_interface/Show more info/value": true,
    "deforum_interface/Motion preview mode (dry run)./visible": true,
    "deforum_interface/Motion preview mode (dry run)./value": false,
    "deforum_interface/Sampler/visible": true,
    "deforum_interface/Sampler/value": "Euler a",
    "deforum_interface/Steps/visible": true,
    "deforum_interface/Steps/value": 25,
    "deforum_interface/Steps/minimum": 1,
    "deforum_interface/Steps/maximum": 200,
    "deforum_interface/Steps/step": 1,
    "deforum_interface/Width/visible": true,
    "deforum_interface/Width/value": 512,
    "deforum_interface/Width/minimum": 64,
    "deforum_interface/Width/maximum": 2048,
    "deforum_interface/Width/step": 64,
    "deforum_interface/Height/visible": true,
    "deforum_interface/Height/value": 512,
    "deforum_interface/Height/minimum": 64,
    "deforum_interface/Height/maximum": 2048,
    "deforum_interface/Height/step": 64,
    "deforum_interface/Seed/visible": true,
    "deforum_interface/Seed/value": -1,
    "deforum_interface/Batch name/visible": true,
    "deforum_interface/Batch name/value": "Deforum_{timestring}",
    "deforum_interface/Restore faces/visible": true,
    "deforum_interface/Restore faces/value": false,
    "deforum_interface/Tiling/visible": true,
    "deforum_interface/Tiling/value": false,
    "deforum_interface/Enable DDIM ETA scheduling/value": false,
    "deforum_interface/Enable Ancestral ETA scheduling/visible": true,
    "deforum_interface/Enable Ancestral ETA scheduling/value": false,
    "deforum_interface/DDIM ETA Schedule/value": "0: (0)",
    "deforum_interface/Ancestral ETA Schedule/value": "0: (1)",
    "deforum_interface/Enable batch mode/visible": true,
    "deforum_interface/Enable batch mode/value": false,
    "deforum_interface/Resume from timestring/visible": true,
    "deforum_interface/Resume from timestring/value": false,
    "deforum_interface/Resume timestring/visible": true,
    "deforum_interface/Resume timestring/value": "20230129210106",
    "deforum_interface/Pix2Pix img CFG schedule/visible": true,
    "deforum_interface/Pix2Pix img CFG schedule/value": "0:(1.5)",
    "deforum_interface/Animation mode/visible": true,
    "deforum_interface/Animation mode/value": "2D",
    "deforum_interface/Border mode/visible": true,
    "deforum_interface/Border mode/value": "replicate",
    "deforum_interface/Cadence/visible": true,
    "deforum_interface/Cadence/value": 1,
    "deforum_interface/Cadence/minimum": 1,
    "deforum_interface/Cadence/maximum": 50,
    "deforum_interface/Cadence/step": 1,
    "deforum_interface/Max frames/visible": true,
    "deforum_interface/Max frames/value": 120,
    "deforum_interface/Enable guided images mode/visible": true,
    "deforum_interface/Enable guided images mode/value": false,
    "deforum_interface/Images to use for keyframe guidance/visible": true,
    "deforum_interface/Images to use for keyframe guidance/value": "{\n    \"0\": \"https://deforum.github.io/a1/Gi1.png\",\n    \"max_f/4-5\": \"https://deforum.github.io/a1/Gi2.png\",\n    \"max_f/2-10\": \"https://deforum.github.io/a1/Gi3.png\",\n    \"3*max_f/4-15\": \"https://deforum.github.io/a1/Gi4.jpg\",\n    \"max_f-20\": \"https://deforum.github.io/a1/Gi1.png\"\n}",
    "deforum_interface/Image strength schedule/visible": true,
    "deforum_interface/Image strength schedule/value": "0:(0.75)",
    "deforum_interface/Blend factor max/visible": true,
    "deforum_interface/Blend factor max/value": "0:(0.35)",
    "deforum_interface/Blend factor slope/visible": true,
    "deforum_interface/Blend factor slope/value": "0:(0.25)",
    "deforum_interface/Tweening frames schedule/visible": true,
    "deforum_interface/Tweening frames schedule/value": "0:(20)",
    "deforum_interface/Color correction factor/visible": true,
    "deforum_interface/Color correction factor/value": "0:(0.075)",
    "deforum_interface/Strength schedule/visible": true,
    "deforum_interface/Strength schedule/value": "0: (0.65)",
    "deforum_interface/CFG scale schedule/visible": true,
    "deforum_interface/CFG scale schedule/value": "0: (7)",
    "deforum_interface/Enable CLIP skip scheduling/visible": true,
    "deforum_interface/Enable CLIP skip scheduling/value": false,
    "deforum_interface/CLIP skip schedule/visible": true,
    "deforum_interface/CLIP skip schedule/value": "0: (2)",
    "deforum_interface/Seed behavior/visible": true,
    "deforum_interface/Seed behavior/value": "iter",
    "deforum_interface/Seed iter N/visible": true,
    "deforum_interface/Seed iter N/value": 1,
    "deforum_interface/Seed schedule/visible": true,
    "deforum_interface/Seed schedule/value": "0:(s), 1:(-1), \"max_f-2\":(-1), \"max_f-1\":(s)",
    "deforum_interface/Enable Subseed scheduling/visible": true,
    "deforum_interface/Enable Subseed scheduling/value": false,
    "deforum_interface/Subseed schedule/visible": true,
    "deforum_interface/Subseed schedule/value": "0: (1)",
    "deforum_interface/Subseed strength schedule/visible": true,
    "deforum_interface/Subseed strength schedule/value": "0: (0)",
    "deforum_interface/Resize seed from width/visible": true,
    "deforum_interface/Resize seed from width/value": 0,
    "deforum_interface/Resize seed from width/minimum": 0,
    "deforum_interface/Resize seed from width/maximum": 2048,
    "deforum_interface/Resize seed from width/step": 64,
    "deforum_interface/Resize seed from height/visible": true,
    "deforum_interface/Resize seed from height/value": 0,
    "deforum_interface/Resize seed from height/minimum": 0,
    "deforum_interface/Resize seed from height/maximum": 2048,
    "deforum_interface/Resize seed from height/step": 64,
    "deforum_interface/Enable steps scheduling/visible": true,
    "deforum_interface/Enable steps scheduling/value": false,
    "deforum_interface/Steps schedule/visible": true,
    "deforum_interface/Steps schedule/value": "0: (25)",
    "deforum_interface/Enable sampler scheduling/visible": true,
    "deforum_interface/Enable sampler scheduling/value": false,
    "deforum_interface/Sampler schedule/visible": true,
    "deforum_interface/Sampler schedule/value": "0: (\"Euler a\")",
    "deforum_interface/Enable checkpoint scheduling/visible": true,
    "deforum_interface/Enable checkpoint scheduling/value": false,
    "deforum_interface/allows keyframing different sd models. Use *full* name as appears in ui dropdown/visible": true,
    "deforum_interface/allows keyframing different sd models. Use *full* name as appears in ui dropdown/value": "0: (\"model1.ckpt\"), 100: (\"model2.safetensors\")",
    "deforum_interface/Tabs@motion_noise_etc/selected": null,
    "deforum_interface/Zoom/visible": true,
    "deforum_interface/Zoom/value": "0: (1.0025+0.002*sin(1.25*3.14*t/30))",
    "deforum_interface/Angle/visible": true,
    "deforum_interface/Angle/value": "0: (0)",
    "deforum_interface/Transform Center X/visible": true,
    "deforum_interface/Transform Center X/value": "0: (0.5)",
    "deforum_interface/Transform Center Y/visible": true,
    "deforum_interface/Transform Center Y/value": "0: (0.5)",
    "deforum_interface/Translation X/visible": true,
    "deforum_interface/Translation X/value": "0: (0)",
    "deforum_interface/Translation Y/visible": true,
    "deforum_interface/Translation Y/value": "0: (0)",
    "deforum_interface/Translation Z/visible": true,
    "deforum_interface/Translation Z/value": "0: (1.75)",
    "deforum_interface/Rotation 3D X/visible": true,
    "deforum_interface/Rotation 3D X/value": "0: (0)",
    "deforum_interface/Rotation 3D Y/visible": true,
    "deforum_interface/Rotation 3D Y/value": "0: (0)",
    "deforum_interface/Rotation 3D Z/visible": true,
    "deforum_interface/Rotation 3D Z/value": "0: (0)",
    "deforum_interface/Enable perspective flip/visible": true,
    "deforum_interface/Enable perspective flip/value": false,
    "deforum_interface/Perspective flip theta/visible": true,
    "deforum_interface/Perspective flip theta/value": "0: (0)",
    "deforum_interface/Perspective flip phi/visible": true,
    "deforum_interface/Perspective flip phi/value": "0: (0)",
    "deforum_interface/Perspective flip gamma/visible": true,
    "deforum_interface/Perspective flip gamma/value": "0: (0)",
    "deforum_interface/Perspective flip tv/visible": true,
    "deforum_interface/Perspective flip tv/value": "0: (53)",
    "deforum_interface/Noise type/visible": true,
    "deforum_interface/Noise type/value": "perlin",
    "deforum_interface/Noise schedule/visible": true,
    "deforum_interface/Noise schedule/value": "0: (0.065)",
    "deforum_interface/Perlin octaves/visible": true,
    "deforum_interface/Perlin octaves/value": 4,
    "deforum_interface/Perlin octaves/minimum": 1,
    "deforum_interface/Perlin octaves/maximum": 7,
    "deforum_interface/Perlin octaves/step": 1,
    "deforum_interface/Perlin persistence/visible": true,
    "deforum_interface/Perlin persistence/value": 0.5,
    "deforum_interface/Perlin persistence/minimum": 0,
    "deforum_interface/Perlin persistence/maximum": 1,
    "deforum_interface/Perlin persistence/step": 0.02,
    "deforum_interface/Perlin W/value": 8,
    "deforum_interface/Perlin W/minimum": 0.1,
    "deforum_interface/Perlin W/maximum": 16,
    "deforum_interface/Perlin W/step": 0.1,
    "deforum_interface/Perlin H/value": 8,
    "deforum_interface/Perlin H/minimum": 0.1,
    "deforum_interface/Perlin H/maximum": 16,
    "deforum_interface/Perlin H/step": 0.1,
    "deforum_interface/Enable noise multiplier scheduling/visible": true,
    "deforum_interface/Enable noise multiplier scheduling/value": true,
    "deforum_interface/Noise multiplier schedule/visible": true,
    "deforum_interface/Noise multiplier schedule/value": "0: (1.05)",
    "deforum_interface/Color coherence/visible": true,
    "deforum_interface/Color coherence/value": "LAB",
    "deforum_interface/Color force Grayscale/visible": true,
    "deforum_interface/Color force Grayscale/value": false,
    "deforum_interface/Legacy colormatch/visible": true,
    "deforum_interface/Legacy colormatch/value": false,
    "deforum_interface/Color coherence image path/visible": true,
    "deforum_interface/Color coherence image path/value": "",
    "deforum_interface/Color coherence video every N frames/visible": true,
    "deforum_interface/Color coherence video every N frames/value": 1,
    "deforum_interface/Optical flow cadence/visible": true,
    "deforum_interface/Optical flow cadence/value": "None",
    "deforum_interface/Cadence flow factor schedule/visible": true,
    "deforum_interface/Cadence flow factor schedule/value": "0: (1)",
    "deforum_interface/Optical flow generation/visible": true,
    "deforum_interface/Optical flow generation/value": "None",
    "deforum_interface/Generation flow factor schedule/visible": true,
    "deforum_interface/Generation flow factor schedule/value": "0: (1)",
    "deforum_interface/Contrast schedule/visible": true,
    "deforum_interface/Contrast schedule/value": "0: (1.0)",
    "deforum_interface/Redo generation/visible": true,
    "deforum_interface/Redo generation/value": "0",
    "deforum_interface/Redo generation/minimum": 0,
    "deforum_interface/Redo generation/maximum": 50,
    "deforum_interface/Redo generation/step": 1,
    "deforum_interface/Reroll blank frames/visible": true,
    "deforum_interface/Reroll blank frames/value": "ignore",
    "deforum_interface/Reroll patience/visible": true,
    "deforum_interface/Reroll patience/value": 10.0,
    "deforum_interface/Amount schedule/visible": true,
    "deforum_interface/Amount schedule/value": "0: (0.1)",
    "deforum_interface/Kernel schedule/visible": true,
    "deforum_interface/Kernel schedule/value": "0: (5)",
    "deforum_interface/Sigma schedule/visible": true,
    "deforum_interface/Sigma schedule/value": "0: (1)",
    "deforum_interface/Threshold schedule/visible": true,
    "deforum_interface/Threshold schedule/value": "0: (0)",
    "deforum_interface/Use depth warping/visible": true,
    "deforum_interface/Use depth warping/value": true,
    "deforum_interface/Depth Algorithm/visible": true,
    "deforum_interface/Depth Algorithm/value": "Midas-3-Hybrid",
    "deforum_interface/MiDaS/Zoe weight/value": 0.2,
    "deforum_interface/Padding mode/visible": true,
    "deforum_interface/Padding mode/value": "border",
    "deforum_interface/Use old aspect ratio formula/visible": true,
    "deforum_interface/Use old aspect ratio formula/value": false,
    "deforum_interface/Aspect Ratio schedule/visible": true,
    "deforum_interface/Aspect Ratio schedule/value": "0: (1)",
    "deforum_interface/FOV schedule/visible": true,
    "deforum_interface/FOV schedule/value": "0: (70)",
    "deforum_interface/Near schedule/visible": true,
    "deforum_interface/Near schedule/value": "0: (200)",
    "deforum_interface/Far schedule/visible": true,
    "deforum_interface/Far schedule/value": "0: (10000)",
    "deforum_interface/Prompts/visible": true,
    "deforum_interface/Prompts/value": "{\n    \"0\": \"tiny cute bunny, vibrant diffraction, highly detailed, intricate, ultra hd, sharp photo, crepuscular rays, in focus\",\n    \"30\": \"anthropomorphic clean cat, surrounded by fractals, epic angle and pose, symmetrical, 3d, depth of field\",\n    \"60\": \"a beautiful coconut --neg photo, realistic\",\n    \"90\": \"a beautiful durian, award winning photography\"\n}\n    ",
    "deforum_interface/Prompts positive/visible": true,
    "deforum_interface/Prompts positive/value": "",
    "deforum_interface/Prompts negative/visible": true,
    "deforum_interface/Prompts negative/value": "nsfw, nude",
    "deforum_interface/Mask schedule/visible": true,
    "deforum_interface/Mask schedule/value": "0: (\"{video_mask}\")",
    "deforum_interface/Use noise mask/visible": true,
    "deforum_interface/Use noise mask/value": false,
    "deforum_interface/Noise mask schedule/visible": true,
    "deforum_interface/Noise mask schedule/value": "0: (\"{video_mask}\")",
    "deforum_interface/Use init/visible": true,
    "deforum_interface/Use init/value": false,
    "deforum_interface/Strength 0 no init/visible": true,
    "deforum_interface/Strength 0 no init/value": true,
    "deforum_interface/strength/visible": true,
    "deforum_interface/strength/value": 0.8,
    "deforum_interface/strength/minimum": 0,
    "deforum_interface/strength/maximum": 1,
    "deforum_interface/strength/step": 0.01,
    "deforum_interface/Init image URL/visible": true,
    "deforum_interface/Init image URL/value": "https://deforum.github.io/a1/I1.png",
    "deforum_interface/Video init path/ URL/visible": true,
    "deforum_interface/Video init path/ URL/value": "https://deforum.github.io/a1/V1.mp4",
    "deforum_interface/Extract from frame/visible": true,
    "deforum_interface/Extract from frame/value": 0,
    "deforum_interface/Extract to frame/visible": true,
    "deforum_interface/Extract to frame/value": -1,
    "deforum_interface/Extract nth frame/visible": true,
    "deforum_interface/Extract nth frame/value": 1,
    "deforum_interface/Overwrite extracted frames/visible": true,
    "deforum_interface/Overwrite extracted frames/value": false,
    "deforum_interface/Use mask video/visible": true,
    "deforum_interface/Use mask video/value": false,
    "deforum_interface/Video mask path/visible": true,
    "deforum_interface/Video mask path/value": "https://deforum.github.io/a1/VM1.mp4",
    "deforum_interface/Use mask/visible": true,
    "deforum_interface/Use mask/value": false,
    "deforum_interface/Use alpha as mask/visible": true,
    "deforum_interface/Use alpha as mask/value": false,
    "deforum_interface/Invert mask/visible": true,
    "deforum_interface/Invert mask/value": false,
    "deforum_interface/Overlay mask/visible": true,
    "deforum_interface/Overlay mask/value": true,
    "deforum_interface/Mask file/visible": true,
    "deforum_interface/Mask file/value": "https://deforum.github.io/a1/M1.jpg",
    "deforum_interface/Mask overlay blur/visible": true,
    "deforum_interface/Mask overlay blur/value": 4,
    "deforum_interface/Mask overlay blur/minimum": 0,
    "deforum_interface/Mask overlay blur/maximum": 64,
    "deforum_interface/Mask overlay blur/step": 1,
    "deforum_interface/Mask fill/visible": true,
    "deforum_interface/Mask fill/value": "original",
    "deforum_interface/Full res mask/visible": true,
    "deforum_interface/Full res mask/value": true,
    "deforum_interface/Full res mask padding/visible": true,
    "deforum_interface/Full res mask padding/value": 4,
    "deforum_interface/Full res mask padding/minimum": 0,
    "deforum_interface/Full res mask padding/maximum": 512,
    "deforum_interface/Full res mask padding/step": 1,
    "deforum_interface/Mask contrast adjust/visible": true,
    "deforum_interface/Mask contrast adjust/value": 1.0,
    "deforum_interface/Mask brightness adjust/visible": true,
    "deforum_interface/Mask brightness adjust/value": 1.0,
    "deforum_interface/Parseq Manifest (JSON or URL)/visible": true,
    "deforum_interface/Parseq Manifest (JSON or URL)/value": "",
    "deforum_interface/Use delta values for movement parameters/visible": true,
    "deforum_interface/Use delta values for movement parameters/value": true,
    "deforum_interface/Enable/visible": true,
    "deforum_interface/Enable/value": false,
    "deforum_interface/Pixel Perfect/value": false,
    "deforum_interface/Low VRAM/value": false,
    "deforum_interface/Overwrite input frames/value": true,
    "deforum_interface/Preprocessor/visible": true,
    "deforum_interface/Preprocessor/value": "none",
    "deforum_interface/Model/visible": true,
    "deforum_interface/Model/value": "None",
    "deforum_interface/Weight schedule/visible": true,
    "deforum_interface/Weight schedule/value": "0:(1)",
    "deforum_interface/Starting Control Step schedule/visible": true,
    "deforum_interface/Starting Control Step schedule/value": "0:(0.0)",
    "deforum_interface/Ending Control Step schedule/visible": true,
    "deforum_interface/Ending Control Step schedule/value": "0:(1.0)",
    "deforum_interface/Annotator resolution/visible": true,
    "deforum_interface/Annotator resolution/value": 64,
    "deforum_interface/Annotator resolution/minimum": 64,
    "deforum_interface/Annotator resolution/maximum": 2048,
    "deforum_interface/Annotator resolution/step": 10,
    "deforum_interface/Threshold A/visible": true,
    "deforum_interface/Threshold A/value": 64,
    "deforum_interface/Threshold A/minimum": 64,
    "deforum_interface/Threshold A/maximum": 1024,
    "deforum_interface/Threshold A/step": 1,
    "deforum_interface/Threshold B/visible": true,
    "deforum_interface/Threshold B/value": 64,
    "deforum_interface/Threshold B/minimum": 64,
    "deforum_interface/Threshold B/maximum": 1024,
    "deforum_interface/Threshold B/step": 1,
    "deforum_interface/ControlNet Input Video/ Image Path/visible": true,
    "deforum_interface/ControlNet Input Video/ Image Path/value": "",
    "deforum_interface/ControlNet Mask Video/ Image Path (*NOT WORKING, kept in UI for CN's devs testing!*)/visible": true,
    "deforum_interface/ControlNet Mask Video/ Image Path (*NOT WORKING, kept in UI for CN's devs testing!*)/value": "",
    "deforum_interface/Control Mode/visible": true,
    "deforum_interface/Control Mode/value": "Balanced",
    "deforum_interface/Resize Mode/visible": true,
    "deforum_interface/Resize Mode/value": "Inner Fit (Scale to Fit)",
    "deforum_interface/LoopBack mode/visible": true,
    "deforum_interface/LoopBack mode/value": false,
    "deforum_interface/Hybrid composite/visible": true,
    "deforum_interface/Hybrid composite/value": "None",
    "deforum_interface/Generate inputframes/visible": true,
    "deforum_interface/Generate inputframes/value": false,
    "deforum_interface/First frame as init image/value": true,
    "deforum_interface/Use init image as video/visible": true,
    "deforum_interface/Use init image as video/value": false,
    "deforum_interface/Hybrid motion/visible": true,
    "deforum_interface/Hybrid motion/value": "None",
    "deforum_interface/Flow method/value": "RAFT",
    "deforum_interface/Flow consistency mask/value": false,
    "deforum_interface/Consistency mask blur/value": 2,
    "deforum_interface/Consistency mask blur/minimum": 0,
    "deforum_interface/Consistency mask blur/maximum": 16,
    "deforum_interface/Consistency mask blur/step": 1,
    "deforum_interface/Motion use prev img/value": false,
    "deforum_interface/Comp mask type/value": "None",
    "deforum_interface/Comp mask equalize/visible": true,
    "deforum_interface/Comp mask equalize/value": "None",
    "deforum_interface/Comp mask auto contrast/visible": true,
    "deforum_interface/Comp mask auto contrast/value": false,
    "deforum_interface/Comp mask inverse/visible": true,
    "deforum_interface/Comp mask inverse/value": false,
    "deforum_interface/Comp save extra frames/visible": true,
    "deforum_interface/Comp save extra frames/value": false,
    "deforum_interface/Comp alpha schedule/visible": true,
    "deforum_interface/Comp alpha schedule/value": "0:(0.5)",
    "deforum_interface/Flow factor schedule/visible": true,
    "deforum_interface/Flow factor schedule/value": "0:(1)",
    "deforum_interface/Comp mask blend alpha schedule/visible": true,
    "deforum_interface/Comp mask blend alpha schedule/value": "0:(0.5)",
    "deforum_interface/Comp mask contrast schedule/visible": true,
    "deforum_interface/Comp mask contrast schedule/value": "0:(1)",
    "deforum_interface/Comp mask auto contrast cutoff high schedule/visible": true,
    "deforum_interface/Comp mask auto contrast cutoff high schedule/value": "0:(100)",
    "deforum_interface/Comp mask auto contrast cutoff low schedule/visible": true,
    "deforum_interface/Comp mask auto contrast cutoff low schedule/value": "0:(0)",
    "deforum_interface/Generate human masks/visible": true,
    "deforum_interface/Generate human masks/value": "None",
    "deforum_interface/FPS/visible": true,
    "deforum_interface/FPS/value": 15,
    "deforum_interface/FPS/minimum": 1,
    "deforum_interface/FPS/maximum": 240,
    "deforum_interface/FPS/step": 1,
    "deforum_interface/Add soundtrack/visible": true,
    "deforum_interface/Add soundtrack/value": "None",
    "deforum_interface/Soundtrack path/visible": true,
    "deforum_interface/Soundtrack path/value": "https://deforum.github.io/a1/A1.mp3",
    "deforum_interface/Skip video creation/visible": true,
    "deforum_interface/Skip video creation/value": false,
    "deforum_interface/Delete Imgs/visible": true,
    "deforum_interface/Delete Imgs/value": false,
    "deforum_interface/Delete All Inputframes/visible": true,
    "deforum_interface/Delete All Inputframes/value": false,
    "deforum_interface/Store frames in ram/value": false,
    "deforum_interface/Save 3D depth maps/visible": true,
    "deforum_interface/Save 3D depth maps/value": false,
    "deforum_interface/Make GIF/visible": true,
    "deforum_interface/Make GIF/value": false,
    "deforum_interface/Upscale/visible": true,
    "deforum_interface/Upscale/value": false,
    "deforum_interface/Upscale model/visible": true,
    "deforum_interface/Upscale model/value": "realesr-animevideov3",
    "deforum_interface/Upscale factor/visible": true,
    "deforum_interface/Upscale factor/value": "x2",
    "deforum_interface/Keep Imgs/visible": true,
    "deforum_interface/Keep Imgs/value": true,
    "deforum_interface/Engine/visible": true,
    "deforum_interface/Engine/value": "None",
    "deforum_interface/Slow-Mo/value": false,
    "deforum_interface/Use Upscaled/value": false,
    "deforum_interface/Interp X/visible": true,
    "deforum_interface/Interp X/value": 2,
    "deforum_interface/Interp X/minimum": 2,
    "deforum_interface/Interp X/maximum": 10,
    "deforum_interface/Interp X/step": 1,
    "deforum_interface/Slow-Mo X/visible": true,
    "deforum_interface/Slow-Mo X/value": 2,
    "deforum_interface/Slow-Mo X/minimum": 2,
    "deforum_interface/Slow-Mo X/maximum": 10,
    "deforum_interface/Slow-Mo X/step": 1,
    "deforum_interface/In Frame Count/visible": true,
    "deforum_interface/In Frame Count/value": "---",
    "deforum_interface/In FPS/visible": true,
    "deforum_interface/In FPS/value": "---",
    "deforum_interface/Interpolated Vid FPS/visible": true,
    "deforum_interface/Interpolated Vid FPS/value": "---",
    "deforum_interface/*Interpolate Video*/visible": true,
    "deforum_interface/*Interpolate Pics*/visible": true,
    "deforum_interface/In Res/visible": true,
    "deforum_interface/In Res/value": "---",
    "deforum_interface/Out Res/visible": true,
    "deforum_interface/Out Res/value": "---",
    "deforum_interface/*Upscale uploaded video*/visible": true,
    "deforum_interface/Mode/visible": true,
    "deforum_interface/Mode/value": "Depth (Midas/Adabins)",
    "deforum_interface/Threshold Value Lower/visible": true,
    "deforum_interface/Threshold Value Lower/value": 127,
    "deforum_interface/Threshold Value Lower/minimum": 0,
    "deforum_interface/Threshold Value Lower/maximum": 255,
    "deforum_interface/Threshold Value Lower/step": 1,
    "deforum_interface/Threshold Value Upper/visible": true,
    "deforum_interface/Threshold Value Upper/value": 255,
    "deforum_interface/Threshold Value Upper/minimum": 0,
    "deforum_interface/Threshold Value Upper/maximum": 255,
    "deforum_interface/Threshold Value Upper/step": 1,
    "deforum_interface/Thresholding Mode/visible": true,
    "deforum_interface/Thresholding Mode/value": "None",
    "deforum_interface/Block size/visible": true,
    "deforum_interface/Block size/value": 11.0,
    "deforum_interface/C/visible": true,
    "deforum_interface/C/value": 2.0,
    "deforum_interface/Closer is brighter/visible": true,
    "deforum_interface/Closer is brighter/value": true,
    "deforum_interface/End blur width/visible": true,
    "deforum_interface/End blur width/value": 0,
    "deforum_interface/End blur width/minimum": 0,
    "deforum_interface/End blur width/maximum": 255,
    "deforum_interface/End blur width/step": 1,
    "deforum_interface/MiDaS weight (vid2depth)/visible": true,
    "deforum_interface/MiDaS weight (vid2depth)/value": {
        "label": "MiDaS/Zoe weight",
        "type": "number",
        "precision": null,
        "value": 0.2,
        "info": "sets a midpoint at which a depth-map is to be drawn: range [-1 to +1]",
        "visible": false
    },
    "deforum_interface/MiDaS weight (vid2depth)/minimum": 0,
    "deforum_interface/MiDaS weight (vid2depth)/maximum": 1,
    "deforum_interface/MiDaS weight (vid2depth)/step": 0.05,
    "deforum_interface/*Get depth from uploaded video*/visible": true,
    "deforum_interface/Image path/visible": true,
    "deforum_interface/Image path/value": "C:/SD/20230124234916_%09d.png",
    "deforum_interface/*Stitch frames to video*/visible": true,
    "deforum_interface/Click here after the generation to show the video/visible": true,
    "deforum_interface/Interrupt/visible": true,
    "deforum_interface/Generate/visible": true,
    "deforum_interface/\ud83d\udcc2/visible": true,
    "deforum_interface/\ud83d\udcbe/visible": true,
    "deforum_interface/\ud83d\uddc3\ufe0f/visible": true,
    "deforum_interface/\ud83d\uddbc\ufe0f/visible": true,
    "deforum_interface/\ud83c\udfa8\ufe0f/visible": true,
    "deforum_interface/\ud83d\udcd0/visible": true,
    "deforum_interface/Settings File/visible": true,
    "deforum_interface/Settings File/value": "deforum_settings.txt",
    "deforum_interface/Save Settings/visible": true,
    "deforum_interface/Load All Settings/visible": true,
    "deforum_interface/Load Video Settings/visible": true
}

本篇作者

Jeremy Pedersen

亚马逊云科技解决方案架构师。他专注于机器学习和教育设备,尤其是 Amazon DeepRacer。在加入亚马逊云科技之前,他在阿里云工作了五年,先是担任解决方案架构师,后来成为技术培训师。