注意:该项目以前称为
hordelib
。项目命名空间将在不久的将来进行更改以反映此更改。
horde-engine
是 ComfyUI 的包装器,主要是为了使 AI Horde 能够运行在 ComfyUI GUI 中直观设计的推理管道。
horde-engine
的开发者可以在 AI Horde Discord 服务器中找到:https://discord.gg/3DxrhksKzn
请注意,自hordelib
v1.0.0 起, horde-engine
(以前称为hordelib
)一直是 AI Horde 的默认推理后端库。
这里的目标是能够在优秀的 ComfyUI 中设计推理管道,然后以编程方式调用这些推理管道。同时提供与现有部落实现保持兼容性的功能。
如果从 pypi 安装,请使用以下形式的需求文件:
--extra-index-url https://download.pytorch.org/whl/cu121 hordelib ...your other dependencies...
在 Linux 上,您需要安装 Nvidia CUDA 工具包。 Linux 安装程序由 Nvidia 提供,网址为 https://developer.nvidia.com/cuda-downloads
请注意,如果您只有 16GB RAM 和 tmpfs 上的默认 /tmp,您可能需要增加临时空间的大小来安装 CUDA Toolkit,否则可能无法提取存档。一种方法是在安装 CUDA 工具包之前:
sudo mount -o 重新挂载,大小=16G /tmp
如果您只有 16GB RAM,您还需要交换空间。因此,如果您通常在没有交换的情况下运行,请添加一些。没有它你将无法运行这个库。
部落有效负载可以简单地处理(例如):
# import os# 无论你的模型在哪里# os.environ["AIWORKER_CACHE_HOME"] = "f:/ai/models" # 默认为当前工作目录中的 `models/` import hordelibhordelib.initialise() # 必须在任何操作之前调用其他 hordelib 函数from hordelib.horde import HordeLibfrom hordelib.shared_model_manager import SharedModelManagergenerate = HordeLib()if SharedModelManager.manager.compvis is None:raise Exception("无法加载 compvis 模型管理器")SharedModelManager.manager.compvis.download_model("Deliberate")SharedModelManager.manager.compvis.validate_model("Deliberate")data = {“sampler_name”:“k_dpmpp_2m”,“cfg_scale”:7.5,“denoising_strength”: 1.0,“种子”:123456789,“高度”:512,“宽度”:512,“卡拉斯”:假,“平铺”:假,“hires_fix”:假,“clip_skip”:1,“control_type”:无, "image_is_control": False,"return_control_map": False,"prompt": "一个古老的美洲驼怪物","ddim_steps": 25,"n_iter": 1,"model": "故意", }pil_image =generate.basic_inference_single_image(data).imageif pil_image is None:raise Exception("无法生成图像")pil_image.save("test.png")
请注意, hordelib.initialise()
将从 argv 中删除所有命令行参数。因此,请确保在调用之前解析它们。
有关更多独立示例,请参阅tests/run_*.py
。
如果您不希望hordelib
设置和控制日志记录配置(我们使用 loguru),请使用以下命令初始化:
导入 hordelibhordelib.initialise(setup_logging=False)
hordelib
依赖于大量开源项目,并且大多数依赖项都会在您安装hordelib
时自动下载并安装。由于hordelib
的性质和目的,一些依赖项直接捆绑在hordelib
本身内部。
具有图形/节点界面的强大且模块化的稳定扩散 GUI。根据 GNU 通用公共许可证 v3.0 的条款获得许可。
hordelib
的全部目的是访问 ComfyUI 的强大功能。
ComfyUI 的自定义节点提供 Controlnet 预处理功能。根据 Apache License 2.0 的条款获得许可。
ComfyUI 的自定义节点提供面部恢复。
生成二维码的节点
要求:
git
(安装git)
tox
( pip install tox
)
设置环境变量AIWORKER_CACHE_HOME
指向模型目录。
请注意,模型目录当前必须位于原始 AI Horde 目录结构中:
clip codeformer compvis Deliberate.ckpt ...etc... controlnet embeds esrgan gfpgan safety_checker
只需执行: tox
(或tox -q
以获得噪音较小的输出)
第一次需要一段时间,因为它会安装所有依赖项。
如果测试成功运行,图像将在images/
文件夹中生成。
tox -- -k
例如tox -- -k test_initialisation
tox list
这将列出开发、构建或 CI 过程中涉及的所有测试组。包含“修复”一词的测试将在运行时自动应用更改,例如检查或格式化。您可以通过运行以下命令来执行此操作:
tox -e [test_suite_name_here]
hordelib/pipeline_designs/
包含 ComfyUI 管道,其格式可以由 ComfyUI Web 应用程序打开。这些直接从网络应用程序保存。
hordelib/pipelines/
包含上述管道 JSON 文件,已转换为后端管道处理器所需的格式。这些是从 Web 应用程序转换的,请参阅下面的转换 ComfyUI 管道。
hordelib/nodes/
这些是我们用于hordelib
特定处理的自定义 ComfyUI 节点。
在此示例中,我们在操作系统默认环境中安装依赖项。当使用hordelib
的 git 版本时,从项目根目录:
pip install -r requirements.txt --extra-index-url https://download.pytorch.org/whl/cu118 --upgrade
确保 ComfyUI 已安装,一种方法是运行测试:
tox -- -k test_comfy_install
从那时起运行ComfyUI:
cd ComfyUI
python main.py
然后打开浏览器:http://127.0.0.1:8188/
使用标准 ComfyUI Web 应用程序。使用“title”属性来命名节点,这些名称成为hordelib
中的参数名称。例如,“标题”为“sampler2”的 KSampler 将成为参数sampler2.seed
、 sampler2.cfg
等。在 ComfyUI Web 应用程序中加载管道hordelib/pipeline_designs/pipeline_stable_diffusion.json
作为示例。
使用命名约定“pipeline_hordelib/pipeline_designs
中。
转换模型的 JSON(请参阅下面的转换 ComfyUI 管道)并使用与之前的 JSON 文件相同的文件名将生成的 JSON 保存在hordelib/pipelines
中。
仅此而已。然后可以使用hordelib.comfy.Comfy()
中的run_image_pipeline()
方法从hordelib
调用它
除了从UI保存的设计文件之外,我们还需要以后端格式保存管道文件。如果您通过hordelib
中嵌入的 ComfyUI 版本运行管道,则会在名为comfy-prompt.json
hordelib
项目根目录中自动创建此文件。使用tox -e comfyui
运行 ComfyUI 会自动修补 ComfyUI,以便保存此 JSON 文件。
该项目的主要配置文件是: pyproject.toml
、 tox.ini
和requirements.txt
Pypi 发布是自动从 GitHub 网站进行的。
创建从main
到releases
PR
使用“release:patch”(0.0.1) 或“release:minor”(0.1.0) 标记 PR
将 PR 与标准合并提交合并(不是挤压)
这是一个例子:
从一个新的空目录开始。创建需求.txt:
--extra-index-url https://download.pytorch.org/whl/cu118 hordelib
创建目录images/
并将test_db0.jpg
复制到其中。
从hordelib/tests/
目录复制run_controlnet.py
。
构建一个 venv:
python -m venv venv .venvScriptsactivate pip install -r requirements.txt
运行我们复制的测试:
python run_controlnet.py The `images/` directory should have our test images.
这在通过 horde-reGen-worker 等测试新节点时非常有用
python build_helper.py python -m build --sdist --wheel --outdir dist/ .python build_helper.py --fix
在您想要安装新版本的 venv 上
python -m pip install /path/to/hordelib/dist/horde_engine-*.whl
将consts.py
中的值更改为所需的 ComfyUI 版本。
通过tox
运行测试套件