注: このプロジェクトは、以前は
hordelib
として知られていました。この変更を反映するために、プロジェクトの名前空間が近い将来変更される予定です。
horde-engine
、主に AI Horde が ComfyUI GUI で視覚的に設計された推論パイプラインを実行できるようにする ComfyUI のラッパーです。
horde-engine
の開発者は AI Horde Discord サーバーで見つけることができます: https://discord.gg/3DxrhksKzn
horde-engine
(以前はhordelib
として知られていました) は、 hordelib
v1.0.0 以降、AI Horde のデフォルトの推論バックエンド ライブラリとなっていることに注意してください。
ここでの目標は、優れた ComfyUI で推論パイプラインを設計し、それらの推論パイプラインをプログラムで呼び出せるようにすることです。既存の大群実装との互換性を維持する機能を提供しながら。
pypi からインストールする場合は、次の形式の要件ファイルを使用します。
--extra-index-url https://download.pytorch.org/whl/cu121 hordelib ...your other dependencies...
Linux では、Nvidia CUDA Toolkit をインストールする必要があります。 Linux インストーラーは、Nvidia によって https://developer.nvidia.com/cuda-downloads で提供されます。
RAM が 16 GB しかなく、tmpfs にデフォルトの /tmp しかない場合は、CUDA ツールキットをインストールするために一時領域のサイズを増やす必要がある可能性があります。そうしないと、アーカイブの抽出に失敗する可能性があります。これを行う 1 つの方法は、CUDA ツールキットをインストールする直前に行うことです。
sudo mount -o remount,size=16G /tmp
RAM が 16GB しかない場合は、スワップ領域も必要になります。したがって、通常はスワップを使用せずに実行する場合は、スワップを追加してください。これなしではこのライブラリを実行できません。
Horde ペイロードは、(たとえば) 次のように簡単に処理できます。
# import os# モデルがどこにある場合でも# os.environ["AIWORKER_CACHE_HOME"] = "f:/ai/models" # デフォルトは現在の作業ディレクトリの `models/` になりますimport hordelibhordelib.initialise() # これは、他の hordelib 関数 hordelib.horde からのインポート HordeLib hordelib.shared_model_manager からのインポートSharedModelManagergenerate = HordeLib()SharedModelManager.manager.compvis が None の場合:raise Exception("compvis モデル マネージャーのロードに失敗しました")SharedModelManager.manager.compvis.download_model("Deliberate")SharedModelManager.manager.compvis.validate_model("Deliberate")データ = {"サンプラー名": "k_dpmpp_2m"、"cfg_scale": 7.5、"denoising_strength": 1.0、"seed": 123456789、"height": 512、"width": 512、"karras": False、"tiling": False、"hires_fix": False、「クリップスキップ」: 1、「コントロールタイプ」:なし、"image_is_control": False、"return_control_map": False、"prompt": "古代ラミアの怪物"、"ddim_steps": 25、"n_iter": 1、"model": "意図的"、 }pil_image =generate.basic_inference_single_image(data).image pil_image が None の場合:raise Exception("画像の生成に失敗しました")pil_image.save("test.png")
hordelib.initialise()
argv からすべてのコマンドライン引数を消去することに注意してください。したがって、それを呼び出す前に必ず解析してください。
その他のスタンドアロンの例については、 tests/run_*.py
を参照してください。
hordelib
ロギング設定をセットアップおよび制御させたくない場合 (loguru を使用します)、次のように初期化します。
import hordelibhordelib.initialise(setup_logging=False)
hordelib
多数のオープン ソース プロジェクトに依存しており、これらの依存関係のほとんどはhordelib
インストールするときに自動的にダウンロードされ、インストールされます。 hordelib
の性質と目的により、一部の依存関係はhordelib
自体の内部に直接バンドルされています。
グラフ/ノード インターフェイスを備えた強力でモジュール式の安定した拡散 GUI。 GNU General Public License v3.0 の条件に基づいてライセンスされています。
hordelib
の全体の目的は、ComfyUI の機能にアクセスすることです。
Controlnet 前処理機能を提供する ComfyUI のカスタム ノード。 Apache License 2.0 の条件に基づいてライセンスが付与されています。
顔の復元を提供する ComfyUI のカスタム ノード。
QRコードを生成するノード
要件:
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 プロセスに関係するテストのすべてのグループがリストされます。 「fix」という単語が含まれるテストは、実行時にリンティングやフォーマットなどの変更を自動的に適用します。これを実行するには、次のコマンドを実行します。
tox -e [test_suite_name_here]
hordelib/pipeline_designs/
ComfyUI Web アプリで開くことができる形式の ComfyUI パイプラインが含まれています。これらは Web アプリから直接保存されました。
hordelib/pipelines/
バックエンド パイプライン プロセッサに必要な形式に変換された上記のパイプライン JSON ファイルが含まれています。これらは Web アプリから変換されます。以下のComfyUI パイプラインの変換を参照してください。
hordelib/nodes/
これらは、 hordelib
固有の処理に使用するカスタム ComfyUI ノードです。
この例では、OS のデフォルト環境に依存関係をインストールします。 git バージョンのhordelib
使用する場合は、プロジェクト ルートから次のようにします。
pip install -r requirements.txt --extra-index-url https://download.pytorch.org/whl/cu118 --upgrade
ComfyUI がインストールされていることを確認します。1 つの方法はテストを実行することです。
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
などになります。例として、パイプラインhordelib/pipeline_designs/pipeline_stable_diffusion.json
ComfyUI Web アプリにロードします。
「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 Web サイトからすべて自動的に行われます。
main
からreleases
までの PR を作成する
PR に「release:patch」(0.0.1) または「release:minor」(0.1.0) のラベルを付けます。
PR を標準のマージ コミット (スカッシュではない) とマージします。
以下に例を示します。
新しい空のディレクトリから開始します。要件.txt を作成します。
--extra-index-url https://download.pytorch.org/whl/cu118 hordelib
ディレクトリimages/
を作成し、そこにtest_db0.jpg
をコピーします。
run_controlnet.py
hordelib/tests/
ディレクトリからコピーします。
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
経由でテスト スイートを実行する