Full-screen theme workspace for ComfyUI with saved themes, live editing, bundled presets, and extension styling discovery.
Template-style studio · Saved theme library · Canvas tuning · Extension styling scan
- Full-screen Studio window styled around the ComfyUI Templates experience
- Saved theme browser with grid and list layouts
- Theme descriptions and preview images shown directly in Saved Themes
- Live editing for ComfyUI colors, LiteGraph colors, canvas geometry, typography, and advanced CSS
- Node mode presets for default, soft card, media card, glass panels, liquid glass, floating tabs, mono slab, and minimal node chrome
- Built-in node base shape controls and quick shape presets for box, round, and card silhouettes
- Apply flow that writes the active theme back into ComfyUI as
themes/Theme Lab.json - Bundled preset support through
themes/library.jsonandthemes/previews/ - Extension styling discovery from loaded frontend settings and scanned CSS variables
- Optional extension-styling safety toggle for unstable third-party UIs
- Package metadata declares
requires-comfyui = ">=0.16.0" - Theme Lab is a frontend-only
WEB_DIRECTORYextension with a small backend route used for extension CSS-variable discovery - The project currently targets the documented ComfyUI frontend extension APIs for settings, commands, dialogs, bottom-panel tabs, and sidebar tabs
- I verified the current official ComfyUI custom-node packaging and frontend-extension docs on March 28, 2026 before this refresh
- Open ComfyUI Manager.
- Search for
Theme Lab. - Install the extension and restart ComfyUI.
cd ComfyUI/custom_nodes
git clone https://github.com/criskb/MKRShift_Theme_Lab.gitThen:
- Restart ComfyUI.
- Hard refresh the browser after frontend updates.
- Open
Theme Labfrom the sidebar icon. - Browse
Saved Themesor switch toTheme Editor. - Edit colors, canvas geometry, typography, descriptions, preview images, and extension styling.
- Click
Applyto export the active palette into ComfyUI's theme folder. - If a third-party extension does not redraw cleanly, use Theme Lab's reload action.
Theme Lab does not add workflow nodes. It is a workspace-style extension that runs directly in the ComfyUI frontend.
Theme Lab exposes settings under ComfyUI's extension settings, including:
- live preview behavior
- bottom panel quick access
- floating sidebar-card rendering
- reset confirmation safety
- provider manifest URLs
Inside the editor you can also control whether extension styling should be saved with the active theme.
Theme Lab goes beyond simple palette swapping. The editor can manage:
- core ComfyUI theme colors
- LiteGraph canvas colors
- canvas geometry such as outline widths, connection widths, reroute dot sizes, and slot spacing
- typography and UI density presets
- node mode presets layered on top of the default ComfyUI node renderer
- advanced CSS variables and raw CSS overrides
- theme descriptions and preview images
- themeable extension settings grouped under
Extension - Name
Theme Lab uses both user data and bundled extension assets:
- User library:
themelab.themes.json - User preview images:
themelab/previews/ - Applied ComfyUI theme export:
themes/Theme Lab.json - Bundled preset library:
themes/library.json - Bundled preview images:
themes/previews/
If a theme has no preview image, Theme Lab falls back to a generated gradient based on its palette colors.
Theme Lab does not blindly patch every extension. It surfaces themeable controls from:
- loaded frontend extension settings that look visual or styling-related
- scanned CSS variables declared inside installed custom node frontend files
Discovered controls are grouped into a single editor card per extension under Extension - Name.
Some extensions cache their UI aggressively. If styling changes appear to save but do not visibly apply, reload the canvas or browser once after applying.
- Studio notes:
js/docs/theme-lab-studio.md - Bundled theme asset notes:
themes/README.md
Main files:
- Extension entry:
js/theme-lab.js - Studio UI:
js/studio/template-studio.js - Canvas tuning layer:
js/theme-lab-canvas.js - Extension settings discovery:
js/providers/extension-settings-provider.js - Extension CSS variable scan:
backend/extension_style_scan.py
Local validation:
node --check js/theme-lab.js
node --check js/theme-lab-canvas.js
node --check js/providers/extension-settings-provider.js
node --check js/providers/extension-style-provider.js
node --check js/studio/template-studio.js
python3 -m py_compile __init__.py backend/__init__.py backend/extension_style_scan.pyGitHub Actions runs the same syntax validation in .github/workflows/validate.yml.
- Apply the theme again once.
- Reload the canvas or browser if a third-party extension caches its UI.
- Check that the active export exists at
themes/Theme Lab.json.
- Theme Lab only surfaces controls that are discoverable from loaded extension settings or scanned CSS variables.
- Restart ComfyUI after installing or updating other custom nodes.
- Ensure the preview image exists in
themelab/previews/for user themes orthemes/previews/for bundled themes. - If no image is present, Theme Lab intentionally falls back to a generated gradient cover.
MKRShift_Theme_Lab/
├── .github/
│ └── workflows/
│ └── validate.yml
├── __init__.py
├── assets/
│ ├── banner.svg
│ ├── icon.svg
│ └── theme-lab-readme-banner.svg
├── backend/
│ ├── __init__.py
│ └── extension_style_scan.py
├── js/
│ ├── docs/
│ │ └── theme-lab-studio.md
│ ├── providers/
│ │ ├── extension-settings-provider.js
│ │ └── extension-style-provider.js
│ ├── studio/
│ │ └── template-studio.js
│ ├── theme-lab-canvas.js
│ ├── theme-lab.css
│ └── theme-lab.js
├── pyproject.toml
├── themes/
│ ├── README.md
│ └── library.json
└── README.md
See LICENSE.
This extension/addon was created using Codex skill designed by Cris K B https://github.com/criskb/comfyui-node-extension-builder