--- id: api-json title: "API JSON" category: "10_Wiki/Topics" status: "draft" verification_status: "conceptual" canonical_id: "" aliases: ["workflow_api.json", "Backend Format", "API Format"] duplicate_of: "" source_trust_level: "B" confidence_score: 0.85 created_at: 2026-05-19 updated_at: 2026-05-19 review_reason: "" merge_history: [] tags: ["research", "Comfyui workflow json 생성 방법"] raw_sources: ["NotebookLM Synthesis"] applied_in: ["ComfyUI-WorkflowGenerator", "comfyui-workflow-to-api-converter-endpoint", "ComfyUI-to-Python-Extension", "comfy_api_simplified"] github_commit: "" --- # [[API JSON]] ## 🎯 ν•œ 쀄 톡찰 (One-line insight) API JSON은 ComfyUI의 μ‹œκ°μ  μΈν„°νŽ˜μ΄μŠ€ μš”μ†Œλ₯Ό λ°°μ œν•˜κ³  순수 μ‹€ν–‰ λ‘œμ§λ§Œμ„ μΆ”μƒν™”ν•˜μ—¬ λ°±μ—”λ“œ μ—”μ§„μ˜ ν”„λ‘œκ·Έλž˜λ°μ  μ œμ–΄μ™€ μžλ™ν™”λ₯Ό κ°€λŠ₯μΌ€ ν•˜λŠ” 핡심 데이터 κ·œκ²©μ΄λ‹€ [1, 2]. ## 🧠 핡심 κ°œλ… (Core concepts) 1. **λ°±μ—”λ“œ μ‹€ν–‰ κ·Έλž˜ν”„ (Backend Execution Graph):** λ…Έλ“œ μœ„μΉ˜, 크기, κ·Έλ£Ή λ“± UI κ΄€λ ¨ 메타데이터λ₯Ό μ œκ±°ν•˜κ³  싀행에 ν•„μš”ν•œ λ…Έλ“œ νƒ€μž…κ³Ό μž…λ ₯κ°’, μ—°κ²° κ΄€κ³„λ§Œμ„ 남긴 μ½€νŒ©νŠΈν•œ ν˜•μ‹μ΄λ‹€ [1, 3]. 2. **μž„λ² λ”©λœ μ°Έμ‘° ꡬ쑰 (Reference-based Linking):** λ³„λ„μ˜ 링크 배열을 μ‚¬μš©ν•˜λŠ” ν”„λ‘ νŠΈμ—”λ“œ ν˜•μ‹κ³Ό 달리, λ…Έλ“œ μž…λ ₯ ν•„λ“œ 내에 직접 μ†ŒμŠ€ λ…Έλ“œ ID와 좜λ ₯ 슬둯 인덱슀λ₯Ό λ°°μ—΄ ν˜•νƒœλ‘œ κΈ°μˆ ν•œλ‹€ [1, 3, 4]. 3. **개발자 λͺ¨λ“œ (Dev Mode) ν™œμ„±ν™”:** ν‘œμ€€ ComfyUI ν™˜κ²½μ—μ„œ API JSON을 μΆ”μΆœν•˜κΈ° μœ„ν•΄ μ„€μ •(Settings) λ©”λ‰΄μ—μ„œ λ°˜λ“œμ‹œ μ„ ν–‰ ν™œμ„±ν™”ν•΄μ•Ό ν•˜λŠ” μ˜΅μ…˜μ΄λ‹€ [5-7]. 4. **ν”„λ‘œκ·Έλž˜λ°μ  μ—”λ“œν¬μΈνŠΈ ν˜Έν™˜μ„±:** `/prompt` μ—”λ“œν¬μΈνŠΈμ— νŽ˜μ΄λ‘œλ“œλ‘œ 직접 μ „λ‹¬λ˜μ–΄ μ„œλ²„ μΈ‘μ—μ„œ μ¦‰μ‹œ 싀행될 수 μžˆλ„λ‘ μ΅œμ ν™”λœ ꡬ쑰λ₯Ό κ°€μ§„λ‹€ [8-10]. ## 🧩 μΆ”μΆœλœ νŒ¨ν„΄ (Extracted patterns) - **Bifurcation (이원화) μ €μž₯ νŒ¨ν„΄:** μ‚¬μš©μžμ˜ μ‹œκ°μ  νŽΈμ§‘μ„ μœ„ν•œ `workflow.json`κ³Ό 기계적 싀행을 μœ„ν•œ `workflow_api.json`을 λΆ„λ¦¬ν•˜μ—¬ 각 μš©λ„μ— μ΅œμ ν™”λœ μ„±λŠ₯κ³Ό 관리 νŽΈμ˜μ„±μ„ μ œκ³΅ν•œλ‹€ [1, 8, 11]. - **Metadata Chunk 쀑볡 μ €μž₯:** μƒμ„±λœ PNG 파일의 tEXt λ˜λŠ” zTXt 청크에 ν”„λ‘ νŠΈμ—”λ“œ μ›Œν¬ν”Œλ‘œμš°μ™€ API ν”„λ‘¬ν”„νŠΈλ₯Ό λͺ¨λ‘ μ €μž₯ν•˜μ—¬, 이미지 ν•˜λ‚˜λ‘œ μ‹œκ°μ  볡원과 API 싀행을 λ™μ‹œμ— 보μž₯ν•œλ‹€ [12, 13]. - **Execution Model Inversion:** 엔진이 좜λ ₯ λ…Έλ“œμ—μ„œλΆ€ν„° μ—­λ°©ν–₯으둜 κ·Έλž˜ν”„λ₯Ό νƒμƒ‰ν•˜μ—¬ κ²°κ³Ό 생성에 ν•„μš”ν•œ λ…Έλ“œλ§Œ 선별 μ‹€ν–‰ν•¨μœΌλ‘œμ¨ 데이터 처리 νš¨μœ¨μ„ κ·ΉλŒ€ν™”ν•œλ‹€ [14]. ## πŸ“– μ„ΈλΆ€ λ‚΄μš© (Details) ### 1. 기술적 ꡬ쑰 및 사양 API JSON은 루트 ν‚€κ°€ **λ…Έλ“œ ID(λ¬Έμžμ—΄)**둜 κ΅¬μ„±λœ 단일 JSON 객체 ꡬ쑰λ₯Ό μ·¨ν•œλ‹€ [15, 16]. 각 λ…Έλ“œ κ°μ²΄λŠ” 클래슀 이름인 `class_type`κ³Ό μ‚¬μš©μž μž…λ ₯ 및 μ—°κ²° 정보λ₯Ό ν¬ν•¨ν•˜λŠ” `inputs` λ”•μ…”λ„ˆλ¦¬λ‘œ 이루어진닀 [3, 17]. λ…Έλ“œ κ°„μ˜ 연결은 `inputs` 내에 `[λ…Έλ“œ_ID, 좜λ ₯_슬둯_인덱슀]` ν˜•μ‹μ˜ λ°°μ—΄λ‘œ ν‘œν˜„λ˜μ–΄ κ·Έλž˜ν”„ ꡬ쑰λ₯Ό ν˜•μ„±ν•œλ‹€ [4, 18]. μ΄λŠ” Litegraph ν‘œμ€€μ„ λ”°λ₯΄λŠ” ν”„λ‘ νŠΈμ—”λ“œ 포맷보닀 훨씬 파일 크기가 μž‘κ³  μ²˜λ¦¬κ°€ λΉ λ₯΄λ‹€ [8]. ### 2. μˆ˜λ™ 생성 및 μΆ”μΆœ 방법 κ°€μž₯ 기본적인 생성 방법은 ComfyUI μ›Ή μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ΄μš©ν•˜λŠ” 것이닀. μ„€μ • λ©”λ‰΄μ—μ„œ **"Enable Dev mode Options"**λ₯Ό μ²΄ν¬ν•˜λ©΄ 컨트둀 νŒ¨λ„μ— **"Save (API Format)"** λ²„νŠΌμ΄ λ…ΈμΆœλ˜λ©°, 이λ₯Ό 톡해 μ¦‰μ‹œ λ‹€μš΄λ‘œλ“œ κ°€λŠ₯ν•˜λ‹€ [5, 6, 19, 20]. λ˜ν•œ, 이미 μƒμ„±λœ PNG μ΄λ―Έμ§€μ—μ„œ `exiftool`κ³Ό 같은 CLI 도ꡬλ₯Ό μ‚¬μš©ν•΄ 메타데이터에 μˆ¨κ²¨μ§„ API JSON(Prompt) 데이터λ₯Ό μΆ”μΆœν•  μˆ˜λ„ μžˆλ‹€ [21, 22]. ### 3. μžλ™ν™” 및 ν”„λ‘œκ·Έλž˜λ°μ  생성 - **LLM 기반 생성:** `ComfyUI-WorkflowGenerator`λŠ” μžμ—°μ–΄ μ§€μ‹œλ₯Ό ν•΄μ„ν•˜μ—¬ 논리적 ν•©μ„±, 의미둠적 검증, κ·Έλž˜ν”„ 컴파일 단계λ₯Ό 거쳐 μ‹€ν–‰ κ°€λŠ₯ν•œ API JSON을 μžλ™μœΌλ‘œ κ΅¬μΆ•ν•œλ‹€ [23-25]. - **동적 λ³€ν™˜:** `comfyui-workflow-to-api-converter-endpoint` μ»€μŠ€ν…€ λ…Έλ“œλŠ” μ„œλ²„μΈ‘μ—μ„œ `/workflow/convert` μ—”λ“œν¬μΈνŠΈλ₯Ό μ œκ³΅ν•˜μ—¬, μ‹œκ°μ  정보가 ν¬ν•¨λœ ν‘œμ€€ JSON을 μ‹€μ‹œκ°„μœΌλ‘œ API 포맷으둜 λ³€ν™˜ν•΄μ€€λ‹€ [10, 26, 27]. - **Python 래퍼 및 ν™•μž₯:** `comfy_api_simplified`λ‚˜ `ComfyUI-to-Python-Extension`은 API JSON을 λ‘œλ“œν•˜μ—¬ νŠΉμ • λ…Έλ“œμ˜ νŒŒλΌλ―Έν„°(μ‹œλ“œ, ν”„λ‘¬ν”„νŠΈ λ“±)λ₯Ό λ™μ μœΌλ‘œ μˆ˜μ •ν•œ ν›„ νμž‰ν•˜κ±°λ‚˜, 전체 μ›Œν¬ν”Œλ‘œμš°λ₯Ό 독립 μ‹€ν–‰ν˜• Python 슀크립트둜 λ³€ν™˜ν•˜λŠ” κΈ°λŠ₯을 μ œκ³΅ν•œλ‹€ [28-30]. ## βš–οΈ λͺ¨μˆœ 및 μ—…λ°μ΄νŠΈ (Contradictions & updates) - **버전 ν˜Έν™˜μ„± μ œν•œ:** ComfyUIλŠ” μ—…λ°μ΄νŠΈκ°€ 맀우 μž¦μ•„ 이전 λ²„μ „μ—μ„œ μƒμ„±λœ API JSON이 μ΅œμ‹  λ²„μ „μ˜ λ…Έλ“œ λ ˆμ§€μŠ€νŠΈλ¦¬λ‚˜ μŠ€ν‚€λ§ˆμ™€ μΆ©λŒν•˜μ—¬ μž‘λ™ν•˜μ§€ μ•Šμ„ κ°€λŠ₯성이 μƒμ‘΄ν•œλ‹€ [31]. - **데이터 파괴 μœ„ν—˜:** ν‘œμ€€ 이미지 νŽΈμ§‘κΈ°λ‚˜ μ†Œμ…œ λ―Έλ””μ–΄ ν”Œλž«νΌμ„ 톡해 이미지λ₯Ό κ³΅μœ ν•  경우, API JSON이 ν¬ν•¨λœ 메타데이터 청크가 μžλ™μœΌλ‘œ μ‚­μ œλ˜μ–΄ μ›Œν¬ν”Œλ‘œμš° 정보가 영ꡬ 손싀될 수 μžˆλ‹€ [12, 31]. ## πŸ› οΈ 적용 사둀 (Applied in summary) - **Mystic Python SDK 연동:** `workflow_api.json`을 μ‚¬μš©ν•˜μ—¬ ν…μŠ€νŠΈ-투-λΉ„λ””μ˜€ μ›Œν¬ν”Œλ‘œμš°λ₯Ό μ„œλ²„λ¦¬μŠ€ μ—”λ“œν¬μΈνŠΈλ‘œ λ°°ν¬ν•˜λ©°, Python μŠ€ν¬λ¦½νŠΈμ—μ„œ μž…λ ₯ ν”„λ‘¬ν”„νŠΈλ₯Ό λ™μ μœΌλ‘œ μ£Όμž…ν•œλ‹€ [32, 33]. - **Replicate API 호좜:** `fofr/any-comfyui-workflow` λͺ¨λΈμ„ 톡해 API JSON을 직접 μž…λ ₯λ°›μ•„ 원격 GPUμ—μ„œ μ›Œν¬ν”Œλ‘œμš°λ₯Ό μ‹€ν–‰ν•œλ‹€ [7, 34]. - **ComfyUI-to-Python-Extension:** CLIλ₯Ό 톡해 `workflow_api.json`을 μž…λ ₯ 파일둜 λ°›μ•„ μ‹€ν–‰ κ°€λŠ₯ν•œ `.py` 슀크립트λ₯Ό μƒμ„±ν•˜λ©°, μ΄λ•Œ `--input_file` ν”Œλž˜κ·Έλ‘œ API JSON 경둜λ₯Ό μ§€μ •ν•œλ‹€ [35, 36]. - **Lou@blog Python μ½”λ“œ:** `urllib`와 `websocket`을 μ‚¬μš©ν•˜μ—¬ API JSON의 νŠΉμ • λ…Έλ“œ ID(예: #37 TextInput)의 `inputs.text` 값을 κ΅μ²΄ν•œ ν›„ μ„œλ²„μ— μš”μ²­μ„ λ³΄λ‚΄λŠ” ꡬ쑰λ₯Ό κ΅¬ν˜„ν•˜μ˜€λ‹€ [16, 37]. ## βœ… 검증 μƒνƒœ 및 신뒰도 - **μƒνƒœ:** draft - **검증 단계:** conceptual (μ‹€μ œ 적용 사둀 λ‹€μˆ˜ λ°œκ²¬λ¨μ— 따라 μΆ”ν›„ applied/validated 승격 κ°€λŠ₯) - **좜처 신뒰도:** B (곡식 λ¬Έμ„œ 및 μ‹€μ œ μ˜€ν”ˆμ†ŒμŠ€ ν”„λ‘œμ νŠΈμ˜ README/κ΅¬ν˜„ μ½”λ“œλ₯Ό λ°”νƒ•μœΌλ‘œ 함) - **쀑볡 검사 κ²°κ³Ό:** μ‹ κ·œ 생성 (New discovery) ## πŸ“ λ³€κ²½ 이λ ₯ (Change history) - 2026-05-19: Initial draft generated via Datacollector_MAC P-Reinforce engine.