--- id: workflow_api.json title: "workflow_api.json" category: "10_Wiki/Topics" status: "draft" verification_status: "conceptual" canonical_id: "" aliases: ["API Format JSON", "Backend Format JSON", "Prompt JSON"] 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: ["/workflow/convert", "comfyui-workflow-to-api-converter-endpoint", "fofr/any-comfyui-workflow", "ComfyUI-to-Python-Extension"] github_commit: "bc85382" --- # [[workflow_api.json]] ## 🎯 ν•œ 쀄 톡찰 (One-line insight) `workflow_api.json`은 UI 메타데이터λ₯Ό μ œκ±°ν•˜κ³  λ…Έλ“œ κ°„μ˜ κΈ°λŠ₯적 μ—°κ²°μ„±λ§Œμ„ μΆ”μΆœν•˜μ—¬ ComfyUI λ°±μ—”λ“œ 엔진이 μ¦‰μ‹œ μ‹€ν–‰ν•  수 μžˆλ„λ‘ μ΅œμ ν™”λœ μ§λ ¬ν™”λœ μ‹€ν–‰ κ·Έλž˜ν”„μ΄λ‹€ [1-3]. ## 🧠 핡심 κ°œλ… (Core concepts) - **λ°±μ—”λ“œ/API 포맷 (Backend/API Format):** μ‹œκ°μ  μš”μ†Œ(μœ„μΉ˜, 크기, κ·Έλ£Ή λ“±)λ₯Ό λ°°μ œν•˜κ³  μ„œλ²„ μ‚¬μ΄λ“œ 처리 및 ν”„λ‘œκ·Έλž¨ 기반 μžλ™ν™”μ— μ΅œμ ν™”λœ 포맷이닀 [1, 3]. - **ν‰νƒ„ν™”λœ κ·Έλž˜ν”„ (Flattened Execution Graph):** 링크가 λ³„λ„μ˜ μ—°κ²° 객체가 μ•„λ‹Œ λ…Έλ“œ μž…λ ₯ 내뢀에 직접 μ°Έμ‘°(Origin Node ID 및 Output Slot) ν˜•νƒœλ‘œ ν¬ν•¨λœ ꡬ쑰이닀 [1, 3, 4]. - **개발자 λͺ¨λ“œ 쒅속성 (Dev Mode Dependency):** ν‘œμ€€ 내보내기 κΈ°λŠ₯κ³Ό 달리, μ„€μ • λ©”λ‰΄μ—μ„œ 'Dev mode Options'λ₯Ό ν™œμ„±ν™”ν•΄μ•Όλ§Œ 생성이 κ°€λŠ₯ν•œ 특수 포맷이닀 [5-7]. - **/prompt μ—”λ“œν¬μΈνŠΈ ν˜Έν™˜μ„±:** ComfyUI μ„œλ²„μ˜ API μ—”λ“œν¬μΈνŠΈμ— 직접 μ „λ‹¬ν•˜μ—¬ μ›Œν¬ν”Œλ‘œμš°λ₯Ό μ‹€ν–‰ν•˜κΈ° μœ„ν•œ ν‘œμ€€ 데이터 ꡬ쑰둜 μ‚¬μš©λœλ‹€ [2, 8, 9]. ## 🧩 μΆ”μΆœλœ νŒ¨ν„΄ (Extracted patterns) - **포맷 λΆ„ν™” (Schema Bifurcation):** μ‚¬μš©μž μƒν˜Έμž‘μš©μ„ μœ„ν•œ 'Frontend JSON(workflow.json)'κ³Ό 싀행을 μœ„ν•œ 'API JSON(workflow_api.json)'을 μ² μ €νžˆ λΆ„λ¦¬ν•˜μ—¬ 운영 νš¨μœ¨μ„±μ„ κ·ΉλŒ€ν™”ν•œλ‹€ [1, 2, 10]. - **λ…Έλ“œ 식별 기반 μ ‘κ·Ό:** 각 λ…Έλ“œλŠ” κ³ μœ ν•œ μˆ«μžν˜• ν‚€(String ID)둜 μ‹λ³„λ˜λ©°, 이λ₯Ό 톡해 μ™ΈλΆ€ μŠ€ν¬λ¦½νŠΈμ—μ„œ νŠΉμ • λ…Έλ“œμ˜ μž…λ ₯을 λ™μ μœΌλ‘œ μˆ˜μ •ν•  수 μžˆλ‹€ [11, 12]. - **μ—­λ°©ν–₯ μ˜μ‘΄μ„± 탐색 (Execution Model Inversion):** 엔진이 좜λ ₯ λ…Έλ“œ(Save Image λ“±)λ‘œλΆ€ν„° μ—­λ°©ν–₯으둜 νƒμƒ‰ν•˜μ—¬ μ΅œμ’… 결과에 ν•„μš”ν•œ μ˜μ‘΄μ„± λ…Έλ“œλ§Œ μ‹€ν–‰ν•˜λŠ” ꡬ쑰λ₯Ό μ§€μ›ν•œλ‹€ [13]. ## πŸ“– μ„ΈλΆ€ λ‚΄μš© (Details) **데이터 ꡬ쑰 및 속성** `workflow_api.json`은 루트 레벨의 ν‚€κ°€ λ…Έλ“œ ID(λ¬Έμžμ—΄)인 단일 JSON 객체 ꡬ쑰λ₯Ό κ°€μ§„λ‹€ [14]. 각 λ…Έλ“œ μ •μ˜μ—λŠ” `class_type`(λ…Έλ“œ 클래슀 이름)κ³Ό `inputs`(μœ„μ ― κ°’ 및 타 λ…Έλ“œ 좜λ ₯에 λŒ€ν•œ μ—°κ²° 정보)κ°€ ν¬ν•¨λ˜λ©°, μ„ νƒμ μœΌλ‘œ `_meta` ν•„λ“œκ°€ μ‘΄μž¬ν•  수 μžˆλ‹€ [11, 14]. 링크 ν‘œν˜„ 방식은 `[node_id, output_slot_index]` ν˜•νƒœμ˜ λ°°μ—΄λ‘œ μž…λ ₯ ν•„λ“œμ— 직접 μ‚½μž…λœλ‹€ [3, 15]. **생성 및 μΆ”μΆœ ν”„λ‘œμ„ΈμŠ€** 1. **GUI 내보내기:** μ„€μ • λ©”λ‰΄μ˜ ν†±λ‹ˆλ°”ν€΄ μ•„μ΄μ½˜μ„ 톡해 'Enable Dev mode Options'λ₯Ό ν™œμ„±ν™”ν•œ ν›„, μ œμ–΄νŒμ— λ‚˜νƒ€λ‚˜λŠ” 'Save (API Format)' λ˜λŠ” 'Export (API)' λ²„νŠΌμ„ μ‚¬μš©ν•˜μ—¬ μƒμ„±ν•œλ‹€ [6, 7, 14, 16]. 2. **이미지 메타데이터 μΆ”μΆœ:** ComfyUIμ—μ„œ μƒμ„±λœ PNG 파일의 `tEXt` λ˜λŠ” `zTXt` μ²­ν¬μ—λŠ” μ›Œν¬ν”Œλ‘œμš°(Frontend)와 ν”„λ‘¬ν”„νŠΈ(API) 데이터가 ν•¨κ»˜ μ €μž₯되며, `exiftool`μ΄λ‚˜ μ „λ¬Έ μΆ”μΆœ 도ꡬλ₯Ό 톡해 이λ₯Ό 볡ꡬ할 수 μžˆλ‹€ [17-20]. 3. **μ„œλ²„ μ‚¬μ΄λ“œ λ³€ν™˜:** `comfyui-workflow-to-api-converter-endpoint`와 같은 μ»€μŠ€ν…€ λ…Έλ“œλ₯Ό μ‚¬μš©ν•˜λ©΄ 일반 μ›Œν¬ν”Œλ‘œμš° 포맷을 μ‹€μ‹œκ°„μœΌλ‘œ API 포맷으둜 λ³€ν™˜ν•˜λŠ” μ—”λ“œν¬μΈνŠΈλ₯Ό ꡬ좕할 수 μžˆλ‹€ [9, 21]. **ν”„λ‘œκ·Έλž˜λ°μ  ν™œμš©** 이 포맷은 Python의 `json` 라이브러리λ₯Ό 톡해 λ”•μ…”λ„ˆλ¦¬ ν˜•νƒœλ‘œ λ‘œλ“œλ˜μ–΄ μ”¨λ“œ(seed), ν”„λ‘¬ν”„νŠΈ ν…μŠ€νŠΈ, λ…Έμ΄μ¦ˆ 강도 λ“±μ˜ νŒŒλΌλ―Έν„°λ₯Ό λ™μ μœΌλ‘œ λ³€κ²½ν•˜λŠ” 데 μ‚¬μš©λœλ‹€ [11, 22]. `Replicate`, `Mystic`, `RunComfy` λ“± ν΄λΌμš°λ“œ API μ„œλΉ„μŠ€λŠ” 이 포맷을 기반으둜 μ›Œν¬ν”Œλ‘œμš°λ₯Ό μ„œλ²„λ¦¬μŠ€ ν•¨μˆ˜λ‚˜ μ»¨ν…Œμ΄λ„ˆν™”λœ μ„œλΉ„μŠ€λ‘œ λ°°ν¬ν•œλ‹€ [3, 23, 24]. ## βš–οΈ λͺ¨μˆœ 및 μ—…λ°μ΄νŠΈ (Contradictions & updates) - **정보 μ†μ‹€μ˜ λΉ„κ°€μ—­μ„±:** API 포맷을 λ‹€μ‹œ ComfyUI μΊ”λ²„μŠ€λ‘œ 뢈러올 경우, UI 메타데이터가 μ‚­μ œλ˜μ–΄ 있기 λ•Œλ¬Έμ— λ…Έλ“œλ“€μ΄ 겹쳐 λ³΄μ΄κ±°λ‚˜ κ·Έλ£Ή 정보가 사라진 'λΌˆλŒ€(skeleton)' μƒνƒœλ‘œ λ³΅μ›λ˜λŠ” ν•œκ³„κ°€ μžˆλ‹€ [9, 25]. - **버전 ν˜Έν™˜μ„± 문제:** ComfyUI의 λΉˆλ²ˆν•œ μ—…λ°μ΄νŠΈλ‘œ 인해 ꡬ버전 JSON 파일이 μ΅œμ‹  λ²„μ „μ—μ„œ μ •μƒμ μœΌλ‘œ μž‘λ™ν•˜μ§€ μ•Šμ„ 수 있으며, 특히 μ»€μŠ€ν…€ λ…Έλ“œμ˜ 클래슀 νƒ€μž… 변경에 μ·¨μ•½ν•˜λ‹€ [26, 27]. ## πŸ› οΈ 적용 사둀 (Applied in summary) - **comfyui-workflow-to-api-converter-endpoint:** ν΄λΌμ΄μ–ΈνŠΈ 츑의 μžλ°”μŠ€ν¬λ¦½νŠΈ λ³€ν™˜ λ‘œμ§μ„ 파이썬으둜 κ΅¬ν˜„ν•˜μ—¬ `/workflow/convert` μ—”λ“œν¬μΈνŠΈλ₯Ό μ œκ³΅ν•¨ [9, 28]. (Git Commit: `bc85382`) - **ComfyUI-to-Python-Extension:** `workflow_api.json` μž…λ ₯을 λ°›μ•„ μ‹€ν–‰ κ°€λŠ₯ν•œ `.py` 슀크립트둜 λ³€ν™˜ν•˜λŠ” κΈ°λŠ₯을 지원함 [29, 30]. - **Mystic Pipeline Deployment:** `new_pipeline.py` 슀크립트 λ‚΄μ—μ„œ API 포맷 JSON을 λ‘œλ“œν•˜μ—¬ μž…λ ₯ ν”„λ‘¬ν”„νŠΈλ₯Ό μ£Όμž…ν•˜κ³  μ‹€ν–‰ν•˜λŠ” ν…œν”Œλ¦Ώ ꡬ쑰에 적용됨 [31, 32]. - **Replicate fofr/any-comfyui-workflow:** API JSON 블둭을 μž…λ ₯λ°›μ•„ 이미지/λΉ„λ””μ˜€λ₯Ό μƒμ„±ν•˜λŠ” λ²”μš© μ›Œν¬ν”Œλ‘œμš° λͺ¨λΈμ˜ 핡심 μž…λ ₯ λ°μ΄ν„°λ‘œ ν™œμš©λ¨ [23, 33]. ## βœ… 검증 μƒνƒœ 및 신뒰도 - **μƒνƒœ:** draft - **검증 단계:** conceptual (μ‹€μ œ 적용 사둀 λ‹€μˆ˜ 발견으둜 검증 κ°€λŠ₯) - **좜처 신뒰도:** B (곡식 λ¬Έμ„œ 및 개발자 κ°€μ΄λ“œ 기반 ν•©μ„±) - **쀑볡 검사 κ²°κ³Ό:** μ‹ κ·œ 생성 (New discovery) ## πŸ“ λ³€κ²½ 이λ ₯ (Change history) - 2026-05-19: Initial draft generated via Datacollector_MAC P-Reinforce engine.