h4 - Mission Control
The flight deck for your refinement loop
- trigger_in
- Scheduler_Val
- Scheduler_Seed
- Trigger_Pass
- Dashboard_UI
Every serious ComfyUI workflow eventually becomes a loop - generate, refine, compare, refine again - and the first thing you hit is that ComfyUI gives you no way to know "which pass am I on?" Mission Control is h4_Live's answer: a central node that drives the loop counter, watches for resets, and bundles all the scheduler signals into one tidy dashboard. It's the cockpit; the samplers are the engines.
If you've looked at this pack's seed and scheduler nodes and wondered how they all coordinate, this is the hub they hang off.
How it works
The node reads h4_Live's global in-memory loop state. In Passive mode it just reports stats - handy as a read-only instrument. In Active (Master Base) mode it does the real driving: it increments the loop counter on every run, and if wireless_reset is on, it checks the toolkit's shared "orbit storage" for a reset signal from the Wireless Reset Button and zeroes the count when it finds one. Like the rest of the loop family, it's marked always-changed internally so it fires every queue run instead of getting cached.
What makes it more than a counter is that it also collects your signals. Feed it a scheduler float and a seed int, and it hands both back out alongside a string dashboard you can pipe to a text display node.
The inputs that matter
mode- Passive (read-only stats) or Active (increments the counter and handles resets). Set Active if this is your master loop driver.wireless_reset- on, the node checks orbit storage for a reset signal. Only meaningful in Active mode.scheduler_val/scheduler_seed- optional float and int inputs. Wire a Linear Scheduler and Seed Generator here to make this the single collection point.debug_mode- floods the console with per-run values. Turn it on when the loop misbehaves, off otherwise.trigger_in- optional wildcard for daisy-chaining execution.
The outputs
Scheduler_Val (float) and Scheduler_Seed (int) pass through whatever you fed in - so downstream samplers read from one consistent place. Trigger_Pass mirrors the trigger input. And Dashboard_UI is a string you can connect to a text display node to watch the loop count and stats live. It's the poor man's debug console, and it's honestly the most useful output here when you're first building a loop and can't tell what pass you're on.
Installing it
Same pack, same ritual:
cd ComfyUI/custom_nodes
git clone https://github.com/m3rr/h4_Live
# restart ComfyUI
or ComfyUI Manager → search "h4_Live." No extra dependencies.
Where it can bite you
The loop count is global to the whole toolkit - one counter for every h4_Live loop node in your session. Two independent loop workflows on one canvas will fight over it unless you reset between them. And remember the counter lives in memory: restart ComfyUI and everything starts back at zero, which is usually what you want but can surprise you if you were mid-sweep. Also note the whole MissionControl family is part of a young, single-author pack with essentially no community footprint - if a loop behaves oddly, the "nuclear logging" in your console is your best friend, because there aren't a dozen forum threads to consult.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| mode | COMBO | Passive | Passive: Read-Only. Active: Increments Loop Count & Handles Resets. |
| wireless_reset | BOOLEAN | false | ON=Check orbit storage for reset signal (Red Button). Only works in Active Mode. |
| debug_mode | BOOLEAN | false | Turn ON to flood the console with detailed values. |
| scheduler_valopt | FLOAT | Connect a Signal Generator (Float) here. | |
| scheduler_seedopt | INT | Connect a Seed Generator (Int) here. | |
| trigger_inopt | * | Daisy chain trigger (Optional). |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| Scheduler_Val | FLOAT | — |
| Scheduler_Seed | INT | — |
| Trigger_Pass | * | — |
| Dashboard_UI | STRING | — |