The gentle file-manatee for ComfyUI.
A full file manager inside the ComfyUI web UI β browse, preview, organize,
upload, rename, move, copy, and trash the files in your ComfyUI roots, without ever
touching the host OS.
- ποΈ Explorer-style file manager β a folder tree, a thumbnail grid, and a live preview pane, all in one fullscreen overlay with drag-resizable panes (double-click a divider to reset).
- πΌοΈ Rich previews β inline images, an HTML5 video player, and an audio player. Generated files show their resolution (
1024 Γ 1024), size, and date at a glance. - π§ See the generation behind the file β embedded ComfyUI metadata (positive/negative prompt, seed, model, LoRAs) surfaced in the preview, with one-click Copy JSON and Load on canvas to drop the workflow straight onto your graph.
- π€ Full write operations β create folders, rename, upload files or whole folders (button or drag from your desktop, with a progress bar), copy/cut/paste, and move β within and across roots.
- β»οΈ Recoverable trash β deletes go to one trash view spanning every root, to restore from or purge.
Shift+Deleteremoves permanently. - π‘οΈ Read-only roots β mount any root browse-only; the server rejects every write and the toolbar hides write actions.
- π¨ Native look & feel β follows your active ComfyUI theme (light, dark, or custom) live, via the same design tokens ComfyUI uses.
- β¨οΈ Fast β keyboard navigation, multi-select, drag-and-drop, right-click context menus, and
Ctrl+Shift+Fto open. - π Safe by design β every path is sandboxed to your configured roots server-side (no
.., no absolute paths, no symlink escapes).
Open ComfyUI Manager β Custom Nodes Manager, search for FileManaty, click Install, and restart ComfyUI.
cd ComfyUI/custom_nodes
git clone https://github.com/agarzon/ComfyUI-FileManaty.gitRestart ComfyUI.
Requirements: Python 3.10+ and Pillow (
>=10.0). Pillow ships with ComfyUI, so there's usually nothing extra to install.
- Open ComfyUI in your browser.
- Click the π¦ FileManaty button in the top action bar β or press
Ctrl+Shift+F. - With no config file present, FileManaty auto-mounts ComfyUI's
output/,input/, andworkflowsfolders as your browsable roots. Start browsing!
Pick a file to preview it on the right; double-click a folder to enter it. Select one or many files (click / Ctrl-click / Shift-click / Ctrl+A), then use the toolbar or right-click menu to manage them.
FileManaty splits configuration into two layers.
Open ComfyUI Settings β π¦ FileManaty. These are per-browser display choices:
| Setting | What it does |
|---|---|
| View β Allow Hidden | Show dotfiles in listings |
| View β Show Thumbnails | Toggle image and video thumbnails |
| View β Grid Density | Compact / Normal / Comfortable |
| View β Thumbnail Size | Small / Medium / Large |
| Sort β Field / Order | Sort by name, size, date, or type β ascending or descending |
| Sort β Folders First | Keep folders above files |
| Open β Default Root | Which root opens first (or "Last used") |
| Confirm β On Delete / On Shift-Delete | Confirmation dialogs for trashing / permanent delete |
For security and capacity limits the server is the authority. Drop a config.json in the extension directory (copy config.example.json to start) and restart ComfyUI to apply.
| Field | Required | Default | Notes |
|---|---|---|---|
roots[] |
yes, once a config.json exists |
auto-mount output/ + input/ + workflows |
The browsable roots. Auto-mounting applies only when there is no config file β a config.json that omits roots logs a warning and leaves the UI empty |
roots[].id |
yes | β | Matches ^[a-z0-9_-]{1,32}$, unique |
roots[].label |
yes | β | Display name shown in the UI |
roots[].path |
yes | β | Absolute path; must exist and be a directory |
roots[].writable |
no | true |
Set false for a browse-only root |
files.image_extensions |
no | png, jpg, jpeg, webp, gif, bmp, avif | Previewed inline + get thumbnails |
files.video_extensions |
no | mp4, webm, mkv, mov | Get thumbnails (decoded server-side) + played inline where the browser supports the container |
files.audio_extensions |
no | mp3, wav, ogg, m4a, flac | Played inline (HTML5 audio) |
thumbnails.max_dimension |
no | 320 |
Longest side, 64β1024 |
write.max_upload_mb |
no | 1024 |
Max size per uploaded file, 1β1048576 |
If the config is malformed or invalid, FileManaty logs a clear error and falls back to the auto-mount defaults β ComfyUI never crashes.
By default, FileManaty also auto-mounts your ComfyUI Workflows folder
(<user-directory>/default/workflows) as a writable root, so you can browse, preview, and
manage your saved workflow .json files (and open them with Load on canvas). The folder is
created if it doesn't exist yet. A custom config.json replaces these auto-mount defaults, so if
you use one, add a workflows root explicitly by its path.
FileManaty can write to your filesystem, so please read this.
- No built-in authentication. Anyone who can reach your ComfyUI HTTP port can use FileManaty. If you expose ComfyUI beyond localhost, put it behind a reverse proxy that handles auth (nginx basic-auth, Caddy forward-auth, Cloudflare Access, β¦). (Optional built-in auth is on the roadmap.)
- Server-side sandboxing. The browser only ever sends a root id + relative path. The server resolves it against the configured root and rejects
.., absolute paths, drive switches, NUL bytes, and symlinks that escape the root. - Scope your roots. Point roots at specific subdirectories β never your home directory or a system drive.
- Safe previews. Only images, video, and audio from your allow-lists are served inline (always with
X-Content-Type-Options: nosniff); HTML/SVG and other active content types are refused, never rendered.
Shipped recently: folder upload (drop a folder or pick one), one unified trash, drag-resizable overlay panes, auto-mounted Workflows root, in-folder name + type filter, rich video + audio preview, embedded-metadata cards, Load-on-canvas, and a native theme-following UI. Coming next:
- π Server-side & metadata search β search across a whole root (past the listing cap) and find files by the prompt / model / seed that made them. (In-folder name + type filtering shipped in v0.8.0.)
- π Optional built-in authentication β a lightweight password mode for small deployments.
- π±οΈ Right-click menu on the folder tree (new folder, rename, delete, paste), plus drag-and-drop within a root to move items straight in the tree.
- ποΈ Double-click to open β full-size image lightbox, inline video/audio player, doc editor, or 3D viewer.
- π Text / JSON preview with syntax highlighting β later, inline editing + save.
- π§ 3D model preview (Load3D).
- π€ Send to input β move an output into
input/in one click.
Ideas and feedback are very welcome β open an issue.
FileManaty is a small pile of puns: a file manager that's secretly a manatee πΎ, with a dash of mana β a little generative magic, fitting for its ComfyUI habitat. Slow, calm, and dependable is exactly how you want something looking after your files.
It comes from Wallrus, whose own name blends a social wall with a walrus. Two friendly sea mammals, one idea: tools that are unhurried, sturdy, and easy to live with.
FileManaty is proudly sponsored by Wallrus. If FileManaty makes your ComfyUI workflow nicer, go say hi. π¦
python3 -m venv .venv
.venv/bin/pip install -e ".[test]"
.venv/bin/pytest -qdocker compose -f docker/docker-compose.yml up -d # ComfyUI at http://localhost:8188The repo is bind-mounted into the container's custom_nodes/. Edit on the host, then restart the container for Python changes and hard-reload the browser for JavaScript changes. Pin a ComfyUI version with --build-arg COMFYUI_REF=v0.3.27 on docker compose build.
Thumbnails are cached as WebP under <ComfyUI user dir>/filemanaty/thumbs/, mirroring each root's folder layout β safe to delete at any time; they regenerate on demand and survive ComfyUI updates. A cached thumbnail is dropped as soon as its source file is deleted, moved, renamed, or overwritten, so no thumbnail outlives the image it came from. Changes made outside FileManaty are caught the next time you browse the folder.
MIT Β© 2026 Alexander Garzon
