--- id: workflow-json-(frontend-format) title: "Workflow JSON (Frontend Format)" category: "10_Wiki/Topics" status: "draft" verification_status: "conceptual" canonical_id: "" aliases: ["workflow.json"] duplicate_of: "" source_trust_level: "B" confidence_score: 0.90 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: ["workflow.json", "SethRobinson/comfyui-workflow-to-api-converter-endpoint/bc85382"] github_commit: "bc85382" --- # [[Workflow JSON (Frontend Format)]] ## 🎯 ν•œ 쀄 톡찰 (One-line insight) μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€μ˜ μ‹œκ°μ  λ ˆμ΄μ•„μ›ƒ 정보와 λ…Έλ“œ κ·Έλž˜ν”„μ˜ λͺ¨λ“  논리적 연결성을 λ³΄μ‘΄ν•˜μ—¬ 인간 μ€‘μ‹¬μ˜ κ³΅μœ μ™€ νŽΈμ§‘μ„ κ°€λŠ₯μΌ€ ν•˜λŠ” ComfyUI의 κΈ°λ³Έ 직렬화 κ·œκ²©μ΄λ‹€ [1-3]. ## 🧠 핡심 κ°œλ… (Core concepts) - **μ‹œκ°μ  메타데이터 보쑴 (Visual Metadata Persistence):** λ…Έλ“œμ˜ μ’Œν‘œ(`pos`), 크기(`size`), κ·Έλ£Ή ꡬ쑰, 색상 및 λ…Έλ“œ μ ‘νž˜ μƒνƒœ(`flags`)와 같은 UI μ „μš© 데이터λ₯Ό ν¬ν•¨ν•œλ‹€ [2-5]. - **λͺ…μ‹œμ  링크 ν‘œν˜„ (Explicit Link Representation):** λ…Έλ“œ μž…λ ₯뢀에 μ—°κ²° 정보λ₯Ό λ‚΄μž₯ν•˜λŠ” λŒ€μ‹ , λ³„λ„μ˜ `links` 배열을 톡해 μ‹œμž‘μ κ³Ό 끝점 μŠ¬λ‘―μ„ μ •μ˜ν•˜λŠ” λͺ…μ‹œμ  μ—°κ²° 객체 ν˜•μ‹μ„ μ‚¬μš©ν•œλ‹€ [2, 3, 6, 7]. - **Litegraph ν‘œμ€€ μ€€μˆ˜ (Litegraph Standard):** μ›Ή 기반 κ·Έλž˜ν”„ μ‹œκ°ν™” 엔진인 Litegraph ν˜•μ‹μ„ 따라 μ„€κ³„λ˜μ–΄ λΈŒλΌμš°μ € μΊ”λ²„μŠ€μ—μ„œμ˜ μ •ν™•ν•œ 볡원을 보μž₯ν•œλ‹€ [2, 7]. - **λ―Έλ””μ–΄ μž„λ² λ”© 속성 (Media Embedding):** ComfyUIμ—μ„œ μƒμ„±λœ PNG λ˜λŠ” WebP μ΄λ―Έμ§€μ˜ 메타데이터(tEXt λ˜λŠ” zTXt 청크)에 직접 μ£Όμž…λ˜μ–΄ 생성 λ‘œμ§μ„ μš΄λ°˜ν•˜λŠ” μ»¨ν…Œμ΄λ„ˆ 역할을 μˆ˜ν–‰ν•œλ‹€ [8-10]. ## 🧩 μΆ”μΆœλœ νŒ¨ν„΄ (Extracted patterns) - **직렬화 이원화 (Serialization Bifurcation):** ComfyUIλŠ” μ‹œκ°μ  νŽΈμ§‘μš©μΈ 'Frontend 포맷'κ³Ό μ„œλ²„ μ‹€ν–‰ μ΅œμ ν™”μš©μΈ 'API 포맷'으둜 데이터λ₯Ό λΆ„λ¦¬ν•˜μ—¬ κ΄€λ¦¬ν•œλ‹€ [2]. - **쀑볡 데이터 μ „λž΅ (Redundancy Strategy):** μƒμ„±λœ 이미지 메타데이터 내에 μ‹œκ°μ  λ³΅μ›μš© `workflow.json`κ³Ό μ‹€ν–‰μš© `prompt` 데이터λ₯Ό λ™μ‹œμ— μ €μž₯ν•˜μ—¬ μƒν˜Έ 보완성을 ν™•λ³΄ν•œλ‹€ [9]. - **μ—­λ°©ν–₯ κ·Έλž˜ν”„ 탐색 (Execution Model Inversion):** μΊ”λ²„μŠ€μ— μˆ˜λ§Žμ€ λ…Έλ“œκ°€ μ‘΄μž¬ν•˜λ”λΌλ„ μ‹€ν–‰ 엔진은 좜λ ₯ λ…Έλ“œμ—μ„œ μ‹œμž‘ν•΄ ν•„μš”ν•œ μ˜μ‘΄μ„± λ…Έλ“œλ§Œ μ—­μœΌλ‘œ μΆ”μ ν•˜λ―€λ‘œ, Frontend JSON에 λΆˆν•„μš”ν•œ λ…Έλ“œκ°€ ν¬ν•¨λ˜μ–΄λ„ μ‹€ν–‰ μ„±λŠ₯에 영ν–₯을 μ£Όμ§€ μ•ŠλŠ”λ‹€ [11]. ## πŸ“– μ„ΈλΆ€ λ‚΄μš© (Details) Frontend 포맷은 주둜 `workflow.json`μ΄λΌλŠ” 파일λͺ…μœΌλ‘œ μ‚¬μš©λ˜λ©°, ComfyUI μ›Ή μΈν„°νŽ˜μ΄μŠ€μ—μ„œ μ‚¬μš©μžκ°€ μˆ˜ν–‰ν•˜λŠ” 'Visual Programming'의 κ²°κ³Όλ₯Ό μ €μž₯ν•˜λŠ” μ†ŒμŠ€ μ½”λ“œμ™€ 같은 역할을 ν•œλ‹€ [2, 12, 13]. ### 1. μ£Όμš” 데이터 ꡬ쑰 (Schema v1.0) - **Nodes Array:** 각 λ…Έλ“œ κ°μ²΄λŠ” 고유 ID, 클래슀 νƒ€μž…(`type`), μ’Œν‘œ, 크기, μœ„μ ― κ°’(`widgets_values`), μ‹€ν–‰ μˆœμ„œ(`order`), λͺ¨λ“œ(ν™œμ„±/λ°”μ΄νŒ¨μŠ€ λ“±)λ₯Ό ν¬ν•¨ν•œλ‹€ [4, 5]. - **Links Array:** 6개의 ν•­λͺ©μœΌλ‘œ κ΅¬μ„±λœ λ°°μ—΄ λ˜λŠ” κ΅¬μ‘°ν™”λœ 객체둜, `origin_id`, `origin_slot`, `target_id`, `target_slot`을 μ •μ˜ν•˜μ—¬ λ…Έλ“œ κ°„μ˜ 데이터 흐름을 λͺ…μ‹œν•œλ‹€ [6]. ### 2. 생성 및 νšλ“ 방법 - **GUI μˆ˜λ™ 내보내기:** μ œμ–΄ νŒ¨λ„ λ©”λ‰΄μ˜ 'Export' μ˜΅μ…˜ λ˜λŠ” 단좕킀 `Ctrl + S`(macOSλŠ” `Cmd + S`)λ₯Ό μ‚¬μš©ν•˜μ—¬ ν˜„μž¬ μΊ”λ²„μŠ€μ˜ μƒνƒœλ₯Ό JSON으둜 λ‹€μš΄λ‘œλ“œν•  수 μžˆλ‹€ [12, 14]. - **λ―Έλ””μ–΄ 메타데이터 μΆ”μΆœ:** - **λ“œλž˜κ·Έ μ•€ λ“œλ‘­:** ComfyUIμ—μ„œ μƒμ„±λœ PNG 이미지λ₯Ό λΈŒλΌμš°μ € μΊ”λ²„μŠ€μ— 직접 λŒμ–΄λ‹€ λ†“μœΌλ©΄ λ‚΄μž₯된 JSON을 톡해 λ…Έλ“œ λ°°μΉ˜κ°€ λ³΅μ›λœλ‹€ [14-16]. - **CLI 도ꡬ ν™œμš©:** `exiftool -b -workflow input.png > workflow.json` λͺ…λ Ήμ–΄λ₯Ό 톡해 λ°”μ΄λ„ˆλ¦¬ νƒœκ·Έμ—μ„œ JSON 데이터λ₯Ό 뢄리해낼 수 μžˆλ‹€ [17, 18]. - **μ›Ή 도ꡬ:** Weird Wonderful AI Art의 'Workflow Extractor'와 같은 λΈŒλΌμš°μ € 기반 도ꡬλ₯Ό 톡해 온라인 μ΄λ―Έμ§€μ—μ„œ 데이터λ₯Ό μΆ”μΆœν•  수 μžˆλ‹€ [19, 20]. ### 3. API 포맷과의 차별점 Frontend 포맷은 인간이 읽기 쉽고 UIλ₯Ό μ™„λ²½νžˆ μž¬κ΅¬μ„±ν•  수 μžˆλ„λ‘ μ„€κ³„λ˜μ—ˆμœΌλ‚˜, `/prompt` μ—”λ“œν¬μΈνŠΈμ— 직접 전달할 경우 였λ₯˜κ°€ λ°œμƒν•  수 μžˆλ‹€ [21]. API ν˜ΈμΆœμ„ μœ„ν•΄μ„œλŠ” UI 메타데이터가 제거되고 λ…Έλ“œ κ°„ 연결이 μž…λ ₯ ν•„λ“œμ— 직접 참쑰된 'API JSON' ν˜•μ‹μ΄ ν•„μš”ν•˜λ©°, μ΄λŠ” μ„€μ •μ—μ„œ 'Dev mode'λ₯Ό ν™œμ„±ν™”ν•΄μ•Όλ§Œ 생성 κ°€λŠ₯ν•˜λ‹€ [2, 3, 13, 22]. ## βš–οΈ λͺ¨μˆœ 및 μ—…λ°μ΄νŠΈ (Contradictions & updates) - **포맷 ν˜Έν™˜μ„± 이슈:** ComfyUIλŠ” μ—…λ°μ΄νŠΈκ°€ 맀우 λΉˆλ²ˆν•˜μ—¬, κ΅¬λ²„μ „μ—μ„œ μƒμ„±λœ Frontend JSON 파일이 μ‹ λ²„μ „μ—μ„œ μ˜¬λ°”λ₯΄κ²Œ μž‘λ™ν•˜μ§€ μ•Šκ±°λ‚˜ λ…Έλ“œκ°€ 빨간색 λ°•μŠ€λ‘œ ν‘œμ‹œλ˜λŠ”(Missing Custom Nodes) ν˜„μƒμ΄ λ°œμƒν•  수 μžˆλ‹€ [14, 23]. - **데이터 νœ˜λ°œμ„±:** 이미지 νŽΈμ§‘κΈ°(GIMP λ“±)둜 μ²˜λ¦¬ν•˜κ±°λ‚˜ μ†Œμ…œ λ―Έλ””μ–΄ ν”Œλž«νΌμ— μ—…λ‘œλ“œν•  경우, 파일 크기 μ΅œμ ν™” κ³Όμ •μ—μ„œ λΉ„ν‘œμ€€ 메타데이터인 Frontend JSON 정보가 μ‚­μ œλ˜μ–΄ μ›Œν¬ν”Œλ‘œμš° 볡원이 λΆˆκ°€λŠ₯ν•΄μ§€λŠ” κ²½μš°κ°€ λ§Žλ‹€ [9, 24]. ## πŸ› οΈ 적용 사둀 (Applied in summary) - **SethRobinson/comfyui-workflow-to-api-converter-endpoint:** ν΄λΌμ΄μ–ΈνŠΈ 츑의 μžλ°”μŠ€ν¬λ¦½νŠΈ λ³€ν™˜ λ‘œμ§μ„ μ„œλ²„ μΈ‘ 파이썬으둜 κ΅¬ν˜„ν•˜μ—¬, `workflow.json`만으둜 API 호좜이 κ°€λŠ₯ν•˜λ„λ‘ λ³€ν™˜ν•˜λŠ” κΈ°λŠ₯을 μ œκ³΅ν•œλ‹€ [21, 25]. - **ComfyUI-to-Python-Extension:** Frontend JSON 메타데이터λ₯Ό ν¬ν•¨ν•œ 파이썬 슀크립트λ₯Ό μƒμ„±ν•˜μ—¬, μ‹€ν–‰ ν›„ μ €μž₯된 결과물을 λ‹€μ‹œ ComfyUI UI둜 λ“œλž˜κ·Έ μ•€ λ“œλ‘­ν•˜μ—¬ 볡원할 수 μžˆλ„λ‘ μ§€μ›ν•œλ‹€ [26]. - **κΈ°λ³Έ μ €μž₯ κ·œμΉ™:** ComfyUI의 `Save Image` λ…Έλ“œλŠ” μ‹€ν–‰ μ‹œ μ΅œμ’… 이미지에 전체 λ…Έλ“œ κ·Έλž˜ν”„μ™€ 섀정을 μ£Όμž…ν•˜λ©°, μ΄λŠ” `workflow.json` κ·œκ²©μ„ λ”°λ₯Έλ‹€ [16]. ## βœ… 검증 μƒνƒœ 및 신뒰도 - **μƒνƒœ:** 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.