--- id: comfyui-to-python-extension title: "ComfyUI-to-Python-Extension" category: "10_Wiki/Topics" status: "draft" verification_status: "conceptual" canonical_id: "" aliases: ["Save As Script"] 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: ["comfyui_to_python.py", "comfyui_to_python_utils.py", "install.py", "init.py", "ComfyUI/custom_nodes"] github_commit: "6cdcc23" --- # [[ComfyUI-to-Python-Extension]] ## 🎯 ν•œ 쀄 톡찰 (One-line insight) μ‹œκ°μ μΈ **ComfyUI λ…Έλ“œ κ·Έλž˜ν”„ μ›Œν¬ν”Œλ‘œμš°λ₯Ό λ³„λ„μ˜ μ„œλ²„ 없이 λ…λ¦½μ μœΌλ‘œ μ‹€ν–‰ κ°€λŠ₯ν•œ 파이썬(.py) μ½”λ“œλ‘œ λ³€ν™˜**ν•˜μ—¬ μžλ™ν™” 및 μ‹€ν—˜μ˜ λ°˜λ³΅μ„±μ„ κ·ΉλŒ€ν™”ν•˜λŠ” κ°•λ ₯ν•œ ν™•μž₯ 도ꡬ이닀 [1, 2]. ## 🧠 핡심 κ°œλ… (Core concepts) - **Save As Script (UI Export):** ComfyUI μ›Ή μΈν„°νŽ˜μ΄μŠ€μ˜ 메뉴λ₯Ό 톡해 ν˜„μž¬ μ›Œν¬ν”Œλ‘œμš°λ₯Ό μ¦‰μ‹œ 파이썬 슀크립트둜 λ‹€μš΄λ‘œλ“œν•˜λŠ” κΈ°λŠ₯이닀 [2, 3]. - **CLI Exporter:** μ €μž₯된 API 포맷의 JSON νŒŒμΌμ„ λͺ…령쀄 μΈν„°νŽ˜μ΄μŠ€μ—μ„œ 파이썬 μ½”λ“œλ‘œ 일괄 λ³€ν™˜ν•˜λŠ” 도ꡬ이닀 [2, 4]. - **Runtime Dependency:** μƒμ„±λœ μŠ€ν¬λ¦½νŠΈλŠ” 싀행을 μœ„ν•΄ λ°˜λ“œμ‹œ **ComfyUI λŸ°νƒ€μž„ ν™˜κ²½(PyTorch λ“±)**κ³Ό μ½”λ“œλ² μ΄μŠ€μ— λŒ€ν•œ μ ‘κ·Ό κΆŒν•œμ΄ ν•„μš”ν•˜λ‹€ [5, 6]. - **Metadata Preservation:** μƒμ„±λœ 슀크립트λ₯Ό 톡해 μ €μž₯된 μ΄λ―Έμ§€λŠ” 원본 μ›Œν¬ν”Œλ‘œμš° 메타데이터λ₯Ό ν¬ν•¨ν•˜λ―€λ‘œ, λ‹€μ‹œ ComfyUI둜 λ“œλž˜κ·Έ μ•€ λ“œλ‘­ν•˜μ—¬ 볡ꡬ가 κ°€λŠ₯ν•˜λ‹€ [5]. ## 🧩 μΆ”μΆœλœ νŒ¨ν„΄ (Extracted patterns) - **Workflow-to-Script Serialization:** μ‹œκ°μ  DAG(Directed Acyclic Graph) ꡬ쑰λ₯Ό 순차적인 파이썬 ν•¨μˆ˜ 호좜 및 클래슀 μΈμŠ€ν„΄μŠ€ν™” μ½”λ“œλ‘œ μ§λ ¬ν™”ν•˜λŠ” νŒ¨ν„΄μ„ λ”°λ₯Έλ‹€ [2, 7]. - **Headless Execution Pattern:** μ›Ή μ„œλ²„λ‚˜ ν”„λ‘ νŠΈμ—”λ“œ 없이도 μ›Œν¬ν”Œλ‘œμš°λ₯Ό μ‹€ν–‰ν•  수 있게 ν•˜μ—¬, λ…λ¦½ν˜• μ†Œν”„νŠΈμ›¨μ–΄ ν”„λ‘œμ νŠΈλ‚˜ μžλ™ν™” νŒŒμ΄ν”„λΌμΈμ— ν†΅ν•©ν•˜κΈ° μš©μ΄ν•œ ꡬ쑰λ₯Ό μ œκ³΅ν•œλ‹€ [8, 9]. - **Lifecycle Management:** μƒμ„±λœ 슀크립트의 `main()` ν•¨μˆ˜ λ‚΄μ—μ„œ λͺ¨λΈ 및 μΊμ‹œ 정리λ₯Ό μˆ˜ν–‰ν•˜λŠ” `finally` 블둝을 ν¬ν•¨ν•˜μ—¬ μžμ› 관리λ₯Ό μ΅œμ ν™”ν•œλ‹€ [6]. ## πŸ“– μ„ΈλΆ€ λ‚΄μš© (Details) - **μ£Όμš” κΈ°λŠ₯ 및 μ‚¬μš©λ²•:** - **μ›Ή UI ν™•μž₯:** `File -> Save As Script` 메뉴λ₯Ό 톡해 `workflow_api.py` 파일둜 μ›Œν¬ν”Œλ‘œμš°λ₯Ό 내보낸닀 [3]. - **CLI λ³€ν™˜:** `python comfyui_to_python.py --input_file workflow_api.json` λͺ…령을 톡해 κΈ°μ‘΄ JSON νŒŒμΌμ„ 슀크립트둜 λ³€ν™˜ν•  수 있으며, `--queue_size` μ˜΅μ…˜μœΌλ‘œ μ‹€ν–‰ 횟수λ₯Ό μ§€μ •ν•  수 μžˆλ‹€ [4]. - **ν™˜κ²½ μ„€μ •:** μ‹€ν–‰ ν™˜κ²½μ— 따라 `COMFYUI_PATH`λ₯Ό μ„€μ •ν•˜μ—¬ ComfyUI μ½”λ“œλ² μ΄μŠ€ μœ„μΉ˜λ₯Ό λͺ…μ‹œν•΄μ•Ό ν•œλ‹€ [6, 10]. - **기술적 νŠΉμ§•:** - **독립 μ‹€ν–‰ν˜• λŸ¬λ„ˆ:** μƒμ„±λœ μŠ€ν¬λ¦½νŠΈλŠ” ν”„λ‘¬ν”„νŠΈ μ„œλ²„κ°€ μ•„λ‹Œ **λ‹¨λ°œμ„± μ›Œν¬ν”Œλ‘œμš° μ‹€ν–‰κΈ°(single-shot runner)**둜 λ™μž‘ν•œλ‹€ [6]. - **인자 처리:** ComfyUI의 λŸ°νƒ€μž„ 인자 νŒŒμ„œλ₯Ό μž¬μ‚¬μš©ν•˜λ―€λ‘œ, `--highvram`, `--cpu`와 같은 λ©”λͺ¨λ¦¬ 관리 ν”Œλž˜κ·Έλ₯Ό 슀크립트 μ‹€ν–‰ μ‹œ 직접 전달할 수 μžˆλ‹€ [5]. - **파이썬 버전 μš”κ΅¬μ‚¬ν•­:** μ•ˆμ •μ μΈ λ™μž‘μ„ μœ„ν•΄ **Python 3.12 이상**의 버전을 ꢌμž₯ν•œλ‹€ [2]. ## βš–οΈ λͺ¨μˆœ 및 μ—…λ°μ΄νŠΈ (Contradictions & updates) - **동적 μ›Œν¬ν”Œλ‘œμš°μ˜ ν•œκ³„:** ν•œ μ†ŒμŠ€μ—μ„œλŠ” 이 도ꡬ가 쀑간 λ³€ν™˜ 단계가 ν•„μš”ν•˜κΈ° λ•Œλ¬Έμ— **동적인 μ›Œν¬ν”Œλ‘œμš°(Dynamic workflows)**λ₯Ό μ‹€ν–‰ν•˜κΈ°μ— 어렀움이 μžˆλ‹€λŠ” λΉ„νŒμ  μ‹œκ°μ„ μ œμ‹œν•œλ‹€ [9]. - **메뉴 μœ„μΉ˜ 변동성:** ν”„λ‘ νŠΈμ—”λ“œ 버전에 따라 `Save As Script` λ©”λ‰΄μ˜ μœ„μΉ˜κ°€ λ‹¬λΌμ§ˆ 수 μžˆλ‹€λŠ” 점이 λͺ…μ‹œλ˜μ–΄ μžˆλ‹€ [3, 6]. - **μ΅œμ‹ μ„± μœ μ§€:** 정적 λ°μ΄ν„°μ…‹μœΌλ‘œ ν›ˆλ ¨λœ LLM 기반 생성 도ꡬ와 달리, 이 μ΅μŠ€ν…μ…˜μ€ 둜컬의 λ…Έλ“œ λ ˆμ§€μŠ€νŠΈλ¦¬λ₯Ό ν™œμš©ν•˜λ €λŠ” μ‹œλ„λ₯Ό λ³΄μ΄μ§€λ§Œ, μ—¬μ „νžˆ μˆ˜λ™ λ³€ν™˜ 과정이 μˆ˜λ°˜λœλ‹€ [4, 11]. ## πŸ› οΈ 적용 사둀 (Applied in summary) - **pydn/ComfyUI-to-Python-Extension:** ν•΄λ‹Ή κ°œλ…μ΄ κ΅¬ν˜„λœ 핡심 ν”„λ‘œμ νŠΈ μ €μž₯μ†Œμ΄λ‹€ [1]. - **comfyui_to_python.py / comfyui_to_python_utils.py:** μ›Œν¬ν”Œλ‘œμš°λ₯Ό 파이썬 μ½”λ“œλ‘œ λ³€ν™˜ν•˜λŠ” 둜직이 λ‹΄κΈ΄ μ‹€μ œ μ†ŒμŠ€ νŒŒμΌλ“€μ΄λ‹€ [12]. - **install.py:** μ΅μŠ€ν…μ…˜ μ„€μΉ˜ 및 μ˜μ‘΄μ„± 관리λ₯Ό μœ„ν•œ 슀크립트둜 μ μš©λ˜μ–΄ μžˆλ‹€ [12]. - **Save As Script 메뉴:** ComfyUI의 `File` 메뉴 ν•˜λ‹¨μ— μ‹€μ œ μΈν„°νŽ˜μ΄μŠ€ μš”μ†Œλ‘œ κ΅¬ν˜„λ˜μ–΄ μ μš©λ˜μ—ˆλ‹€ [3]. ## βœ… 검증 μƒνƒœ 및 신뒰도 - **μƒνƒœ:** draft - **검증 단계:** conceptual (μ‹€μ œ 적용 사둀 발견 μ‹œ applied/validated둜 승격 κ°€λŠ₯) - **좜처 신뒰도:** B (Official Documentation / Primary Source via NotebookLM) - **쀑볡 검사 κ²°κ³Ό:** μ‹ κ·œ 생성 (New discovery) ## πŸ“ λ³€κ²½ 이λ ₯ (Change history) - 2026-05-19: Initial draft generated via Datacollector_MAC P-Reinforce engine.