ComfyUI Extension
comfybridgeio
ComfyUI dynamic I/O bridge for AI agents
cbpark84/ComfyBridgeIO
Nodes—
On cloudLocal install
Stars0
Updatedabout a month ago
Readme
ComfyBridgeIO
ComfyUI 워크플로우를 AI 에이전트가 동적으로 제어할 수 있는 입출력 브리지.
특징
- 어떤 입력이든 주입 가능: STRING, INT, FLOAT, BOOLEAN, IMAGE, MASK, LATENT 등 ComfyUI 기본 타입 전부 지원
- 어떤 출력이든 회수 가능: BridgeOutput 노드로 이름 태깅 후 결과 회수
- Python 클라이언트 포함: async/sync 모두 지원, AI Agent 프레임워크와 쉽게 통합
- 원본 워크플로우 불변: 클라이언트가 deepcopy 후 값을 주입하므로 원본 JSON 파일 변경 없음
설치
1. ComfyUI 커스텀 노드 설치
cd /path/to/ComfyUI/custom_nodes
git clone https://github.com/nicekate/ComfyBridgeIO
# ComfyUI 재시작
2. Python 클라이언트 설치
pip install -e /path/to/ComfyBridgeIO
사용법
워크플로우 준비
- ComfyUI에서 워크플로우 편집
- 외부에서 주입할 값 위치에 Bridge Input 노드 삽입 (
name위젯에 식별자 입력) - 외부로 회수할 결과에 Bridge Output 노드 연결 (
name위젯에 식별자 입력) Save (API Format)으로 JSON 내보내기
클라이언트 사용
import asyncio
from comfybridgeio import ComfyBridge
async def main():
bridge = ComfyBridge(host="localhost", port=8188)
result = await bridge.run(
workflow="workflow_api.json",
inputs={
"prompt": "a cat in space, photorealistic",
"negative_prompt": "blurry, low quality",
"steps": 20,
"cfg": 7.5,
"seed": 42,
},
progress_callback=lambda p: print(f"Progress: {p:.0%}"),
)
with open("output.png", "wb") as f:
f.write(result.as_bytes("output_image"))
asyncio.run(main())
# 동기 사용
from comfybridgeio import ComfyBridgeSync
bridge = ComfyBridgeSync()
result = bridge.run("workflow_api.json", inputs={"prompt": "a dog"})
result.as_pil("output_image").show()
노드 카탈로그
| 노드 | 설명 | |------|------| | Bridge Input (STRING) | 텍스트 주입 포인트 | | Bridge Input (INT) | 정수 주입 포인트 | | Bridge Input (FLOAT) | 실수 주입 포인트 | | Bridge Input (BOOLEAN) | 불리언 주입 포인트 | | Bridge Input (IMAGE) | 이미지 주입 포인트 | | Bridge Input (MASK) | 마스크 주입 포인트 | | Bridge Input (LATENT) | 잠재 벡터 주입 포인트 | | Bridge Input (MODEL) | 모델 주입 포인트 | | Bridge Input (CLIP) | CLIP 주입 포인트 | | Bridge Input (VAE) | VAE 주입 포인트 | | Bridge Input (CONDITIONING) | 컨디셔닝 주입 포인트 | | Bridge Output | 결과 태깅 및 회수 포인트 |
커스텀 API
ComfyUI 서버에 다음 라우트가 추가된다:
GET /comfybridge/results/{prompt_id}
→ { "outputs": { "name": value, ... } }
라이선스
MIT