--- id: node-definitions title: "Node Definitions" category: "10_Wiki/Topics" status: "draft" verification_status: "conceptual" canonical_id: "" aliases: ["Node Schema", "ComfyUI Node Structure"] duplicate_of: "" source_trust_level: "B" confidence_score: 0.90 created_at: 2026-05-20 updated_at: 2026-05-20 review_reason: "" merge_history: [] tags: ["research", "Comfyui workflow json 생성 방법", "Node Definitions"] raw_sources: ["NotebookLM Synthesis"] applied_in: ["workflow.json", "workflow_api.json", "object_info.json", "comfyui-workflow-to-api-converter-endpoint", "ComfyUI-WorkflowGenerator"] github_commit: "bc85382, 82df278" --- # [[Node Definitions]] ## 🎯 ν•œ 쀄 톡찰 (One-line insight) λ…Έλ“œ μ •μ˜λŠ” ComfyUI μ›Œν¬ν”Œλ‘œμš°μ˜ κΈ°λŠ₯적 논리와 μ‹œκ°μ  λ ˆμ΄μ•„μ›ƒμ„ κ²°μ •ν•˜λŠ” 핡심 μ›μž λ‹¨μœ„λ‘œ, 고유 ID와 μž…μΆœλ ₯ μŠ€ν‚€λ§ˆλ₯Ό 톡해 λ³΅μž‘ν•œ AI ν”„λ‘œμ„ΈμŠ€λ₯Ό 유ν–₯ λΉ„μˆœν™˜ κ·Έλž˜ν”„(DAG)둜 κ΅¬μ‘°ν™”ν•œλ‹€ [1-3]. ## 🧠 핡심 κ°œλ… (Core concepts) - **고유 μ‹λ³„μž (Node ID):** μ›Œν¬ν”Œλ‘œμš° λ‚΄μ—μ„œ 각 λ…Έλ“œλ₯Ό κ΅¬λΆ„ν•˜λŠ” κ³ μœ ν•œ 숫자 λ˜λŠ” λ¬Έμžμ—΄ ν‚€(예: "#37")둜, κ·Έλž˜ν”„ 순회 및 데이터 참쑰의 기쀀이 λœλ‹€ [4, 5]. - **클래슀 λ§€ν•‘ (Type/Class Type):** JSON의 `type` λ˜λŠ” `class_type` ν•„λ“œλŠ” ComfyUI λ°±μ—”λ“œ λ ˆμ§€μŠ€νŠΈλ¦¬μ— λ“±λ‘λœ νŠΉμ • Python ν΄λž˜μŠ€μ™€ λ…Έλ“œλ₯Ό μ—°κ²°ν•˜μ—¬ μ‹€ν–‰ λ‘œμ§μ„ μ •μ˜ν•œλ‹€ [2, 6, 7]. - **μž…μΆœλ ₯ 슬둯 (I/O Slots):** 데이터 흐름을 μœ„ν•œ μΈν„°νŽ˜μ΄μŠ€λ‘œ, `inputs`λŠ” μƒμœ„ λ…Έλ“œμ˜ 좜λ ₯을 μ°Έμ‘°ν•˜κ³  `outputs`λŠ” ν•˜μœ„ λ…Έλ“œλ‘œ 전달될 데이터 링크 정보λ₯Ό ν¬ν•¨ν•œλ‹€ [4, 8]. - **μœ„μ ― 및 속성 (Widgets & Properties):** μŠ¬λΌμ΄λ”, ν…μŠ€νŠΈ λ°•μŠ€, μ²΄ν¬λ°•μŠ€ λ“± μ‚¬μš©μžκ°€ 직접 μž…λ ₯ν•œ κ°’(`widgets_values`)κ³Ό λ…Έλ“œμ˜ λ‚΄λΆ€ λ™μž‘ 섀정을 μ €μž₯ν•œλ‹€ [2, 4, 9]. ## 🧩 μΆ”μΆœλœ νŒ¨ν„΄ (Extracted patterns) - **ν˜•μ‹μ˜ 이뢄화 (Serialization Bifurcation):** μ‹œκ°μ  정보(μœ„μΉ˜, 크기, κ·Έλ£Ή)λ₯Ό ν¬ν•¨ν•˜λŠ” **Frontend ν˜•μ‹(workflow.json)**κ³Ό 싀행에 ν•„μš”ν•œ 논리 μ •λ³΄λ§Œ 남긴 **API ν˜•μ‹(workflow_api.json)**으둜 λ‚˜λ‰˜μ–΄ κ΄€λ¦¬λœλ‹€ [10-12]. - **μ‹€ν–‰ λͺ¨λΈ μ—­μ „ (Execution Model Inversion):** 엔진은 λͺ¨λ“  λ…Έλ“œλ₯Ό μ‹€ν–‰ν•˜λŠ” λŒ€μ‹  'Save Image'와 같은 좜λ ₯ λ…Έλ“œμ—μ„œ μ—­λ°©ν–₯으둜 κ·Έλž˜ν”„λ₯Ό νƒμƒ‰ν•˜μ—¬ ν•„μš”ν•œ μ˜μ‘΄μ„± λ…Έλ“œλ§Œ μ‹€ν–‰ λ¦¬μŠ€νŠΈμ— ν¬ν•¨μ‹œν‚¨λ‹€ [13]. - **메타데이터 μž„λ² λ”© νŒ¨ν„΄:** μƒμ„±λœ λ―Έλ””μ–΄(PNG, WebP)의 tEXt/zTXt 청크 내에 λ…Έλ“œ κ·Έλž˜ν”„ JSON을 μ£Όμž…ν•˜μ—¬ 파일 μžμ²΄κ°€ μ›Œν¬ν”Œλ‘œμš° μ»¨ν…Œμ΄λ„ˆ 역할을 μˆ˜ν–‰ν•˜λ„λ‘ μ„€κ³„ν•œλ‹€ [14-16]. ## πŸ“– μ„ΈλΆ€ λ‚΄μš© (Details) ComfyUI λ…Έλ“œλŠ” **JSON v1.0 μŠ€ν‚€λ§ˆ**에 따라 μ •λ°€ν•˜κ²Œ μ •μ˜λ˜λ©°, 각 λ…Έλ“œ κ°μ²΄λŠ” λ‹€μŒκ³Ό 같은 ν•„μˆ˜ 속성을 λ³΄μœ ν•΄μ•Ό ν•œλ‹€ [2, 17]: - **id:** κ·Έλž˜ν”„ 순회λ₯Ό μœ„ν•œ μœ νš¨ν•œ μ •μˆ˜ λ˜λŠ” λ¬Έμžμ—΄ μ‹λ³„μž [2, 5]. - **type/class_type:** λ…Έλ“œμ˜ κΈ°λŠ₯을 κ²°μ •ν•˜λŠ” λ ˆμ§€μŠ€νŠΈλ¦¬ 클래슀λͺ… [2, 6]. - **pos & size:** UI μΊ”λ²„μŠ€ λ Œλ”λ§μ„ μœ„ν•œ μ’Œν‘œ `[x, y]` 및 차원 `[width, height]` 정보 (Frontend μ „μš©) [2, 4]. - **widgets_values:** μ‚¬μš©μžκ°€ μž…λ ₯ν•œ μœ„μ ― μƒνƒœ κ°’μ˜ λ°°μ—΄ λ˜λŠ” 객체 [2, 4]. - **order:** λ…Έλ“œμ˜ μ‹€ν–‰ λ˜λŠ” λ Œλ”λ§ μš°μ„ μˆœμœ„λ₯Ό λ‚˜νƒ€λ‚΄λŠ” 인덱슀 [2]. - **mode:** λ…Έλ“œμ˜ μž‘λ™ μƒνƒœ(ν™œμ„±, 우회/Bypass λ“±)λ₯Ό κ²°μ •ν•˜λŠ” 수치 [2, 18]. **μ—°κ²° ꡬ쑰(Connectivity):** 연결은 `inputs`와 `outputs` 배열을 톡해 μ •μ˜λœλ‹€. `inputs` λ‚΄λΆ€μ˜ `link` 속성은 λ“€μ–΄μ˜€λŠ” μ™€μ΄μ–΄μ˜ 고유 IDλ₯Ό 가리킀며, API ν˜•μ‹μ—μ„œλŠ” 이λ₯Ό μ†ŒμŠ€ λ…Έλ“œ ID와 슬둯 인덱슀의 쌍(예: `[19, 20]`)으둜 직접 ν¬ν•¨ν•˜κΈ°λ„ ν•œλ‹€ [8, 9]. 슬둯 인덱싱은 닀쀑 좜λ ₯을 κ°€μ§„ λ…Έλ“œ(예: VAE Loader)μ—μ„œ νŠΉμ • 데이터λ₯Ό μ„ νƒν•˜λŠ” 데 ν•„μˆ˜μ μ΄λ‹€ [8]. **μŠ€ν‚€λ§ˆ μΉ΄νƒˆλ‘œκ·Έ (object_info.json):** μ‹€ν–‰ 쀑인 μΈμŠ€ν„΄μŠ€μ—μ„œ μ‚¬μš© κ°€λŠ₯ν•œ λͺ¨λ“  λ…Έλ“œμ˜ μž…λ ₯/좜λ ₯ νƒ€μž…, ν•„μˆ˜/선택적 μž…λ ₯ ν•­λͺ©, κΈ°λ³Έκ°’ 및 툴팁 정보λ₯Ό ν¬ν•¨ν•˜λŠ” λ ˆμ§€μŠ€νŠΈλ¦¬ 역할을 ν•œλ‹€ [21, 22]. μ΄λŠ” μ›Œν¬ν”Œλ‘œμš°λ₯Ό λ™μ μœΌλ‘œ μƒμ„±ν•˜κ±°λ‚˜ κ²€μ¦ν•˜λŠ” λ„κ΅¬μ—μ„œ μ°Έμ‘° λͺ¨λΈλ‘œ μ‚¬μš©λœλ‹€ [23]. ## βš–οΈ λͺ¨μˆœ 및 μ—…λ°μ΄νŠΈ (Contradictions & updates) - **JSON 버전 차이:** μ†ŒμŠ€ λ°μ΄ν„°λŠ” μ΅œμ‹  버전인 **v1.0**을 μ–ΈκΈ‰ν•˜μ§€λ§Œ, 이전 버전인 **0.4**μ™€μ˜ ν˜Έν™˜μ„± λ¬Έμ œλ‚˜ μ—…λ°μ΄νŠΈ λ…Όμ˜κ°€ μ—¬μ „νžˆ μ§„ν–‰ μ€‘μž„μ„ μ•”μ‹œν•œλ‹€ [17, 24]. - **λŒ€μ†Œλ¬Έμž 민감도 이슈:** ComfyUI 검증기가 콀보 μœ„μ ― κ°’μ˜ λŒ€μ†Œλ¬Έμž(예: "True" vs "true") 차이둜 인해 싀행을 κ±°λΆ€ν•˜λŠ” κ²½μš°κ°€ λ°œμƒν•˜μ—¬, μ΅œμ‹  λ³€ν™˜ μ—”μ§„μ—μ„œλŠ” 이λ₯Ό μ •κ·œν™”(Normalization)ν•˜λŠ” 둜직이 μΆ”κ°€λ˜μ—ˆλ‹€ [25]. - **λ…Έλ“œ 식별 ν‚€μ˜ 차이:** Frontend JSON은 μˆ˜μΉ˜ν˜• λ¬Έμžμ—΄μ„ ID둜 μ‚¬μš©ν•˜λŠ” 반면, API JSON은 이λ₯Ό κΈ°λŠ₯적 ν‚€λ‘œ ν™œμš©ν•˜λ©° UI 메타데이터λ₯Ό μ™„μ „νžˆ μ œκ±°ν•œλ‹€ [10, 11, 26]. ## πŸ› οΈ 적용 사둀 (Applied in summary) - **workflow.json / workflow_api.json:** λ…Έλ“œ μ •μ˜κ°€ μ‹€μ œλ‘œ κ΅¬ν˜„λ˜λŠ” ν‘œμ€€ 파일 ν˜•μ‹μœΌλ‘œ, RunComfy 및 Replicate와 같은 μ„œλΉ„μŠ€μ—μ„œ 배포의 기초둜 μ‚¬μš©λœλ‹€ [12, 21, 27]. - **object_info.json:** μ‹€ν–‰ 쀑인 μ„œλ²„μ˜ `/object_info` μ—”λ“œν¬μΈνŠΈλ₯Ό 톡해 μ‹€μ‹œκ°„ λ…Έλ“œ μŠ€ν‚€λ§ˆλ₯Ό μ œκ³΅ν•œλ‹€ [23]. - **comfyui-workflow-to-api-converter-endpoint (v2.3.0):** λΉ„-API μ›Œν¬ν”Œλ‘œμš°λ₯Ό API ν˜•μ‹μœΌλ‘œ λ³€ν™˜ν•  λ•Œ `COMFY_DYNAMICCOMBO_V3` μœ„μ ― 및 ν•˜μœ„ μž…λ ₯을 μ²˜λ¦¬ν•˜κ³  λŒ€μ†Œλ¬Έμž 문제λ₯Ό ν•΄κ²°ν•˜λŠ” 둜직이 μ μš©λ˜μ—ˆλ‹€ (Commit: `bc85382`) [25, 28-30]. - **ComfyUI-WorkflowGenerator:** μžμ—°μ–΄ μ„€λͺ…을 기반으둜 `WorkflowGenerator` -> `NodeValidator` -> `WorkflowBuilder` 단계λ₯Ό 거쳐 λ…Έλ“œ κ·Έλž˜ν”„λ₯Ό λ™μ μœΌλ‘œ μƒμ„±ν•˜λ©°, `UpdateNodeCatalog` λ…Έλ“œλ₯Ό 톡해 둜컬 λ…Έλ“œ λ ˆμ§€μŠ€νŠΈλ¦¬λ₯Ό μŠ€μΊ”ν•œλ‹€ (Commit: `82df278`) [31-34]. ## βœ… 검증 μƒνƒœ 및 신뒰도 - **μƒνƒœ:** draft - **검증 단계:** conceptual (μ‹€μ œ 적용 사둀 발견 μ‹œ applied/validated둜 승격 κ°€λŠ₯) - **좜처 신뒰도:** B (Official Documentation / Primary Source via NotebookLM) - **쀑볡 검사 κ²°κ³Ό:** μ‹ κ·œ 생성 (New discovery) ## πŸ“ λ³€κ²½ 이λ ₯ (Change history) - 2026-05-20: Initial draft generated via Datacollector_MAC P-Reinforce engine.