Skip to content
Automation
Skill

/rgthree

Configure and author rgthree-comfy nodes — Fast Groups Bypasser/Muter (group toggles), Power Lora Loader, Context/Context Big, Seed, Any Switch. Use when a workflow contains rgthree nodes, when asked to add stage/section toggles or an A/B switch, when stacking LoRAs, or when an

From plugin
comfyui-mcp
74242 skills4 agents11 commands1 MCP
Install
$ npx -y skills add artokun/comfyui-mcp --skill rgthree --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/rgthree

Context preview

The summary Claude sees to decide when to auto-load this skill.

Configure and author rgthree-comfy nodes — Fast Groups Bypasser/Muter (group toggles), Power Lora Loader, Context/Context Big, Seed, Any Switch. Use when a workflow contains rgthree nodes, when asked to add stage/section toggles or an A/B switch, when stacking LoRAs, or when an

SKILL.md

rgthree.SKILL.md
name: rgthree
description: Configure and author rgthree-comfy nodes — Fast Groups Bypasser/Muter (group toggles), Power Lora Loader, Context/Context Big, Seed, Any Switch. Use when a workflow contains rgthree nodes, when asked to add stage/section toggles or an A/B switch, when stacking LoRAs, or when an rgthree node needs configuring. Covers the frontend-only nodes that are absent from /object_info and the properties-not-widgets configuration model.

rgthree-comfy

`rgthree-comfy` is one of the most widely installed packs, so its nodes turn up in a large share of community workflows. Three of its properties make it a recurring agent-failure mode — all three fail *quietly enough* to look like success.

The three things that catch agents out

**1. Some rgthree nodes are FRONTEND-ONLY.** They are registered by the pack's JS (`registerCustomNodes()`), have no Python class, and are therefore **absent from `/object_info` by design**. Checking `/object_info` and concluding "this node doesn't exist" is wrong. `/object_info` lists 24 rgthree *backend* types; the toggles are not among them.

**2. They are configured through PROPERTIES, not widgets.** `matchTitle`, `toggleRestriction` and `sort` live in `node.properties` (right-click → Properties), not in `widgets`. Use **`panel_set_property`**. `panel_set_widget` does not silently half-work — it **refuses**, with `has no widget "matchTitle" (available: …)` listing the widgets that do exist. That refusal is the fastest confirmation you are on the properties path; read it rather than retrying the write.

**3. Fast Groups nodes take NO wiring and enumerate GROUPS by title.** Leave the `OPT_CONNECTION` output unconnected. The node renders one toggle per matching group, so **the groups must exist and be named before the node is useful**.

Which rgthree nodes `panel_add_node` will actually add

The panel authorizes every add against fresh `/object_info` and **fails closed** on a type it cannot find. Genuinely frontend-only types are exempt only via an explicit allowlist (`FRONTEND_ONLY_NODE_TYPES`), so the exemption covers **seven** rgthree types and no others:

| Frontend-only, `panel_add_node` WORKS | Frontend-only, `panel_add_node` REFUSES | |---|---| | `Fast Groups Bypasser (rgthree)` | `Bookmark (rgthree)` | | `Fast Groups Muter (rgthree)` | `Mute / Bypass Relay (rgthree)` | | `Fast Bypasser (rgthree)` | `Mute / Bypass Repeater (rgthree)` | | `Fast Muter (rgthree)` | `Fast Actions Button (rgthree)` | | `Node Collector (rgthree)` | `Random Unmuter (rgthree)` | | `Label (rgthree)` | | | `Reroute (rgthree)` | |

A refusal in the right-hand column is the guard working as designed, **not** a broken pack and not something to work around — the node has no backend def and is not on the allowlist. Say so and pick a different approach (the Bypasser/Muter cover almost every real toggle need). Everything with a Python class — Power Lora Loader, Context*, Seed, Any Switch, Power Prompt, Image Comparer — is a normal backend node and adds normally.

Fast Groups Bypasser / Muter

`Fast Groups Bypasser (rgthree)` sets the nodes of a group to **bypass** (mode `4` — the node is skipped and its input passes through). `Fast Groups Muter (rgthree)` sets them to **mute** (mode `2` — the node does not execute and everything downstream dies). **Prefer the Bypasser** for toggling an optional stage inside a chain; reach for the Muter only when you genuinely want to stop a branch.

All of the following are node properties — set them with `panel_set_property`:

| Property | Values | Default | Notes | |---|---|---|---| | `matchTitle` | regex, case-insensitive | `""` | **Set this.** Empty means every group in the workflow becomes a toggle. It is a real regex matched *unanchored* against the group title, so anchor it (`^STAGE`) or it matches mid-title. | | `matchColors` | comma-separated colors | `""` | Alternative filter; pairs with a color convention. | | `toggleRestriction` | `default` / `max one` / `always one` | `default` | Both non-default values enforce mutual exclusion (they are matched on the substring `" one"`). Do NOT set either if the user may ever want all stages on in one queue. | | `sort` | `position` / `alphanumeric` / `custom alphabet` | `position` | The default means **moving a group on the canvas silently reorders the toggles**. `alphanumeric` is stable — prefer it. | | `customSortAlphabet` | string | `""` | Only read when `sort` is `custom alphabet`. | | `showNav` | bool | `true` | Per-row jump-to-group arrow. | | `showAllGraphs` | bool | `true` | Include groups that live inside subgraphs. |

matchTitle does not rebuild the toggle list on the first write

`panel_set_property` stores `matchTitle` (and `matchColors` / `sort` / …) and the reply `from`/`to` is truthful. Fast Groups nodes **do not implement `onPropertyChanged`**. The toggle list is rebuilt by rgthree's `refreshWidgets()` on a service tick (~8 ms after add, then every ~500 ms), and leftover-row removal increments the index while splicing — a 22-group list can stall at 13 with non-matching `Enable …` rows still present. A never-drawn node can also come back as `widgets:{}` — that means the list has **not been built yet**, not that there are no matching groups. `panel_query_graph` also keys widgets by name, and every toggle is named `RGTHREE_TOGGLE_AND_NAV`, so a built list collapses to one key.

**Do this:**

1. Set `matchTitle` **immediately** after `panel_add_node` (before the first unfiltered refresh paints every group). 2. Re-read with `panel_query_graph {ids:[<id>], fields:'detail'}`. 3. If `widgets` is empty **or** the canvas still shows `Enable` rows that do not match the regex, **set `matchTitle` again**. Do **not** delete and re-add the node — that is slower and still needs a second set.

Recipe — make pipeline stages toggleable

1. `panel_create_group` per stage, with a **prefixed title** (`STAGE 1 — …`) so one anchored regex selects exactly the inten

Read more
Ships withcomfyui-mcp

This project is no longer maintained. ComfyUI now ships official agent and MCP tooling — Comfy Agent and Comfy MCP — built and supported by the Comfy-Org team with deeper integration than a community project can match.

Get the whole plugin

Other skills on comfyui-mcp.