Files
2nd/10_Wiki/Topics/Comfyui/위키 Execution Model Inversion Guide - ComfyUI 2026-05-20.md
T
koriweb a3f63e56e2 Add ComfyUI wikified docs and youtube extracts; tidy raw→Topics
- 10_Wiki/Comfyui/: ComfyUI docs generated via /wikify
- 00_Raw/_youtube/: /youtube extraction outputs
- Move some 00_Raw originals into 10_Wiki/Topics_meeting; remove empty canvases and stray files

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-20 18:41:10 +09:00

5.8 KiB

id, title, category, status, verification_status, canonical_id, aliases, duplicate_of, source_trust_level, confidence_score, created_at, updated_at, review_reason, merge_history, tags, raw_sources, applied_in, github_commit
id title category status verification_status canonical_id aliases duplicate_of source_trust_level confidence_score created_at updated_at review_reason merge_history tags raw_sources applied_in github_commit
execution-model-inversion-guide---comfyui Execution Model Inversion Guide - ComfyUI 10_Wiki/Topics draft conceptual
B 0.8 2026-05-20 2026-05-20
web
wikify
https://docs.comfy.org/development/comfyui-server/execution_model_inversion_guide

Execution Model Inversion Guide - Com뮬UI

🎯 한 줄 통찰 (One-line insight)

PR #2666을 통해 실행 모델이 기존의 역방향 재귀 모델에서 순방향 위상 정렬(front-to-back topological sort) 방식으로 변경됨에 따른 커스텀 노드 개발자용 가이드입니다.

🧠 핵심 개념 (Core concepts)

  • 실행 모델 전환: PR #2666을 통해 실행 모델이 back-to-front recursive model에서 front-to-back topological sort로 반전되었습니다.
  • 선택적 입력 검증 (Optional Input Validation): 기존에는 "required" 입력에 대해서만 검증이 이루어졌으나, 이제는 "optional" 입력을 사용하는 커스텀 노드에 대해 새로운 검증 규칙과 대응 방안이 적용됩니다.
  • 실행 순서의 비결정성 (Execution Order): 실행 순서는 노드의 ID나 캐시된 값에 따라 달라질 수 있으며, 그래프 구조 외의 요소에 의존해서는 안 됩니다.
  • 지연 평가 (Lazy Evaluation): 입력값이 필요한 시점까지 평가를 미루는 기능이 도입되었습니다.

📌 추출된 패턴 (Extracted patterns)

  • Monkey Patching의 위험성: 실행 모델을 Monkey Patching하는 코드는 새로운 모델에서 작동하지 않을 가능성이 높습니다.
  • 검증 실패 대응 전략: 커스텀 노드 작성 시 검증 오류를 피하기 위해 VALIDATE_INPUTS 함수를 정의하거나, 특정 데이터 구조(예: 리스트 대신 딕셔계 사용)를 사용하는 패턴이 권장됩니다.
  • 확장성 (Node Expansion): 런타임에 노드가 서브그래프로 확장되어 루프 구현을 가능하게 하는 구조를 가집니다.

📖 세부 내용 (Details)

1. 입력 검증 오류 및 해결 방법 (Optional Input Validation)

커스텀 노드 작성 시 발생할 수 있는 검증 실패 사례와 권장 솔루션입니다.

발생 원인 상세 내용 권장 솔루션/대응
예약된 추가 파라미터 오용 비교 불가능한 타입(예: 딕셔너리)에 min, max 같은 예약어를 사용 uiMin, uiMax와 같은 비예약 키로 변경하여 사용
복합 타입 (Composite Types) CUSTOM_A, CUSTOM_B와 같은 형태의 출력/입력 사용 시 검증 문제 발생 출력 시에는 MakeSmartType과 같은 래퍼(Wrapper)를 정의하여 사용하거나, 입력 시에는 VALIDATE_INPUTS를 통해 검기 스킵
상수 리스트 사용 그래프 정의 내에서 [1, 2, 3]과 같은 리스트를 상수로 사용 (이전에는 프론트엔드 확장이 필요했음) 리스트를 { "value": [1, 2, 3] }와 같이 딕셔너리 형태로 감싸서 사용

2. VALIDATE_INPUTS 함수의 새로운 기능

검증 오류 영향을 줄이기 위해 추가된 기능들입니다.

  • 기본 검증 스킵: VALIDATE_INPUTS 함수에 의해 수신된 입력은 기본 검증이 생략됩니다.
  • kwargs 지원: **kwargs를 처리할 수 있어, 노드 작성자가 모든 입력을 검증된 것으로 간주하게 할 수 있습니다.
  • input_types 인자: 이 인자가 존재하면 연결된 출력 타입과 입력 타입을 매핑하는 딕셔너리를 제공하며, 이때 타입 검증이 생략됩니다.

3. 기타 기능적 변화

  • Lazy Evaluation: 노드와 그 조상(ancestors) 노드를 평가하기 전에 필요 여부를 먼저 확인하여 효율성을 높입니다.
  • Node Expansion: 런타임 시 노드가 서브그래프로 확장되어 tail-recursion을 통한 루프 구현을 지원합니다.

⚖️ 모순 및 업데이트 (Contradictions & updates)

  • 업데이트: 실행 모델이 기존의 back-to-front 재귀 방식에서 front-to-back 위상 정렬 방식으로 완전히 뒤집혔습니다(Inverted)는 점이 가장 중요한 기술적 변화입니다.
  • 주의사항: 실행 순서가 캐시 값에 따라 변할 수 있으므로, 그래프 구조 이외의 요소에 의존하는 것은 위험하다는 경고가 포함되어 있습니다.

🛠️ 적용 사례 (Applied in summary)

  • 커스텀 노드 개발자: 새로운 실행 모델 하에서 기존 커스텀 노드가 깨지는 것을 방지하기 위해 uiMin/uiMax 사용, VALIDATE_INPUTS 정의, 리스트의 딕셔너리화 등의 대응책을 적용해야 합니다.

검증 상태 및 신뢰도

  • 상태: draft
  • 검증 단계: conceptual
  • 출처 신뢰도: B (Primary Source — 웹사이트 본문 직접 추출)
  • 중복 검사 결과: 신규 생성 (New discovery)
  • PR #2666 : 실행 모델의 구조적 변화를 일으킨 핵심 변경 사항입니다.
  • Monkey Patching : 실행 모델을 수정하려는 시도가 새로운 모델에서 작동하지 않을 수 있음을 나타냅니다.
  • Lazy Evaluation : 입력값 평가 시점을 조절하여 성능을 최적화하는 기술입니다.
  • Node Expansion : 노드가 서브그래프로 확장되어 복잡한 로직(루프 등)을 수행하게 하는 기능입니다.

📝 변경 이력 (Change history)