Nodes/Nilor Nodes by Nilor Corp/๐Ÿ‘บ User Input Preset Controller
ComfyUI Node

๐Ÿ‘บ User Input Preset Controller

A dropdown that's supposed to drive your inputs โ€” if the backend shipped

By nilor-corpยทCreated 2 years agoยทUpdated 6 months agoยท 6
๐Ÿ‘บ User Input Preset Controller
  • _preset_hook_1
    โ—„preset_group_namemy_presetโ–บ

    The idea is great: one node that acts as a "settings preset" - pick a preset from a dropdown and a bunch of connected inputs snap to that preset's values. Nilor Preset Controller is that idea, and here's the uncomfortable truth about the version you can actually install: the Python side is a function called do_nothing that returns an empty tuple, and the dropdown that's supposed to apply values depends on a presets_config.json5 service that isn't shipped with the repo. You're getting the skeleton of a feature, not the feature.

    What it's designed to do

    The docstring is explicit about intent: preset_group_name is a "semantic key used to look up choices and values in presets_config.json5 via PresetsService (drives dropdown + value application)." In other words, the node is meant to be a controller in a UI where the user picks a named preset group, and the service applies that preset's values to whatever NilorUserInput_* nodes are wired in through the _preset_hook_N inputs. The frontend JS that does ship with the pack adds _preset_hook_1, _preset_hook_2, โ€ฆ dynamically (up to 32 slots) as you connect the _controller_hook outputs from the pack's User Input nodes. So on the frontend side you get a node that grows hook sockets and can hold a preset name.

    The backend, though, does nothing. No outputs (RETURN_TYPES is empty), no computation. Everything that would make it useful - the config file of presets, the service that reads it, the UI that renders the dropdown and applies values - is part of Nilor's own frontend ("Brando") that isn't in the public repo. What you have locally is a labeled placeholder that collects wires.

    Why it's still worth knowing about

    Because you will see this node in workflows. Anyone sharing a graph built on Nilor's stack will have ๐Ÿ‘บ User Input Preset Controller nodes scattered through it, and when you open that graph on a stock install, you'll wonder what broke. Answer: nothing broke - it's a frontend directive for a host UI you don't have. You can unplug its hook wires and delete it without changing any results, because it never produced any. The paired ๐Ÿ‘บ User Input Group Controller has the same story (grouping instead of presets).

    The one design lesson worth taking: this pack separates "declare the shape" (a no-op node + dynamic hook sockets in JS) from "provide the behavior" (a service that ships with the host). It's a clean architecture for a closed system, and a confusing one for everyone else. If you want working presets in ComfyUI today, rgthree's node system and the various "saved settings" packs do this for real, on the default UI.

    Install

    ComfyUI Manager (search "Nilor Nodes") or clone https://github.com/nilor-corp/nilor-nodes into custom_nodes, restart. It's under Nilor Nodes ๐Ÿ‘บ โ†’ IO. No dependencies; like the rest of the pack, if the whole thing fails to import, check scipy (pip install scipy) - imported at module level but missing from requirements.txt.

    Bottom line

    A preset controller waiting for its backend to arrive. Understand it as the visible half of a system that lives elsewhere, don't build workflows that depend on it locally, and treat its presence in a downloaded graph as a signal that the author runs Nilor's stack - not as a bug in your setup. When (or if) the presets service ships, it'll be worth a second look; until then it's a placeholder with good intentions.

    CategoryNilor Nodes ๐Ÿ‘บ/IO

    Inputs (2)

    NameTypeDefaultDescription
    preset_group_nameSTRINGmy_presetโ€”
    _preset_hook_1optCONTROLLER_HOOKโ€”

    Outputs (0)

    No outputs