--- id: hidden-and-flexible-inputs---comfyui title: "Hidden and Flexible inputs - 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_๋ฆฌ์ŠคํŠธ: [] tags: ["web", "wikify"] raw_sources: ["https://docs.comfy.org/custom-nodes/backend/more_on_inputs"] applied_in: [] github_commit: "" --- # [[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_TYPES` ๋‚ด `hidden` ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ฒ„์˜ ํŠน์ • ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•˜๋Š” ๊ตฌ์กฐํ™”๋œ ๋ฐฉ์‹. * **ํƒ€์ž… ์•ˆ์ „์„ฑ ํŒจํ„ด**: ์ปค์Šคํ…€ ํƒ€์ž…์„ ์ •์˜ํ•˜๊ณ , ์ถœ๋ ฅ๊ณผ ์ž…๋ ฅ์˜ ํƒ€์ž…์„ ์ผ์น˜์‹œ์ผœ ๋ฐ์ดํ„ฐ ํ๋ฆ„์„ ์ œ์–ดํ•˜๋Š” ๋ฐฉ์‹. * **์œ ์—ฐํ•œ ๊ฒ€์ฆ ํŒจํ„ด**: ๋ฐฑ์—”๋“œ์—์„œ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ์™€์ผ๋“œ์นด๋“œ(`*`) ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด `VALIDATE_INPUTS` ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ๊ฒ€์ฆ ๋กœ์ง์„ ์žฌ์ •์˜ํ•˜๋Š” ์ ‘๊ทผ๋ฒ•. ## ๐Ÿ“– ์„ธ๋ถ€ ๋‚ด์šฉ (Details) ### 1. Hidden Inputs (์ˆจ๊ฒจ์ง„ ์ž…๋ ฅ) ์ปค์Šคํ…€ ๋…ธ๋“œ๋Š” `INPUT_TYPES`์˜ `hidden` ๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ํ†ตํ•ด ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ๋‹ค์Œ ์ •๋ณด๋ฅผ ์š”์ฒญํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค: | ํ•„๋“œ | ํƒ€์ž… | ์„ค๋ช… | | :--- | :--- | :--- | | `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) ## ๐Ÿ”— ๊ด€๋ จ ๋ฌธ์„œ ๋งํฌ (Related document links) * [[INPUT_TYPES]] - ๋…ธ๋“œ์˜ ์ž…๋ ฅ ๋ฐ ์œ„์ ฏ์„ ์ •์˜ํ•˜๋Š” ํ•ต์‹ฌ ๋ฉ”์„œ๋“œ. * [[VALIDATE_INPUTS]] - ๋ฐฑ์—”๋“œ์—์„œ์˜ ํƒ€์ž… ๊ฒ€์ฆ ๋กœ์ง์„ ์ œ์–ดํ•˜๊ธฐ ์œ„ํ•œ ํ•จ์ˆ˜. * [[comfy_execution.graph.DynamicPrompt]] - ์‹คํ–‰ ์ค‘ ๋™์ ์œผ๋กœ ๋ณ€ํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋กฌํ”„ํŠธ ๊ฐ์ฒด. * [[forceInput]] - ์ปค์Šคํ…€ ์œ„์ ฏ์„ ์ž…๋ ฅ ํ•„๋“œ๋กœ ๊ฐ•์ œํ•˜๋Š” ์„ค์ • ๋ฐฉ๋ฒ•. ## ๐Ÿ“ ๋ณ€๊ฒฝ ์ด๋ ฅ (Change history) - 2026-05-20: Astra /wikify ๋กœ https://docs.comfy.org/custom-nodes/backend/more_on_inputs ๋ณธ๋ฌธ์—์„œ ์ดˆ์•ˆ ์ƒ์„ฑ.