ComfyUI Extension: WorkflowUIPlugin
Run ComfyUI workflows without the setup
No installs, no CUDA version roulette, no GPU sitting idle on your bill. Bring a workflow and run it in the browser.
This plugin adds features in order to enable full functionality of WorkflowUI Application to which turns your workflows into apps and provides structures for organizing your generations.
README
WorkflowUI Plugin
A ComfyUI custom node that adds HTTP API endpoints for media (output/input/temp) so the WorkflowUI application can delete files on the ComfyUI server, browse media, and serve images with optional previews—without adding any graph nodes to the ComfyUI UI.
⚠️ This custom node is a plugin for: WorkflowUI
Features
- Delete media — Remove output/input/temp files by filename and subfolder (used when deleting remote run images from WorkflowUI).
- View media — Serve image, video, and audio files with caching; optional compressed image previews (WebP/JPEG or custom size).
- List & browse — Flat file list or one-level folder tree (JSON metadata only, no binary data) for building file-manager UIs.
- Capabilities & version info — Endpoints to detect the plugin and report installed custom node modules/versions for run metadata.
Installation
-
Copy the
WorkflowUIPluginfolder into your ComfyUIcustom_nodesdirectory:ComfyUI/custom_nodes/WorkflowUIPlugin/ ├── __init__.py ├── routes.py ├── version_info.py └── README.md -
Restart ComfyUI. A startup banner confirms the plugin loaded.
API Reference
| Method | Path | Description |
|--------|------|-------------|
| POST | /delete | Delete a file by filename / subfolder / type. Same as namespaced path below. |
| POST | /workflowui/media/delete | Delete a file (JSON body: filename, optional subfolder, type). |
| GET | /workflowui/media/view | Serve file bytes (images, video, audio). Query: filename, subfolder, type; optional preview=webp | jpeg | 256 for image previews. |
| GET | /workflowui/media/list | Flat list of files in a folder (JSON: filename, size, mtime). Query: type, subfolder. |
| GET | /workflowui/media/tree | One-level tree: folders and files for browsing. Query: type, subfolder. |
| GET | /workflowui/media/capabilities | Returns supported features (e.g. workflowui_plugin, delete, list, tree, view, view_preview). |
| GET | /workflowui/version_info | Plugin version and list of installed custom node modules/versions for run metadata. |
Delete (POST)
Request body (JSON):
filename(required) — e.g.ComfyUI_00001_.pngsubfolder(optional) — e.g.""or"audio"type(optional) —"output"(default),"input", or"temp"
Response: 200 with {"ok": true} on success; 400 / 404 / 500 with {"ok": false, "error": "..."} on failure.
View & preview
- View — Serves the file from disk with
Cache-Control: public, max-age=3600. - Preview (images only) — Add
&preview=webp,&preview=jpeg, or&preview=256(or any size 64–2048) for a resized/compressed image. Non-image files ignorepreviewand return the original.
List & tree
- List — Flat list of files with
filename,size,mtime(newest first). - Tree — One level:
folders(subfolder names) andfiles(withfilename,size,mtime). Use for file-manager style browsing.
Security
- Paths are restricted to ComfyUI’s output/input/temp roots via
folder_paths.get_directory_by_type(). subfolderandfilenameare validated to prevent directory traversal (.., path separators in filename).
Compatibility
- ComfyUI — Uses
folder_paths.get_directory_by_type()andPromptServer.instance.routes. - WorkflowUI — Works with the existing backend that calls
POST /deletewith the same JSON shape; no backend change required when the plugin is installed.
License
See repository license.
Run ComfyUI workflows without the setup
No installs, no CUDA version roulette, no GPU sitting idle on your bill. Bring a workflow and run it in the browser.