시각적 레이아웃 정보를 제거하고 노드 간의 실행 로직과 데이터 흐름만을 정제하여, ComfyUI 백엔드 엔진의 /prompt 엔드포인트에서 즉각 실행 가능한 최적화된 그래프 데이터 형식이다 [1-3].
🧠 핵심 개념 (Core concepts)
UI 메타데이터의 박리 (Stripping UI Metadata): 노드 위치, 크기, 그룹화 정보, 색상 등 캔버스 시각화를 위한 모든 데이터를 제외하여 파일 크기를 축소하고 처리 효율성을 높인다 [1-4].
임베디드 링크 구조 (Embedded Link Representation): 별도의 연결 객체 배열을 사용하는 대신, 노드 입력 필드 내에 소스 노드 ID와 출력 슬롯 번호를 직접 참조(예: [5, 6])하여 관계를 정의한다 [1, 2, 7, 8].
기능적 키 매핑 (Functional Key Mapping): 각 노드는 고유한 문자열 키(ID)로 식별되며, class_type과 inputs를 핵심 속성으로 보유하여 백엔드 노드 레지스트리와 직접 매핑된다 [2, 9-11].
🧩 추출된 패턴 (Extracted patterns)
개발자 모드 전환 패턴: 수동 생성 시 설정 메뉴에서 'Enable Dev mode Options'를 활성화하여 'Save (API Format)' 버튼을 노출시키는 것이 필수 절차이다 [3, 12-15].
동적 파라미터 주입 패턴: 생성된 JSON 템플릿을 로드한 후, 특정 노드 ID의 inputs 딕셔너리에 접근하여 시드(Seed), 프롬프트, 이미지 경로 등을 프로그래밍 방식으로 수정하여 재전송한다 [9, 11, 16-18].
데이터 인라인화 (Self-containment): 외부 파일 참조 대신 "Load Image (Base64)" 노드 등을 통해 이미지 데이터를 Base64 문자열로 JSON 내부에 직접 포함시켜 자가 포함된 요청을 구성한다 [19, 20].
📖 세부 내용 (Details)
Workflow API JSON은 ComfyUI의 두 가지 주요 직렬화 형식 중 하나로, 주로 프로그램 방식의 실행 및 API 호출을 위해 설계되었다 [1, 2]. 이 형식은 Litegraph 표준을 따르는 프런트엔드 형식(workflow.json)과 달리 백엔드 엔진이 프롬프트를 처리하기 위해 예상하는 평면화된 실행 그래프(Flattened execution graph)를 제공한다 [1, 12].
기술적으로 API JSON은 루트 키가 노드 ID이고 값이 노드 정의인 단일 JSON 객체 구조를 갖는다 [10]. 각 노드 정의에는 class_type, inputs, 그리고 선택적인 _meta 데이터가 포함된다 [10]. 연결(Link)은 입력 리스트 내에서 [소스_노드_ID, 소스_슬롯_인덱스] 형태의 배열로 표현되며, 이는 특정 슬롯(예: VAE Loader의 VAE 출력 슬롯)을 명확하게 지정하는 데 중요하다 [7, 8].
실행 시 ComfyUI 백엔드는 이 JSON을 수신하여 '실행 모델 역전(Execution Model Inversion)' 방식을 적용한다 [21]. 즉, 'Save Image'와 같은 출력 노드에서 시작하여 그래프를 역방향으로 추적하며 필요한 의존성만 식별하여 실행한다 [21]. 이 과정 덕분에 JSON 내에 실행과 무관한 노드가 포함되어 있어도 성능에 영향을 주지 않는다 [21]. 또한, API JSON은 모델 가중치와 독립적이므로 크기가 매우 작아 버전 관리와 아카이빙에 유리하다 [22, 23].
⚖️ 모순 및 업데이트 (Contradictions & updates)
가독성 및 편집성: API JSON은 실행에는 최적화되어 있으나, ComfyUI UI로 다시 드래그 앤 드롭할 경우 노드 위치 정보 등이 없어 로직만 남은 '뼈대' 상태로 로드되어 시각적 편집이 어렵다는 단점이 지적된다 [24, 25].
버전 호환성: ComfyUI가 빈번하게 업데이트됨에 따라 이전 버전의 API JSON 형식이 최신 버전의 백엔드 엔진에서 정상적으로 작동하지 않을 수 있는 호환성 문제가 존재한다 [26].
메타데이터 취약성: PNG 이미지에 임베드된 API JSON 데이터는 이미지 편집기나 소셜 미디어 플랫폼을 거치면서 손실되기 쉽다 [27].
🛠️ 적용 사례 (Applied in summary)
comfyui-workflow-to-api-converter-endpoint: 프런트엔드 포맷을 백엔드 API 포맷으로 서버 측에서 변환하는 /workflow/convert 엔드포인트를 제공한다 [28, 29].
ComfyUI-to-Python-Extension: API 포맷의 JSON을 독립 실행 가능한 Python 스크립트로 변환하는 기능을 지원한다 [30, 31].
comfy_api_simplified: 노드 타이틀을 기준으로 API JSON의 파라미터를 수정하고 큐에 추가할 수 있는 Python 래퍼 라이브러리이다 [16, 18].
Replicate 및 RunComfy 플랫폼: 사용자가 업로드한 API JSON을 기반으로 서버리스 환경에서 워크플로를 실행하고 결과를 반환하는 시스템 아키텍처를 보유하고 있다 [4, 32, 33].
✅ 검증 상태 및 신뢰도
상태: draft
검증 단계: conceptual (실제 적용 사례 발견 시 applied/validated로 승격 가능)
출처 신뢰도: B (Official Documentation / Primary Source via NotebookLM)