--- id: frontend-json-(workflow.json) title: "Frontend JSON (workflow.json)" category: "10_Wiki/Topics" status: "draft" verification_status: "conceptual" canonical_id: "" aliases: ["workflow.json", "UI Format JSON"] 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: ["Mystic pipeline root directory", "RunComfy FLUX workflow example (flux_workflow.json)", "ComfyUI Official RFCs repository", "ComfyUI Output folder (metadata embedding)"] github_commit: "" --- # [[Frontend JSON (workflow.json)]] ## ๐ŸŽฏ ํ•œ ์ค„ ํ†ต์ฐฐ (One-line insight) ComfyUI์˜ ์‹œ๊ฐ์  ์ž‘์—… ๊ณต๊ฐ„ ์ „์ฒด(๋…ธ๋“œ ์ขŒํ‘œ, ๊ทธ๋ฃน, ๋งํฌ ๊ตฌ์กฐ)๋ฅผ Litegraph ํ‘œ์ค€์— ๋”ฐ๋ผ ๋ณด์กดํ•˜์—ฌ ์‚ฌ์šฉ์ž์˜ ํŽธ์ง‘, ์žฌ๊ตฌ์„ฑ ๋ฐ ์ปค๋ฎค๋‹ˆํ‹ฐ ํ˜‘์—…์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š” ์ข…ํ•ฉ์ ์ธ ์‹œ๊ฐ์  ์„ค๊ณ„๋„์ด๋‹ค. [1-3] ## ๐Ÿง  ํ•ต์‹ฌ ๊ฐœ๋… (Core concepts) - **Litegraph ํ‘œ์ค€ ๊ธฐ๋ฐ˜ ์‹œ๊ฐ์  ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ**: ๋…ธ๋“œ์˜ ์บ”๋ฒ„์Šค ์ขŒํ‘œ(`pos`), ํฌ๊ธฐ(`size`), ์ƒ‰์ƒ, ๊ทธ๋ฃนํ™” ๊ตฌ์กฐ ๋ฐ ๋…ธ๋“œ ํ™•์žฅ/์ถ•์†Œ ์ƒํƒœ์™€ ๊ฐ™์€ UI ์ „์šฉ ์ •๋ณด๋ฅผ ํฌํ•จํ•œ๋‹ค. [1, 2, 4, 5] - **๋ช…์‹œ์  ๋งํฌ ๋ฐฐ์—ด (Explicit Link Representation)**: ๋…ธ๋“œ ๊ฐ„์˜ ์—ฐ๊ฒฐ์„ ๋ณ„๋„์˜ `links` ๋ฐฐ์—ด ๋‚ด ๊ฐœ๋ณ„ ๊ฐ์ฒด๋กœ ๊ด€๋ฆฌํ•˜๋ฉฐ, ๊ฐ ๋งํฌ๋Š” ๊ณ ์œ  ID๋ฅผ ํ†ตํ•ด ์›๋ณธ ๋…ธ๋“œ์™€ ๋Œ€์ƒ ๋…ธ๋“œ์˜ ์Šฌ๋กฏ์„ ์ •์˜ํ•œ๋‹ค. [1, 2, 6, 7] - **์ธ๊ฐ„ ์ค‘์‹ฌ์˜ ๊ตํ™˜ ํฌ๋งท**: ์‹œ๊ฐ์  ํŽธ์ง‘๊ณผ ๊ณต์œ ๋ฅผ ๋ชฉ์ ์œผ๋กœ ์„ค๊ณ„๋˜์—ˆ์œผ๋ฉฐ, ๋ชจ๋ธ ๊ฐ€์ค‘์น˜์™€ ๋…๋ฆฝ์ ์œผ๋กœ ์›Œํฌํ”Œ๋กœ์šฐ ๋กœ์ง์„ ์ž‘๊ณ  ๊ฐ€๋…์„ฑ ์žˆ๋Š” ํ…์ŠคํŠธ ํŒŒ์ผ๋กœ ์•„์นด์ด๋ธŒํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค. [6, 8, 9] ## ๐Ÿงฉ ์ถ”์ถœ๋œ ํŒจํ„ด (Extracted patterns) - **๊ฒฐ๊ณผ๋ฌผ ๋‚ด ๋กœ์ง ์ž๊ฐ€ ์ˆ˜์šฉ ํŒจํ„ด (Metadata Embedding)**: ์ƒ์„ฑ๋œ ์ด๋ฏธ์ง€(PNG/WebP)์˜ `tEXt` ๋˜๋Š” `zTXt` ์ฒญํฌ์— Frontend JSON์„ ์ฃผ์ž…ํ•˜์—ฌ, ์ด๋ฏธ์ง€ ์ž์ฒด๊ฐ€ ํ•ด๋‹น ์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“  ๋กœ์ง์„ ์šด๋ฐ˜ํ•˜๋Š” ์ปจํ…Œ์ด๋„ˆ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•˜๊ฒŒ ํ•œ๋‹ค. [3, 10, 11] - **๋น„๊ฐ€์—ญ์  ์ •๋ณด ์†์‹ค ํŒจํ„ด (Frontend to API Transformation)**: Frontend JSON์€ ์‹คํ–‰ ์ตœ์ ํ™”๋œ API JSON์œผ๋กœ ๋ณ€ํ™˜ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ, ์—ญ๋ณ€ํ™˜ ์‹œ ์‹œ๊ฐ์  ๋ ˆ์ด์•„์›ƒ ์ •๋ณด๋Š” ๋ณต๊ตฌํ•  ์ˆ˜ ์—†๋Š” ๋น„๊ฐ€์—ญ์  ๊ด€๊ณ„๋ฅผ ๊ฐ€์ง„๋‹ค. [12, 13] - **์˜์กด์„ฑ ํƒ์ง€ ๋ฐ ํ•ด๊ฒฐ ํœด๋ฆฌ์Šคํ‹ฑ**: ์™ธ๋ถ€ JSON ๋กœ๋“œ ์‹œ `class_type`์„ ๋กœ์ปฌ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์™€ ๋Œ€์กฐํ•˜์—ฌ ๋ˆ„๋ฝ๋œ ์ปค์Šคํ…€ ๋…ธ๋“œ๋ฅผ ์‹๋ณ„ํ•˜๊ณ (Red Nodes), ComfyUI-Manager๋ฅผ ํ†ตํ•ด ์ด๋ฅผ ์ผ๊ด„ ์„ค์น˜ํ•˜๋Š” ๋ณต๊ตฌ ํŒจํ„ด์ด ์กด์žฌํ•œ๋‹ค. [14-16] ## ๐Ÿ“– ์„ธ๋ถ€ ๋‚ด์šฉ (Details) Frontend JSON(์ฃผ๋กœ `workflow.json`์œผ๋กœ ๋ช…๋ช…๋จ)์€ ComfyUI ์›น ์ธํ„ฐํŽ˜์ด์Šค์˜ ์ƒํƒœ๋ฅผ ์ €์žฅํ•˜๋Š” ํ‘œ์ค€ ํฌ๋งท์ด๋‹ค. [1, 17] ์ด ํŒŒ์ผ์€ ์‚ฌ์šฉ์ž๊ฐ€ ๊ตฌ์„ฑํ•œ ๊ทธ๋ž˜ํ”„์˜ ์‹œ๊ฐ์  ๋ฐฐ์น˜์™€ ๋ชจ๋“  ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์บก์ฒ˜ํ•˜๋Š” ํฌ๊ด„์ ์ธ ์ฒญ์‚ฌ์ง„ ์—ญํ• ์„ ํ•œ๋‹ค. [8] ### 1. ๊ธฐ์ˆ ์  ๊ตฌ์กฐ ๋ฐ ์†์„ฑ - **๋…ธ๋“œ ๋ฐฐ์—ด (`nodes`)**: ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๊ฐœ๋ณ„ ๊ฐ์ฒด๋“ค์˜ ๋ฆฌ์ŠคํŠธ์ด๋‹ค. [5] - `id`: ๊ทธ๋ž˜ํ”„ ํƒ์ƒ‰์„ ์œ„ํ•œ ๊ณ ์œ  ์‹๋ณ„์ž(์ˆซ์ž ๋ฌธ์ž์—ด)์ด๋‹ค. [4, 18] - `type`: ๋…ธ๋“œ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์˜ ํด๋ž˜์Šค ์ด๋ฆ„๊ณผ ๋งคํ•‘๋œ๋‹ค. [4, 5] - `pos` & `size`: ์บ”๋ฒ„์Šค ๋ Œ๋”๋ง์„ ์œ„ํ•œ [x, y] ์ขŒํ‘œ ๋ฐ ์น˜์ˆ˜์ด๋‹ค. [4, 5] - `widgets_values`: ์Šฌ๋ผ์ด๋”, ํ…์ŠคํŠธ ๋ฐ•์Šค ๋“ฑ ์‚ฌ์šฉ์ž ์ž…๋ ฅ ๊ฐ’์„ ์ €์žฅํ•˜๋Š” ๋ฐฐ์—ด์ด๋‹ค. [4, 5] - **๋งํฌ ์‹œ์Šคํ…œ (`links`)**: ๋ณ„๋„์˜ ์ตœ์ƒ์œ„ ๋ฐฐ์—ด์—์„œ ๊ด€๋ฆฌ๋˜๋ฉฐ, `origin_id`, `origin_slot`, `target_id`, `target_slot`์„ ์ •์˜ํ•˜์—ฌ ๋ฐ์ดํ„ฐ ํ๋ฆ„์„ ๋ช…์‹œํ•œ๋‹ค. [7] ### 2. ์ƒ์„ฑ ๋ฐ ๋กœ๋“œ ๋ฐฉ๋ฒ• - **์ˆ˜๋™ ๋‚ด๋ณด๋‚ด๊ธฐ**: ์ œ์–ดํŒ ๋ฉ”๋‰ด์˜ 'Export' ์˜ต์…˜์ด๋‚˜ `Ctrl + S` (macOS๋Š” `Cmd + S`) ๋‹จ์ถ•ํ‚ค๋ฅผ ํ†ตํ•ด ํ˜„์žฌ ๊ทธ๋ž˜ํ”„ ์ƒํƒœ๋ฅผ JSON์œผ๋กœ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋‹ค. [5, 19, 20] - **์ด๋ฏธ์ง€ ๊ธฐ๋ฐ˜ ์ถ”์ถœ**: ComfyUI์—์„œ ์ƒ์„ฑ๋œ PNG ํŒŒ์ผ์„ ์บ”๋ฒ„์Šค์— ๋“œ๋ž˜๊ทธ ์•ค ๋“œ๋กญํ•˜๋ฉด ๋‚ด์žฅ๋œ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„์„ํ•˜์—ฌ ์›Œํฌํ”Œ๋กœ์šฐ๊ฐ€ ์ฆ‰์‹œ ์žฌ๊ตฌ์„ฑ๋œ๋‹ค. [19, 21-23] `exiftool`๊ณผ ๊ฐ™์€ CLI ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ”์ด๋„ˆ๋ฆฌ ํƒœ๊ทธ์—์„œ ์ง์ ‘ ์ถ”์ถœํ•  ์ˆ˜๋„ ์žˆ๋‹ค. [24, 25] - **์ž๋™ ์ƒ์„ฑ**: ์ตœ๊ทผ์—๋Š” ์ž์—ฐ์–ด ์„ค๋ช…์„ LLM(Qwen2.5 ๋“ฑ)์ด ํ•ด์„ํ•˜์—ฌ ๋…ผ๋ฆฌ์  ๊ทธ๋ž˜ํ”„ ๊ตฌ์กฐ๋ฅผ ํ•ฉ์„ฑํ•˜๊ณ , ์ด๋ฅผ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ JSON์œผ๋กœ ์ปดํŒŒ์ผํ•˜๋Š” ๊ธฐ์ˆ ์ด ๋„์ž…๋˜๊ณ  ์žˆ๋‹ค. [26-28] ### 3. API JSON(workflow_api.json)๊ณผ์˜ ์ฐจ์ด - **๋ชฉ์ **: Frontend JSON์€ ์‹œ๊ฐ์  ํŽธ์ง‘์šฉ์ด๋ฉฐ, API JSON์€ ์„œ๋ฒ„ ์ธก ์‹คํ–‰ ๋ฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ์‹์˜ ํ˜ธ์ถœ์— ์ตœ์ ํ™”๋˜์–ด ์žˆ๋‹ค. [1, 6, 9, 29] - **๋ฉ”ํƒ€๋ฐ์ดํ„ฐ**: API ํฌ๋งท์€ ๋…ธ๋“œ ์œ„์น˜, ํฌ๊ธฐ, ๊ทธ๋ฃน ๋“ฑ UI ๊ด€๋ จ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ฑฐํ•˜์—ฌ ํŒŒ์ผ ํฌ๊ธฐ๋ฅผ ์••์ถ•ํ•œ๋‹ค. [1, 30] - **์—ฐ๊ฒฐ ๋ฐฉ์‹**: API ํฌ๋งท์€ ๋งํฌ๋ฅผ ๋ณ„๋„ ๊ฐ์ฒด๊ฐ€ ์•„๋‹Œ ๋…ธ๋“œ ์ž…๋ ฅ ๋‚ด์˜ ์ง์ ‘์ ์ธ ์ฐธ์กฐ(Origin ๋…ธ๋“œ ID ๋ฐ ์Šฌ๋กฏ)๋กœ ์ž„๋ฒ ๋”ฉํ•œ๋‹ค. [1, 6, 29] ## โš–๏ธ ๋ชจ์ˆœ ๋ฐ ์—…๋ฐ์ดํŠธ (Contradictions & updates) - **๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ํœ˜๋ฐœ์„ฑ**: ์ƒ์„ฑ๋œ ์ด๋ฏธ์ง€ ๋‚ด์˜ JSON ๋ฐ์ดํ„ฐ๋Š” ์ผ๋ฐ˜์ ์ธ ์ด๋ฏธ์ง€ ํŽธ์ง‘๊ธฐ, ์†Œ์…œ ๋ฏธ๋””์–ด ํ”Œ๋žซํผ, ๋˜๋Š” ํŒŒ์ผ ์••์ถ• ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ๊ฑฐ์น  ๋•Œ ์‚ญ์ œ๋  ์œ„ํ—˜์ด ํฌ๋‹ค. [3, 11, 21] - **๋ฒ„์ „ ํ˜ธํ™˜์„ฑ ๋ฌธ์ œ**: ComfyUI์˜ ๋นˆ๋ฒˆํ•œ ์—…๋ฐ์ดํŠธ๋กœ ์ธํ•ด ๊ตฌ๋ฒ„์ „์˜ JSON ํŒŒ์ผ์ด ์ตœ์‹  ๋ฒ„์ „์—์„œ ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํŠนํžˆ ์ปค์Šคํ…€ ๋…ธ๋“œ ํด๋ž˜์Šค ์ด๋ฆ„์˜ ๋ณ€๊ฒฝ์ด ์ฃผ์š” ์›์ธ์ด ๋œ๋‹ค. [19, 31] - **์‹คํ–‰ ์ œํ•œ**: Frontend JSON์„ API ์—”๋“œํฌ์ธํŠธ(`/prompt`)์— ์ง์ ‘ ์ „๋‹ฌํ•˜๋ฉด ์‹คํ–‰ ๊ทธ๋ž˜ํ”„๊ฐ€ ์•„๋‹ˆ๋ผ๋Š” ์ด์œ ๋กœ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฏ€๋กœ, ๋ฐ˜๋“œ์‹œ 'Dev mode'๋ฅผ ํ™œ์„ฑํ™”ํ•˜์—ฌ API ํฌ๋งท์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ฑฐ๋‚˜ ์„œ๋ฒ„ ์ธก ๋ณ€ํ™˜๊ธฐ๋ฅผ ๊ฑฐ์ณ์•ผ ํ•œ๋‹ค. [12, 32] ## ๐Ÿ› ๏ธ ์ ์šฉ ์‚ฌ๋ก€ (Applied in summary) - **Mystic ํŒŒ์ดํ”„๋ผ์ธ**: ์„œ๋ฒ„๋ฆฌ์Šค ์—”๋“œํฌ์ธํŠธ ๋ฐฐํฌ ์‹œ ๋ฉ”์ธ ๋””๋ ‰ํ† ๋ฆฌ์— `workflow.json`์„ ํฌํ•จํ•˜์—ฌ ๊ด€๋ฆฌํ•œ๋‹ค. [33] - **RunComfy ํ”Œ๋žซํผ**: FLUX ์›Œํฌํ”Œ๋กœ์šฐ ์˜ˆ์‹œ๋กœ `flux_workflow.json` ํŒŒ์ผ์ด ์ œ๊ณต๋˜๋ฉฐ, ์ด๋Š” ์ „์ฒด UI ์ƒํƒœ๋ฅผ ํฌํ•จํ•˜๋Š” ํ‘œ์ค€ Frontend ํฌ๋งท์ด๋‹ค. [9, 30] - **์ถ”์ถœ ๋„๊ตฌ ํ™œ์šฉ**: `exiftool -b -workflow input.png > workflow.json` ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ์ด๋ฏธ์ง€ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์—์„œ Frontend JSON์„ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ๋ถ„๋ฆฌํ•˜๋Š” ๋ฐฉ์‹์ด ์‹ค๋ฌด์—์„œ ์‚ฌ์šฉ๋œ๋‹ค. [24, 25] - **ComfyUI-to-Python-Extension**: Frontend JSON์˜ ์‹œ๊ฐ์  ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ํฌํ•จํ•œ ์ƒํƒœ๋กœ Python ์Šคํฌ๋ฆฝํŠธ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ๋“œ๋ž˜๊ทธ ์•ค ๋“œ๋กญ ์žฌ๊ฐ€์ ธ์˜ค๊ธฐ ๊ธฐ๋Šฅ์„ ์œ ์ง€ํ•œ๋‹ค. [34] ## โœ… ๊ฒ€์ฆ ์ƒํƒœ ๋ฐ ์‹ ๋ขฐ๋„ - **์ƒํƒœ:** 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.