Professional prompt management system for ComfyUI with advanced search, tagging, star ratings, and integrated image galleries. Features modern UI with light/dark modes, bulk operations, and dashboard analytics. Transform your prompt collection into an organized, searchable library.
167
stars
319
commits
Python
primary language
Jul 26, 2026
updated
A comprehensive ComfyUI custom node that extends the standard text encoder with persistent prompt storage, advanced search capabilities, automatic image gallery system, folder-based organization, LoRA Manager integration, and powerful ComfyUI workflow metadata analysis using SQLite.

ComfyUI Prompt Manager provides two powerful node types for comprehensive prompt management:
A drop-in replacement for ComfyUI's standard CLIPTextEncode node with database features:

A text-focused variant that outputs raw STRING for maximum flexibility:
A search node that outputs prompts as a list for batch processing workflows:
OUTPUT_IS_LIST for native batch processing supportThis node enables powerful batch workflows by allowing you to search your prompt database and process multiple prompts in a single execution.
Both nodes include the complete PromptManager feature set:


The comprehensive gallery system provides complete management of all ComfyUI output with professional viewing capabilities:


Powered by ViewerJS for professional image viewing capabilities.
/prompt_manager/metadata.htmlhttp://localhost:8188/prompt_manager/metadata.htmlClone the repository into your ComfyUI custom_nodes directory:
cd ComfyUI/custom_nodes/
git clone https://github.com/ComfyAssets/ComfyUI_PromptManager
cd ComfyUI_PromptManager
Install dependencies:
pip install -r requirements.txt
Restart ComfyUI to load the new node
Add the nodes to your workflow:
Access the web interface:
http://localhost:8188/prompt_manager/admin - Full management interfacehttp://localhost:8188/prompt_manager/metadata.html - Standalone PNG analysis toolhttp://localhost:8188/prompt_manager/ - Basic prompt browserwatchdog library for automatic image monitoringReplace any CLIPTextEncode node with PromptManager:
For text-only workflows or when you need STRING output:
For batch processing workflows that need multiple prompts:
Both nodes support the same metadata fields:
Both nodes will automatically save prompts to the database and link any generated images to the prompt.
The comprehensive gallery system provides complete access to all your ComfyUI output:
http://localhost:8188/prompt_manager/adminConfigure your viewing experience in the settings panel:
Use the standalone metadata viewer to analyze any ComfyUI-generated PNG:
http://localhost:8188/prompt_manager/metadata.htmlImport existing ComfyUI images into your database:
Automatically tag your entire image collection using AI vision models:
AutoTag (Batch Mode): Tag your entire collection automatically
Review Mode: Tag images one-by-one with approval
For users who have meticulously tagged their collections from the start:
Adjust the system prompt to match your tagging style:

Organize and filter your prompt library by output subdirectory. The dashboard search panel includes a Folder dropdown that lists all subdirectories where your images are stored.
Note: If you have an existing prompt library from before the folder feature was added, you will need to rescan your image library (click Scan Images in the admin dashboard) to populate folder data for your existing prompts.

If you use ComfyUI-Lora-Manager, PromptManager can import your LoRA metadata, trigger words, and example images directly into your prompt database. This lets you search, tag, and browse your LoRA collection alongside your regular prompts.
WIP: LoRA Manager support is a work in progress — this was a highly requested feature. Please open issues for any bugs or feature requests.

<lora:name:weight> is detected in your promptsClick Import LoRA Data in the settings panel to start the import. A progress popup shows real-time status as each LoRA is processed:
extra_model_paths.yaml paths) for metadatalora-manager category for easy filtering
After import, filter by the lora-manager category to browse your LoRA collection.
A CivitAI API key is required if your library contains NSFW LoRAs — CivitAI blocks unauthenticated access to NSFW preview images. Without a key, only SFW preview images are downloaded.
To add your key:
Note: Re-importing is safe — PromptManager skips LoRAs that were already imported. To do a fresh import, the previous
lora-managerdata is cleared automatically before re-scanning.
The comprehensive web interface provides:
Keep your database optimized with built-in maintenance tools:
By default, the database is saved as example_prompts.db in the node directory. This file contains all your prompts and linked images and can be backed up or shared.
Use the web interface for intuitive searching, or access the database directly:
from database.operations import PromptDatabase
db = PromptDatabase()
# Search for landscape prompts
results = db.search_prompts(text="landscape", limit=10)
# Find highly rated prompts
results = db.search_prompts(rating_min=4)
# Search by category and tags
results = db.search_prompts(
category="portraits",
tags=["anime", "detailed"]
)
# Get recent prompts
recent = db.get_recent_prompts(limit=20)
# Get images for a prompt
images = db.get_prompt_images(prompt_id="123")
Input: "A beautiful sunset over a mountain lake"
Category: "landscapes"
Tags: "nature, sunset, mountains, water"
→ Outputs: CONDITIONING for sampler nodes
Input: "Portrait of a cyberpunk hacker with neon implants"
Category: "characters"
Tags: "cyberpunk, portrait, sci-fi, neon"
→ Outputs: CONDITIONING for sampler nodes
Main Text: "beautiful landscape"
Prepend Text: "masterpiece, ultra detailed,"
Append Text: ", 8k resolution, trending on artstation"
→ Final Output: "masterpiece, ultra detailed, beautiful landscape, 8k resolution, trending on artstation"
Input: "A serene mountain lake at sunset"
Category: "landscapes"
Tags: "nature, peaceful, golden hour"
→ Outputs: STRING for use with text processors, style nodes, or other custom nodes
PromptManagerText → Text Processor → Style Applicator → Final Text Node
"cyberpunk city" → style processing → "neon-lit cyberpunk metropolis at night"
Tags: "anime, detailed"
Limit: 10
→ Outputs: List of up to 10 prompts with both "anime" and "detailed" tags
→ Each prompt is processed as a separate batch item
Category: "portraits"
Min Rating: 4
Limit: 20
→ Outputs: List of up to 20 highly-rated portrait prompts for batch generation
Input: "Swirling colors in an abstract geometric pattern"
Category: "abstract"
Tags: "geometric, colorful, pattern, modern"
Rating: 3 (set via web interface)
Notes: "Good for experimental art" (set via web interface)
-- Prompts table
CREATE TABLE prompts (
id INTEGER PRIMARY KEY AUTOINCREMENT,
text TEXT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
workflow_name TEXT,
category TEXT,
tags TEXT, -- JSON array of tags
rating INTEGER CHECK(rating >= 1 AND rating <= 5),
notes TEXT,
hash TEXT UNIQUE -- SHA256 hash for deduplication
);
-- Generated images table
CREATE TABLE generated_images (
id INTEGER PRIMARY KEY AUTOINCREMENT,
prompt_id TEXT NOT NULL,
image_path TEXT NOT NULL,
filename TEXT NOT NULL,
generation_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
file_size INTEGER,
width INTEGER,
height INTEGER,
format TEXT,
workflow_data TEXT, -- JSON workflow metadata
prompt_metadata TEXT, -- JSON prompt parameters
parameters TEXT, -- JSON generation parameters
FOREIGN KEY (prompt_id) REFERENCES prompts(id)
);
prompt_manager.py - Main ComfyUI node implementation (CLIP encoding)prompt_manager_text.py - Text-only node implementation (STRING output)prompt_search_list.py - Batch search node implementation (LIST output)database/models.py - Database schema and connection managementdatabase/operations.py - CRUD operations and search functionalitypy/api/ - Web API route modules (prompts, images, tags, lora integration, etc.)py/config.py - Configuration managementpy/lora_utils.py - LoRA Manager integration utilitiesutils/hashing.py - SHA256 hashing for deduplicationutils/validators.py - Input validation and sanitizationutils/image_monitor.py - Automatic image detection systemutils/prompt_tracker.py - Prompt execution trackingutils/metadata_extractor.py - PNG metadata analysis engineutils/logging_config.py - Comprehensive logging systemutils/diagnostics.py - System diagnostics and health checksweb/admin.html - Advanced admin dashboard with metadata panelweb/index.html - Simple web interfaceweb/js/prompt_manager.js - Dashboard JavaScriptweb/js/tags-page.js - Tag management JavaScriptweb/metadata.html - Standalone PNG metadata viewerComfyUI_PromptManager/
├── __init__.py # Node registration
├── prompt_manager.py # Main node implementation (CLIP encoding)
├── prompt_manager_text.py # Text-only node implementation (STRING output)
├── prompt_search_list.py # Batch search node implementation (LIST output)
├── database/
│ ├── __init__.py
│ ├── models.py # Database schema
│ └── operations.py # Database operations
├── py/
│ ├── __init__.py
│ ├── api/ # Web API route modules
│ ├── config.py # Configuration
│ └── lora_utils.py # LoRA Manager integration
├── utils/
│ ├── __init__.py
│ ├── hashing.py # Hashing utilities
│ ├── validators.py # Input validation
│ ├── image_monitor.py # Automatic image detection
│ ├── prompt_tracker.py # Prompt execution tracking
│ ├── metadata_extractor.py # PNG metadata analysis
│ ├── logging_config.py # Logging system
│ └── diagnostics.py # System diagnostics
├── web/
│ ├── admin.html # Advanced admin dashboard
│ ├── gallery.html # Image gallery
│ ├── index.html # Simple web interface
│ ├── metadata.html # Standalone metadata viewer
│ └── js/
│ ├── prompt_manager.js # Dashboard JavaScript
│ └── tags-page.js # Tag management JavaScript
├── tests/
│ ├── __init__.py
│ └── test_basic.py # Test suite
├── requirements.txt # Dependencies
├── example_usage.py # Standalone examples
├── example_prompts.db # Example database
└── README.md # This file
You can customize the database path by creating a config.json file in the extension root:
{
"database": {
"default_path": "/path/to/your/prompts.db"
}
}
Relative paths are resolved against the extension directory. Absolute paths are used as-is, which is recommended for Docker deployments where the working directory may not persist:
{
"database": {
"default_path": "/data/custom_nodes/ComfyUI_PromptManager/prompts.db"
}
}
Configure the automatic image detection and gallery system:
# Gallery monitoring configuration (GalleryConfig class)
MONITORING_ENABLED = True
MONITORING_DIRECTORIES = [] # Auto-detect ComfyUI output if empty
SUPPORTED_EXTENSIONS = ['.png', '.jpg', '.jpeg', '.webp', '.gif']
PROCESSING_DELAY = 2.0 # Delay before processing new images
PROMPT_TIMEOUT = 120 # Seconds to keep prompt context active
CLEANUP_INTERVAL = 300 # Seconds between cleanup of expired prompts
# Performance settings
MAX_CONCURRENT_PROCESSING = 3
METADATA_EXTRACTION_TIMEOUT = 10 # Seconds for PNG analysis
IMAGES_PER_PAGE = 20
THUMBNAIL_SIZE = 256
Configure the web interface behavior:
# Web UI settings (PromptManagerConfig class)
RESULT_TIMEOUT = 5 # Seconds to auto-hide results in ComfyUI node
WEBUI_DISPLAY_MODE = 'newtab' # 'popup' or 'newtab' for Web UI button
SHOW_TEST_BUTTON = False # Show API test button in node UI
VACUUM operations keep the database optimizedfrom database.operations import PromptDatabase
db = PromptDatabase()
# Export to JSON
db.export_prompts("my_prompts.json", format="json")
# Export to CSV
db.export_prompts("my_prompts.csv", format="csv")
info = db.model.get_database_info()
print(f"Total prompts: {info['total_prompts']}")
print(f"Average rating: {info['average_rating']}")
# Create backup
db.model.backup_database("backup_prompts.db")
# The database file can be copied directly for backup
cd ComfyUI_PromptManager
python -m pytest tests/ -v
The project follows PEP 8 guidelines with:
Database Permission Errors
Import Errors
Performance Issues
VACUUM on the database occasionallyFor debugging, you can enable verbose logging in the node:
# Add to prompt_manager.py
import logging
logging.basicConfig(level=logging.DEBUG)
MIT License - see LICENSE file for details.
<lora:name:weight> is detected in prompts during encodingNote: LoRA Manager support is a WIP — this was a highly requested feature. Please open issues for any bugs or feature requests.
--pm-* design tokens) that adapts to ComfyUI's color paletteapi.py into domain-specific route modules for better maintainabilityOUTPUT_IS_LIST for native ComfyUI batch processing compatibility/web/metadata.html for analyzing any ComfyUI imagePython
49.6%
JavaScript
37.0%
HTML
12.5%
Professional prompt management system for ComfyUI with advanced search, tagging, star ratings, and integrated image galleries. Features modern UI with light/dark modes, bulk operations, and dashboard analytics. Transform your prompt collection into an organized, searchable library.
167
stars
319
commits
Python
primary language
Jul 26, 2026
updated
A comprehensive ComfyUI custom node that extends the standard text encoder with persistent prompt storage, advanced search capabilities, automatic image gallery system, folder-based organization, LoRA Manager integration, and powerful ComfyUI workflow metadata analysis using SQLite.

ComfyUI Prompt Manager provides two powerful node types for comprehensive prompt management:
A drop-in replacement for ComfyUI's standard CLIPTextEncode node with database features:

A text-focused variant that outputs raw STRING for maximum flexibility:
A search node that outputs prompts as a list for batch processing workflows:
OUTPUT_IS_LIST for native batch processing supportThis node enables powerful batch workflows by allowing you to search your prompt database and process multiple prompts in a single execution.
Both nodes include the complete PromptManager feature set:


The comprehensive gallery system provides complete management of all ComfyUI output with professional viewing capabilities:


Powered by ViewerJS for professional image viewing capabilities.
/prompt_manager/metadata.htmlhttp://localhost:8188/prompt_manager/metadata.htmlClone the repository into your ComfyUI custom_nodes directory:
cd ComfyUI/custom_nodes/
git clone https://github.com/ComfyAssets/ComfyUI_PromptManager
cd ComfyUI_PromptManager
Install dependencies:
pip install -r requirements.txt
Restart ComfyUI to load the new node
Add the nodes to your workflow:
Access the web interface:
http://localhost:8188/prompt_manager/admin - Full management interfacehttp://localhost:8188/prompt_manager/metadata.html - Standalone PNG analysis toolhttp://localhost:8188/prompt_manager/ - Basic prompt browserwatchdog library for automatic image monitoringReplace any CLIPTextEncode node with PromptManager:
For text-only workflows or when you need STRING output:
For batch processing workflows that need multiple prompts:
Both nodes support the same metadata fields:
Both nodes will automatically save prompts to the database and link any generated images to the prompt.
The comprehensive gallery system provides complete access to all your ComfyUI output:
http://localhost:8188/prompt_manager/adminConfigure your viewing experience in the settings panel:
Use the standalone metadata viewer to analyze any ComfyUI-generated PNG:
http://localhost:8188/prompt_manager/metadata.htmlImport existing ComfyUI images into your database:
Automatically tag your entire image collection using AI vision models:
AutoTag (Batch Mode): Tag your entire collection automatically
Review Mode: Tag images one-by-one with approval
For users who have meticulously tagged their collections from the start:
Adjust the system prompt to match your tagging style:

Organize and filter your prompt library by output subdirectory. The dashboard search panel includes a Folder dropdown that lists all subdirectories where your images are stored.
Note: If you have an existing prompt library from before the folder feature was added, you will need to rescan your image library (click Scan Images in the admin dashboard) to populate folder data for your existing prompts.

If you use ComfyUI-Lora-Manager, PromptManager can import your LoRA metadata, trigger words, and example images directly into your prompt database. This lets you search, tag, and browse your LoRA collection alongside your regular prompts.
WIP: LoRA Manager support is a work in progress — this was a highly requested feature. Please open issues for any bugs or feature requests.

<lora:name:weight> is detected in your promptsClick Import LoRA Data in the settings panel to start the import. A progress popup shows real-time status as each LoRA is processed:
extra_model_paths.yaml paths) for metadatalora-manager category for easy filtering
After import, filter by the lora-manager category to browse your LoRA collection.
A CivitAI API key is required if your library contains NSFW LoRAs — CivitAI blocks unauthenticated access to NSFW preview images. Without a key, only SFW preview images are downloaded.
To add your key:
Note: Re-importing is safe — PromptManager skips LoRAs that were already imported. To do a fresh import, the previous
lora-managerdata is cleared automatically before re-scanning.
The comprehensive web interface provides:
Keep your database optimized with built-in maintenance tools:
By default, the database is saved as example_prompts.db in the node directory. This file contains all your prompts and linked images and can be backed up or shared.
Use the web interface for intuitive searching, or access the database directly:
from database.operations import PromptDatabase
db = PromptDatabase()
# Search for landscape prompts
results = db.search_prompts(text="landscape", limit=10)
# Find highly rated prompts
results = db.search_prompts(rating_min=4)
# Search by category and tags
results = db.search_prompts(
category="portraits",
tags=["anime", "detailed"]
)
# Get recent prompts
recent = db.get_recent_prompts(limit=20)
# Get images for a prompt
images = db.get_prompt_images(prompt_id="123")
Input: "A beautiful sunset over a mountain lake"
Category: "landscapes"
Tags: "nature, sunset, mountains, water"
→ Outputs: CONDITIONING for sampler nodes
Input: "Portrait of a cyberpunk hacker with neon implants"
Category: "characters"
Tags: "cyberpunk, portrait, sci-fi, neon"
→ Outputs: CONDITIONING for sampler nodes
Main Text: "beautiful landscape"
Prepend Text: "masterpiece, ultra detailed,"
Append Text: ", 8k resolution, trending on artstation"
→ Final Output: "masterpiece, ultra detailed, beautiful landscape, 8k resolution, trending on artstation"
Input: "A serene mountain lake at sunset"
Category: "landscapes"
Tags: "nature, peaceful, golden hour"
→ Outputs: STRING for use with text processors, style nodes, or other custom nodes
PromptManagerText → Text Processor → Style Applicator → Final Text Node
"cyberpunk city" → style processing → "neon-lit cyberpunk metropolis at night"
Tags: "anime, detailed"
Limit: 10
→ Outputs: List of up to 10 prompts with both "anime" and "detailed" tags
→ Each prompt is processed as a separate batch item
Category: "portraits"
Min Rating: 4
Limit: 20
→ Outputs: List of up to 20 highly-rated portrait prompts for batch generation
Input: "Swirling colors in an abstract geometric pattern"
Category: "abstract"
Tags: "geometric, colorful, pattern, modern"
Rating: 3 (set via web interface)
Notes: "Good for experimental art" (set via web interface)
-- Prompts table
CREATE TABLE prompts (
id INTEGER PRIMARY KEY AUTOINCREMENT,
text TEXT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
workflow_name TEXT,
category TEXT,
tags TEXT, -- JSON array of tags
rating INTEGER CHECK(rating >= 1 AND rating <= 5),
notes TEXT,
hash TEXT UNIQUE -- SHA256 hash for deduplication
);
-- Generated images table
CREATE TABLE generated_images (
id INTEGER PRIMARY KEY AUTOINCREMENT,
prompt_id TEXT NOT NULL,
image_path TEXT NOT NULL,
filename TEXT NOT NULL,
generation_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
file_size INTEGER,
width INTEGER,
height INTEGER,
format TEXT,
workflow_data TEXT, -- JSON workflow metadata
prompt_metadata TEXT, -- JSON prompt parameters
parameters TEXT, -- JSON generation parameters
FOREIGN KEY (prompt_id) REFERENCES prompts(id)
);
prompt_manager.py - Main ComfyUI node implementation (CLIP encoding)prompt_manager_text.py - Text-only node implementation (STRING output)prompt_search_list.py - Batch search node implementation (LIST output)database/models.py - Database schema and connection managementdatabase/operations.py - CRUD operations and search functionalitypy/api/ - Web API route modules (prompts, images, tags, lora integration, etc.)py/config.py - Configuration managementpy/lora_utils.py - LoRA Manager integration utilitiesutils/hashing.py - SHA256 hashing for deduplicationutils/validators.py - Input validation and sanitizationutils/image_monitor.py - Automatic image detection systemutils/prompt_tracker.py - Prompt execution trackingutils/metadata_extractor.py - PNG metadata analysis engineutils/logging_config.py - Comprehensive logging systemutils/diagnostics.py - System diagnostics and health checksweb/admin.html - Advanced admin dashboard with metadata panelweb/index.html - Simple web interfaceweb/js/prompt_manager.js - Dashboard JavaScriptweb/js/tags-page.js - Tag management JavaScriptweb/metadata.html - Standalone PNG metadata viewerComfyUI_PromptManager/
├── __init__.py # Node registration
├── prompt_manager.py # Main node implementation (CLIP encoding)
├── prompt_manager_text.py # Text-only node implementation (STRING output)
├── prompt_search_list.py # Batch search node implementation (LIST output)
├── database/
│ ├── __init__.py
│ ├── models.py # Database schema
│ └── operations.py # Database operations
├── py/
│ ├── __init__.py
│ ├── api/ # Web API route modules
│ ├── config.py # Configuration
│ └── lora_utils.py # LoRA Manager integration
├── utils/
│ ├── __init__.py
│ ├── hashing.py # Hashing utilities
│ ├── validators.py # Input validation
│ ├── image_monitor.py # Automatic image detection
│ ├── prompt_tracker.py # Prompt execution tracking
│ ├── metadata_extractor.py # PNG metadata analysis
│ ├── logging_config.py # Logging system
│ └── diagnostics.py # System diagnostics
├── web/
│ ├── admin.html # Advanced admin dashboard
│ ├── gallery.html # Image gallery
│ ├── index.html # Simple web interface
│ ├── metadata.html # Standalone metadata viewer
│ └── js/
│ ├── prompt_manager.js # Dashboard JavaScript
│ └── tags-page.js # Tag management JavaScript
├── tests/
│ ├── __init__.py
│ └── test_basic.py # Test suite
├── requirements.txt # Dependencies
├── example_usage.py # Standalone examples
├── example_prompts.db # Example database
└── README.md # This file
You can customize the database path by creating a config.json file in the extension root:
{
"database": {
"default_path": "/path/to/your/prompts.db"
}
}
Relative paths are resolved against the extension directory. Absolute paths are used as-is, which is recommended for Docker deployments where the working directory may not persist:
{
"database": {
"default_path": "/data/custom_nodes/ComfyUI_PromptManager/prompts.db"
}
}
Configure the automatic image detection and gallery system:
# Gallery monitoring configuration (GalleryConfig class)
MONITORING_ENABLED = True
MONITORING_DIRECTORIES = [] # Auto-detect ComfyUI output if empty
SUPPORTED_EXTENSIONS = ['.png', '.jpg', '.jpeg', '.webp', '.gif']
PROCESSING_DELAY = 2.0 # Delay before processing new images
PROMPT_TIMEOUT = 120 # Seconds to keep prompt context active
CLEANUP_INTERVAL = 300 # Seconds between cleanup of expired prompts
# Performance settings
MAX_CONCURRENT_PROCESSING = 3
METADATA_EXTRACTION_TIMEOUT = 10 # Seconds for PNG analysis
IMAGES_PER_PAGE = 20
THUMBNAIL_SIZE = 256
Configure the web interface behavior:
# Web UI settings (PromptManagerConfig class)
RESULT_TIMEOUT = 5 # Seconds to auto-hide results in ComfyUI node
WEBUI_DISPLAY_MODE = 'newtab' # 'popup' or 'newtab' for Web UI button
SHOW_TEST_BUTTON = False # Show API test button in node UI
VACUUM operations keep the database optimizedfrom database.operations import PromptDatabase
db = PromptDatabase()
# Export to JSON
db.export_prompts("my_prompts.json", format="json")
# Export to CSV
db.export_prompts("my_prompts.csv", format="csv")
info = db.model.get_database_info()
print(f"Total prompts: {info['total_prompts']}")
print(f"Average rating: {info['average_rating']}")
# Create backup
db.model.backup_database("backup_prompts.db")
# The database file can be copied directly for backup
cd ComfyUI_PromptManager
python -m pytest tests/ -v
The project follows PEP 8 guidelines with:
Database Permission Errors
Import Errors
Performance Issues
VACUUM on the database occasionallyFor debugging, you can enable verbose logging in the node:
# Add to prompt_manager.py
import logging
logging.basicConfig(level=logging.DEBUG)
MIT License - see LICENSE file for details.
<lora:name:weight> is detected in prompts during encodingNote: LoRA Manager support is a WIP — this was a highly requested feature. Please open issues for any bugs or feature requests.
--pm-* design tokens) that adapts to ComfyUI's color paletteapi.py into domain-specific route modules for better maintainabilityOUTPUT_IS_LIST for native ComfyUI batch processing compatibility/web/metadata.html for analyzing any ComfyUI imagePython
49.6%
JavaScript
37.0%
HTML
12.5%