Float Presets (genkai)
Stop retyping 1.5 into six boxes
- value
There's a number in your workflow that you change every run - megapixels, denoise, a clip's length in seconds - and by the time it's wired to the fourth node you've typed it into four widgets and forgotten to change one. Float Presets (genkai) makes that number a thing you click instead of a thing you type.
What it is
A bank of saved FLOAT values with one of them selected. The selected value is what the node outputs, and clicking a different tile is how you change it. That's the whole feature set, and it's the most forgettable node in the pack and probably the one you'll keep in your default workflow.
The interesting part is why it's not just a Primitive node. The plumbing layer argument is that value nodes fight two things: repetition and illegibility. Core's PrimitiveFloat solves the first - one source, fanned out - but it holds exactly one number. Float Presets is what you want when the number is one of three you cycle between all afternoon: 0.75 / 1.0 / 1.5 megapixels, denoise 0.35 / 0.5 / 0.7. You're not hunting a value, you're switching modes.
How it works
The Python half is about ten lines and does nothing but cast. All the behaviour lives in the JavaScript in the pack's web/ folder, and the trick it plays explains every quirk below: it finds the node's real selected widget, hides it, and puts a panel of number tiles on top. Clicking a tile writes the chosen number back into that hidden widget. So the deck and the actual node input are the same value, and ordinary FLOAT serialization still does the work.
The preset list lives in the node's properties, so it saves with the workflow and travels when you copy-paste the node. It starts you with three values (5, 10, 15) and caps out at 24. Click the number inside a tile to edit it; click anywhere else on the tile to select it. The × only shows on hover and is disabled at one preset.
The input and output that matter
There's one of each, which is the correct design for a node this size.
selected(FLOAT, default5, range ±1,000,000,000, step0.01) - the active value. You'll rarely touch the raw field; the tiles write to it.value(FLOAT) - the output. Wire it into any numeric input.
A closing note on style: this is an editor for values you flip between, not a slider and not a randomiser. If you want a single number in a single place, a core Primitive still does that job.
Install
It ships inside the pack, so there's nothing separate to install. In ComfyUI Manager, search for Genkai (the pack is GENKAIx/Genkai-ComfyUI-Nodes), or do it by hand:
cd ComfyUI/custom_nodes
git clone https://github.com/GENKAIx/Genkai-ComfyUI-Nodes.git
Restart ComfyUI, then hard-refresh the browser with Ctrl+F5 - the tiles are injected by a frontend extension, so a cached old page shows a bare number field instead of a deck.
No models, no downloads for this node. One pack-level trap, though: __init__.py imports every module in one go, including waveform.py, which does import av and import aiohttp at the top of the file. The pack's requirements.txt/pyproject.toml declare no dependencies, so nothing installs PyAV for you. If it's missing, the entire pack fails to import and Float Presets disappears along with the video viewers. Node missing from the menu? Check the console for No module named 'av' before blaming the clone; the fix is pip install av aiohttp into ComfyUI's Python.
Where people get burned
It only emits FLOAT. Frame counts, seeds, steps and batch sizes want an INT socket and ComfyUI will refuse the link - no silent casting, just a type mismatch on the connection. Use PrimitiveInt for those.
The target has to be a socket first. A widget baked into another node isn't an input yet - right-click it and pick Convert widget to input, then wire value in. Note Nodes 2.0 moved that gesture's wording around, and third-party UIs were the casualty of that rewrite.
Clicking a tile doesn't queue a run. It changes the value for the next run. Deliberate, correct, and people click four more times before realising.
If the deck renders blank, you're watching the pack's custom DOM panel fail - the rest of the Nodes 2.0 shakeout. The value still saves; switch to the legacy canvas or update the frontend and the tiles come back.
Worth knowing about this pack
It's a solo-authored project - GENKAI publishes through a Telegram channel rather than a subreddit, and searching the usual places turns up essentially no thread history. Not a red flag by itself, but there's no crowd-sourced troubleshooting to lean on, so read the source when something looks off. For this node there's almost nothing to go wrong: ten lines of Python, no network calls, no key, no model.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| selected | FLOAT | 5.00-1000000000–1000000000 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| value | FLOAT | — |