INT Remap @ vrch.ai
The boring node that makes every live control usable
- OUTPUT
INT Remap is the least glamorous node in the ComfyUI Web Viewer pack and, once you're doing any amount of live control, one of the most useful. It does one arithmetic thing: takes an integer in one range and re-expresses it in another. No browser, no networking, no hardware - pure math sitting between your control sources and the parameters they drive.
Why you'll actually reach for it
The whole point of the Web Viewer pack is that input arrives in someone's preferred range, and the thing you're driving wants another range entirely. An OSC fader or keyboard counter typically spits out 0–100. Your sampler's steps want 1–40. Your seed wants whatever. Rather than editing every source node to match every destination, you drop an INT Remap between them and solve it in one place.
It's also the node that makes inversion painless. output_invert flips the mapping, so "turn the dial up" becomes "value goes down." That sounds trivial until you're reaching for it on a live show and realize your fader feels backwards - one checkbox instead of rewiring.
The inputs:
input_min/input_max- the range the incoming value is expected to live in. Defaults 0–1, so if you're feeding it a 0–100 fader, set these to 0 and 100.output_min/output_max- the range you want out. Default 0–100.output_invert- flips the mapping high-to-low.output_default- what comes out when no input is connected at all.input(optional) - theINTyou're remapping, wired from any source.
The single OUTPUT (an INT) plugs into the destination. That's the whole interface. It clamps, so out-of-range inputs snap to the nearest bound instead of producing nonsense.
Where it slots in
A realistic chain: INT OSC Control or INT Key Control → INT Remap → whatever parameter you're performing on. It's deliberately dumb, and that's the appeal - it's the adapter you can throw into any workflow without thinking. The pack's own gamepad-and-live-portrait example workflows are full of remap nodes doing exactly this: joystick range in, a useful head-rotation range out.
Installing it
Same pack install as everything here:
- ComfyUI Manager → search ComfyUI Web Viewer → install.
- Manual:
Windows portable usescd ComfyUI/custom_nodes git clone https://github.com/VrchStudio/comfyui-web-viewer pip install -r requirements.txtpython_embeded\python.exe -m pip install -r ComfyUI\custom_nodes\comfyui-web-viewer\requirements.txt. - Restart ComfyUI.
No models, no config. The heavy requirements.txt (it includes the optional Music2Emotion stack - librosa, pytorch_lightning, numba - that you'll never load for this node) is the only thing between you and a working install, and even that just takes time.
The only trap
Beginners routinely leave input_min/input_max at the 0–1 defaults and feed in a 0–100 value, then wonder why everything snaps to 0 or 1. Set the input range to what your source actually emits, not what the placeholder shows. Other than that, there's not much to get wrong - which, honestly, is the point. When you're live and fumbling, you want the boring node.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| input_min | INT | 0-999999–999999 | — |
| input_max | INT | 1-999999–999999 | — |
| output_min | INT | 0-999999–999999 | — |
| output_max | INT | 100-999999–999999 | — |
| output_invert | BOOLEAN | false | — |
| output_default | INT | 0 | — |
| inputopt | INT | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| OUTPUT | INT | — |