Workflow API JSON은 시각적 메타데이터를 제거하고 노드 간의 순수 실행 로직과 연결성만을 최적화하여 제공하는 ComfyUI의 서버 측 실행 인터페이스용 핵심 데이터 규격이다 [1, 2].
🧠 핵심 개념 (Core concepts)
백엔드 실행 최적화 (Backend Optimization): 프론트엔드용 시각적 정보(위치, 크기, 색상)를 제외하고 오직 /prompt 엔드포인트 실행에 필요한 데이터만 포함한다 [1-3].
노드-슬롯 연결성 (Node-Slot Connectivity): 별도의 연결 객체 대신 노드 입력(inputs) 내에 직접 [원본 노드 ID, 출력 슬롯 인덱스] 형식으로 연결 정보를 임베딩한다 [1, 4, 5].
고유 식별자 체계 (Unique ID System): 각 노드는 고유한 숫자형 문자열 키(예: "5", "6")로 식별되며, 이는 실행 그래프 내에서 데이터 흐름을 추적하는 기준이 된다 [1, 3, 6].
직렬화 유연성 (Serialization Flexibility): 사람이 읽을 수 있는 JSON 형식을 취하며, 대규모 모델 가중치와 별개로 워크플로우 로직의 배포, 버전 관리 및 자동화를 가능하게 한다 [7-9].
🧩 추출된 패턴 (Extracted patterns)
UI 메타데이터 스트리핑 (Metadata Stripping): 시각적 편집용 workflow.json에서 API 호출용 workflow_api.json으로 전환 시 pos, size, groups와 같은 필드를 제거하여 파일 크기를 축소하고 처리 효율을 높인다 [1, 2, 5].
실행 모델 인버전 (Execution Model Inversion): 엔진이 'Save Image'와 같은 출력 노드에서 역방향으로 그래프를 탐색하여 필수 종속성만 실행하고 불필요한 노드는 무시하는 구조를 취한다 [10].
입력 데이터 인젝션 (Input Injection): 자동화 시 JSON 내의 특정 노드 ID를 찾아 시드(seed), 프롬프트(prompt), 또는 Base64 인코딩된 이미지 데이터를 동적으로 교체하여 실행한다 [6, 11-13].
📖 세부 내용 (Details)
ComfyUI의 워크플로우 직렬화 형식은 크게 프론트엔드 포맷과 백엔드(API) 포맷으로 이분화된다 [1, 2, 14]. API JSON은 서버 측 엔진이 프롬프트를 실행하는 데 필요한 최소한의 논리 그래프를 나타내며, Litegraph 표준을 따르는 프론트엔드 포맷과 달리 매우 간결한 구조를 갖는다 [1, 3, 15].
생성 방법: 사용자는 설정 메뉴에서 "Dev mode Options"를 활성화해야 하며, 이후 제어판에 나타나는 "Save (API Format)" 또는 "Export (API)" 버튼을 통해 이 파일을 생성할 수 있다 [16-20].
구조적 특징: 루트 키는 노드 ID이며, 각 값은 class_type과 inputs를 포함하는 객체이다 [6, 20]. 예를 들어, 특정 노드의 입력 필드에 [ "20", 1 ]과 같은 배열이 있다면 이는 20번 노드의 2번 슬롯(인덱스 1) 출력이 연결되었음을 의미한다 [4].
메타데이터 임베딩: ComfyUI에서 생성된 PNG 또는 WebP 이미지에는 프론트엔드 워크플로우와 API 프롬프트(JSON 형식)가 모두 메타데이터(tEXt 또는 zTXt 청크)로 저장되어 있어, 이미지 자체를 인터페이스로 드래그하여 로직을 복구할 수 있다 [21-24].
프로그래밍 방식의 조작: 파이썬의 json 라이브러리를 사용하여 딕셔너리 구조를 직접 수정하거나, comfy_api_simplified와 같은 래퍼 라이브러리를 통해 노드 제목 기반으로 파라미터를 동적으로 변경하여 대량의 이미지를 자동 생성할 수 있다 [6, 25-27].
⚖️ 모순 및 업데이트 (Contradictions & updates)
가독성 vs 편집성: API 포맷은 실행에는 효율적이나, 시각적 정보가 결여되어 있어 다시 ComfyUI 인터페이스로 불러올 경우 노드들이 겹쳐 보이거나 구조 파악이 어려운 '스켈레톤' 상태가 된다 [28-30].
파일 포맷 호환성: ComfyUI가 빈번하게 업데이트됨에 따라 구버전의 JSON 파일이 최신 버전에서 제대로 작동하지 않을 수 있는 호환성 문제가 존재한다 [31, 32].
커스텀 노드 의존성: JSON 자체에는 로직만 포함되므로, 워크플로우 생성자가 사용한 동일한 커스텀 노드가 로컬 환경에 설치되어 있지 않으면 'Red Box' 오류가 발생하며 실행이 불가능하다 [33, 34].
🛠️ 적용 사례 (Applied in summary)
comfyui-workflow-to-api-converter-endpoint: 클라이언트 사이드 JS 로직을 파이썬으로 변환하여 서버 측에서 일반 워크플로우를 API 포맷으로 즉시 변환하는 엔드포인트를 제공한다 [28, 35].
ComfyUI-to-Python-Extension:.json 워크플로우를 독립 실행 가능한 .py 스크립트로 변환하여 헤드리스(headless) 환경에서 실행할 수 있게 한다 [25, 36].
ComfyUI-WorkflowGenerator: LLM(Qwen2.5 등)을 사용하여 자연어 설명을 실행 가능한 API JSON 그래프로 합성하고 유효성을 검증한다 [37-39].
fofr/any-comfyui-workflow (Replicate): 클라우드 환경에서 JSON 블롭(blob)을 입력받아 API를 통해 워크플로우를 실행하고 결과를 반환한다 [40, 41].
✅ 검증 상태 및 신뢰도
상태: draft
검증 단계: conceptual (공식 문서 및 오픈소스 프로젝트 코드를 통해 데이터 규격 및 생성 방식 확인됨) [42, 43]