Any Input
The wildcard slot of a served ComfyUI workflow
- input
- *
Any Input is the "and everything else" option in Comfy-Pack's input family. The pack already gives you String, Int, Image and File inputs for the common cases - this one is for when your API parameter is a ComfyUI combo (a dropdown), a float, or some type the dedicated nodes don't cover. If you're serving a ComfyUI workflow as an API, this is your catch-all.
Quick context in case you landed here cold: Comfy-Pack is BentoML's toolkit for packaging and deploying ComfyUI workflows. You drop ComfyPack input/output nodes into a graph, and they define the request body of the served endpoint - every CPack input node becomes a parameter of the POST /generate call, and the node's name is the parameter name. So a node named model becomes the "model" key in your JSON payload.
How it works
Mechanically it's the simplest thing in the pack: it takes a single *-typed input, passes it straight through (an identity function), and emits it as an anytype output you can wire into any node that accepts flexible types. The clever part is how Comfy-Pack derives the API schema from it. When the workflow is served, the pack looks at the node's value and metadata to decide the parameter type:
- a plain default value becomes that Python type (a float stays a float, a string stays a string),
- if the node carries combo options, it becomes a
Literal- the API will reject anything not on the list, - if it has min/max/step metadata, it becomes a bounded int or float.
So the same node can back a model-name dropdown, a CFG float, or a free string, depending on how it's configured.
The one input
- input - the value itself, default empty. Type
*, meaning it accepts anything.
That's the whole surface: one input, one anytype output. Nothing else to set.
Install
Standard pack install:
- ComfyUI Manager: search
comfy-pack, Install, restart, refresh. - Manual:
cd ComfyUI/custom_nodes && git clone https://github.com/bentoml/comfy-pack, restart.
Heavier than the average node because it drags in BentoML and comfy-cli, but it's a one-time cost.
Where people get burned
The main trap is forgetting the naming rule. Since the node's title becomes the API key, two Any Input nodes in one workflow with the same label collide - the pack appends an index to keep them distinct, but the parameter name you get is uglier than you planned. Name your nodes deliberately from the start. The other trap is overusing it: for the 90% case (prompts, seeds, dimensions) the dedicated String and Int inputs give you typed validation for free - out-of-range ints get rejected with a clean 422 before the workflow ever runs. Use Any Input where it's actually needed, not where it's convenient. It's the most flexible node in the pack and the least helpful one to reach for first.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| input | * | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| * | * | — |