--- id: workflow-json-v1.0-schema title: "Workflow JSON v1.0 Schema" category: "10_Wiki/Topics" status: "draft" verification_status: "conceptual" canonical_id: "" aliases: ["ComfyUI JSON Schema", "Workflow v1.0 Specification"] 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 생성 방법", "Schema", "JSON"] raw_sources: ["NotebookLM Synthesis"] applied_in: - "/specs/workflow_json" - "/src/scripts/metadata" - "comfyui-workflow-to-api-converter-endpoint" - "ComfyUI-to-Python-Extension" github_commit: "bc85382" --- # [[Workflow JSON v1.0 Schema]] ## 🎯 ν•œ 쀄 톡찰 (One-line insight) ComfyUI μ›Œν¬ν”Œλ‘œμš° JSON은 생성 λ‘œμ§μ„ **μœ λ„ λΉ„μˆœν™˜ κ·Έλž˜ν”„(DAG)**둜 κ΅¬μ‘°ν™”ν•˜μ—¬ μ‹œκ°μ  μΈν„°νŽ˜μ΄μŠ€μ™€ μ‹€ν–‰ μ—”μ§„ μ‚¬μ΄μ˜ μƒν˜Έμš΄μš©μ„±μ„ 보μž₯ν•˜λŠ” 핡심 데이터 κ·œκ²©μ΄λ‹€ [1, 2]. ## 🧠 핡심 κ°œλ… (Core concepts) - **이원적 직렬화 포맷 (Bifurcation of Formats):** μ‹œκ°μ  νŽΈμ§‘κ³Ό λ ˆμ΄μ•„μ›ƒ 보쑴을 μœ„ν•œ **Frontend Format**(workflow.json)κ³Ό μ„œλ²„ μΈ‘ 싀행에 μ΅œμ ν™”λœ **Backend/API Format**(workflow_api.json)으둜 κ΅¬λΆ„λœλ‹€ [3-5]. - **Litegraph ν‘œμ€€ 기반:** ν”„λ‘ νŠΈμ—”λ“œ 포맷은 λ…Έλ“œ μœ„μΉ˜, 크기, κ·Έλ£Ήν™” λ“± μ‹œκ°μ  메타데이터λ₯Ό ν¬ν•¨ν•˜λŠ” Litegraph ν‘œμ€€μ„ λ”°λ₯Έλ‹€ [3, 6]. - **슬둯 기반 μ—°κ²°μ„± (Slot-based Connectivity):** λ…Έλ“œ κ°„ 데이터 흐름은 κ³ μœ ν•œ μž…λ ₯/좜λ ₯ 슬둯 인덱슀λ₯Ό 톡해 μ •μ˜λ˜λ©°, API ν¬λ§·μ—μ„œλŠ” 이λ₯Ό λ…Έλ“œ 내뢀에 인라인 참쑰둜 λ‚΄μž₯ν•œλ‹€ [3, 7, 8]. - **JSON Schema v1.0 (Draft-07):** 기술적 무결성을 κ²€μ¦ν•˜κΈ° μœ„ν•΄ ν•„μˆ˜ 속성과 데이터 νƒ€μž…μ„ κ·œμ •ν•˜λŠ” μ΅œμ‹  곡식 사양이닀 [9-11]. ## 🧩 μΆ”μΆœλœ νŒ¨ν„΄ (Extracted patterns) - **Metadata Redundancy νŒ¨ν„΄:** PNG 파일 내에 μ‹œκ°μ  포맷(workflow)κ³Ό μ‹€ν–‰ 포맷(prompt)을 λ™μ‹œμ— λ‚΄μž₯ν•˜μ—¬, 이미지 ν•œ μž₯만으둜 νŽΈμ§‘κ³Ό μž¬μ‹€ν–‰μ΄ λͺ¨λ‘ κ°€λŠ₯ν•˜λ„λ‘ μ„€κ³„λ˜μ—ˆλ‹€ [12, 13]. - **Execution Model Inversion:** μ΅œμ’… 좜λ ₯ λ…Έλ“œ(Save Image λ“±)μ—μ„œ μ—­λ°©ν–₯으둜 κ·Έλž˜ν”„λ₯Ό νƒμƒ‰ν•˜μ—¬ 싀행에 ν•„μš”ν•œ μ˜μ‘΄μ„± λ…Έλ“œλ§Œ μ‹λ³„ν•˜κ³  λΆˆν•„μš”ν•œ 연산을 λ°°μ œν•œλ‹€ [14]. - **Node Functional Mapping:** API ν¬λ§·μ—μ„œ 링크 객체λ₯Ό μ œκ±°ν•˜κ³  `[λ…Έλ“œID, 슬둯번호]` ν˜•νƒœμ˜ λ°°μ—΄λ‘œ κ°„μ†Œν™”ν•˜μ—¬ 전솑 효율과 νŒŒμ‹± 속도λ₯Ό κ·ΉλŒ€ν™”ν•œλ‹€ [3, 15, 16]. ## πŸ“– μ„ΈλΆ€ λ‚΄μš© (Details) ### 1. λ…Έλ“œ 객체 속성 (Node Object Properties) v1.0 μŠ€ν‚€λ§ˆμ— μ •μ˜λœ λ…Έλ“œ κ°μ²΄λŠ” κ·Έλž˜ν”„ 탐색 및 λ Œλ”λ§μ„ μœ„ν•΄ λ‹€μŒκ³Ό 같은 속성을 포함해야 ν•œλ‹€ [8, 9]: - **id:** κ·Έλž˜ν”„ λ‚΄ λ…Έλ“œλ₯Ό μ‹λ³„ν•˜λŠ” 고유 μ •μˆ˜ λ˜λŠ” λ¬Έμžμ—΄ [9]. - **type (λ˜λŠ” class_type):** λ…Έλ“œ λ ˆμ§€μŠ€νŠΈλ¦¬μ— λ“±λ‘λœ 클래슀 이름과 λ§€ν•‘λ˜λŠ” μ‹λ³„μž [9, 16]. - **pos & size:** μΊ”λ²„μŠ€μƒμ˜ μ’Œν‘œ 및 크기 정보λ₯Ό 담은 λ°°μ—΄ (API ν¬λ§·μ—μ„œλŠ” 제거됨) [9, 16]. - **widgets_values:** ν…μŠ€νŠΈ λ°•μŠ€, μŠ¬λΌμ΄λ” λ“± μ‚¬μš©μž μž…λ ₯값을 μ €μž₯ν•˜λŠ” λ°°μ—΄ [9, 15]. - **order & mode:** μ‹€ν–‰/λ Œλ”λ§ μš°μ„ μˆœμœ„ 및 λ…Έλ“œμ˜ ν™œμ„± μƒνƒœ(예: bypass)λ₯Ό μ •μ˜ν•œλ‹€ [8, 9]. ### 2. κ·Έλž˜ν”„ μ—°κ²° ꡬ쑰 (Link and Slot Connectivity) - **μ—°κ²° μ •μ˜:** λ…Έλ“œμ˜ `inputs` 배열은 μœ μž…λ˜λŠ” μ„ μ˜ IDλ₯Ό μ°Έμ‘°ν•˜λ©°, `outputs` 배열은 μ—¬λŸ¬ ν•˜μœ„ λ…Έλ“œλ‘œ 연결될 수 μžˆλŠ” 링크 IDλ“€μ˜ 배열을 ν¬ν•¨ν•œλ‹€ [7]. - **슬둯 인덱싱:** νŠΉμ • λ…Έλ“œμ˜ 좜λ ₯(예: VAE Loader의 VAE 좜λ ₯)이 μ •ν™•νžˆ μ–΄λ–€ μŠ¬λ‘―μ—μ„œ μƒμ„±λ˜μ–΄ μ†ŒλΉ„λ˜λŠ”μ§€ λͺ…μ‹œν•˜λŠ” 것이 ν•„μˆ˜μ μ΄λ‹€ [7]. - **API 포맷의 νŠΉμˆ˜μ„±:** `workflow_api.json`은 μ‹œκ°μ  링크 배열을 μ œκ±°ν•˜κ³ , λ…Έλ“œ μž…λ ₯ ν•„λ“œ 내에 직접 `["λ…Έλ“œID", 슬둯_인덱슀]` 값을 ν• λ‹Ήν•˜μ—¬ μ‹€ν–‰ κ·Έλž˜ν”„λ₯Ό 평탄화(Flattening)ν•œλ‹€ [3, 15]. ### 3. 보쑰 μŠ€ν‚€λ§ˆ (object_info.json) - μ‹€ν–‰ 쀑인 ComfyUI μΈμŠ€ν„΄μŠ€μ˜ λͺ¨λ“  λ…Έλ“œμ— λŒ€ν•œ μŠ€ν‚€λ§ˆ μΉ΄νƒˆλ‘œκ·Έμ΄λ‹€ [5, 17]. - 각 λ…Έλ“œκ°€ ν—ˆμš©ν•˜λŠ” μž…λ ₯ μœ ν˜•, λ²”μœ„, 좜λ ₯ 데이터 νƒ€μž… 및 툴팁 정보λ₯Ό ν¬ν•¨ν•˜μ—¬ μ™ΈλΆ€ λ„κ΅¬μ—μ„œ JSON을 λ™μ μœΌλ‘œ μƒμ„±ν•˜κ±°λ‚˜ 검증할 λ•Œ μ‚¬μš©λœλ‹€ [17-19]. ## βš–οΈ λͺ¨μˆœ 및 μ—…λ°μ΄νŠΈ (Contradictions & updates) - **버전 ν˜Έν™˜μ„± 문제:** μ†ŒμŠ€μ— λ”°λ₯΄λ©΄ ν˜„μž¬ v1.0이 μ΅œμ‹ μ΄μ§€λ§Œ, ComfyUI의 μž¦μ€ μ—…λ°μ΄νŠΈλ‘œ 인해 0.4 버전 λ“± 이전 λ²„μ „μ˜ JSON 파일이 μ΅œμ‹  ν™˜κ²½μ—μ„œ 정상 μž‘λ™ν•˜μ§€ μ•Šμ„ 수 있음이 μ§€μ λœλ‹€ [10, 11, 20]. - **데이터 νŒŒνŽΈν™”:** 이미지 λ©”νƒ€λ°μ΄ν„°μ—μ„œ μΆ”μΆœν•œ JSON은 μ’…μ’… μ»€μŠ€ν…€ λ…Έλ“œ 정보λ₯Ό λˆ„λ½ν•  수 있으며, 이 경우 μΊ”λ²„μŠ€μ— 'Red Boxes' μ—λŸ¬κ°€ λ°œμƒν•œλ‹€ [21-23]. - **API 포맷의 가독성:** μ‹€ν–‰ μ΅œμ ν™”λœ API JSON은 μ‹œκ°μ  정보가 λͺ¨λ‘ 제거된 'Skeleton' ν˜•νƒœμ΄λ―€λ‘œ, 이λ₯Ό λ‹€μ‹œ ComfyUI μΈν„°νŽ˜μ΄μŠ€λ‘œ λ“œλž˜κ·Έν•˜μ—¬ νŽΈμ§‘ν•˜κΈ°μ—λŠ” λΆ€μ ν•©ν•˜λ‹€ [24, 25]. ## πŸ› οΈ 적용 사둀 (Applied in summary) - **ComfyUI 곡식 사양:** `/specs/workflow_json` κ²½λ‘œμ—μ„œ v1.0 κ·œκ²©μ„ 곡식 κ΄€λ¦¬ν•œλ‹€ [10]. - **ν”„λ‘ νŠΈμ—”λ“œ 메타데이터 처리:** `ComfyUI_frontend/src/scripts/metadata`μ—μ„œ μžλ°”μŠ€ν¬λ¦½νŠΈ 기반의 메타데이터 νŒŒμ‹± λ‘œμ§μ„ κ΅¬ν˜„ν•˜κ³  μžˆλ‹€ [26]. - **comfyui-workflow-to-api-converter-endpoint:** μ„œλ²„ μΈ‘ 파이썬 λ‘œμ§μ„ 톡해 Frontend JSON을 API JSON 규격으둜 μ‹€μ‹œκ°„ λ³€ν™˜ν•˜λ©°, `bc85382` μ»€λ°‹μ—μ„œ 콀보 μœ„μ ― κ°’μ˜ μ •κ·œν™” μ΄μŠˆκ°€ ν•΄κ²°λ˜μ—ˆλ‹€ [24, 27-29]. - **ComfyUI-to-Python-Extension:** JSON μ›Œν¬ν”Œλ‘œμš°λ₯Ό λΆ„μ„ν•˜μ—¬ λ™μΌν•œ 둜직의 `.py` μ‹€ν–‰ 슀크립트λ₯Ό 생성할 λ•Œ v1.0 μŠ€ν‚€λ§ˆ ꡬ쑰λ₯Ό μ°Έμ‘°ν•œλ‹€ [30, 31]. ## βœ… 검증 μƒνƒœ 및 신뒰도 - **μƒνƒœ:** draft - **검증 단계:** conceptual (곡식 λ¬Έμ„œ 기반의 μŠ€νŽ™ μ •μ˜ μ™„λ£Œ) - **좜처 신뒰도:** B (Official Documentation 및 μ „λ¬Έ 기술 λΈ”λ‘œκ·Έ 기반) - **쀑볡 검사 κ²°κ³Ό:** μ‹ κ·œ 생성 ## πŸ”— κ΄€λ ¨ λ¬Έμ„œ 링크 ### μƒμœ„/μœ μ‚¬ κ°œλ… - [[Comfyui workflow json 생성 방법]] - μ—°κ²° 이유: λ³Έ μŠ€ν‚€λ§ˆκ°€ 생성 λ°©λ²•λ‘ μ˜ 기술적 기반이 됨. - [[Dev mode Options]] - μ—°κ²° 이유: μŠ€ν‚€λ§ˆμ˜ 두 κ°€μ§€ ν˜•νƒœ(Frontend/API) 쀑 API 포맷을 내보내기 μœ„ν•œ ν•„μˆ˜ μ „μ œ μ‘°κ±΄μž„. #### [μ•„ν‚€ν…μ²˜/기반 기술] - [[Litegraph Standard]] - μ—°κ²° 이유: Frontend JSON의 데이터 ꡬ쑰와 λ Œλ”λ§ 방식을 κ·œμ •ν•¨. - [[Execution Model Inversion]] - μ—°κ²° 이유: JSON κ·Έλž˜ν”„λ₯Ό ν•΄μ„ν•˜μ—¬ 효율적으둜 μ‹€ν–‰ν•˜λŠ” λ°±μ—”λ“œ μ΅œμ ν™” μ›λ¦¬μž„. #### [κ΅¬ν˜„/ν™œμš© 도ꡬ] - [[ComfyUI Manager]] - μ—°κ²° 이유: JSON μŠ€ν‚€λ§ˆ λ‚΄μ˜ `class_type`을 λΆ„μ„ν•˜μ—¬ λˆ„λ½λœ μ»€μŠ€ν…€ λ…Έλ“œλ₯Ό 볡ꡬ함. - [[ComfyUI-to-Python-Extension]] - μ—°κ²° 이유: JSON μ›Œν¬ν”Œλ‘œμš°λ₯Ό 파이썬 μ½”λ“œλ‘œ μ΄μ‹ν•˜λŠ” μ‹€μ œ μ‚¬λ‘€μž„. ### 심측 후속 질문 (Deeper Research Questions) - API ν¬λ§·μ—μ„œ 링크λ₯Ό λ…Έλ“œ μž…λ ₯ 내뢀에 μΈλΌμΈν™”ν•˜λŠ” 방식이 μˆœν™˜ μ°Έμ‘°(Circular Reference) 방지에 μ–΄λ–€ κΈ°μ—¬λ₯Ό ν•˜λŠ”κ°€? - `object_info.json`의 μŠ€ν‚€λ§ˆ 데이터와 μ‹€μ œ λ…Έλ“œμ˜ `INPUT_TYPES` λ©”μ„œλ“œ μ‚¬μ΄μ˜ 동기화 μ‹€νŒ¨ μ‹œ μ–΄λ–€ μ˜ˆμ™Έ μ²˜λ¦¬κ°€ λ°œμƒν•˜λŠ”κ°€? - v1.0 μŠ€ν‚€λ§ˆμ—μ„œ `widgets_values` λ°°μ—΄μ˜ μˆœμ„œ 기반 데이터 μ €μž₯이 λ…Έλ“œ μ—…λ°μ΄νŠΈλ‘œ μΈν•œ μœ„μ ― μΆ”κ°€ μ‹œ μ–΄λ–€ ν˜Έν™˜μ„± 문제λ₯Ό μΌμœΌν‚€λŠ”κ°€? - PNG 파일의 `tEXt` 청크 μš©λŸ‰ μ œν•œμ΄ 맀우 κ±°λŒ€ν•œ μ›Œν¬ν”Œλ‘œμš° JSON(예: 수백 개의 λ…Έλ“œ) μ €μž₯에 ν•œκ³„λ‘œ μž‘μš©ν•˜λŠ”κ°€? - `comfy-pack`κ³Ό 같은 λ„κ΅¬μ—μ„œ μ‚¬μš©ν•˜λŠ” λͺ¨λΈ ν•΄μ‹± 기술이 JSON μŠ€ν‚€λ§ˆ λ‚΄μ—μ„œ μ–΄λ–»κ²Œ ν‘œμ€€ν™”λ  수 μžˆλŠ”κ°€? ### 싀무 적용 λ§₯락 (Practical Application Contexts) - **Implementation:** μ™ΈλΆ€ μ• ν”Œλ¦¬μΌ€μ΄μ…˜(Unity, Web App λ“±)μ—μ„œ ComfyUI μ„œλ²„μ— μž‘μ—…μ„ μš”μ²­ν•  λ•Œ API JSON을 μƒμ„±ν•˜κ³  전솑해야 ν•œλ‹€ [28, 32]. - **System Design:** μ›Œν¬ν”Œλ‘œμš° μžλ™ν™”λ₯Ό μœ„ν•΄ JSON λ‚΄μ˜ νŠΉμ • λ…Έλ“œ ID와 μž…λ ₯ ν•„λ“œ(예: ν”„λ‘¬ν”„νŠΈ, μ‹œλ“œ)λ₯Ό λ™μ μœΌλ‘œ μˆ˜μ •ν•˜λŠ” λ‘œμ§μ„ 섀계할 수 μžˆλ‹€ [33, 34]. - **Operation / Maintenance:** μ»€μŠ€ν…€ λ…Έλ“œ μ—…λ°μ΄νŠΈ μ‹œ JSON λ‚΄ `class_type` λͺ…칭이 λ³€κ²½λ˜λ©΄ μ›Œν¬ν”Œλ‘œμš°κ°€ νŒŒμ†λ  수 μžˆμœΌλ―€λ‘œ 버전 관리가 ν•„μš”ν•˜λ‹€ [20, 35]. - **Learning Path:** λ…Έλ“œ 기반 μΈν„°νŽ˜μ΄μŠ€μ˜ 데이터 ꡬ쑰λ₯Ό μ΄ν•΄ν•˜λ©΄ μ‹œκ°μ  툴 없이도 순수 μ½”λ“œλ‘œ 생성 AI νŒŒμ΄ν”„λΌμΈμ„ ꡬ좕할 수 μžˆλ‹€ [30, 36]. ### 인접 μ£Όλ³€ 주제 (Adjacent Topics) - [[Custom Nodes]] - ν™•μž₯ λ°©ν–₯: JSON μŠ€ν‚€λ§ˆμ— μƒˆλ‘œμš΄ λ…Έλ“œ νƒ€μž…μ„ λ“±λ‘ν•˜κ³  κ΄€λ¦¬ν•˜λŠ” 방법 연ꡬ. - [[Metadata Stripping]] - ν™•μž₯ λ°©ν–₯: μ†Œμ…œ λ―Έλ””μ–΄ 배포 μ‹œ 이미지 λ‚΄ 메타데이터 손싀 λŒ€μ‘ λ°©μ•ˆ 및 μ™ΈλΆ€ JSON μ €μž₯ μ „λž΅. ## πŸ“ λ³€κ²½ 이λ ₯ (Change history) - 2026-05-19: Initial draft generated via Datacollector_MAC P-Reinforce engine.