--- id: /prompt-endpoint title: "/prompt endpoint" category: "10_Wiki/Topics" status: "draft" verification_status: "conceptual" canonical_id: "" aliases: [] 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: ["comfy_api_python.py", "/workflow/convert", "new_pipeline.py", "comfyui_to_python.py"] github_commit: "" --- # [[/prompt endpoint]] ## 🎯 ν•œ 쀄 톡찰 (One-line insight) `/prompt endpoint`λŠ” μ‹œκ°μ  λ…Έλ“œ κ·Έλž˜ν”„λ₯Ό μ‹€ν–‰ κ°€λŠ₯ν•œ λ°±μ—”λ“œ λͺ…λ ΉμœΌλ‘œ μ „ν™˜ν•˜μ—¬ ComfyUI의 κ°•λ ₯ν•œ 생성 λŠ₯λ ₯을 μ™ΈλΆ€ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 및 μžλ™ν™” νŒŒμ΄ν”„λΌμΈκ³Ό μ—°κ²°ν•˜λŠ” 핡심 κ²Œμ΄νŠΈμ›¨μ΄μ΄λ‹€ [1-3]. ## 🧠 핡심 κ°œλ… (Core concepts) - **API Format (Backend Format):** `/prompt` μ—”λ“œν¬μΈνŠΈλŠ” μ‹œκ°μ  메타데이터가 제거되고 싀행에 ν•„μˆ˜μ μΈ λ…Έλ“œ μž…λ ₯ 및 μ—°κ²° μ •λ³΄λ§Œ ν¬ν•¨λœ μ „μš© JSON ν˜•μ‹μ„ μš”κ΅¬ν•œλ‹€ [1, 4, 5]. - **Flattened Execution Graph:** μ—”λ“œν¬μΈνŠΈμ— μ „λ‹¬λ˜λŠ” λ°μ΄ν„°λŠ” 링크가 λ…Έλ“œ μž…λ ₯ 내뢀에 직접 μ‚½μž…λœ ν˜•νƒœλ‘œ, λ°±μ—”λ“œ 엔진이 μ¦‰μ‹œ μ²˜λ¦¬ν•  수 μžˆλ„λ‘ μ΅œμ ν™”λœ ꡬ쑰λ₯Ό κ°€μ§„λ‹€ [1, 6, 7]. - **Programmatic Interaction:** HTTP POST μš”μ²­μ„ 톡해 JSON νŽ˜μ΄λ‘œλ“œλ₯Ό μ „μ†‘ν•¨μœΌλ‘œμ¨ GUI 없이도 μ›Œν¬ν”Œλ‘œμš°λ₯Ό μ‹€ν–‰ν•˜κ³  μ‹€μ‹œκ°„μœΌλ‘œ νŒŒλΌλ―Έν„°λ₯Ό μˆ˜μ •ν•  수 μžˆλ‹€ [8-10]. - **Self-Contained Requests:** 이미지 μž…λ ₯을 Base64둜 μΈμ½”λ”©ν•˜μ—¬ JSON 내에 직접 ν¬ν•¨μ‹œν‚΄μœΌλ‘œμ¨ λ³„λ„μ˜ 파일 μ €μž₯ 없이도 μ„œλ²„ μ‚¬μ΄λ“œ μ²˜λ¦¬κ°€ κ°€λŠ₯ν•œ 독립적인 생성 μš”μ²­μ„ κ΅¬μ„±ν•œλ‹€ [10, 11]. ## 🧩 μΆ”μΆœλœ νŒ¨ν„΄ (Extracted patterns) - **UI-API 뢄리 νŒ¨ν„΄:** μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€λ₯Ό μœ„ν•œ `workflow.json`(Frontend)κ³Ό μ‹€μ œ 싀행을 μœ„ν•œ `workflow_api.json`(Backend)을 μ—„κ²©νžˆ κ΅¬λΆ„ν•˜μ—¬ νš¨μœ¨μ„±μ„ κ·ΉλŒ€ν™”ν•œλ‹€ [4, 12, 13]. - **직접 λ”•μ…”λ„ˆλ¦¬ μ‘°μž‘(Direct Dictionary Manipulation):** Python λ“±μ˜ μ–Έμ–΄λ‘œ JSON νŒŒμΌμ„ λ‘œλ“œν•œ ν›„, λ…Έλ“œ IDλ₯Ό ν‚€λ‘œ μ‚¬μš©ν•˜μ—¬ ν”„λ‘¬ν”„νŠΈλ‚˜ μ‹œλ“œ(Seed) 값을 λ™μ μœΌλ‘œ κ΅μ²΄ν•˜λŠ” νŒ¨ν„΄μ΄ 주둜 μ‚¬μš©λœλ‹€ [9, 10]. - **μ›Ήμ†ŒμΌ“(WebSocket) κ²°ν•© ꡬ쑰:** `/prompt` μ—”λ“œν¬μΈνŠΈλ‘œ μž‘μ—…μ„ νμž‰(Queueing)ν•œ ν›„, `/ws` μ—”λ“œν¬μΈνŠΈλ₯Ό 톡해 μ§„ν–‰ 상황과 μ΅œμ’… μƒμ„±λœ λ°”μ΄λ„ˆλ¦¬ 데이터λ₯Ό μ‹€μ‹œκ°„μœΌλ‘œ μˆ˜μ‹ ν•œλ‹€ [10]. - **μ‹€ν–‰ λͺ¨λΈ 인버전(Execution Model Inversion):** λ°±μ—”λ“œ 엔진은 μ „λ‹¬λœ JSONμ—μ„œ μ΅œμ’… 좜λ ₯ λ…Έλ“œ(Save Image λ“±)λΆ€ν„° μ—­μΆ”μ ν•˜μ—¬ ν•„μš”ν•œ λ…Έλ“œλ§Œ μ‹€ν–‰ν•˜λŠ” μ΅œμ ν™” λ‘œμ§μ„ μˆ˜ν–‰ν•œλ‹€ [14]. ## πŸ“– μ„ΈλΆ€ λ‚΄μš© (Details) `/prompt endpoint`λŠ” ComfyUI μ„œλ²„κ°€ μ™ΈλΆ€λ‘œλΆ€ν„° μ‹€ν–‰ λͺ…령을 λ°›λŠ” ν‘œμ€€ HTTP API κ²½λ‘œμ΄λ‹€ [3, 10]. 이 μ—”λ“œν¬μΈνŠΈλŠ” 일반적인 μ €μž₯용 JSON(Frontend Format)κ³Ό ν˜Έν™˜λ˜μ§€ μ•ŠμœΌλ©°, λ°˜λ“œμ‹œ **'Dev mode Options'**λ₯Ό ν™œμ„±ν™”ν•˜μ—¬ μΆ”μΆœν•œ **API Format JSON**을 νŽ˜μ΄λ‘œλ“œλ‘œ μ‚¬μš©ν•΄μ•Ό ν•œλ‹€ [8, 15, 16]. API μš”μ²­ μ‹œ JSON의 루트 ν‚€λŠ” λ…Έλ“œ ID(숫자 λ˜λŠ” λ¬Έμžμ—΄)κ°€ 되며, 각 값은 ν•΄λ‹Ή λ…Έλ“œμ˜ `class_type`κ³Ό `inputs`λ₯Ό ν¬ν•¨ν•˜λŠ” 객체둜 κ΅¬μ„±λœλ‹€ [9, 17]. μ΄λ•Œ μž…λ ₯ ν•„λ“œλŠ” λ‹¨μˆœν•œ κ°’λΏλ§Œ μ•„λ‹ˆλΌ λ‹€λ₯Έ λ…Έλ“œμ˜ 좜λ ₯ μŠ¬λ‘―μ— λŒ€ν•œ μ°Έμ‘°(`[node_id, slot_index]`)λ₯Ό ν¬ν•¨ν•˜μ—¬ 데이터 흐름을 μ •μ˜ν•œλ‹€ [6]. μ„œλ²„λŠ” μš”μ²­μ„ λ°›μœΌλ©΄ λ‚΄λΆ€μ μœΌλ‘œ `validate_prompt` ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•˜μ—¬ κ·Έλž˜ν”„μ˜ 무결성을 κ²€μ¦ν•œ ν›„, 이λ₯Ό `ExecutionList`둜 λ³€ν™˜ν•˜μ—¬ 순차적으둜 λ…Έλ“œλ₯Ό μ‹€ν–‰ν•œλ‹€ [18]. λ§Œμ•½ μ›Œν¬ν”Œλ‘œμš°μ— ν•„μš”ν•œ μ»€μŠ€ν…€ λ…Έλ“œκ°€ 둜컬 μ„œλ²„μ— μ„€μΉ˜λ˜μ–΄ μžˆμ§€ μ•ŠμœΌλ©΄ 싀행이 κ±°λΆ€λ˜λ―€λ‘œ, ComfyUI Manager 등을 ν†΅ν•œ 사전 μ˜μ‘΄μ„± 해결이 ν•„μˆ˜μ μ΄λ‹€ [19-21]. ## βš–οΈ λͺ¨μˆœ 및 μ—…λ°μ΄νŠΈ (Contradictions & updates) - **ν˜Έν™˜μ„± 문제:** 일반적인 `Save` λ²„νŠΌμœΌλ‘œ μƒμ„±λœ JSON을 `/prompt` μ—”λ“œν¬μΈνŠΈμ— 직접 μ „μ†‘ν•˜λ©΄ μ—λŸ¬κ°€ λ°œμƒν•œλ‹€ [16]. λ°˜λ“œμ‹œ `Save (API Format)`λ₯Ό μ‚¬μš©ν•˜κ±°λ‚˜ λ³„λ„μ˜ λ³€ν™˜ 도ꡬλ₯Ό 거쳐야 ν•œλ‹€ [15, 16]. - **메타데이터 손싀:** API ν˜•μ‹μœΌλ‘œ λ³€ν™˜λœ JSON은 λ…Έλ“œ μœ„μΉ˜λ‚˜ κ·Έλ£Ή 정보가 λͺ¨λ‘ μ‚­μ œλ˜λ―€λ‘œ, 이λ₯Ό λ‹€μ‹œ ComfyUI μΊ”λ²„μŠ€μ— λ“œλž˜κ·Έν•˜λ©΄ μ‹œκ°μ  λ ˆμ΄μ•„μ›ƒμ΄ 파괴된 "λΌˆλŒ€" ν˜•νƒœλ§Œ λ‚¨κ²Œ λœλ‹€ [22]. λ”°λΌμ„œ 원본 μ›Œν¬ν”Œλ‘œμš° 파일의 별도 보관이 ꢌμž₯λœλ‹€ [22]. ## πŸ› οΈ 적용 사둀 (Applied in summary) - **comfy_api_python.py:** Python의 `urllib.request`λ₯Ό μ‚¬μš©ν•˜μ—¬ `http://{server_address}/prompt` κ²½λ‘œμ— JSON 데이터λ₯Ό POST λ°©μ‹μœΌλ‘œ μ „μ†‘ν•˜λŠ” μ‹€μ œ κ΅¬ν˜„ μ½”λ“œκ°€ ν¬ν•¨λ˜μ–΄ 있음 [10]. - **/workflow/convert μ—”λ“œν¬μΈνŠΈ:** μ‹œκ°μ  μ›Œν¬ν”Œλ‘œμš° JSON을 μ„œλ²„ μ‚¬μ΄λ“œμ—μ„œ μ¦‰μ‹œ API ν˜•μ‹μœΌλ‘œ λ³€ν™˜ν•˜μ—¬ `/prompt` μ—”λ“œν¬μΈνŠΈμ— λ°”λ‘œ 보낼 수 μžˆλ„λ‘ μ§€μ›ν•˜λŠ” μ»€μŠ€ν…€ λ…Έλ“œκ°€ 개발됨 [16, 21]. - **Mystic Pipeline (new_pipeline.py):** ν΄λΌμš°λ“œ ν™˜κ²½μ—μ„œ ComfyUI μ„œλ²„λ₯Ό κ΅¬λ™ν•˜κ³  μ‚¬μš©μž μž…λ ₯을 μ›Œν¬ν”Œλ‘œμš° JSON에 μ£Όμž…ν•˜μ—¬ μ‹€ν–‰ν•˜λŠ” νŒŒμ΄ν”„λΌμΈ μžλ™ν™”μ— 적용됨 [23, 24]. - **ComfyUI-to-Python-Extension:** API 포맷의 μ›Œν¬ν”Œλ‘œμš° JSON을 λ…λ¦½μ μœΌλ‘œ μ‹€ν–‰ κ°€λŠ₯ν•œ `.py` 슀크립트둜 λ³€ν™˜ν•˜λŠ” CLI 도ꡬ 및 라이브러리 κ΅¬μ‘°μ—μ„œ 핡심 μ°Έμ‘° λŒ€μƒμœΌλ‘œ μ‚¬μš©λ¨ [25, 26]. ## βœ… 검증 μƒνƒœ 및 신뒰도 - **μƒνƒœ:** draft - **검증 단계:** conceptual (μ‹€μ œ 적용 사둀 λ‹€μˆ˜ 발견됨) - **좜처 신뒰도:** B (Official Documentation / API Docs / GitHub Source Code) - **쀑볡 검사 κ²°κ³Ό:** μ‹ κ·œ 생성 (New discovery) ## πŸ“ λ³€κ²½ 이λ ₯ (Change history) - 2026-05-20: Initial draft generated via Datacollector_MAC P-Reinforce engine.