comfybridgeio
ComfyUI dynamic I/O bridge for AI agents
Nodes (14)
One node that accepts anything
Bridge Input (BOOLEAN)
A named stop for the text encoder in agent workflows
Where prompts become sampler-ready data
CFG, denoise, and LoRA strength from outside
A named image tap for agent-driven workflows
Steps, seeds, and batch sizes your agent can tune
Hooking into workflows at the sampler
The named mask socket for inpainting and detailer workflows
Tagging where the model enters, for agent-driven graphs
Seed control with a fixed/increment/random mode — read the fine print
The text socket your AI agent actually fills in
Marking the decode path for agent-controlled workflows
Sending results back by name
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