Files
2nd/10_Wiki/Topics/Comfyui/위키 Hidden and Flexible inputs - 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.4 KiB

id, title, category, status, verification_status, canonical_id, aliases, duplicate_of, source_trust_level, confidence_score, created_at, updated_at, review_reason, merge_리스트, 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_리스트 tags raw_sources applied_in github_commit
hidden-and-flexible-inputs---comfyui Hidden and Flexible inputs - ComfyUI 10_Wiki/Topics draft conceptual
B 0.8 2026-05-20 2026-05-20
web
wikify
https://docs.comfy.org/custom-nodes/backend/more_on_inputs

Hidden and Flexible inputs - ComfyUI

🎯 한 줄 통찰 (One-line insight)

ComfyUI 커스텀 노드 개발 시 서버로부터 특정 정보를 요청하기 위한 숨겨진 입력(Hidden inputs)과 데이터 타입을 유연하게 정의하는 방법론에 대한 가이드입니다.

🧠 핵심 개념 (Core concepts)

  • Hidden inputs: 클라이언트 측에는 나타나지 않지만, 서버로부터 UNIQUE_ID, PROMPT, EXTRA_PNGINFO, DYNPROMT와 같은 특정 정보를 요청할 수 있는 입력 옵션입니다.
  • Custom datatypes: 노드 간 데이터 전달을 위해 고유한 이름을 가진 사용자 정의 타입을 생성하고, forceInput 옵션을 통해 위젯이 아닌 입력으로 강제하는 기능입니다.
  • Wildcard inputs: * 기호를 사용하여 모든 소스에 연결 가능한 입력을 정의하며, 백엔드 검증을 건너뛰기 위해 [[VALIDATE_INPUTS]]를 활용할 수 있습니다.
  • Dynamically created inputs: 클라이언트 측에서 동적으로 생성된 데이터를 처리하기 위해 ContainsAnyDict와 같은 구조를 사용하여 임의의 이름으로 전달되는 데이터를 수용합니다.

🧩 추출된 패턴 (Extracted patterns)

  • 서버 요청 패턴: INPUT_TYPEShidden 키를 사용하여 서버의 특정 데이터에 접근하는 구조화된 방식.
  • 타입 안전성 패턴: 커스텀 타입을 정의하고, 출력과 입력의 타입을 일치시켜 데이터 흐름을 제어하는 방식.
  • 유연한 검증 패턴: 백엔드에서 지원하지 않는 와일드카드(*) 기능을 사용하기 위해 VALIDATE_INPUTS 함수를 통해 검증 로직을 재정의하는 접근법.

📖 세부 내용 (Details)

1. Hidden Inputs (숨겨진 입력)

커스텀 노드는 INPUT_TYPEShidden 딕셔너리를 통해 서버로부터 다음 정보를 요청할 수 있습니다:

필드 타입 설명
unique_id dict[str, str] UNIQUE_ID: 노드의 유일 식별자. 클라이언트 측의 id 속성과 일치하며 클라이언트-서버 통커뮤니케이션에 사용됨.
prompt dict[str, str] PROMPT: 클라이언트가 서버로 보낸 전체 프롬프트 객체.
extra_pnginfo dict[str, str] EXTRA_PNGINFO: 저장될 .png 파일의 메타데이터에 복사될 딕셔너리. 추가 정보 저장 및 노드 간 통신용으로 사용됨.
dynamic_prompt dict[str, str] DYNPROMPT: comfy_execution.graph.DynamicPrompt 인스턴스. 실행 중 Node Expansion에 따라 변할 수 있음 (고급 루프 구현용).

2. Flexible Inputs (유연한 입력)

Custom Datatypes (사용자 정의 데이터 타입)

  • 정의: 고유한 대문자 이름(예: CHEESE)을 가진 타입을 생성하여 노드 간 데이터를 전달합니다.
  • 제약 사항: 클라이언트가 해당 타입을 인지하지 못하므로, 위젯이 아닌 입력으로 작동하도록 forceInput: True 설정을 권장합니다.

Wildcard Inputs (와일드카드 입력)

  • *를 사용하여 모든 소스에 연결 가능한 입력을 정의할 수 있습니다.
  • 백엔드 검증을 건너뛰기 위해 VALIDATE_INPUTS 함수에서 input_types 파라미터를 활용합니다.

Dynamically Created Inputs (동적 생성 입력)

  • 클라이언트에서 동적으로 생성된 데이터에 접근하기 위해 ContainsAnyDict(dict) 클래스를 사용하여 임의의 키를 가진 데이터를 수용할 수 있습니다.

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

  • 메타데이터 관련 주의사항: disable_metadata 옵션으로 ComfyUI를 시작할 경우, EXTRA_PNGINFO에 저장된 데이터가 저장되지 않을 수 있습니다.

🛠️ 적용 사례 (Applied in summary)

  • 고급 노드 구현: DYNPROMPT를 사용하여 커스텀 노드 내에서 루프(loops) 기능을 구현하는 사례.
  • 데이터 전달 전략: CHEESE와 같은 사용자 정의 타입을 생성하여 특정 타입의 출력만 특정 입력에 연결되도록 제한하는 설계.

검증 상태 및 신뢰도

  • 상태: draft
  • 검증 단계: conceptual
  • 출처 신뢰도: B (Primary Source — 웹사이트 본문 직접 추출)
  • 중복 검ass 결과: 신규 생성 (New discovery)

📝 변경 이력 (Change history)