Vision Model Settings
One set of dials for every vision model in the graph
- settings
If you've ever rebuilt a ComfyUI workflow with three of the same widget blocks, you know the pain this node exists to kill: the sampling dials for a vision model are the same on every inference node, and retyping them per node means changing them in three places whenever you want to experiment. Vision Model Settings is the "one source, many consumers" pattern applied to mamorett/orama's VLMs - a single block of generation parameters that any of the pack's inference nodes can read from.
How it works
The node bundles six generation parameters into one VISION_SETTINGS value. Wire that output into the settings input on any inference node - LFM2.5-VL, Step3-VL, or MiniCPM-V - and those values override the node's inline widgets when the run happens. Wire the same settings block into two or three inference nodes and they all sample identically, which is exactly what you want when you're comparing model output on the same image.
It's just a dictionary under the hood. The inference node checks whether a settings value is connected and, if so, replaces its own defaults with whatever the dict carries.
The inputs (these are the dials)
All required, but every one has a sane default:
max_new_tokens- how long the answer may get. Default 512, max 8192.temperature- sampling randomness, 0–2. Default 0.7. Lower for more consistent captions.top_k- keep the top-K most likely tokens. Default 50,0= disabled.top_p- nucleus sampling cutoff. Default 0.9.repetition_penalty- 1.0 = off; nudge above 1.0 if the model starts looping phrases.do_sample-True= stochastic sampling. Flip toFalsefor pure greedy decoding (temperature is then ignored - deterministic, which is nice for captioning training sets).
Output is a single VISION_SETTINGS socket.
Two gotchas worth knowing
First, the settings node's max_new_tokens tops out at 8192 - fine for the LFM and MiniCPM nodes, but the Step3-VL node itself allows up to 65536. If you want a genuinely long Step3 generation, set it on the node, not here.
Second, connecting the settings node doesn't hide the inline widgets - it just wins the argument. If you tweak a temperature on the node itself and nothing changes, that's the settings block silently overriding you. Unplug it and tweak again.
Install
Same as the rest of the pack:
cd ComfyUI/custom_nodes
git clone https://github.com/mamorett/orama
Restart ComfyUI (or search orama in ComfyUI Manager). No extra dependencies - it's pure plumbing.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| max_new_tokens | INT | 5121–8192 | — |
| temperature | FLOAT | 0.700–2 | — |
| top_k | INT | 500–1000 | 0 = disabled |
| top_p | FLOAT | 0.900–1 | — |
| repetition_penalty | FLOAT | 1.001–2 | — |
| do_sample | BOOLEAN | true | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| settings | VISION_SETTINGS | — |