Salt Workflow Input
Declare a typed, documented input so a workflow can be deployed as an API
- input_image
- input_mask
- value
Same family as SaltInfo, but this one actually does something functionally rather than just documenting. Salt Workflow Input declares a named, typed, documented input for your workflow instead of leaving a bare, unlabeled widget buried somewhere in the graph. It's the node-graph equivalent of a function parameter with a type hint and a docstring - which matters a lot more once a workflow stops being "my own graph that I remember" and starts being something a stranger calls through an API.
How it works
This exists for the same reason SaltInfo does: Salt AI's platform deploys ComfyUI workflows as Discord bots and hosted API endpoints, and once you're on the other end of that - calling a workflow you didn't build, or exposing one you did - you need to know exactly what parameters it takes, what type each one is, and what a sane default looks like. SaltInput is where you declare that, one input at a time.
The inputs and outputs that matter
input_nameandinput_desc(required, STRING) - the label and explanation for this input.input_type(required, enum: STRING, FLOAT, INT, BOOLEAN, IMAGE, MASK, SEED, FILE) - what kind of value this input represents.input_value(required, multiline STRING) - the default/fallback value.input_image/input_mask(optional, IMAGE / MASK) - attach an actual default image or mask wheninput_typeis set to IMAGE or MASK; text alone can't represent a default picture.input_allowed_values(optional, STRING) - restricts the input to a known set instead of accepting anything.user_override_required(optional, BOOLEAN, default false) - forces whoever calls the workflow to explicitly supply a value instead of silently falling back to your default. Worth turning on for anything where a silent default is a footgun - an API key, a prompt that should never be left blank.relative_path(optional, BOOLEAN, default false) - only relevant for FILE-type inputs; toggles whether the path resolves relative to the workflow.
Output is value (*), typed as whatever you configured - wire it wherever that input is meant to be consumed downstream in your graph.
How to install it
ComfyUI Manager: search SaltAI-Open-Resources or SaltAI, install, restart. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/get-salt-AI/SaltAI
then restart. No model, no heavy dependency.
Common issues & troubleshooting
Type mismatch downstream. Declaring input_type as FLOAT but wiring value into a node that expects a STRING surfaces as an error at that consuming node, not here - this node itself is permissive about its * output, so it won't catch the mismatch for you.
Inputs aren't showing up as configurable on Salt's platform. That's a platform-side integration question this pack's README genuinely doesn't cover - there's no worked example of a full deploy-ready graph shipped with the repo, so if you're building specifically for Salt's deployment path, expect to figure the platform-side wiring out separately from this node's own documentation.
Forgot user_override_required on something sensitive. If a caller can silently run your workflow using a default API key or a placeholder prompt because you left this flag off, that's on the workflow author, not the node - set it explicitly wherever a silent default would be a real problem.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| input_name | STRING | — | |
| input_desc | STRING | — | |
| input_type | COMBO | 8 options: STRING, FLOAT, INT, BOOLEAN, IMAGE, MASK, +2 | |
| input_value | STRING | — | |
| input_imageopt | IMAGE | — | |
| input_maskopt | MASK | — | |
| input_allowed_valuesopt | STRING | — | |
| user_override_requiredopt | BOOLEAN | false | — |
| relative_pathopt | BOOLEAN | false | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| value | * | — |