Nodes/Comfyui-EzFlex-Presets/EzFlex-MainControl
ComfyUI Node

EzFlex-MainControl

Flip Everything At Once

By blackbossokok·Created 20 days ago·Updated about 15 hours ago· 1
EzFlex-MainControl
      config{}

      Here's a node that does nothing on its own. EzFlex-MainControl has one input, no outputs, and if you delete everything else in the workflow it is a rock. What it has is a preset dropdown that reconfigures other EzFlex nodes on the canvas at once.

      If you've built the usual pile of one-node-per-setting presets - a model combo preset here, a resolution preset there, a group of nodes muted for the "video" variant - MainControl is the layer that lets you name the combination and flip between them with one click instead of six.

      What it actually controls

      The panel keeps a card list, and each card maps a target node's preset. The targets are:

      • EzFlex-ModelsCombo - which checkpoint/UNet/CLIP/VAE/LoRA set is loaded
      • EzFlex-FreeLatent - the resolution and batch
      • EzFlex-NodeSwitchMaster - which node-group switch preset is live
      • EzFlex-ParamPresetControl - which parameter group is being emitted

      Switching a master preset records the four nodes' current presets together and pushes them back down. Note what is not in that list: EzFlex-NodeSwitchGroup nodes are deliberately absent, because they're driven through EzFlex-NodeSwitchMaster - the master pattern is two levels deep, and this node sits on top.

      The mechanism, honestly

      This is the one EzFlex node whose "how it works" is entirely in the frontend. Its info_schema is a single multiline config STRING - a JSON blob holding the current master preset name - and its Python run() returns an empty tuple:

      def run(self, config="{}", **kwargs):
          return ()
      

      Which means: nothing here changes what the sampler computes. The config carries the name of the active master preset; the panel reads the canvas, finds the EzFlex target nodes by id, and writes each one's preset into its own config, then triggers that node's apply. The preset library itself (the named master presets) lives server-side in the pack's user_data/EzFlex-MainControl.json inside the custom_nodes folder, so it survives restarts but travels with the install rather than the workflow.

      Practical consequence: the node has to be present and the panel has to render for any of this to work. It's a control surface, not logic. If you export the workflow, the wiring of the other nodes goes with it, but your master presets live on your machine.

      Inputs and outputs you'd care about

      Only one input worth naming: config. It's a STRING, multiline, default "{}", and its own tooltip says exactly what it is - "Config JSON produced by the Main Control panel (current master preset name)." Leave it alone. There are no outputs. Don't go looking for a wire to hide the panel behind.

      Two panel-side conveniences are worth knowing: a quick load action that drops the rest of the EzFlex suite onto the canvas (ModelsCombo, FreeLatent, NodeSwitchMaster, NodeSwitchGroup, ParamPresetControl, ParamPresetOutput, PromptHelper, MediaLoader, PreviewAny - MediaOut is created by MediaLoader separately), and an EN / 中文 language toggle, which is the node where that setting lives for the whole suite.

      Install

      Search EzFlex in ComfyUI Manager, or:

      cd ComfyUI/custom_nodes
      git clone https://github.com/blackbossokok/Comfyui-EzFlex-Presets
      pip install -r requirements.txt
      

      That installs mutagen, which is the pack's only mandatory extra; the audio/video/3D reading is what it's for. Restart, then find the node under EzFlex. ComfyUI 0.3.13+ is required according to the pack metadata - the panels use the official i18n endpoint, and the language toggle is the most visible thing that depends on it. No model downloads, no API keys.

      Common issues

      You saved a master preset and it "forgot" everything. Master presets save preset names, not values. If a target node hasn't had its own preset saved and selected, there's nothing for MainControl to point at. Save the sub-presets first, then the master.

      A target node isn't being controlled. The card list only covers the four node types above, and it matches canvas instances. A second FreeLatent node you added later isn't automatically in there - add a card for it.

      Everything looks right and nothing changes. Check that the target node's panel is actually openable. Because the packing is one big custom-panel suite, a frontend hiccup takes the controls with it - the same class of fragility that has kept rgthree's dashboard nodes fighting ComfyUI's Nodes 2.0 rewrite. Legacy canvas is the usual refuge.

      It's a young pack. Single author, first release September 2026, MIT, around v1.2.5, no meaningful community track record yet. The flip side is that the changelog is dense with fixes for exactly these panel bugs - read it before filing anything, since V1.2.2 already patched the "cannot validate input" errors that followed preset switching across the ParamPreset nodes.

      CategoryEzFlex

      Inputs (1)

      NameTypeDefaultDescription
      configSTRING{}Config JSON produced by the Main Control panel (current master preset name).

      Outputs (0)

      No outputs