--- id: comfy-cli title: "Comfy CLI" category: "10_Wiki/Topics" status: "draft" verification_status: "conceptual" canonical_id: "" aliases: ["comfy-cli"] 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: ["Comfy-Org/comfy-cli Issue #341"] github_commit: "" --- # [[Comfy CLI]] ## ๐ŸŽฏ ํ•œ ์ค„ ํ†ต์ฐฐ (One-line insight) GUI์˜ ํ•œ๊ณ„๋ฅผ ๋„˜์–ด ํ„ฐ๋ฏธ๋„ ํ™˜๊ฒฝ์—์„œ ์›Œํฌํ”Œ๋กœ์šฐ์˜ ๋Œ€๋Ÿ‰ ๊ด€๋ฆฌ, ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๋ณต๊ตฌ ๋ฐ ์ž๋™ํ™”๋œ ์‹คํ–‰์„ ์ง€์›ํ•˜๋Š” ComfyUI ์ƒํƒœ๊ณ„์˜ ํ†ตํ•ฉ ๋ช…๋ น์ค„ ์ธํ„ฐํŽ˜์ด์Šค ๋„๊ตฌ์ด๋‹ค [1, 2]. ## ๐Ÿง  ํ•ต์‹ฌ ๊ฐœ๋… (Core concepts) 1. **ํ—ค๋“œ๋ฆฌ์Šค ์ž๋™ํ™” (Headless Automation):** ์›น ์ธํ„ฐํŽ˜์ด์Šค ์—†์ด ๋ช…๋ น์ค„์—์„œ ์ง์ ‘ ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•œ๋‹ค [3, 4]. 2. **๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๊ฐ€๊ณต ๋ฐ ๋ณต๊ตฌ:** ์ด๋ฏธ์ง€ ํŒŒ์ผ(PNG, WebP)์ด๋‚˜ ์˜์ƒ ํŒŒ์ผ(MP4)์— ํฌํ•จ๋œ ์›Œํฌํ”Œ๋กœ์šฐ JSON์„ ์ถ”์ถœ, ์‚ฝ์ž…, ๋ณต์‚ฌํ•˜๋Š” ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ์˜ ์˜์†์„ฑ์„ ๋ณด์žฅํ•œ๋‹ค [2]. 3. **๋ฐฐ์น˜ ์ฒ˜๋ฆฌ (Batch Processing):** ๋Œ€๊ทœ๋ชจ ์ด๋ฏธ์ง€ ์ €์žฅ์†Œ์—์„œ ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ์ผ๊ด„์ ์œผ๋กœ ์ถ”์ถœํ•˜๊ฑฐ๋‚˜ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ํšจ์œจ์ ์ธ ์ˆ˜๋‹จ์„ ์ œ๊ณตํ•œ๋‹ค [1, 5]. ## ๐Ÿงฉ ์ถ”์ถœ๋œ ํŒจํ„ด (Extracted patterns) - **๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๋ถ„๋ฆฌ ์ „๋žต:** `exiftool`๊ณผ ๊ฐ™์€ ํ•˜์œ„ ์ˆ˜์ค€ ๋„๊ตฌ๋ฅผ ํ˜ธ์ถœํ•˜๊ฑฐ๋‚˜ ์ „์šฉ CLI ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ†ตํ•ด ์ด๋ฏธ์ง€์˜ `tEXt` ๋˜๋Š” `zTXt` ์ฒญํฌ์—์„œ JSON ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒฉ๋ฆฌํ•˜๋Š” ํŒจํ„ด์„ ์‚ฌ์šฉํ•œ๋‹ค [1, 5, 6]. - **ํ†ตํ•ฉ ์ง€์› ๊ตฌ์กฐ:** ๊ฐœ๋ณ„์ ์œผ๋กœ ํฉ์–ด์ง„ `Workflow Extractor`, `Python API Converter` ๋“ฑ์˜ ๊ธฐ๋Šฅ์„ ํ•˜๋‚˜์˜ ํ†ตํ•ฉ๋œ CLI(comfy-cli)๋กœ ์ˆ˜๋ ดํ•˜์—ฌ ๊ด€๋ฆฌ ํšจ์œจ์„ฑ์„ ๊ทน๋Œ€ํ™”ํ•œ๋‹ค [2]. ## ๐Ÿ“– ์„ธ๋ถ€ ๋‚ด์šฉ (Details) Comfy CLI๋Š” ComfyUI์˜ ๊ฐ•๋ ฅํ•œ ๋…ธ๋“œ ๊ธฐ๋ฐ˜ ์‹œ์Šคํ…œ์„ ํ„ฐ๋ฏธ๋„ ๋ฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ™˜๊ฒฝ์œผ๋กœ ํ™•์žฅํ•˜๊ธฐ ์œ„ํ•ด ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. - **์›Œํฌํ”Œ๋กœ์šฐ ์ถ”์ถœ ๋ฐ ๊ด€๋ฆฌ:** CLI ๋„๊ตฌ๋Š” ํŠนํžˆ ๋Œ€๋Ÿ‰์˜ ์ด๋ฏธ์ง€ ํŒŒ์ผ์—์„œ ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ๋ณต๊ตฌํ•˜๋Š” ๋ฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋Š” `exiftool -b -workflow input.png > workflow.json`๊ณผ ๊ฐ™์€ ๋ช…๋ น์„ ํ†ตํ•ด ์‹œ๊ฐ์  ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ JSON ํŒŒ์ผ๋กœ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, `Comfy_UI_prompt_extractor`์™€ ๊ฐ™์€ ์ „๋ฌธ CLI ๋„๊ตฌ๋Š” ๊ธ์ •์  ํ”„๋กฌํ”„ํŠธ, API ๊ทธ๋ž˜ํ”„, UI ๋ ˆ์ด์•„์›ƒ์„ ๋ถ„๋ฆฌํ•˜์—ฌ ์ƒ์„ฑํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค [1, 5]. - **์ด๋ฏธ์ง€ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๋ณต์› ๊ธฐ๋Šฅ:** GIMP์™€ ๊ฐ™์€ ํ‘œ์ค€ ์ด๋ฏธ์ง€ ํŽธ์ง‘๊ธฐ๋‚˜ ์†Œ์…œ ๋ฏธ๋””์–ด ํ”Œ๋žซํผ์€ ํŒŒ์ผ ํฌ๊ธฐ ์ตœ์ ํ™”๋ฅผ ์œ„ํ•ด ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. CLI๋Š” ์œ ์‹ค๋œ ์›Œํฌํ”Œ๋กœ์šฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค์‹œ ์ด๋ฏธ์ง€์— ์‚ฝ์ž…(Insert)ํ•˜๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ์ด๋ฏธ์ง€๋กœ ๋ณต์‚ฌ(Copy)ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ง€์›ํ•˜์—ฌ ์›Œํฌํ”Œ๋กœ์šฐ์˜ ์ด๋™์„ฑ์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค [2, 5, 6]. - **์›Œํฌํ”Œ๋กœ์šฐ ์ „ํ™˜ ์ง€์›:** CLI ํ™˜๊ฒฝ์—์„œ [[Workflow JSON (Frontend Format)]]์„ [[Workflow API JSON (Backend Format)]]์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ฑฐ๋‚˜, ์•„์˜ˆ ๋…๋ฆฝ์ ์œผ๋กœ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ Python ์Šคํฌ๋ฆฝํŠธ๋กœ ๋‚ด๋ณด๋‚ด๋Š” ๊ธฐ๋Šฅ์„ ๊ฒฐํ•ฉํ•˜์—ฌ ์™ธ๋ถ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ์˜ ์—ฐ๋™์„ ์šฉ์ดํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค [7, 8]. - **์„ค์น˜ ๋ฐ ์‹œ์Šคํ…œ ๊ด€๋ฆฌ:** Comfy CLI๋Š” ComfyUI ์„ค์น˜ ๊ฐ€์ด๋“œ์˜ ์ฃผ์š” ํ•ญ๋ชฉ์œผ๋กœ ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉฐ, ์‹œ์Šคํ…œ ์ƒํƒœ ํ™•์ธ(GPU VRAM, Python ๋ฒ„์ „ ๋“ฑ) ๋ฐ ๋…ธ๋“œ ์นดํƒˆ๋กœ๊ทธ ์—…๋ฐ์ดํŠธ๋ฅผ ์œ„ํ•œ ๋„๊ตฌ๋กœ๋„ ํ™œ์šฉ๋ฉ๋‹ˆ๋‹ค [9-11]. ## โš–๏ธ ๋ชจ์ˆœ ๋ฐ ์—…๋ฐ์ดํŠธ (Contradictions & updates) - **๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์†์ƒ ์ฃผ์˜:** ์ˆ˜๋™ ๋“œ๋ž˜๊ทธ ์•ค ๋“œ๋กญ ๋ฐฉ์‹๊ณผ ๋‹ฌ๋ฆฌ CLI ๋„๊ตฌ๋Š” ๋Œ€๋Ÿ‰ ์ฒ˜๋ฆฌ์— ์œ ๋ฆฌํ•˜์ง€๋งŒ, ์••์ถ• ์†Œํ”„ํŠธ์›จ์–ด๋‚˜ ๋„คํŠธ์›Œํฌ ์ „์†ก ๊ณผ์ •์—์„œ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๊ฐ€ ์˜๊ตฌ์ ์œผ๋กœ ์ œ๊ฑฐ๋œ ๊ฒฝ์šฐ์—๋Š” CLI๋กœ๋„ ๋ณต๊ตฌ๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ํ•œ๊ณ„๊ฐ€ ์†Œ์Šค์—์„œ ์ง€์ ๋ฉ๋‹ˆ๋‹ค [6, 12]. - **๊ธฐ๋Šฅ ํ†ตํ•ฉ ์ง„ํ–‰ํ˜•:** ํ˜„์žฌ `comfy-cli`๋Š” ์ด๋ฏธ์ง€์—์„œ ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ์ถ”์ถœ, ์‚ฝ์ž…, ๋ณต์‚ฌํ•˜๋Š” ๊ธฐ๋Šฅ์„ ํฌํ•จํ•˜๋„๋ก ๊ฐœ๋ฐœ ๋ฐ ์ œ์•ˆ ๋‹จ๊ณ„์— ์žˆ์œผ๋ฉฐ, ์ด๋Š” ๊ธฐ์กด์˜ ์—ฌ๋Ÿฌ ๊ฐœ๋ณ„ CLI ๋„๊ตฌ๋“ค์„ ๋Œ€์ฒดํ•˜๊ฑฐ๋‚˜ ํ†ตํ•ฉํ•˜๋ ค๋Š” ์‹œ๋„๋กœ ๋ถ„์„๋ฉ๋‹ˆ๋‹ค [2, 5]. ## ๐Ÿ› ๏ธ ์ ์šฉ ์‚ฌ๋ก€ (Applied in summary) - **Comfy-Org/comfy-cli Issue #341:** ์ด๋ฏธ์ง€, WebP, MP4 ๋“ฑ ์ง€์›๋˜๋Š” ๋ชจ๋“  ๋งค์ฒด์—์„œ ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ์ถ”์ถœ, ์‚ฝ์ž…, ๋ณต์‚ฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ `comfy-cli`์— ํฌํ•จ์‹œํ‚ค๊ธฐ ์œ„ํ•œ ๊ธฐ๋Šฅ ์ œ์•ˆ ๋ฐ ๋…ผ์˜๊ฐ€ ์ง„ํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค [2, 13]. - **๋ฐฐ์น˜ ์›Œํฌํ”Œ๋กœ์šฐ ๋ณต๊ตฌ:** ๋Œ€๊ทœ๋ชจ AI ์•„ํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ๋””์ง€ํ„ธ ํฌ๋ Œ์‹ ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ ์ƒ์„ฑ ๊ธฐ์ˆ ์„ ์œ ์ง€ํ•˜๊ณ  ๊ฒ€์ƒ‰ ๊ฐ€๋Šฅํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐ ํ™œ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค [1]. ## โœ… ๊ฒ€์ฆ ์ƒํƒœ ๋ฐ ์‹ ๋ขฐ๋„ - **์ƒํƒœ:** draft - **๊ฒ€์ฆ ๋‹จ๊ณ„:** conceptual (๊ณต์‹ ๋ฌธ์„œ ๋ฐ ๊ฐœ๋ฐœ์ž ์ปค๋ฎค๋‹ˆํ‹ฐ์˜ ๊ธฐ๋Šฅ ์ œ์•ˆ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ž‘์„ฑ๋จ) - **์ถœ์ฒ˜ ์‹ ๋ขฐ๋„:** B (Official Documentation / GitHub Issue Discussion) - **์ค‘๋ณต ๊ฒ€์‚ฌ ๊ฒฐ๊ณผ:** ์‹ ๊ทœ ์ƒ์„ฑ (New discovery) ## ๐Ÿ”— ๊ด€๋ จ ๋ฌธ์„œ ๋งํฌ (Related document links) ### ์ƒ์œ„/์œ ์‚ฌ ๊ฐœ๋… #### [์•„ํ‚คํ…์ฒ˜ ๋ฐ ๊ธฐ๋ฐ˜ ๊ธฐ์ˆ ] - [[Comfyui workflow json ์ƒ์„ฑ ๋ฐฉ๋ฒ•]] - ์—ฐ๊ฒฐ ์ด์œ : CLI๋ฅผ ํ†ตํ•ด JSON ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ์ƒ์„ฑ ๋ฐ ๊ด€๋ฆฌํ•˜๋Š” ์ƒ์œ„ ์ฃผ์ œ์ž„. - ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: GUI ์ด์™ธ์˜ ์›Œํฌํ”Œ๋กœ์šฐ ํš๋“ ๊ฒฝ๋กœ. - [[Workflow API JSON (Backend Format)]] - ์—ฐ๊ฒฐ ์ด์œ : CLI ๋„๊ตฌ๊ฐ€ ์ตœ์ข…์ ์œผ๋กœ ์‹คํ–‰์„ ์œ„ํ•ด ๋ณ€ํ™˜ํ•˜๊ฑฐ๋‚˜ ์ถ”์ถœํ•ด์•ผ ํ•˜๋Š” ํƒ€๊ฒŸ ํ˜•์‹์ž„. #### [๊ตฌํ˜„ ๋ฐ ํ™œ์šฉ ๋„๊ตฌ] - [[ComfyUI-to-Python-Extension]] - ์—ฐ๊ฒฐ ์ด์œ : CLI ๋ช…๋ น์„ ํ†ตํ•ด ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ Python ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ์œ ์‚ฌํ•œ ํ„ฐ๋ฏธ๋„ ๊ธฐ๋ฐ˜ ๋„๊ตฌ์ž„. - [[ComfyUI-Manager]] - ์—ฐ๊ฒฐ ์ด์œ : CLI์—์„œ ๋ˆ„๋ฝ๋œ ์ปค์Šคํ…€ ๋…ธ๋“œ๋ฅผ ๊ฐ์ง€ํ•˜๊ณ  ์ข…์†์„ฑ์„ ํ•ด๊ฒฐํ•  ๋•Œ ์ƒํ˜ธ ๋ณด์™„์ ์œผ๋กœ ์ž‘๋™ํ•จ. ### ์‹ฌ์ธต ํ›„์† ์งˆ๋ฌธ (Deeper Research Questions) - `comfy-cli`๊ฐ€ ์ด๋ฏธ์ง€ ์™ธ์— ์˜์ƒ(MP4) ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์—์„œ ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ์ถ”์ถœํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ตฌ์ฒด์ ์ธ ํƒœ๊ทธ ๊ตฌ์กฐ๋Š” ๋ฌด์—‡์ธ๊ฐ€? - `exiftool`์„ ์ด์šฉํ•œ ์ˆ˜๋™ ์ถ”์ถœ ๋ฐฉ์‹๊ณผ `comfy-cli` ์ „์šฉ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•œ ์ถ”์ถœ ๋ฐฉ์‹ ์‚ฌ์ด์˜ ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ ์ฐจ์ด๋Š” ์กด์žฌํ•˜๋Š”๊ฐ€? - CLI ํ™˜๊ฒฝ์—์„œ [[Workflow JSON (Frontend Format)]]์„ ๊ฑฐ์น˜์ง€ ์•Š๊ณ  ์ง์ ‘ API ์ „์šฉ JSON์„ ์ด๋ฏธ์ง€์— ์‚ฝ์ž…ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•œ๊ฐ€? - ๋Œ€๊ทœ๋ชจ ๋ฐฐ์น˜ ์ฒ˜๋ฆฌ ์‹œ ๋…ธ๋“œ ID์˜ ์ถฉ๋Œ์ด๋‚˜ ์ข…์†์„ฑ ๋ฌธ์ œ๋ฅผ CLI์—์„œ ์–ด๋–ป๊ฒŒ ์ž๋™์œผ๋กœ ํ•ด๊ฒฐํ•˜๋Š”๊ฐ€? - CLI ๋„๊ตฌ๊ฐ€ ์™ธ๋ถ€ ์ด๋ฏธ์ง€ ํŽธ์ง‘๊ธฐ(GIMP ๋“ฑ)์— ์˜ํ•ด ์‚ญ์ œ๋œ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ๋ณต๊ตฌํ•˜๊ธฐ ์œ„ํ•œ 'Shadow Backup' ์ „๋žต์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”๊ฐ€? ### ์‹ค๋ฌด ์ ์šฉ ๋งฅ๋ฝ (Practical Application Contexts) - **Implementation:** `comfyui-to-python` CLI๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ˜๋ณต์ ์ธ ์ƒ์„ฑ ์ž‘์—…์„ ์ž๋™ํ™”ํ•˜๋Š” ์‰˜ ์Šคํฌ๋ฆฝํŠธ ์ž‘์„ฑ [8]. - **System Design:** ์„œ๋ฒ„ ์‚ฌ์ด๋“œ์—์„œ ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์—…๋กœ๋“œ๋œ ์ด๋ฏธ์ง€๋ฅผ ๋ฐ›์•„ ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ์ž๋™ ์ถ”์ถœํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šคํ™”ํ•˜๋Š” ํŒŒ์ดํ”„๋ผ์ธ ์„ค๊ณ„ [1, 2]. - **Operation / Maintenance:** ComfyUI ์—…๋ฐ์ดํŠธ ์‹œ `UpdateNodeCatalog` CLI ๋ช…๋ น์„ ํ†ตํ•ด ๋…ธ๋“œ ํ˜ธํ™˜์„ฑ์„ ์ผ๊ด„ ์ ๊ฒ€ [10]. ### ์ธ์ ‘ ์ฃผ๋ณ€ ์ฃผ์ œ (Adjacent Topics) - [[Metadata Extraction]] - ํ™•์žฅ ๋ฐฉํ–ฅ: AI ์ƒ์„ฑ ์ด๋ฏธ์ง€ ๋‚ด์— ์ˆจ๊ฒจ์ง„ ํ”„๋กฌํ”„ํŠธ ๋ฐ ํŒŒ๋ผ๋ฏธํ„ฐ ๋ฐ์ดํ„ฐ ๋ณดํ˜ธ ๋ฐ ๋ถ„์„ ๊ธฐ์ˆ . ## ๐Ÿ“ ๋ณ€๊ฒฝ ์ด๋ ฅ (Change history) - 2026-05-19: Initial draft generated via Datacollector_MAC P-Reinforce engine. (Source references 6, 33, 136, 170, 171, 182)