注意:該項目以前稱為
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("Up. "Deliberate") SharedModelManager.manager.compvis.validate_model("Deliberate")data = {"sampler_name": "k_dpmpp_2m","cfg_scale": 7.5,"denoising_strength": 1.0,"seed": 123456789." ,"width" :512,「karras」:假,「平鋪」:假,「hires_fix」:假,「clip_skip」:1,「control_type」:無,「image_is_control」:假,「return_control_map」:假, 「提示」:「古代美洲駝怪物","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
中的參數名稱。例如hordelib/pipeline_designs/pipeline_stable_diffusion.json
「標題」為「sampler2」的 KSampler 將成為參數sampler2.seed
、 sampler2.cfg
等。
使用命名約定「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
運行測試套件