--- id: api-format title: "API Format" category: "10_Wiki/Topics" status: "draft" verification_status: "conceptual" canonical_id: "" aliases: ["API JSON", "workflow_api.json", "Backend Format"] 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", "JSON", "Automation"] raw_sources: ["NotebookLM Synthesis"] applied_in: ["comfyui-workflow-to-api-converter-endpoint", "deimos-deimos/comfy_api_simplified", "pydn/ComfyUI-to-Python-Extension"] github_commit: "bc85382" --- # [[API Format]] ## 🎯 ν•œ 쀄 톡찰 (One-line insight) ComfyUI API 포맷은 μ‹œκ°μ  메타데이터λ₯Ό μ œκ±°ν•˜κ³  λ…Έλ“œ κ°„μ˜ 논리적 μ—°κ²°κ³Ό μž…λ ₯κ°’λ§Œμ„ λ³΄μ‘΄ν•˜μ—¬ μ„œλ²„ μΈ‘ μ‹€ν–‰ 및 ν”„λ‘œκ·Έλž˜λ° λ°©μ‹μ˜ μžλ™ν™”μ— μ΅œμ ν™”λœ κ²½λŸ‰ν™”λœ μ‹€ν–‰ κ·Έλž˜ν”„μ΄λ‹€ [1-3]. ## 🧠 핡심 κ°œλ… (Core concepts) - **μ‹€ν–‰ κ·Έλž˜ν”„ (Execution Graph):** UI μ’Œν‘œ, λ…Έλ“œ 크기, κ·Έλ£Ήν™” 정보 λ“± μ‹œκ°μ  μš”μ†Œλ₯Ό λ°°μ œν•˜κ³  λ°±μ—”λ“œ 엔진이 ν”„λ‘¬ν”„νŠΈλ₯Ό μ‹€ν–‰ν•˜λŠ” 데 ν•„μš”ν•œ 순수 논리 ꡬ쑰만 ν¬ν•¨ν•œλ‹€ [1, 3, 4]. - **μž„λ² λ””λ“œ 링크 (Embedded Links):** λ³„λ„μ˜ 링크 객체 배열을 μ‚¬μš©ν•˜λŠ” λŒ€μ‹ , λ…Έλ“œμ˜ μž…λ ₯ ν•„λ“œ(`inputs`) 내에 μ†ŒμŠ€ λ…Έλ“œ ID와 좜λ ₯ 슬둯 번호λ₯Ό 직접 μ°Έμ‘°(예: `[5, 6]`)ν•˜μ—¬ 연결을 μ •μ˜ν•œλ‹€ [1, 2, 7]. - **κΈ°λŠ₯적 ν‚€ λ§€ν•‘ (Functional Key Mapping):** JSON 객체의 μ΅œμƒμœ„ ν‚€κ°€ λ…Έλ“œ ID(λ¬Έμžμ—΄)이며, 각 값은 `class_type`κ³Ό `inputs`λ₯Ό ν¬ν•¨ν•˜λŠ” λ”•μ…”λ„ˆλ¦¬ ꡬ쑰λ₯Ό κ°€μ§„λ‹€ [8-10]. - **개발자 λͺ¨λ“œ ν™œμ„±ν™” (Dev Mode Requirement):** 일반적인 μ €μž₯ 방식과 달리 ComfyUI μ„€μ •μ—μ„œ 'Enable Dev mode Options'λ₯Ό ν™œμ„±ν™”ν•΄μ•Όλ§Œ 내보낼 수 μžˆλŠ” 특수 포맷이닀 [11-14]. ## 🧩 μΆ”μΆœλœ νŒ¨ν„΄ (Extracted patterns) - **UI/λ°±μ—”λ“œ 이원화 νŒ¨ν„΄:** μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€μš© `workflow.json`κ³Ό μ‹€ν–‰ μ „μš© `workflow_api.json`을 λΆ„λ¦¬ν•˜μ—¬ νŽΈμ§‘ νš¨μœ¨μ„±κ³Ό μ‹€ν–‰ 속도λ₯Ό λ™μ‹œμ— ν™•λ³΄ν•œλ‹€ [1, 2, 15]. - **메타데이터 μΊ‘μŠν™”:** PNG μ΄λ―Έμ§€μ˜ `tEXt` λ˜λŠ” `zTXt` 청크에 API 포맷(prompt) 데이터λ₯Ό ν¬ν•¨μ‹œμΌœ 이미지 μžμ²΄κ°€ μ‹€ν–‰ κ°€λŠ₯ν•œ μ†ŒμŠ€ μ½”λ“œ 역할을 ν•˜λ„λ‘ μ„€κ³„ν•œλ‹€ [16, 17]. - **직접 λ”•μ…”λ„ˆλ¦¬ μ‘°μž‘ νŒ¨ν„΄:** κ°œλ°œμžκ°€ JSON을 λ‘œλ“œν•˜μ—¬ νŠΉμ • λ…Έλ“œ ID의 `inputs` 값을 파이썬 λ“±μœΌλ‘œ μˆ˜μ • ν›„ `/prompt` μ—”λ“œν¬μΈνŠΈμ— μ „μ†‘ν•˜λŠ” 동적 μ œμ–΄ 방식을 μ§€μ›ν•œλ‹€ [8, 10, 18]. ## πŸ“– μ„ΈλΆ€ λ‚΄μš© (Details) ComfyUI의 API 포맷은 주둜 `workflow_api.json` 파일둜 μ•Œλ €μ Έ 있으며, μ„œλ²„λ¦¬μŠ€ API ν˜ΈμΆœμ΄λ‚˜ μ™ΈλΆ€ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 톡합 μ‹œ 핡심적인 역할을 ν•œλ‹€ [2, 15]. 이 포맷은 Litegraph ν‘œμ€€μ„ λ”°λ₯΄λŠ” ν”„λ‘ νŠΈμ—”λ“œ 포맷과 달리, λ°±μ—”λ“œ 엔진이 μ¦‰μ‹œ 해석할 수 μžˆλ„λ‘ 평탄화(Flattened)된 ꡬ쑰λ₯Ό κ°€μ§„λ‹€ [1, 11]. ꡬ쑰적으둜 API 포맷은 λ…Έλ“œ IDλ₯Ό ν‚€λ‘œ μ‚¬μš©ν•˜λŠ” 단일 JSON 객체이닀 [9]. 각 λ…Έλ“œ μ •μ˜μ—λŠ” ν•΄λ‹Ή λ…Έλ“œμ˜ 클래슀 이름인 `class_type`κ³Ό μœ„μ ― κ°’ 및 링크 정보λ₯Ό ν¬ν•¨ν•˜λŠ” `inputs` λ”•μ…”λ„ˆλ¦¬κ°€ λ“€μ–΄κ°„λ‹€ [3, 8]. 예λ₯Ό λ“€μ–΄, `CLIPTextEncode` λ…Έλ“œμ˜ 경우 ν…μŠ€νŠΈ μž…λ ₯κ°’κ³Ό ν•¨κ»˜ μ—°κ²°λœ CLIP λͺ¨λΈμ˜ λ…Έλ“œ 정보λ₯Ό `[λ…Έλ“œID, 슬둯번호]` ν˜•νƒœμ˜ λ°°μ—΄λ‘œ λ³΄μœ ν•œλ‹€ [7, 10]. 이 포맷은 데이터 μš©λŸ‰μ΄ μž‘κ³  νš¨μœ¨μ μ΄μ§€λ§Œ, λ‹€μ‹œ ComfyUI μΈν„°νŽ˜μ΄μŠ€λ‘œ λ“œλž˜κ·Έν–ˆμ„ λ•Œ μ‹œκ°μ  λ ˆμ΄μ•„μ›ƒ 정보가 μ—†μ–΄ λ…Έλ“œλ“€μ΄ κ²ΉμΉ˜κ±°λ‚˜ μ—°κ²° ꡬ쑰λ₯Ό νŒŒμ•…ν•˜κΈ° νž˜λ“  'μŠ€μΌˆλ ˆν†€(Skeleton)' μƒνƒœλ‘œ λ‘œλ“œλœλ‹€λŠ” νŠΉμ§•μ΄ μžˆλ‹€ [19, 20]. λ”°λΌμ„œ μ‹€λ¬΄μ—μ„œλŠ” μ‹œκ°μ  νŽΈμ§‘μš© 원본 μ›Œν¬ν”Œλ‘œλ₯Ό λ³„λ„λ‘œ λ³΄κ΄€ν•˜λŠ” 것이 ꢌμž₯λœλ‹€ [20]. λ˜ν•œ, μ΅œκ·Όμ—λŠ” μ‹œκ°μ  포맷을 API 포맷으둜 μ‹€μ‹œκ°„ λ³€ν™˜ν•΄μ£ΌλŠ” μ„œλ²„μΈ‘ μ—”λ“œν¬μΈνŠΈ 도ꡬ듀이 κ°œλ°œλ˜μ–΄ 이 단점을 λ³΄μ™„ν•˜κ³  μžˆλ‹€ [19, 21]. ## βš–οΈ λͺ¨μˆœ 및 μ—…λ°μ΄νŠΈ (Contradictions & updates) - **가독성 vs μ‹€ν–‰λ ₯:** API 포맷은 인간이 읽기에 κ°„κ²°ν•˜μ§€λ§Œ, μ‹œκ°μ  정보가 κ²°μ—¬λ˜μ–΄ μžˆμ–΄ λ³΅μž‘ν•œ μ›Œν¬ν”Œλ‘œλ₯Ό 이 포맷만으둜 μˆ˜λ™ νŽΈμ§‘ν•˜κΈ°μ—λŠ” ν•œκ³„κ°€ μžˆλ‹€ [17, 20]. - **버전 ν˜Έν™˜μ„±:** ComfyUIκ°€ λΉˆλ²ˆν•˜κ²Œ μ—…λ°μ΄νŠΈλ¨μ— 따라 κ΅¬λ²„μ „μ˜ JSON API 포맷이 μ΅œμ‹  μ„œλ²„ ν™˜κ²½μ—μ„œ μ •μƒμ μœΌλ‘œ μž‘λ™ν•˜μ§€ μ•Šμ„ 수 μžˆλ‹€λŠ” κ²½κ³ κ°€ μ‘΄μž¬ν•œλ‹€ [22]. - **데이터 μœ μ‹€ μœ„ν—˜:** ν‘œμ€€ 이미지 νŽΈμ§‘κΈ°λ‚˜ μ†Œμ…œ λ―Έλ””μ–΄λ₯Ό κ±°μΉ  경우 PNG 메타데이터에 ν¬ν•¨λœ API 포맷 정보가 μ‚­μ œλ  수 μžˆμ–΄ 전솑 μ‹œ μ£Όμ˜κ°€ ν•„μš”ν•˜λ‹€ [16]. ## πŸ› οΈ 적용 사둀 (Applied in summary) - **comfyui-workflow-to-api-converter-endpoint:** ν”„λ‘ νŠΈμ—”λ“œ μ›Œν¬ν”Œλ‘œλ₯Ό API 포맷으둜 λ³€ν™˜ν•˜λŠ” μ„œλ²„μΈ‘ `/workflow/convert` μ—”λ“œν¬μΈνŠΈλ₯Ό κ΅¬ν˜„ν•˜μ˜€λ‹€ [19]. - **Git 컀밋:** `bc85382` (콀보 μœ„μ ― κ°’μ˜ λŒ€μ†Œλ¬Έμž μ •κ·œν™” μˆ˜μ • 포함) [23, 24]. - **deimos-deimos/comfy_api_simplified:** λ…Έλ“œ 제λͺ©(Title)을 κΈ°μ€€μœΌλ‘œ API 포맷의 νŒŒλΌλ―Έν„°λ₯Ό μˆ˜μ •ν•˜κ³  큐에 λ“±λ‘ν•˜λŠ” 파이썬 래퍼 κΈ°λŠ₯을 μ œκ³΅ν•œλ‹€ [25-27]. - **pydn/ComfyUI-to-Python-Extension:** μ €μž₯된 API 포맷 JSON을 독립 μ‹€ν–‰ κ°€λŠ₯ν•œ `.py` 슀크립트둜 λ³€ν™˜ν•˜λŠ” CLI κΈ°λŠ₯을 ν¬ν•¨ν•œλ‹€ [28-30]. - **Mystic (Pipeline AI):** μ‚¬μš©μžμ˜ API JSON을 파이썬 μ—”λ“œν¬μΈνŠΈ 내에 μ£Όμž…ν•˜μ—¬ μ„œλ²„λ¦¬μŠ€ ν™˜κ²½μ—μ„œ μ‹€ν–‰ν•˜λŠ” ν…œν”Œλ¦Ώμ„ μ œκ³΅ν•œλ‹€ [14, 31]. ## βœ… 검증 μƒνƒœ 및 신뒰도 - **μƒνƒœ:** draft - **검증 단계:** conceptual - **좜처 신뒰도:** B (곡식 λ¬Έμ„œ 및 μ˜€ν”ˆμ†ŒμŠ€ ν”„λ‘œμ νŠΈ μ½”λ“œ 기반) [23, 32] - **쀑볡 검사 κ²°κ³Ό:** μ‹ κ·œ 생성 ## πŸ”— κ΄€λ ¨ λ¬Έμ„œ 링크 (Related document links) ### μƒμœ„/μœ μ‚¬ κ°œλ… #### [μ•„ν‚€ν…μ²˜/기반 기술] - [[Frontend Format]] - μ—°κ²° 이유: API 포맷과 λŒ€μ‘°λ˜λŠ” μ‹œκ°μ  νŽΈμ§‘μš© 데이터 κ΅¬μ‘°μž„. [1, 2] - 이 κ°œλ…μ„ 톡해 더 깊게 이해할 수 μžˆλŠ” λΆ€λΆ„: 메타데이터 뢄리 μ „λž΅ 및 Litegraph ν‘œμ€€μ˜ ν•œκ³„. [1, 33] - [[Directed Acyclic Graph (DAG)]] - μ—°κ²° 이유: ComfyUI μ›Œν¬ν”Œλ‘œκ°€ μ§λ ¬ν™”λ˜λŠ” 근본적인 논리 κ΅¬μ‘°μž„. [34] - 이 κ°œλ…μ„ 톡해 더 깊게 이해할 수 μžˆλŠ” λΆ€λΆ„: λ…Έλ“œ μ‹€ν–‰ μˆœμ„œμ™€ 데이터 흐름 μ œμ–΄ 원리. [34, 35] #### [κ΅¬ν˜„/ν™œμš© 도ꡬ] - [[ComfyUI-to-Python-Extension]] - μ—°κ²° 이유: API JSON을 파이썬 μ½”λ“œλ‘œ λ³€ν™˜ν•˜λŠ” 직접적인 λ„κ΅¬μž„. [28] - 이 κ°œλ…μ„ 톡해 더 깊게 이해할 수 μžˆλŠ” λΆ€λΆ„: JSON 객체가 μ‹€μ œ 파이썬 ν•¨μˆ˜ 호좜둜 λ§€ν•‘λ˜λŠ” κ³Όμ •. [29, 36] - [[ComfyUI Manager]] - μ—°κ²° 이유: API 포맷 λ‘œλ“œ μ‹œ λ°œμƒν•˜λŠ” μ»€μŠ€ν…€ λ…Έλ“œ λˆ„λ½ 문제λ₯Ό ν•΄κ²°ν•˜λŠ” ν•„μˆ˜ λ„κ΅¬μž„. [37, 38] - 이 κ°œλ…μ„ 톡해 더 깊게 이해할 수 μžˆλŠ” λΆ€λΆ„: 쒅속성 관리 및 `class_type` 기반의 λ…Έλ“œ 볡ꡬ λ©”μ»€λ‹ˆμ¦˜. [37, 39] ### 심측 후속 질문 (Deeper Research Questions) - API ν¬λ§·μ—μ„œ λ…Έλ“œ IDκ°€ λ‹¨μˆœν•œ 숫자 λ¬Έμžμ—΄μ„ λ„˜μ–΄ κΈ°λŠ₯적 ν‚€(Functional Key)둜 μž‘λ™ν•  λ•Œ, λŒ€κ·œλͺ¨ μ›Œν¬ν”Œλ‘œμ—μ„œ ID μΆ©λŒμ„ λ°©μ§€ν•˜λŠ” λ‚΄λΆ€ λ©”μ»€λ‹ˆμ¦˜μ€ 무엇인가? [1, 2] - `workflow_api.json`에 ν¬ν•¨λœ `_meta` ν•„λ“œλŠ” μ‹€ν–‰ μ—”μ§„μ—μ„œ μ–΄λ–€ ꡬ체적인 역할을 μˆ˜ν–‰ν•˜λ©°, ν•„μˆ˜ μš”μ†ŒμΈκ°€? [9] - μ„œλΈŒκ·Έλž˜ν”„(Subgraph)κ°€ μ€‘μ²©λœ μ›Œν¬ν”Œλ‘œλ₯Ό API 포맷으둜 내보낼 λ•Œ, λ‚΄λΆ€ 링크 ID와 μ™ΈλΆ€ 링크 ID의 μΆ©λŒμ„ μ²˜λ¦¬ν•˜λŠ” μ•Œκ³ λ¦¬μ¦˜μ€ μ–΄λ–»κ²Œ μ„€κ³„λ˜μ–΄ μžˆλŠ”κ°€? [40] - API 포맷 λ‚΄μ˜ `inputs` ν•„λ“œμ—μ„œ μœ„μ ― κ°’(`widgets_values`)κ³Ό 동적 링크 연결을 κ΅¬λΆ„ν•˜μ—¬ μ²˜λ¦¬ν•˜λŠ” ꡬ문 뢄석 λ‘œμ§μ€ 무엇인가? [7, 41] - `exiftool`κ³Ό 같은 μ™ΈλΆ€ CLI 도ꡬλ₯Ό μ‚¬μš©ν•˜μ—¬ PNGμ—μ„œ API JSON을 μΆ”μΆœν•  λ•Œ, 메타데이터 손상을 λ³΅κ΅¬ν•˜κ±°λ‚˜ 검증할 수 μžˆλŠ” ν‘œμ€€ μŠ€ν‚€λ§ˆκ°€ μ‘΄μž¬ν•˜λŠ”κ°€? [42, 43] ### 싀무 적용 λ§₯락 (Practical Application Contexts) - **Implementation:** 파이썬 `json` 라이브러리λ₯Ό μ‚¬μš©ν•˜μ—¬ API JSON νŒŒμΌμ„ λ‘œλ“œν•˜κ³ , νŠΉμ • λ…Έλ“œ ID의 μž…λ ₯값을 μˆ˜μ •ν•œ λ’€ μ„œλ²„μ˜ `/prompt` μ—”λ“œν¬μΈνŠΈλ‘œ POST μš”μ²­μ„ 보내 μžλ™ν™”λ₯Ό κ΅¬ν˜„ν•œλ‹€ [8, 10, 18]. - **System Design:** ν”„λ‘ νŠΈμ—”λ“œ νŽΈμ§‘ 도ꡬ와 λ°±μ—”λ“œ μ‹€ν–‰κΈ°λ₯Ό λΆ„λ¦¬ν•˜μ—¬, μ‚¬μš©μžλŠ” μ›Ή UIμ—μ„œ νŽΈμ§‘ν•˜κ³  μ‹€μ œ 운영 ν™˜κ²½μ—μ„œλŠ” κ²½λŸ‰ν™”λœ API JSON만 μ‚¬μš©ν•˜μ—¬ λ¦¬μ†ŒμŠ€λ₯Ό μ΅œμ ν™”ν•œλ‹€ [1, 44]. - **Operation / Maintenance:** API JSONμ—λŠ” λͺ¨λΈ 체크포인트의 이름이 ν•˜λ“œμ½”λ”©λ˜λ―€λ‘œ, μ„œλ²„ κ°„ λͺ¨λΈ 곡유 μ‹œ 파일λͺ… 뢈일치 문제λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄ λͺ¨λΈ ν•΄μ‹±(SHA-256) 기술과 ν•¨κ»˜ μš΄μš©ν•œλ‹€ [45, 46]. - **Learning Path:** λ¨Όμ € GUIμ—μ„œ μ›Œν¬ν”Œλ‘œλ₯Ό μ™„μ„±ν•œ ν›„, 개발자 λͺ¨λ“œλ₯Ό 톡해 API 포맷을 내보내고 κ·Έ ꡬ쑰λ₯Ό λΆ„μ„ν•˜μ—¬ ν”„λ‘œκ·Έλž˜λ° λ°©μ‹μ˜ μ œμ–΄ λ‹¨κ³„λ‘œ λ„˜μ–΄κ°€λŠ” 것이 ν‘œμ€€ ν•™μŠ΅ κ²½λ‘œμ΄λ‹€ [14, 47]. ### 인접 μ£Όλ³€ 주제 (Adjacent Topics) - [[Node Definitions]] - ν™•μž₯ λ°©ν–₯: API 포맷 λ‚΄ `class_type`이 μ°Έμ‘°ν•˜λŠ” 각 λ…Έλ“œμ˜ μž…λ ₯/좜λ ₯ νƒ€μž… μ •μ˜ 연ꡬ. [43] - [[Execution Model Inversion]] - ν™•μž₯ λ°©ν–₯: API JSON 전체 쀑 ν•„μš”ν•œ λ…Έλ“œλ§Œ μ„ νƒμ μœΌλ‘œ μ‹€ν–‰ν•˜λŠ” λ°±μ—”λ“œ μ΅œμ ν™” 원리 이해. [32, 48] ## πŸ“ λ³€κ²½ 이λ ₯ (Change history) - 2026-05-19: Initial draft generated via Datacollector_MAC P-Reinforce engine. 기반 μ†ŒμŠ€ 18개 μ’…ν•© 뢄석 μ™„λ£Œ. [1-186]