Extensions/comfybridgeio
ComfyUI Extension

comfybridgeio

ComfyUI dynamic I/O bridge for AI agents

By cbpark84·Created about a month ago·Updated about a month ago· 0
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

사용법

워크플로우 준비

  1. ComfyUI에서 워크플로우 편집
  2. 외부에서 주입할 값 위치에 Bridge Input 노드 삽입 (name 위젯에 식별자 입력)
  3. 외부로 회수할 결과에 Bridge Output 노드 연결 (name 위젯에 식별자 입력)
  4. 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