--- id: comfyui-api-integration title: "ComfyUI API Integration" category: "10_Wiki/Topics" status: "draft" verification_status: "conceptual" canonical_id: "" aliases: [] duplicate_of: "" source_trust_level: "B" confidence_score: 0.85 created_at: 2026-05-20 updated_at: 2026-05-20 review_reason: "" merge_history: [] tags: ["research", "Comfyui workflow json ์ƒ์„ฑ ๋ฐฉ๋ฒ•"] raw_sources: ["NotebookLM Synthesis"] applied_in: ["comfyui-workflow-to-api-converter-endpoint/README.md", "pydn/ComfyUI-to-Python-Extension", "deimos-deimos/comfy_api_simplified/examples", "Mystic/pipeline.yaml", "Mystic/new_pipeline.py", "DanielPFlorian/ComfyUI-WorkflowGenerator"] github_commit: "" --- # [[ComfyUI API Integration]] ## ๐ŸŽฏ ํ•œ ์ค„ ํ†ต์ฐฐ (One-line insight) ComfyUI API Integration์€ ์‹œ๊ฐ์  ๋…ธ๋“œ ๊ทธ๋ž˜ํ”„๋ฅผ ์‹คํ–‰ ์ตœ์ ํ™”๋œ **API JSON(Backend Format)**์œผ๋กœ ์ง๋ ฌํ™”ํ•˜์—ฌ, ์™ธ๋ถ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ ์„œ๋ฒ„๋ฆฌ์Šค ํ™˜๊ฒฝ์—์„œ ์ƒ์„ฑ AI ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ์‹์œผ๋กœ ์ž๋™ํ™”ํ•˜๊ณ  ํ™•์žฅํ•˜๋Š” ํ•ต์‹ฌ ๋งค๊ฐœ์ฒด์ด๋‹ค [1-3]. ## ๐Ÿง  ํ•ต์‹ฌ ๊ฐœ๋… (Core concepts) - **์›Œํฌํ”Œ๋กœ์šฐ ํฌ๋งท์˜ ์ด๋ถ„ํ™” (Bifurcation):** ์‚ฌ์šฉ์ž์˜ ์‹œ๊ฐ์  ํŽธ์ง‘์„ ์œ„ํ•œ 'Frontend Format(workflow.json)'๊ณผ ์„œ๋ฒ„ ์‹คํ–‰์„ ์œ„ํ•ด UI ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ฑฐํ•œ 'API Format(workflow_api.json)'์œผ๋กœ ๊ตฌ๋ถ„๋œ๋‹ค [2, 4-6]. - **API JSON ์ง๋ ฌํ™”:** ๋…ธ๋“œ ์œ„์น˜, ํฌ๊ธฐ, ๊ทธ๋ฃน ๋“ฑ ์‹œ๊ฐ์  ์ •๋ณด๋ฅผ ๋ฐฐ์ œํ•˜๊ณ  ๋…ธ๋“œ ํด๋ž˜์Šค(class_type), ์ž…๋ ฅ ๋งค๊ฐœ๋ณ€์ˆ˜(inputs), ๋…ธ๋“œ ๊ฐ„ ์—ฐ๊ฒฐ ๊ด€๊ณ„๋งŒ์„ ํฌํ•จํ•˜๋Š” ์••์ถ•๋œ ์‹คํ–‰ ๊ทธ๋ž˜ํ”„์ด๋‹ค [2, 6, 7]. - **๊ฐœ๋ฐœ์ž ๋ชจ๋“œ (Dev Mode):** ํ‘œ์ค€ UI์—์„œ๋Š” ์ˆจ๊ฒจ์ ธ ์žˆ์œผ๋ฉฐ, ์„ค์ •์—์„œ ํ™œ์„ฑํ™”ํ•ด์•ผ๋งŒ API ์ „์šฉ JSON์„ ๋‚ด๋ณด๋‚ผ ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ด ํ™œ์„ฑํ™”๋œ๋‹ค [8-12]. - **์—”๋“œํฌ์ธํŠธ ์—ฐ๋™:** ์ƒ์„ฑ๋œ API JSON์€ ComfyUI ์„œ๋ฒ„์˜ `/prompt` ์—”๋“œํฌ์ธํŠธ๋กœ ์ „์†ก๋˜์–ด ์‹ค์ œ ์ด๋ฏธ์ง€๋‚˜ ๋ฏธ๋””์–ด ์ƒ์„ฑ ๋ช…๋ น์œผ๋กœ ๋ณ€ํ™˜๋œ๋‹ค [2, 4, 12, 13]. ## ๐Ÿงฉ ์ถ”์ถœ๋œ ํŒจํ„ด (Extracted patterns) - **๊ฐœ๋ฐœ์ž ๋ชจ๋“œ ํ™œ์„ฑํ™” ํŒจํ„ด:** `Settings` ์•„์ด์ฝ˜ ํด๋ฆญ โ†’ `Enable Dev mode Options` ์ฒดํฌ โ†’ ๋ฉ”๋‰ด์˜ `Save (API Format)` ๋ฒ„ํŠผ ์‚ฌ์šฉ [8-11, 14]. - **๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์ถ”์ถœ ํŒจํ„ด:** PNG/WebP ์ด๋ฏธ์ง€์˜ `tEXt` ๋˜๋Š” `zTXt` ์ฒญํฌ์— ํฌํ•จ๋œ JSON ๋ฐ์ดํ„ฐ๋ฅผ `exiftool`์ด๋‚˜ ์ „์šฉ ์ถ”์ถœ ๋„๊ตฌ๋ฅผ ํ†ตํ•ด ๋ณต๊ตฌํ•˜์—ฌ ์žฌ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹ [15-18]. - **๋™์  ํ…œํ”Œ๋ฆฟ ํŒจํ„ด:** ๊ธฐ๋ณธ JSON ํŒŒ์ผ์„ ๋กœ๋“œํ•œ ํ›„ Python ๋”•์…”๋„ˆ๋ฆฌ ์กฐ์ž‘์„ ํ†ตํ•ด ํŠน์ • ๋…ธ๋“œ ID์˜ `seed`, `prompt`, `image` ๋“ฑ์˜ ๊ฐ’์„ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ณ€๊ฒฝํ•˜์—ฌ ํ์— ์‚ฝ์ž…ํ•˜๋Š” ์ „๋žต [13, 19, 20]. - **๊ณ ์œ  ์‹๋ณ„์ž(ID) ํƒ€๊ฒŸํŒ…:** ๊ฐ ๋…ธ๋“œ์— ๋ถ€์—ฌ๋œ ์ˆซ์žํ˜• ๋ฌธ์ž์—ด ํ‚ค(์˜ˆ: "37")๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŠน์ • ๋…ธ๋“œ์˜ ์ž…๋ ฅ ํ•„๋“œ์— ์ ‘๊ทผํ•˜๋Š” ํŒจํ„ด [5, 20]. ## ๐Ÿ“– ์„ธ๋ถ€ ๋‚ด์šฉ (Details) ComfyUI ์›Œํฌํ”Œ๋กœ์šฐ JSON์€ ์ƒ์„ฑ AI ํ”„๋กœ์„ธ์Šค๋ฅผ **์œ ํ–ฅ ๋น„์ˆœํ™˜ ๊ทธ๋ž˜ํ”„(DAG)**๋กœ ์ •์˜ํ•˜๋ฉฐ, ์ด๋ฅผ ์ง๋ ฌํ™”ํ•จ์œผ๋กœ์จ ์ด์‹์„ฑ๊ณผ ์ž๋™ํ™”๋ฅผ ์‹คํ˜„ํ•œ๋‹ค [1]. ### 1. ์›Œํฌํ”Œ๋กœ์šฐ JSON์˜ ์ฃผ์š” ์œ ํ˜• ๋ฐ ๊ตฌ์กฐ - **Frontend JSON (workflow.json):** Litegraph ํ‘œ์ค€์„ ๋”ฐ๋ฅด๋ฉฐ ๋…ธ๋“œ ์ขŒํ‘œ, ๊ทธ๋ฃนํ™”, ์ƒ‰์ƒ ๋“ฑ ์บ”๋ฒ„์Šค ๋ ˆ์ด์•„์›ƒ ์ •๋ณด๋ฅผ ํฌํ•จํ•œ๋‹ค [2, 5, 21]. - **API JSON (workflow_api.json):** ๋ฐฑ์—”๋“œ ์—”์ง„์ด ํ”„๋กฌํ”„ํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋…ผ๋ฆฌ์  ์—ฐ๊ฒฐ๋งŒ ๋‚จ๊ธด ํšจ์œจ์ ์ธ ๊ทธ๋ž˜ํ”„์ด๋‹ค [2, 4, 6]. ๋งํฌ๋Š” ๋ณ„๋„ ๊ฐ์ฒด๊ฐ€ ์•„๋‹Œ ๋…ธ๋“œ ์ž…๋ ฅ ๋‚ด์— ์ง์ ‘ ์ž„๋ฒ ๋”ฉ๋œ๋‹ค [2, 22]. - **๊ตฌ์กฐ์  ์ œ์•ฝ:** JSON v1.0 ์Šคํ‚ค๋งˆ์— ๋”ฐ๋ผ ๊ฐ ๋…ธ๋“œ๋Š” ๊ณ ์œ  `id`, `type`, `inputs`, `outputs`๋ฅผ ๊ฐ€์ ธ์•ผ ํ•˜๋ฉฐ, ์‹คํ–‰ ์—”์ง„์€ ์ถœ๋ ฅ ๋…ธ๋“œ์—์„œ ์—ญ๋ฐฉํ–ฅ์œผ๋กœ ๊ทธ๋ž˜ํ”„๋ฅผ ํƒ์ƒ‰ํ•˜์—ฌ ํ•„์š”ํ•œ ์˜์กด์„ฑ๋งŒ ์‹คํ–‰ํ•˜๋Š” '์‹คํ–‰ ๋ชจ๋ธ ๋ฐ˜์ „' ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•œ๋‹ค [23-25]. ### 2. JSON ์ƒ์„ฑ ๋ฐ ํš๋“ ๋ฐฉ๋ฒ• - **์ˆ˜๋™ ๋‚ด๋ณด๋‚ด๊ธฐ:** ์›น ์ธํ„ฐํŽ˜์ด์Šค์—์„œ ๊ฐœ๋ฐœ์ž ๋ชจ๋“œ๋ฅผ ํ™œ์„ฑํ™”ํ•œ ํ›„ ์ „์šฉ ์ €์žฅ ๋ฒ„ํŠผ์„ ์‚ฌ์šฉํ•œ๋‹ค [8, 9, 11]. - **์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ถ”์ถœ:** ComfyUI๊ฐ€ ์ƒ์„ฑํ•œ PNG ํŒŒ์ผ์—๋Š” ์›Œํฌํ”Œ๋กœ์šฐ๊ฐ€ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋กœ ์ž๋™ ์ €์žฅ๋˜๋ฏ€๋กœ, ์ด๋ฅผ ๋“œ๋ž˜๊ทธ ์•ค ๋“œ๋กญํ•˜๊ฑฐ๋‚˜ `exiftool` ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ๋‹ค [15, 17, 26-28]. - **์ž์—ฐ์–ด ๊ธฐ๋ฐ˜ ์ƒ์„ฑ:** LLM(์˜ˆ: Qwen2.5-14B)์„ ์‚ฌ์šฉํ•˜์—ฌ ์ž์—ฐ์–ด ์„ค๋ช…์„ ๋…ผ๋ฆฌ์  ๊ทธ๋ž˜ํ”„ ๊ตฌ์กฐ๋กœ ํ•ฉ์„ฑํ•˜๊ณ  ๋กœ์ปฌ ๋…ธ๋“œ ์นดํƒˆ๋กœ๊ทธ์™€ ๋Œ€์กฐํ•˜์—ฌ ์œ ํšจํ•œ JSON์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐฉ์‹์ด ๋„์ž…๋˜์—ˆ๋‹ค [29-32]. ### 3. ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ์‹์˜ ํ†ตํ•ฉ ๋ฐ ๋ณ€ํ™˜ - **Python ์ง์ ‘ ์กฐ์ž‘:** Python์˜ `json` ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋…ธ๋“œ ID๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ…์ŠคํŠธ๋‚˜ ์ด๋ฏธ์ง€ ๋ฐ์ดํ„ฐ๋ฅผ ์—…๋ฐ์ดํŠธํ•œ๋‹ค [19, 20]. ์ด๋ฏธ์ง€๋Š” ์ฃผ๋กœ Base64๋กœ ์ธ์ฝ”๋”ฉ๋˜์–ด JSON ๋‚ด์— ์ง์ ‘ ํฌํ•จ๋œ๋‹ค [13, 33]. - **์ถ”์ƒํ™” ๋ž˜ํผ:** `comfy_api_simplified`์™€ ๊ฐ™์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ์ˆซ์ž ID ๋Œ€์‹  ๋…ธ๋“œ ์ œ๋ชฉ์œผ๋กœ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•˜๊ฒŒ ํ•˜์—ฌ ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ๋†’์ธ๋‹ค [34, 35]. - **์Šคํฌ๋ฆฝํŠธ ๋ณ€ํ™˜:** `ComfyUI-to-Python-Extension`์€ JSON ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ๋…๋ฆฝํ˜• `.py` ์Šคํฌ๋ฆฝํŠธ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ํ—ค๋“œ๋ฆฌ์Šค ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค [34, 36, 37]. ### 4. API ๊ธฐ๋ฐ˜ ์ž๋™ํ™” ๋ฐ ๋ฐฐํฌ - **์„œ๋ฒ„๋ฆฌ์Šค ํ”Œ๋žซํผ:** Replicate๋‚˜ Mystic ๊ฐ™์€ ์„œ๋น„์Šค๋Š” API JSON ๋ธ”๋กญ์„ ์ž…๋ ฅ๋ฐ›์•„ ํด๋ผ์šฐ๋“œ GPU์—์„œ ์‹คํ–‰ํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ์—”๋“œํฌ์ธํŠธ๋ฅผ ์ œ๊ณตํ•œ๋‹ค [9, 38-40]. - **์˜์กด์„ฑ ๊ด€๋ฆฌ:** JSON ๋กœ๋“œ ์‹œ ๋ˆ„๋ฝ๋œ ์ปค์Šคํ…€ ๋…ธ๋“œ๋Š” '๋นจ๊ฐ„ ๋ฐ•์Šค'๋กœ ํ‘œ์‹œ๋˜๋ฉฐ, `ComfyUI-Manager`๋ฅผ ํ†ตํ•ด ์ž๋™์œผ๋กœ ์‹๋ณ„ ๋ฐ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๋‹ค [41-43]. ## โš–๏ธ ๋ชจ์ˆœ ๋ฐ ์—…๋ฐ์ดํŠธ (Contradictions & updates) - **ํฌ๋งท ํ˜ธํ™˜์„ฑ ๋ฌธ์ œ:** ํ‘œ์ค€ ์ €์žฅ ๋ฐฉ์‹์œผ๋กœ ์ƒ์„ฑ๋œ JSON์€ API ์—”๋“œํฌ์ธํŠธ์—์„œ ์˜ค๋ฅ˜๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๋ฏ€๋กœ ๋ฐ˜๋“œ์‹œ API ํฌ๋งท์œผ๋กœ์˜ ๋ณ€ํ™˜์ด ํ•„์š”ํ•˜๋‹ค [12]. - **๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์†์‹ค:** ์†Œ์…œ ๋ฏธ๋””์–ด๋‚˜ ์ด๋ฏธ์ง€ ํŽธ์ง‘๊ธฐ(GIMP ๋“ฑ)๋ฅผ ํ†ตํ•ด ์ด๋ฏธ์ง€๋ฅผ ์ „์†ก ๋˜๋Š” ์ˆ˜์ •ํ•  ๊ฒฝ์šฐ ์›Œํฌํ”Œ๋กœ์šฐ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๊ฐ€ ์‚ญ์ œ๋  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒฝ๊ณ ๊ฐ€ ๋ฐ˜๋ณต์ ์œผ๋กœ ํ™•์ธ๋œ๋‹ค [16, 26, 44, 45]. - **๋…ธ๋“œ ID ๋ณ€๋™์„ฑ:** ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ UI์—์„œ ์ˆ˜์ •ํ•˜๋ฉด ๋…ธ๋“œ ID๊ฐ€ ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ์–ด, ํ•˜๋“œ์ฝ”๋”ฉ๋œ Python ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ํŒŒ์†๋  ์œ„ํ—˜์ด ์กด์žฌํ•œ๋‹ค [19, 34]. ์ด์— ๋Œ€ํ•œ ํ•ด๊ฒฐ์ฑ…์œผ๋กœ ๋…ธ๋“œ ์ œ๋ชฉ ๊ธฐ๋ฐ˜ ๋งคํ•‘์ด ๊ถŒ์žฅ๋œ๋‹ค [34, 35]. ## ๐Ÿ› ๏ธ ์ ์šฉ ์‚ฌ๋ก€ (Applied in summary) - **์„œ๋ฒ„ ์ธก ๋ณ€ํ™˜ ์—”๋“œํฌ์ธํŠธ:** `comfyui-workflow-to-api-converter-endpoint`๋Š” ํด๋ผ์ด์–ธํŠธ ์ธก์˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋กœ์ง์„ ํŒŒ์ด์ฌ์œผ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ์„œ๋ฒ„์—์„œ ์ผ๋ฐ˜ JSON์„ API JSON์œผ๋กœ ์‹ค์‹œ๊ฐ„ ๋ณ€ํ™˜ํ•˜๋Š” `/workflow/convert` ์—”๋“œํฌ์ธํŠธ๋ฅผ ๊ตฌํ˜„ํ–ˆ๋‹ค [12, 46, 47]. - **๋…๋ฆฝ ์‹คํ–‰ํ˜• ์Šคํฌ๋ฆฝํŠธ ๋ณ€ํ™˜:** `pydn/ComfyUI-to-Python-Extension` ํ”„๋กœ์ ํŠธ๋Š” `Save As Script` ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ `.py` ํŒŒ์ผ๋กœ ๋‹ค์šด๋กœ๋“œํ•˜์—ฌ ์ž๋™ํ™”๋œ ์‹คํ–‰ ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ–ˆ๋‹ค [37, 48]. - **๋งค๊ฐœ๋ณ€์ˆ˜ ์Šค์ผ€์ค„๋ง:** `comfy_api_simplified` ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ์ˆ˜๋ฐฑ ๊ฐœ์˜ ์ด๋ฏธ์ง€๋ฅผ ์•ผ๊ฐ„์— ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์—ฌ๋Ÿฌ ํ”„๋กฌํ”„ํŠธ์™€ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๋ฐ˜๋ณต ์‹คํ–‰ํ•˜๋Š” ์˜ˆ์ œ ์ฝ”๋“œ๋ฅผ ์ œ๊ณตํ•œ๋‹ค [35, 49]. - **๋ฐฐ๋„ˆ ๊ด‘๊ณ  ์ž๋™ ์ƒ์„ฑ:** ComfyUI API๋ฅผ Python๊ณผ ์—ฐ๋™ํ•˜์—ฌ ์ž…๋ ฅ ์ด๋ฏธ์ง€์™€ ํ…์ŠคํŠธ๋ฅผ ๋ณ€๊ฒฝํ•˜๋ฉฐ ๋Œ€๋Ÿ‰์˜ ๊ด‘๊ณ  ์†Œ์žฌ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์‹ค์ œ ์‚ฌ๋ก€๊ฐ€ ๋ณด๊ณ ๋˜์—ˆ๋‹ค [50]. - **Mystic ํŒŒ์ดํ”„๋ผ์ธ ๋ฐฐํฌ:** `pipeline.yaml`๊ณผ `new_pipeline.py`๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ…์ŠคํŠธ-๋น„๋””์˜ค ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ์„œ๋ฒ„๋ฆฌ์Šค ์—”๋“œํฌ์ธํŠธ๋กœ ๋ฐฐํฌํ•˜๋Š” ๊ตฌ์กฐ๊ฐ€ ์ƒ์„ธํžˆ ๊ธฐ์ˆ ๋˜์—ˆ๋‹ค [51-53]. ## โœ… ๊ฒ€์ฆ ์ƒํƒœ ๋ฐ ์‹ ๋ขฐ๋„ - **์ƒํƒœ:** draft - **๊ฒ€์ฆ ๋‹จ๊ณ„:** conceptual (์‹ค์ œ ์ ์šฉ ์‚ฌ๋ก€ ๋ฐœ๊ฒฌ ์‹œ applied/validated๋กœ ์Šน๊ฒฉ ๊ฐ€๋Šฅ) - **์ถœ์ฒ˜ ์‹ ๋ขฐ๋„:** B (Official Documentation / Primary Source via NotebookLM) - **์ค‘๋ณต ๊ฒ€์‚ฌ ๊ฒฐ๊ณผ:** ์‹ ๊ทœ ์ƒ์„ฑ (New discovery) ## ๐Ÿ“ ๋ณ€๊ฒฝ ์ด๋ ฅ (Change history) - 2026-05-20: Initial draft generated via Datacollector_MAC P-Reinforce engine.