참고: 이 프로젝트는 이전에
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에서 제공합니다.
16GB의 RAM과 tmpfs에 기본 /tmp만 있는 경우 CUDA 툴킷을 설치하기 위해 임시 공간의 크기를 늘려야 할 가능성이 높으며 그렇지 않으면 아카이브 추출에 실패할 수 있습니다. 이를 수행하는 한 가지 방법은 CUDA 툴킷을 설치하기 직전입니다.
sudo mount -o 다시 마운트, 크기=16G /tmp
RAM이 16GB밖에 없다면 스왑 공간도 필요합니다. 따라서 일반적으로 스왑 없이 실행하는 경우 일부를 추가하십시오. 이 라이브러리가 없으면 이 라이브러리를 실행할 수 없습니다.
Horde 페이로드는 다음과 같이 간단히 처리할 수 있습니다.
# 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()SharedModelManager.manager.compvis가 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,"seed": 123456789,"height": 512,"width": 512,"karras": False,"tiling": False,"hires_fix": False,"clip_skip": 1, "control_type": 없음,"image_is_control": 거짓,"return_control_map": False,"prompt": "고대 라마미아 괴물","ddim_steps": 25,"n_iter": 1,"model": "고의적", }pil_image = generate.basic_inference_single_image(data).imageif pil_image가 None인 경우: 예외 발생("이미지 생성 실패")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 웹 앱에서 열 수 있는 형식의 ComfyUI 파이프라인이 포함되어 있습니다. 이는 웹 앱에서 직접 저장되었습니다.
hordelib/pipelines/
백엔드 파이프라인 프로세서에 필요한 형식으로 변환된 위의 파이프라인 JSON 파일이 포함되어 있습니다. 이는 웹 앱에서 변환됩니다. 아래의 ComfyUI 파이프라인 변환을 참조하세요.
hordelib/nodes/
이것은 hordelib
특정 처리에 사용하는 사용자 정의 ComfyUI 노드입니다.
이 예에서는 OS 기본 환경에 종속성을 설치합니다. 프로젝트 루트에서 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 웹 앱을 사용하세요. "title" 속성을 사용하여 노드 이름을 지정하세요. 이러한 이름은 hordelib
에서 매개변수 이름이 됩니다. 예를 들어, "sampler2"라는 "제목"이 있는 KSampler는 매개변수 sampler2.seed
, sampler2.cfg
등이 됩니다. 예를 들어 ComfyUI 웹 앱에서 파이프라인 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 생성
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
를 여기에 복사하세요.
hordelib/tests/
디렉터리에서 run_controlnet.py
복사합니다.
가상현실 구축:
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 등을 통해 새 노드를 테스트할 때 유용합니다.
파이썬 build_helper.py python -m build --sdist --wheel --outdir dist/ .python build_helper.py --fix
새 버전을 설치하려는 장소에서
python -m pip install /path/to/hordelib/dist/horde_engine-*.whl
consts.py
의 값을 원하는 ComfyUI 버전으로 변경합니다.
tox
통해 테스트 스위트 실행