--- id: getting-started---comfyui title: "Getting Started - ComfyUI" category: "10_Wiki/Topics" status: "draft" verification_status: "conceptual" canonical_id: "" aliases: [] duplicate_of: "" source_trust_level: "B" confidence_score: 8 created_at: 2026-05-20 updated_at: 2026-05-20 review_reason: "" merge_history: [] tags: ["web", "wikify"] raw_sources: ["https://docs.comfy.org/custom-nodes/walkthrough"] applied_in: [] github_commit: "" --- # [[Getting Started - ComfyUI]] ## 🎯 ν•œ 쀄 톡찰 (One-line insight) [[ComfyUI]]의 μ»€μŠ€ν…€ λ…Έλ“œλ₯Ό κ°œλ°œν•˜κΈ° μœ„ν•΄ Python λ°±μ—”λ“œ μ½”λ“œ μž‘μ„±λΆ€ν„° JavaScript ν΄λΌμ΄μ–ΈνŠΈ ν™•μž₯κΉŒμ§€μ˜ μ „ 과정을 λ‹¨κ³„λ³„λ‘œ μ•ˆλ‚΄ν•˜λŠ” κ°€μ΄λ“œμž…λ‹ˆλ‹€. ## 🧠 핡심 κ°œλ… (Core concepts) * **Custom Node Development**: [[Python]] 클래슀λ₯Ό μ‚¬μš©ν•˜μ—¬ [[ComfyUI]]에 μƒˆλ‘œμš΄ κΈ°λŠ₯을 μΆ”κ°€ν•˜λŠ” κ³Όμ •μž…λ‹ˆλ‹€. * **Node Structure**: μ»€μŠ€ν…€ λ…Έλ“œλŠ” `CATEGORY`, `INPUT_TYPES`, `RETURN_TSYPES`, `FUNCTION`μ΄λΌλŠ” λ„€ κ°€μ§€ ν•„μˆ˜ μš”μ†Œλ₯Ό 포함해야 ν•©λ‹ˆλ‹€. * **Backend-to-Frontend Communication**: `PromptServer`λ₯Ό 톡해 μ„œλ²„μ—μ„œ ν΄λΌμ΄μ–ΈνŠΈλ‘œ λ©”μ‹œμ§€λ₯Ό μ „μ†‘ν•˜μ—¬ UI에 ν”Όλ“œλ°±μ„ 쀄 수 μžˆμŠ΅λ‹ˆλ‹€. * **Client Extension**: [[JavaScript]]λ₯Ό μ‚¬μš©ν•˜μ—¬ ν΄λΌμ΄μ–ΈνŠΈ 츑의 λ™μž‘μ„ ν™•μž₯ν•˜κ³  μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ‘°μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€. ## 🧩 μΆ”μΆœλœ νŒ¨ν„΄ (Extracted patterns) * **Scaffolding Pattern**: `comfy-cli`λ₯Ό μ‚¬μš©ν•˜μ—¬ ν”„λ‘œμ νŠΈ 디렉토리 ꡬ쑰와 κΈ°λ³Έ 섀정을 μžλ™ μƒμ„±ν•˜λŠ” λ°©μ‹μž…λ‹ˆλ‹€. * **Data Processing Pattern**: [[torch.Tensor]] ν˜•νƒœμ˜ 이미지 데이터λ₯Ό μž…λ ₯λ°›μ•„ νŠΉμ • μ—°μ‚°(평균, 채널별 계산 λ“±)을 톡해 결과값을 λ„μΆœν•˜λŠ” 둜ct νŒ¨ν„΄μ΄ λ°˜λ³΅λ©λ‹ˆλ‹€. * **Registration Pattern**: `NODE_CLASS_MAPPINGS`와 `NODE_DISPLAY_NAME_MAPPINGS`λ₯Ό 톡해 μž‘μ„±λœ λ…Έλ“œλ₯Ό [[ComfyUI]] μ‹œμŠ€ν…œμ— λ“±λ‘ν•˜λŠ” κ΅¬μ‘°μž…λ‹ˆλ‹€. ## πŸ“– μ„ΈλΆ€ λ‚΄μš© (Details) ### 1. μ»€μŠ€ν…€ λ…Έλ“œ 개발 μ€€λΉ„ * **μ „μ œ 쑰건**: μž‘λ™ κ°€λŠ₯ν•œ [[ComfyUI]] μ„€μΉ˜ 및 `comfy-cli` μ„€μΉ˜κ°€ ν•„μš”ν•©λ‹ˆλ‹€. * **ν”„λ‘œμ νŠΈ μ„€μ •**: `cd ComfyUI/custom_nodes` κ²½λ‘œμ—μ„œ `comform node scaffold` λͺ…λ Ήμ–΄λ₯Ό μ‚¬μš©ν•˜μ—¬ ν”„λ‘œμ νŠΈλ₯Ό 생성할 수 μžˆμŠ΅λ‹ˆλ‹€. ### 2. λ…Έλ“œ μ •μ˜ (Defining the Node) μ»€μŠ€ν…€ λ…Έλ“œλŠ” Python 클래슀둜 μ •μ˜λ˜λ©° λ‹€μŒμ˜ λ„€ κ°€μ§€ 핡심 μš”μ†Œλ₯Ό 포함해야 ν•©λ‹ˆλ‹€: * **CATEGORY**: λ…Έλ“œκ°€ λ©”λ‰΄μ˜ μ–΄λŠ μœ„μΉ˜μ— ν‘œμ‹œλ μ§€ μ§€μ •ν•©λ‹ˆλ‹€. * **INPUT_TYPES**: λ…Έλ“œκ°€ 받을 μž…λ ₯κ°’(Dictionary ν˜•νƒœ)을 μ •μ˜ν•˜λŠ” 클래 λ©”μ„œλ“œμž…λ‹ˆλ‹€. * **RETURN_TYPES**: λ…Έλ“œκ°€ 좜λ ₯ν•  데이터 νƒ€μž…μ˜ νŠœν”Œμž…λ‹ˆλ‹€. * **FUNCTION**: λ…Έλ“œ μ‹€ν–‰ μ‹œ 호좜될 λ©”μ„œλ“œμ˜ μ΄λ¦„μž…λ‹ˆλ‹€. ### 3. μ£Όμš” κΈ°λŠ₯ κ΅¬ν˜„ (The main function) * 이미지 처리λ₯Ό μœ„ν•΄ `torch` 라이러리λ₯Ό μ‚¬μš©ν•˜λ©°, μž…λ ₯된 μ΄λ―Έμ§€λŠ” `[B, H, W, C]` ν˜•νƒœμ˜ `torch.Tensor`둜 μ²˜λ¦¬λ©λ‹ˆλ‹€. * `.flatten()`, `torch.mean()`, `.item()` λ“±μ˜ λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•˜μ—¬ ν…μ„œ 데이터λ₯Ό Python float κ°’μœΌλ‘œ λ³€λ‘œ λ³€ν™˜ν•˜μ—¬ μ—°μ‚°ν•  수 μžˆμŠ΅λ‹ˆλ‹€. ### 4. λ…Έλ“œ 등둝 및 ν™•μž₯ (Register & Add Options) * **등둝**: `src/nodes.py` 파일의 끝에 `NODE_CLASS_MAPPINGS`λ₯Ό μˆ˜μ •ν•˜μ—¬ λ…Έλ“œλ₯Ό 등둝해야 ν•˜λ©°, μˆ˜μ • ν›„μ—λŠ” [[ComfyUI]] μž¬μ‹œμž‘μ΄ ν•„μˆ˜μ μž…λ‹ˆλ‹€. * **μ˜΅μ…˜ μΆ”κ°€**: `INPUT_TYPES` 내에 μƒˆλ‘œμš΄ μœ„μ ―(예: mode 선택)을 μΆ”κ°€ν•˜μ—¬ κΈ°λŠ₯의 λ²”μœ„λ₯Ό ν™•μž₯ν•  수 μžˆμŠ΅λ‹ˆλ‹€. ### 5. ν΄λΌμ΄μ–ΈνŠΈ ν™•μž₯ (Client Extension) * `web/js` 디렉토리λ₯Ό μƒμ„±ν•˜κ³  `__init__.py`μ—μ„œ `WEB_DIRECTORY`λ₯Ό 내보내도둝 μ„€μ •ν•©λ‹ˆλ‹€. * `app.registerExtension`을 톡해 μ„œλ²„λ‘œλΆ€ν„° 받은 λ©”μ‹œμ§€λ₯Ό μˆ˜μ‹ ν•˜λŠ” λ¦¬μŠ€λ„ˆλ₯Ό ꡬ좕할 수 μžˆμŠ΅λ‹ˆλ‹€. ## βš–οΈ λͺ¨λ™ 및 μ—…λ°μ΄νŠΈ (Contradictions & updates) λ³Έλ¬Έ λ‚΄μš© 쀑 μƒμΆ©λ˜λŠ” μ •λ³΄λŠ” μ—†μœΌλ©°, μ΅œμ‹  개발 κ°€μ΄λ“œλ₯Ό λ”°λ₯΄κ³  μžˆμŠ΅λ‹ˆλ‹€. ## πŸ› οΈ 적용 사둀 (Applied in summary) * **예제 μ‹œλ‚˜λ‚˜λ¦¬μ˜€**: μ—¬λŸ¬ 이미지 배치 쀑 κ°€μž₯ 밝은 이미지λ₯Ό μ„ νƒν•˜λŠ” λ…Έλ“œμ—μ„œ μ‹œμž‘ν•˜μ—¬, 색상 κΈ°μ€€(reddest, greenest λ“±)을 μΆ”κ°€ν•˜κ³  μ΅œμ’…μ μœΌλ‘œ ν΄λΌμ΄μ–ΈνŠΈ λ©”μ‹œμ§€ μ•Œλ¦ΌκΉŒμ§€ κ΅¬ν˜„ν•˜λŠ” 전체 μ›Œν¬ν”Œλ‘œμš°λ₯Ό λ³΄μ—¬μ€λ‹ˆλ‹€. ## βœ… 검증 μƒνƒœ 및 신뒰도 - **μƒνƒœ:** draft - **검증 단계:** conceptual - **좜처 신뒰도:** B (Primary Source β€” μ›Ήμ‚¬μ΄νŠΈ λ³Έλ¬Έ 직접 μΆ”μΆœ) - **쀑볡 검사 κ²°κ³Ό:** μ‹ κ·œ 생성 (New discovery) ## πŸ”— κ΄€λ ¨ λ¬Έμ„œ 링크 (Related document links) * [[ComfyUI]] - μ»€μŠ€ν…€ λ…Έλ“œ 개발의 λŒ€μƒμ΄ λ˜λŠ” 메인 ν”„λ ˆμž„μ›Œν¬μž…λ‹ˆλ‹€. * [[Python]] - λ°±μ—”λ“œ 둜직 μž‘μ„±μ„ μœ„ν•œ 핡심 μ–Έμ–΄μž…λ‹ˆλ‹€. * [[JavaScript]] - ν΄λΌμ΄μ–ΈνŠΈ μΈ‘ ν™•μž₯을 μœ„ν•΄ μ‚¬μš©λ˜λŠ” μ–Έμ–΄μž…λ‹ˆλ‹€. * [[torch.Tensor]] - 이미지 데이터 처리λ₯Ό μœ„ν•œ κΈ°λ³Έ 데이터 κ΅¬μ‘°μž…λ‹ˆλ‹€. * [[Comfy CLI]] - λ…Έλ“œ μŠ€μΊν΄λ”© 및 관리λ₯Ό μœ„ν•œ λ„κ΅¬μž…λ‹ˆλ‹€. ## πŸ“ λ³€κ²½ 이λ ₯ (Change history) - 2026-05-20: Astra /wikify 둜 https://docs.comfy.org/custom-nodes/walkthrough λ³Έλ¬Έμ—μ„œ μ΄ˆμ•ˆ 생성.