--- id: comfyui-workflow-json-생성-방법 title: "Comfyui workflow json 생성 방법" category: "10_Wiki/Topics" status: "draft" verification_status: "conceptual" canonical_id: "" aliases: ["ComfyUI Workflow Serialization", "ComfyUI API JSON Generation"] duplicate_of: "" source_trust_level: "B" confidence_score: 0.90 created_at: 2026-05-19 updated_at: 2026-05-19 review_reason: "" merge_history: [] tags: ["research", "ComfyUI", "Workflow", "JSON", "API"] raw_sources: ["NotebookLM Synthesis"] applied_in: ["bc85382", "82df278", "DanielPFlorian/ComfyUI-WorkflowGenerator", "SethRobinson/comfyui-workflow-to-api-converter-endpoint", "pydn/ComfyUI-to-Python-Extension"] github_commit: "bc85382" --- # [[Comfyui workflow json 생성 방법]] ## 🎯 한 줄 통찰 (One-line insight) ComfyUI 워크플로우 JSON은 시각적 그래프(Frontend)와 실행 가능한 로직(API) 사이를 연결하는 **직렬화된 소스 코드**이며, 수동 내보내기부터 LLM 기반 합성까지 다층적인 생성 경로를 제공한다 [1-3]. ## 🧠 핵심 개념 (Core concepts) - **형식의 이분화 (Bifurcation):** 시각적 메타데이터를 포함한 **Frontend JSON**(사용자 편집용)과 이를 제거하고 실행 로직만 남긴 **API JSON**(서버/프로그램 호출용)으로 구분된다 [4-7]. - **메타데이터 임베딩 (Metadata Embedding):** 생성된 PNG/WebP 이미지의 tEXt 또는 zTXt 청크 내에 워크플로우 데이터를 숨겨 저장함으로써 이미지 자체가 워크플로우 백업 역할을 수행한다 [8, 9]. - **실행 모델 역전 (Execution Model Inversion):** 최종 출력 노드에서 시작하여 필요한 의존성만 역방향으로 탐색해 실행 리스트를 구성하는 구조적 특성을 가진다 [10, 11]. - **LLM 기반 합성 (LLM-driven Synthesis):** 자연어 설명을 세 단계(생성 → 검증 → 빌드)의 파이프라인을 거쳐 실행 가능한 노드 그래프로 자동 변환하는 최신 접근법이다 [12-14]. ## 🧩 추출된 패턴 (Extracted patterns) - **개발자 모드 활성화 패턴:** API 전용 JSON을 추출하기 위해서는 설정 메뉴에서 **'Enable Dev mode Options'**를 활성화해야만 'Save (API format)' 버튼이 노출된다 [2, 15-17]. - **노드 ID 고정화 전략:** API 환경에서 워크플로우를 제어할 때, 가변적인 노드 ID 대신 **노드 제목(Title)**이나 **사용자 정의 키**를 기반으로 파라미터를 수정하는 래퍼(Wrapper) 사용 패턴이 발견된다 [18-20]. - **의존성 자동 해결 패턴:** 외부 JSON 로드 시 발생하는 'Missing Custom Node' 오류(빨간색 박스)를 해결하기 위해 **ComfyUI Manager**가 JSON을 파싱하여 누락된 패키지를 설치하도록 유도한다 [21-23]. ## 📖 세부 내용 (Details) ### 1. GUI를 통한 수동 생성 방법 가장 기본적이고 흔한 방법으로, ComfyUI 웹 인터페이스의 컨트롤 패널을 사용한다. - **Frontend 포맷 (workflow.json):** 캔버스 레이아웃, 노드 좌표, 그룹, 색상 등 시각적 정보를 모두 포함한다 [4, 24]. **Ctrl + S** (또는 Cmd + S) 단축키로 현재 상태를 바로 다운로드할 수 있다 [24]. - **API 포맷 (workflow_api.json):** 서버 실행에 불필요한 UI 데이터를 제거한 정제된 그래프이다 [4, 7]. 설정에서 개발자 모드를 켠 후 생성되는 **'Save (API format)'** 버튼을 통해 추출하며, `/prompt` 엔드포인트 호출에 필수적이다 [2, 25, 26]. ### 2. 이미지 메타데이터로부터의 추출 이미 생성된 결과물 파일에서 워크플로우 로직을 복구하는 방법이다. - **드래그 앤 드롭:** 워크플로우 정보가 포함된 PNG 파일을 캔버스에 떨어뜨리면 즉시 노드 구성이 복원된다 [8, 27-29]. - **추출 도구 활용:** `ExifTool`을 사용하여 바이너리 태그를 추출하거나(`exiftool -b -workflow input.png > workflow.json`), 전문 웹 사이트(Weird Wonderful AI Art) 및 CLI 도구를 통해 벌크 추출이 가능하다 [30-33]. ### 3. 프로그래밍 및 자동화 생성 개발 환경에서 워크플로우를 동적으로 생성하거나 변환한다. - **Python 딕셔너리 조작:** JSON은 기본적으로 중첩된 딕셔너리 구조이므로, `json` 라이브러리를 통해 시드, 프롬프트, 모델 경로 등의 특정 노드 입력을 직접 수정하여 다시 저장하거나 API로 보낼 수 있다 [34, 35]. - **형식 변환 엔드포인트:** `comfyui-workflow-to-api-converter-endpoint`와 같은 커스텀 노드를 사용하면, 일반 Frontend JSON을 서버 사이드에서 즉시 API 포맷으로 변환해주는 `/workflow/convert` API를 활용할 수 있다 [26, 36]. - **Python 스크립트 변환:** `ComfyUI-to-Python-Extension`은 JSON 워크플로우를 순수 파이썬 코드(.py)로 변환하여 독립적인 실행 스크립트로 만들어준다 [18, 37, 38]. ### 4. LLM 기반 자연어 생성 (AI 합성) - **파이프라인 구조:** `ComfyUI-WorkflowGenerator`는 사용자의 자연어 명령(예: "SDXL을 사용한 텍스트-투-이미지 워크플로우 생성")을 입력받아 **Generator**(논리 구조 생성) → **Validator**(노드 이름 검증) → **Builder**(실행 가능 JSON 빌드) 과정을 거친다 [13, 14]. - **기반 모델:** Qwen2.5-14B와 같이 미세 조정된 대규모 언어 모델을 활용하여 노드 간의 유효한 연결 관계를 추론한다 [39]. ## ⚖️ 모순 및 업데이트 (Contradictions & updates) - **JSON 호환성 이슈:** ComfyUI의 빈번한 업데이트로 인해 이전 버전의 JSON 파일이 최신 버전에서 정상적으로 작동하지 않을 수 있다는 경고가 존재한다 [23, 28]. - **메타데이터 손실 위험:** 온라인 공유나 압축 과정에서 이미지의 메타데이터(JSON 정보 포함)가 제거될 수 있으며, 이 경우 드래그 앤 드롭을 통한 복구가 불가능하다 [9, 28, 40]. - **Reroute 노드 처리:** 최근 업데이트(V2.2.0)에서는 변환기들이 새로운 'reroute' 노드를 무시하거나 적절히 처리하도록 로직이 수정되었다 [41]. ## 🛠️ 적용 사례 (Applied in summary) - **Git 커밋 bc85382:** `comfyui-workflow-to-api-converter-endpoint` 프로젝트에서 대소문자 구분 오류(True vs true)를 수정하고 콤보 위젯 값을 정규화하는 로직이 적용됨 [41, 42]. - **Git 커밋 82df278:** `ComfyUI-WorkflowGenerator`에서 드롭다운 메뉴의 중복 모델 표시 문제를 해결함 [43]. - **/workflow/convert 엔드포인트:** Seth A. Robinson에 의해 개발된 커스텀 노드로, 비 API 포맷을 API 포맷으로 서버 측에서 변환하는 기능을 구현함 [26, 44]. - **Save As Script 메뉴:** `pydn/ComfyUI-to-Python-Extension` 설치 시 ComfyUI의 'File' 메뉴에 추가되어 워크플로우를 파이썬 코드로 내보낼 수 있게 함 [45, 46]. ## ✅ 검증 상태 및 신뢰도 - **상태:** draft - **검증 단계:** conceptual (공식 문서 및 다수의 오픈소스 구현 사례 확인됨) - **출처 신뢰도:** B (공식 개발 문서, 메이저 커스텀 노드 개발자의 기술 노트 및 튜토리얼 기반) - **중복 검사 결과:** 신규 생성 (New discovery) ## 🔗 관련 문서 링크 (Related document links) ### 상위/유사 개념 #### [아키텍처/기반 기술] - [[Litegraph Standard]] - 연결 이유: Frontend JSON 형식이 기반하고 있는 시각적 그래프 표준 [4, 6]. - [[Execution Model Inversion]] - 연결 이유: JSON 데이터가 실제로 처리되는 백엔드 엔진의 핵심 알고리즘 [10]. #### [구현/활용 도구] - [[ComfyUI Manager]] - 연결 이유: 생성된 JSON의 노드 의존성을 관리하고 누락된 요소를 복구하는 필수 도구 [21, 22]. - [[ComfyUI API]] - 연결 이유: 생성된 API JSON이 최종적으로 소비되는 인터페이스 엔드포인트 [47, 48]. ### 심층 후속 질문 (Deeper Research Questions) - 왜 ComfyUI는 Frontend와 API 포맷을 분리하여 설계했으며, 이로 인해 얻는 성능적 이득은 구체적으로 무엇인가? [4, 5] - PNG 메타데이터 청크(tEXt/zTXt)를 넘어서는 대용량 워크플로우를 이미지에 안전하게 포함시키는 대안 기술은 무엇이 있는가? [9] - LLM 기반 생성 시, 학습 데이터에 없는 최신 커스트 노드와의 연결을 위해 RAG(검색 증강 생성)를 어떻게 결합할 수 있는가? [49] - `Execution Model Inversion` 구조에서 사용되지 않는 노드가 JSON에 포함되었을 때 실제 실행 효율에 미치는 영향은 어떠한가? [10] - 모델 해싱(SHA-256)을 이용해 서로 다른 환경의 JSON 내 모델 파일 경로 불일치 문제를 해결하는 표준 프로세스는 무엇인가? [50] ### 실무 적용 맥락 (Practical Application Contexts) - **Implementation:** `/workflow/convert` 엔드포인트를 활용하여 클라이언트 앱에서 워크플로우 수정 후 즉시 실행 가능한 API 호출 생성 [26]. - **System Design:** 워크플로우를 Git으로 관리하고, 배포 시에는 API 포맷만 추출하여 서버리스 환경(Replicate, Mystic 등)에 업로드 [16, 17, 51]. - **Operation / Maintenance:** `object_info.json`을 사용하여 실행 전 노드 입출력 유효성을 검사함으로써 런타임 오류 방지 [52, 53]. - **Learning Path:** 기본 워크플로우 템플릿부터 시작하여 수동 내보내기를 익힌 후, `ComfyUI-to-Python`을 통해 자동화 단계로 진입 [38, 54]. ### 인접 주변 주제 (Adjacent Topics) - [[Model Hashing (SHA-256)]] - 확장 방향: 워크플로우 이식성 강화를 위한 모델 식별 기술 [50]. - [[Custom Node Registry]] - 확장 방향: JSON 내 `class_type`이 참조하는 실제 노드 구현 저장소 관리 [55]. ## 📝 변경 이력 (Change history) - 2026-05-19: Initial draft generated via Datacollector_MAC P-Reinforce engine. (Source synthesis from 18 documents) [1-188]