--- id: node-expansion---comfyui title: "Node Expansion - ComfyUI" category: "10_Wiki/Topics" status: "draft" verification_status: "conceptual" canonical_id: "" aliases: [] duplicate_of: "" source_trust_level: "B" confidence_score: 0.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/backend/expansion"] applied_in: [] github_commit: "" --- # [[Node Expansion - ComfyUI]] ## 🎯 ν•œ 쀄 톡찰 (One-line insight) [[Node Expansion]]은 λ…Έλ“œκ°€ μ‹€ν–‰ μ‹œμ μ— μƒˆλ‘œμš΄ [[subgraph]]λ₯Ό λ°˜ν™˜ν•˜μ—¬ κ·Έλž˜ν”„ λ‚΄μ—μ„œ ν•΄λ‹Ή λ…Έλ“œλ₯Ό λŒ€μ²΄ν•˜λ„λ‘ ν•¨μœΌλ‘œμ¨, [[loop]]와 같은 κ³ κΈ‰ κΈ°λŠ₯을 κ΅¬ν˜„ν•  수 있게 ν•˜λŠ” κΈ°μˆ μž…λ‹ˆλ‹€. ## 🧠 핡심 κ°œλ… (Core concepts) - **Node Expansion**: λ…Έλ“œμ˜ μ‹€ν–‰ 결과둜 κΈ°μ‘΄ λ…Έλ“œλ₯Ό λŒ€μ²΄ν•  μƒˆλ‘œμš΄ [[subgraph]]λ₯Ό λ°˜ν™˜ν•˜λŠ” κ³ κΈ‰ κΈ°λ²•μž…λ‹ˆλ‹€. - **GraphBuilder**: [[subgraph]] 생성 μ‹œ μ‹€μˆ˜λ₯Ό λ°©λ°©μ§€ν•˜κΈ° μœ„ν•΄ ꢌμž₯λ˜λŠ” 클래슀둜, 효율적인 κ·Έλž˜ν”„ ꡬ좕을 μ§€μ›ν•©λ‹ˆλ‹€. ello - **Efficient Subgraph Caching**: ν™•μž₯된 [[subgraph]] λ‚΄μ˜ λ…Έλ“œλ“€μ„ κ°œλ³„μ μœΌλ‘œ μΊμ‹±ν•˜μ—¬, λ³€κ²½ 사항 λ°œμƒ μ‹œ 전체 μž¬λ‘œλ“œ 없이 νŠΉμ • λͺ¨λΈλ§Œ μœ μ§€ν•  수 μžˆλ„λ‘ ν•˜λŠ” μ΅œμ ν™” μ „λž΅μž…λ‹ˆλ‹€. - **Expansion Requirements**: ν™•μž₯을 μˆ˜ν–‰ν•˜λŠ” λ…Έλ“œλŠ” λ°˜λ“œμ‹œ κ²°κ³Όκ°’(`result`)κ³Ό ν™•μž₯될 κ·Έλž˜ν”„(`expand`)λ₯Ό ν¬ν•¨ν•˜λŠ” λ”•μ…”λ„ˆλ¦¬λ₯Ό λ°˜ν™˜ν•΄μ•Ό ν•©λ‹ˆλ‹€. ## 🧩 μΆ”μΆœλœ νŒ¨ν„΄ (Extracted patterns) - **ꡬ쑰적 λŒ€μ²΄ νŒ¨ν„΄**: 기쑴의 λ…Έλ“œ μ‹€ν–‰ 방식(μ¦‰μ‹œ κ²°κ³Ό λ°˜ν™˜)μ—μ„œ λ²—μ–΄λ‚˜, μ‹€ν–‰ 쀑에 μƒˆλ‘œμš΄ λ…Έλ“œ ꡬ쑰λ₯Ό μƒμ„±ν•˜μ—¬ κ·Έλž˜ν”„μ— μ‚½μž…ν•˜λŠ” νŒ¨ν„΄μ„ κ°€μ§‘λ‹ˆλ‹€. - **캐싱 μ΅œμ ν™” μ „λž΅**: [[subgraph]] λ‚΄μ˜ μž…λ ₯을 전달할 λ•Œ, 직접적인 κ°’ λŒ€μ‹  [[subgraph]] 객체에 λŒ€ν•œ 링크λ₯Ό μ „λ‹¬ν•˜μ—¬ 캐싱 νš¨μœ¨μ„ λ†’μ΄λŠ” νŒ¨ν„΄μ„ μ‚¬μš©ν•©λ‹ˆλ‹€. - **μˆ˜λ™ κ΅¬ν˜„ μ œμ•½ 사항**: [[GraphBuilder]]λ₯Ό μ‚¬μš©ν•˜μ§€ μ•Šμ„ 경우, λ…Έλ“œ ID의 κ³ μœ μ„± 및 결정둠적 μœ μ§€λ₯Ό μœ„ν•΄ κ°œλ°œμžκ°€ 직접 관리해야 ν•˜λŠ” κ·œμΉ™(ID 쀑볡 λ°©μ§€, μΌκ΄€λœ ID μœ μ§€)이 μ‘΄μž¬ν•©λ‹ˆλ‹€. ## πŸ“– μ„ΈλΆ€ λ‚΄μš© (Details) ### πŸ› οΈ Node Expansion κ΅¬ν˜„ μš”κ΅¬μ‚¬ν•­ λ…Έλ“œκ°€ ν™•μž₯을 μˆ˜ν–‰ν•˜κΈ° μœ„ν•΄μ„œλŠ” λ°˜λ“œμ‹œ μ•„λž˜μ˜ ν‚€λ₯Ό ν¬ν•¨ν•˜λŠ” λ”•μ…”λ„ˆλ¦¬λ₯Ό λ°˜ν™˜ν•΄μ•Ό ν•©λ‹ˆλ‹€. | ν‚€ (Key) | μ„€λͺ… | | :--- | :--- | | `result` | λ…Έλ“œμ˜ 좜λ ₯값에 λŒ€ν•œ νŠœν”Œ. 일반적인 μ΅œμ’… κ°’κ³Ό λ…Έλ“œ 좜λ ₯값이 ν˜Όν•©λ  수 있음. | | `expand` | ν™•μž₯에 μ‚¬μš©λ  μ΅œμ’…ν™”λœ κ·Έλž˜ν”„. [[GraphBuilder]]λ₯Ό μ‚¬μš©ν•˜μ§€ μ•Šμ„ 경우 λ³„λ„μ˜ κ·œμΉ™ μ€€μˆ˜ ν•„μš”. | ### πŸ› οΈ GraphBuilder λ―Έμ‚¬μš© μ‹œ μΆ”κ°€ μš”κ΅¬μ‚¬ν•­ [[GraphBuilder]]λ₯Ό μ‚¬μš©ν•˜μ§€ μ•Šκ³  μˆ˜λ™μœΌλ‘œ κ΅¬ν˜„ν•  경우, λ‹€μŒμ˜ 쑰건을 직접 μ²˜λ¦¬ν•΄μ•Ό ν•©λ‹ˆλ‹€. - **Node ID κ³ μœ μ„±**: κ·Έλž˜ν”„ μ „μ²΄μ—μ„œ λ…Έλ“œ IDλŠ” λ°˜λ“œμ‹œ κ³ μœ ν•΄μ•Ό ν•©λ‹ˆλ‹€ (리슀트 μ‚¬μš©μœΌλ‘œ μΈν•œ 동일 λ…Έλ“œμ˜ 닀쀑 μ‹€ν–‰ 포함). - **결정둠적 ID**: κ·Έλž˜ν”„μ˜ μ—¬λŸ¬ μ‹€ν–‰(캐싱에 μ˜ν•œ λΆ€λΆ„ μ‹€ν–‰ 포함) μ‚¬μ΄μ—μ„œ λ…Έλ“œ IDλŠ” 결정둠적이고 μΌκ΄€λ˜μ–΄μ•Ό ν•©λ‹ˆλ‹€. - **ID 관리 도ꡬ**: `GraphBuilder.alloc_prefix()` λ˜λŠ” `comfy.graph_utils.add_graph_prefix`λ₯Ό μ‚¬μš©ν•˜μ—¬ κΈ°μ‘΄ κ·Έλž˜ν”„λ₯Ό μˆ˜μ •ν•˜κ±°λ‚˜ 접두사λ₯Ό 생성할 수 μžˆμŠ΅λ‹ˆλ‹€. ### πŸ› οΈ 효율적인 Subgraph 캐싱 (Efficient Subgraph Caching) - [[torch.Tensor]]와 같은 λΉ„λ¦¬ν„°λŸ΄ μž…λ ₯을 [[subgraph]] λ‚΄ λ…Έλ“œμ— 전달할 수 μžˆμœΌλ‚˜, μ΄λŠ” 캐싱을 μ €ν•΄ν•  수 μžˆμŠ΅λ‹ˆλ‹€. - κ°€λŠ₯ν•œ 경우, λ…Έλ“œ μžμ²΄λ³΄λ‹€λŠ” [[subgraph]] 객체에 λŒ€ν•œ 링크λ₯Ό μ „λ‹¬ν•˜λŠ” 것이 ꢌμž₯λ©λ‹ˆλ‹€. - μž…λ ₯의 `Additional Parameters`μ—μ„œ `rawLink`둜 μ„ μ–Έν•˜μ—¬ μ‰½κ²Œ κ΅¬ν˜„ν•  수 μžˆμŠ΅λ‹ˆλ‹€. ## βš–οΈ λͺ¨tes 및 μ—…λ°μ΄νŠΈ (Contradictions & updates) λ³Έλ¬Έ λ‚΄ μƒμΆ©λ˜λŠ” μ •λ³΄λŠ” μ—†μœΌλ‚˜, [[GraphBuilder]] μ‚¬μš© 여뢀에 따라 κ°œλ°œμžκ°€ μ±…μž„μ Έμ•Ό ν•˜λŠ” μš”κ΅¬μ‚¬ν•­μ˜ λ²”μœ„κ°€ 달라짐을 λͺ…μ‹œν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. ## πŸ› οΈ 적용 사둀 (Applied in summary) - **Checkpoint Merging μ˜ˆμ‹œ**: `load_and_merge_checkpoints` ν•¨μˆ˜λ₯Ό 톡해 두 개의 체크포인트λ₯Ό λ‘œλ“œν•˜κ³ , 이λ₯Ό λ³‘ν•©ν•˜λŠ” μƒˆλ‘œμš΄ λ…Έλ“œ ꡬ쑰(`ModelMergeSimple`, `ClipMergeSimple`)λ₯Ό μƒμ„±ν•˜μ—¬ λ°˜ν™˜ν•˜λŠ” ꡬ체적인 μ½”λ“œκ°€ μ œμ‹œλ˜μ—ˆμŠ΅λ‹ˆλ‹€. 이 κ³Όμ •μ—μ„œ [[GraphBuilder]]λ₯Ό μ‚¬μš©ν•˜μ—¬ ν™•μž₯을 κ΅¬ν˜„ν•˜λŠ” 방식이 예둜 λ“€μ—ˆμŠ΅λ‹ˆλ‹€. ## βœ… 검증 μƒνƒœ 및 신뒰도 - **μƒνƒœ:** draft - **검증 단계:** conceptual - **좜처 신뒰도:** B (Primary Source β€” μ›Ήμ‚¬μ΄νŠΈ λ³Έλ¬Έ 직접 μΆ”μΆœ) - **쀑볡 검사 κ²°κ³Ό:** μ‹ κ·œ 생성 (New discovery) ## πŸ”— κ΄€λ ¨ λ¬Έμ„œ 링크 (Related document links) - [[Node Expansion]]: λ…Έλ“œκ°€ μƒˆλ‘œμš΄ κ·Έλž˜ν”„ ꡬ쑰λ₯Ό λ°˜ν™˜ν•˜λŠ” 핡심 κΈ°μˆ μž…λ‹ˆλ‹€. - [[GraphBuilder]]: [[subgraph]] 생성 μ‹œ μ‹€μˆ˜λ₯Ό λ°©μ§€ν•˜κΈ° μœ„ν•΄ ꢌμž₯λ˜λŠ” λ„κ΅¬μž…λ‹ˆλ‹€. - [[subgraph]]: ν™•μž₯을 톡해 μƒˆλ‘­κ²Œ μƒμ„±λ˜μ–΄ κ·Έλž˜ν”„μ— μ‚½μž…λ  λ…Έλ“œλ“€μ˜ μ§‘ν•©μž…λ‹ˆλ‹€. - [[loop]]: [[Node Expansion]]을 톡해 κ΅¬ν˜„ κ°€λŠ₯ν•œ κ³ κΈ‰ κΈ°λŠ₯의 μ˜ˆμ‹œμž…λ‹ˆλ‹€. - [[Efficient Subgraph Caching]]: ν™•μž₯된 λ…Έλ“œμ˜ μž¬μ‚¬μš©μ„±μ„ 높이기 μœ„ν•œ μ΅œμ ν™” κΈ°λ²•μž…λ‹ˆλ‹€. ## πŸ“ λ³€κ²½ 이λ ₯ (Change history) - 2026-05-20: Astra /wikify 둜 https://docs.comfy.org/custom-nodes/backend/expansion λ³Έλ¬Έμ—μ„œ μ΄ˆμ•ˆ 생성.