Smart-Gallery-for-ComfyUI

Smart-Gallery-for-ComfyUI

Docker app from martial's Repository

Overview

SmartGallery DAM: the local-first Digital Asset Manager. A fast, beautiful, and mobile-friendly gallery to organize and manage all files generated with ComfyUI, including images and videos in any format. Features full management tools, Workflow Download, Node Summary, and support for nested folders. Works standalone, even when ComfyUI is not running. Search 50,000 generations by prompt, model, LoRA, or comments in milliseconds. Organize your gallery seamlessly across physical folders and virtual collections. Share curated work with clients without exposing a single node, and let them rate and comment on your creations. Compare two generations side-by-side with an automatic parameter diff. Cull batches from your laptop or also from your phone while ComfyUI is still generating.
SmartGallery DAM logo

SmartGallery DAM

License Python Docker Pulls Stars

The local-first Digital Asset Manager that works with ComfyUI, and survives without it.
Bridging the gap between your creative workflow and professional client approval.

  • Search 50,000 generations by prompt, model, LoRA, or comments in milliseconds.
  • Organize your gallery seamlessly across physical folders and nested virtual collections.
  • (NEW) OmniQuery: Ask complex questions to your database in plain English using AI.
  • (NEW) LoRA Synergyโ„ข: Stop guessing compatibility. Let the system scan your safetensors and auto-wire your graph locally.
  • Remix workflows with The Nodepad: Generate directly from your gallery without opening ComfyUI. Build custom dashboards, edit raw JSON with live server dictionary lookups, and queue jobs in the background. โ–ถ๏ธ
  • Share curated work with clients without exposing a single node, and let them rate and comment on your creations.
  • Compare two generations side-by-side with an automatic parameter diff.
  • Cull batches from your laptop or also from your phone while ComfyUI is still generating.

๐ŸŒ smartgallerydam.com ยท full documentation, wiki and feature reference ยท โ–ถ๏ธ Presentation Video


SmartGallery DAM โ€” main workspace


ComfyUI-Aware. ComfyUI-Independent.

SmartGallery DAM runs as a fully independent process, outside ComfyUI's environment. It keeps indexing and organizing your library whether ComfyUI is up, down, updating, or completely uninstalled. No custom node, no shared dependencies.

SmartGallery DAM is ComfyUI-aware (it reads workflows, extracts prompts, understands models and LoRAs) but ComfyUI-independent by design. Your DAM outlives any tool it connects to.

What this means in practice:

  • ComfyUI is broken after a Python update? SmartGallery keeps running.
  • Run it alongside ComfyUI on the same machine on a different port. Or install it on a separate machine or laptop and just link the output folder over the network.
  • You switched tools entirely? SmartGallery works on any folder of media. It was never ComfyUI-only to begin with.

The Best Mobile Experience in Its Class

We are not aware of any other self-hosted media manager with a mobile interface this good.

SmartGallery DAM was built responsive from day one, not as an afterthought.

This is cross-platform in the full sense: Windows, macOS, Linux, Docker, accessible from any browser on any device on your network, including tablets and smartphones.


Why SmartGallery?

๐Ÿง  OmniQuery (new) Chat with your DAM. Let AI write complex SQL queries to find hyper-specific cross-referenced media in your database without writing code.
๐Ÿ”Œ LoRA Synergy (new) Fully offline matchmaker. Scans Safetensors to guarantee checkpoint compatibility (SD1.5, SDXL, Flux), surfaces trigger words, and auto-wires the workflow.
๐Ÿช„ The Remix Engine Generate without opening ComfyUI. A 3-tier workspace to extract workflows, build custom dashboards, edit raw JSON with live dictionary lookups, and queue directly.
๐Ÿ” Find anything instantly Search by prompt keyword, checkpoint, LoRA, date or comment across tens of thousands of files
๐Ÿ—‚๏ธ Powerful file manager Rename, move, copy, delete files and create folders directly from the browser
๐Ÿ”— Works on any folder Point it at any ComfyUI output, photo archive, NAS volume or network path. Mix and match as many folders as you want
๐Ÿ“ค Magic Upload Drag & drop or upload files from your PC or smartphone directly into any folder. ComfyUI workflows are automatically extracted and indexed on the fly
๐Ÿ‘ฅ Built for teams too Role-based access, per-image comments with visibility control, 1 to 5 star ratings
๐Ÿ—ƒ๏ธ Nested Collections Organize virtual albums in a folder-like tree structure without duplicating a single byte on disk.
๐Ÿท๏ธ Color-coded status tags Mark files as Approved, Review, To Edit, Rejected or Select. Browse any status across your entire library at once, standard DAM pipeline workflow
๐Ÿ›ก Share without exposing your process Clients access a dedicated Exhibition portal you launch only when needed. They see curated collections only. Workflows, prompts and models are always hidden
โš–๏ธ Compare generations A/B slider with synchronized zoom and an automatic parameter diff table
๐ŸŽฌ Full video & audio support Thumbnails, storyboard preview, dynamic audio waveforms, and on-the-fly transcoding via FFmpeg. Handles ProRes and other professional formats
๐ŸŒ Truly cross-platform Windows, macOS, Linux, Docker. Same interface, same features, every OS and device
โšก Simple installation Zero-config Portable App for Windows (just unzip and run) and official Docker image for Linux/Unraid

Table of Contents

  1. OVERVIEW & CONCEPTS
  2. SETUP & CONFIGURATION
  3. INTERFACE WALKTHROUGH
  4. ADVANCED TOPICS & REFERENCE

1. OVERVIEW & CONCEPTS

1.1 What is SmartGallery DAM?

SmartGallery DAM is the evolution of SmartGallery for ComfyUI. What started as a fast local gallery for browsing outputs has grown into a powerful and easy-to-use Digital Asset Management system.

Evolve your workflow from a simple collection of files into a structured, searchable library. Designed for individual creators and professional teams, this platform is ridiculously simple to use, yet powerful enough to act as the ultimate file manager for your generations. Every asset is automatically indexed, linked to its original generative parameters, and ready for secure review. The system is open-source, private, and entirely local: no cloud dependencies and no recurring costs.

Who is this for?

The AI Artist. You run ComfyUI all day. Your output folder has tens of thousands of files and you can never find anything. SmartGallery lives outside that chaos. It indexes every generation with its full workflow, lets you search by prompt, model or LoRA, and lets you cull while batches are still running. When ComfyUI breaks, SmartGallery doesn't even blink.

The Creative Pro or Team. You deliver AI visuals to clients. Sharing via Google Drive or Dropbox feels unprofessional. SmartGallery gives you an optional Exhibition portal where clients rate and comment on images in real time, while your prompts and workflows stay completely invisible to them. Launch it only when you have a delivery to share.

Everyone else. You just want to organize photos, videos, or art and share them nicely. SmartGallery works with any folder on your system.

The Remote or Multi-Machine User. You want your gallery on a dedicated machine (a laptop, a NAS, a home server) without installing ComfyUI there. Install SmartGallery on that machine, link your ComfyUI output folder over the network, and access the full DAM from any browser, on any device, including your phone.


1.2 What's New in v2.15

  • ๐Ÿง  OmniQuery (AI-Powered SQL Explorer): Ask complex questions to your DAM. Use natural language via an LLM (ChatGPT, Claude, etc.) to query your database with cross-table logic that goes way beyond simple UI filters.
  • ๐Ÿ”Œ LoRA Synergyโ„ข: A fully offline LoRA matchmaker built into the Nodepad. It reads your LoRAs' safetensors headers to guarantee checkpoint compatibility, suggests trigger words based on your history, and auto-wires the ComfyUI nodes perfectly.
  • ๐ŸŒณ Nested Collections: Virtual albums just got a major upgrade. You can now arrange your virtual Collections in a nested tree structure (parent/child relationship), keeping complex projects beautifully organized.

Note: Read the Full Changelog so you don't miss out on all the quality-of-life improvements and bug fixes!


1.3 Core Features

Live Workspace and File Management
  • Cross-platform, Cross-device: Runs locally on Windows, macOS, Linux, and Docker. The responsive web interface works flawlessly across desktops, tablets, and smartphones.
  • Auto-Watch: detects new ComfyUI outputs the moment they are saved. Cull with Del, favorite with F, move with M, all while generation is still running.
  • Magic Upload: Drag & drop or upload files from your PC or smartphone directly into any folder via the web interface. ComfyUI metadata is extracted automatically.
  • Full File Manager: select files individually or in bulk. Move, copy, delete, or ZIP directly from the browser.
  • Focus Mode: press Q to hide all UI chrome. Maximum screen space for pure curation.
  • External Drive Mounting: link any external drive, NAS, or network path via Symlinks directly from the UI.
Workflow Intelligence (ComfyUI)
  • LoRA Synergy: Zero-API offline matching that prevents architecture mismatch errors by reading safetensors and automatically wires your graph.
  • Node Summary Dashboard: press N on any image to see Seed, CFG, Steps, Sampler, Scheduler, all active Models, LoRAs with weights, and full positive/negative prompts.
  • Remix 3-Tier Workflow: press B to break out of the canvas. Use the Auto-Form for simple prompts, build a custom dashboard in My Panel, or edit raw backend JSON safely with the revolutionary { } Nodepad. Includes Autofix and Companion PNG support.
  • Workflow Download and Copy: press W to download the raw JSON workflow, C to copy it to clipboard and paste directly back into ComfyUI.
  • Clean Export: press Shift+W to download a pixel-perfect copy stripped of all EXIF data and embedded workflows. Safe to share externally.
  • Compare Mode: select two generations, open the A/B slider with synchronized zoom and pan. A parameter diff table shows only the values that changed.
Organization (DAM) & Search
  • OmniQuery (AI SQL Explorer): Query the database using AI to answer complex questions safely (read-only).
  • Virtual Nested Collections: group files from different physical folders into a hierarchical tree of albums without duplicating a byte on disk.
  • Collection Sharing: Keep collections private, mark them as Exhibition Ready for all guests, or share them exclusively with specific users.
  • Status Tags: keyboard shortcuts 1 to 5 apply color-coded team statuses: Approved, Review, To Edit, Rejected, Select.
  • Favorites: press F to toggle a Favorite flag on any file.
  • Search by anything: Prompt keywords, checkpoint name, LoRA name, comment text, date range, file extension, or star rating ranges.
Media Tools & Exhibition Mode
  • Exhibition Mode: a separate, secure portal for clients or collaborators. Launch it only when you need it. Physical folder browsing is disabled.
  • Blind Rating System: A unique enterprise-grade feature. Force users to rate blindly without seeing global averages to prevent group bias.
  • Video Storyboard: press E in the Lightbox to generate a grid of 11 evenly-spaced frames from start to last frame.
  • Dynamic Audio Waveforms: Real-time amplitude scaling (๐ŸŒŠ) without media regeneration.
  • Video Transcoding: ProRes, MKV, AVI, MOV are auto-transcoded via FFmpeg for smooth browser playback.

1.4 Use Case Scenarios

SmartGallery has two interfaces: the Main Interface (your personal workspace) and Exhibition (an optional sharing portal for clients, collaborators, or friends). They are completely independent. You can run just the Main Interface forever and never touch Exhibition. You can launch Exhibition only when you have something to share and shut it down when the review is over. Neither requires the other to be running.

Scenario 1: Solo user, no sharing needed (upgrading from v1)

If you used SmartGallery v1 as an advanced file manager and have no need to share your work, nothing changes. Launch it exactly as before, with no extra parameters:

python smartgallery.py

ComfyUI is generating hundreds of files. As each one appears in the grid, you decide in real time: delete the bad seeds immediately with Del, move the keepers to the right folder with M, mark favorites with F, or tag them with a color status. You do all of this while generation is still running. When you want to review later, you search by prompt keywords, model name, or LoRA, pull up the full node summary for any image from months ago, or compare two generations side by side with a parameter diff.

When ComfyUI is not running, the same interface works as a full file manager for all your media. No Exhibition needed, ever, unless you decide you want it.

What is new in v2 that you can start using immediately, with no additional setup:

  • Virtual Collections: group files from different folders into named albums without moving anything on disk. Open the Collections tab in the left sidebar and click + to create one.
  • Status Tags: mark any image with a workflow state using keys 1 to 5. For example, press 3 to flag a file as "To Edit" and come back to it later. Browse all files with a given status from the Status tab in the sidebar.
  • Ratings and personal notes: press G on any image to open the Details panel. Assign a 1 to 5 star rating and write a note to yourself. These notes are searchable: use the comment keyword filter to find any image by words you wrote in your own comments.
  • Clean Export: to send a file to someone without exposing your ComfyUI workflow and models, press Shift+W. You get a pixel-perfect copy with all metadata stripped.
Scenario 2: Sharing your work with Exhibition

Exhibition is a separate, read-only portal you share with clients, collaborators, or anyone you want to show your work to.

Step 1: Launch the Main Interface with authentication.

The line below shows only the launch command with the relevant parameters. In practice you should add these parameters to your platform launch script (the .bat or .sh file you created during installation), which also sets your folder paths and ffprobe location. If you have not created a launch script yet, see the Installation section, pick your platform, and follow the instructions there first.

python smartgallery.py --port 8189 --admin-pass yourpassword --force-login

Log in at http://localhost:8189 with username admin (always lowercase) and the password you set above.

Step 2: Create Collections and set Permissions. In the left sidebar, open the Collections tab and click +. Give each collection a name. You can toggle it as "Exhibition Ready" (public for everyone in the portal), or click the โ‹ฎ menu -> ๐Ÿ‘ฅ Share / Permissions to assign it exclusively to a specific client.

Step 3: Create user accounts. Click the user management icon in the sidebar. Create an account for each person who will access Exhibition. For clients and external viewers, assign the role CUSTOMER or USER. Share their credentials and the Exhibition URL with them directly.

Step 4: Launch Exhibition.

Same as above: add these parameters to a second launch script for Exhibition (a separate .bat or .sh file), keeping your folder paths and other settings identical to the Main Interface script. Run it from a second terminal when you are ready to share.

python smartgallery.py --exhibition --port 8190 --admin-pass yourpassword

Share http://youraddress:8190 with your users. They will see only the collections assigned to them, with no prompts, no workflow data, and no folder structure. They can leave star ratings and write comments on individual images. You can read and reply to their feedback from the Main Interface at any time.

Scenario 3: Small team working together (Blind Rating)

The team lead runs the Main Interface with --force-login and --admin-pass so the workspace is password-protected. Each team member gets a STAFF account and logs into the same Main Interface remotely to review files, apply status tags, and leave internal comments on specific images.

python smartgallery.py --port 8189 --admin-pass yourpassword --force-login

When work is ready for a client, a CUSTOMER account is created, the relevant Collections are mapped, and Exhibition is launched on a separate port. To prevent the client (or team members) from being influenced by what others voted, the lead launches Exhibition with the --blind-rating flag:

python smartgallery.py --exhibition --port 8190 --admin-pass yourpassword --blind-rating

Now, when clients log into http://youraddress:8190, they cannot see the global average score. They only see their own stars. Admins reviewing the gallery can press B to toggle the blind mode off temporarily and see the real consensus.

All feedback runs through the same database, with no file transfers, no email threads, and no ZIP files.


2. SETUP & CONFIGURATION

2.1 Installation

Requirements:

  • Portable/Docker Installation: No installation required. Everything is pre-configured (Python is already embedded).
  • Manual Installation: Python 3.10+ installed on your system.
  • Strongly Recommended: FFmpeg/FFprobe (for advanced video features).

Choose your platform below and expand to view the installation instructions:

Windows

There are two ways to run SmartGallery on Windows: using the ready-to-use Portable Version (Recommended) or the Manual Git Installation.


Method 1: Portable Version (Recommended)

This version includes a fully self-contained environment. You do not need to install Python or any dependencies on your systemโ€”it is completely plug-and-play.

1. Download & Extract

2. Configure and Run

  • Read First: Before launching, open the 00_START_HERE.txt file included in the root folder for essential setup instructions.
  • Customize: Rename sample_run_smartgallery.bat to run_smartgallery.bat, right-click it, and select Edit.
  • Setup Paths: Update the CONFIGURATION section to point to your specific ComfyUI folders (ensure you use forward slashes /).
  • Launch: Save the file and double-click run_smartgallery.bat to launch the server!

3. Updating to a Newer Version To update to a newer release while preserving your settings:

  1. Download and extract the new Portable ZIP into a fresh folder.
  2. Simply copy your existing run_smartgallery.bat (and any custom .bat files for Exhibition Mode) into the new folder.
  3. Launch your copied .bat file; your configuration will be preserved automatically.

Note: SmartGallery DAM is completely standalone; your database and settings are kept safe in your chosen configuration path.


Method 2: Manual / Git Installation

For advanced users who prefer managing their own Python virtual environments and updating via Git.

1. Clone and setup

git clone https://github.com/biagiomaf/smart-comfyui-gallery
cd smart-comfyui-gallery
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt

Or download the Source Code ZIP from Releases, extract, and run the pip commands above.

2. Create your launch script

Create run_smartgallery.bat in the root folder:

@echo off
cd /d %~dp0
call venv\Scripts\activate.bat

:: --- CONFIGURATION: replace with your real paths ---
:: Use forward slashes (/) even on Windows
set "BASE_OUTPUT_PATH=C:/Path/To/ComfyUI/output"
set "BASE_INPUT_PATH=C:/Path/To/ComfyUI/input"
set "BASE_SMARTGALLERY_PATH=C:/Path/To/ComfyUI/output"
set "FFPROBE_MANUAL_PATH=C:/Path/To/ffmpeg/bin/ffprobe.exe"
set SERVER_PORT=8189

:: --- OPTIONAL LAUNCH PARAMETERS ---
:: Add any of the following to the python command below depending on your scenario:
::
::   --admin-pass yourpassword   Set the admin password (log in as: admin / yourpassword)
::   --force-login               Require login on the Main Interface (use with --admin-pass)
::   --exhibition                Start in Exhibition Mode instead of the Main Interface
::   --port 8190                 Use a different port (default: 8189)
::   --enable-guest-login        Allow anonymous guest access in Exhibition
::   --blind-rating              Hide global averages to prevent user bias
::
:: Example โ€“ Main Interface with login enforced:
::   python smartgallery.py --port 8189 --admin-pass yourpassword --force-login
::
:: Example โ€“ Exhibition on port 8190 with Blind Rating:
::   python smartgallery.py --exhibition --port 8190 --admin-pass yourpassword --blind-rating

:: --- START ---
python smartgallery.py
pause

Double-click run_smartgallery.bat to start.

3. Update

cd smart-comfyui-gallery
git pull
venv\Scripts\activate
pip install -r requirements.txt
macOS

1. Clone and setup

git clone https://github.com/biagiomaf/smart-comfyui-gallery
cd smart-comfyui-gallery
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

2. Create your launch script

Create run_smartgallery.sh and make it executable (chmod +x run_smartgallery.sh):

#!/bin/bash
source venv/bin/activate

# Fix for "Too many open files" on macOS
ulimit -n 4096

# --- CONFIGURATION: replace with your real paths ---
export BASE_OUTPUT_PATH="$HOME/ComfyUI/output"
export BASE_INPUT_PATH="$HOME/ComfyUI/input"
export BASE_SMARTGALLERY_PATH="$HOME/ComfyUI/output"
export FFPROBE_MANUAL_PATH="/opt/homebrew/bin/ffprobe"
export SERVER_PORT=8189

# --- OPTIONAL LAUNCH PARAMETERS ---
# Add any of the following to the python command below depending on your scenario:
#
#   --admin-pass yourpassword   Set the admin password (log in as: admin / yourpassword)
#   --force-login               Require login on the Main Interface (use with --admin-pass)
#   --exhibition                Start in Exhibition Mode instead of the Main Interface
#   --port 8190                 Use a different port (default: 8189)
#   --enable-guest-login        Allow anonymous guest access in Exhibition
#   --blind-rating              Hide global averages to prevent user bias
#
# Example โ€“ Main Interface with login enforced:
#   python smartgallery.py --port 8189 --admin-pass yourpassword --force-login
#
# Example โ€“ Exhibition on port 8190 with Blind Rating:
#   python smartgallery.py --exhibition --port 8190 --admin-pass yourpassword --blind-rating

# --- START ---
python smartgallery.py

Run with: ./run_smartgallery.sh

Install FFmpeg via Homebrew: brew install ffmpeg

3. Update

cd smart-comfyui-gallery && git pull
source venv/bin/activate && pip install -r requirements.txt
Linux

1. Clone and setup

git clone https://github.com/biagiomaf/smart-comfyui-gallery
cd smart-comfyui-gallery
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

2. Create your launch script

Create run_smartgallery.sh and make it executable (chmod +x run_smartgallery.sh):

#!/bin/bash
source venv/bin/activate

# --- CONFIGURATION: replace with your real paths ---
export BASE_OUTPUT_PATH="$HOME/ComfyUI/output"
export BASE_INPUT_PATH="$HOME/ComfyUI/input"
export BASE_SMARTGALLERY_PATH="$HOME/ComfyUI/output"
export FFPROBE_MANUAL_PATH="/usr/bin/ffprobe"
export SERVER_PORT=8189

# --- OPTIONAL LAUNCH PARAMETERS ---
# Add any of the following to the python command below depending on your scenario:
#
#   --admin-pass yourpassword   Set the admin password (log in as: admin / yourpassword)
#   --force-login               Require login on the Main Interface (use with --admin-pass)
#   --exhibition                Start in Exhibition Mode instead of the Main Interface
#   --port 8190                 Use a different port (default: 8189)
#   --enable-guest-login        Allow anonymous guest access in Exhibition
#   --blind-rating              Hide global averages to prevent user bias
#
# Example โ€“ Main Interface with login enforced:
#   python smartgallery.py --port 8189 --admin-pass yourpassword --force-login
#
# Example โ€“ Exhibition on port 8190:
#   python smartgallery.py --exhibition --port 8190 --admin-pass yourpassword --blind-rating

# --- START ---
python smartgallery.py

Run with: ./run_smartgallery.sh

3. Update

cd smart-comfyui-gallery && git pull
source venv/bin/activate && pip install -r requirements.txt
Docker

Special thanks to Martial Michel (@mmartial) for orchestrating Docker support and contributing to the core application logic.

Pre-built image on DockerHub and Unraid Community Apps.

Unraid CA

Run:

docker run \
  --name smartgallery \
  -v /your/host/output:/mnt/output \
  -v /your/host/input:/mnt/input \
  -v /your/host/SmartGallery:/mnt/SmartGallery \
  -e BASE_OUTPUT_PATH=/mnt/output \
  -e BASE_INPUT_PATH=/mnt/input \
  -e BASE_SMARTGALLERY_PATH=/mnt/SmartGallery \
  -e WANTED_UID=`id -u` \
  -e WANTED_GID=`id -g` \
  # -e CLI_ARGS="..."   # Optional: add launch parameters here (see below)
  -p 8189:8189 \
  mmartial/smart-comfyui-gallery

The CLI_ARGS environment variable passes optional launch parameters to SmartGallery inside the container. Add it to the command above depending on your scenario:

Scenario CLI_ARGS value Port mapping
Main Interface with login --admin-pass yourpassword --force-login -p 8189:8189
Exhibition --exhibition --admin-pass yourpassword -p 8190:8189
Exhibition with guest access --exhibition --admin-pass yourpassword --enable-guest-login -p 8190:8189
Exhibition with Blind Rating --exhibition --admin-pass yourpassword --blind-rating -p 8190:8189

For Exhibition scenarios, replace -p 8189:8189 in the docker run command above with -p 8190:8189. This maps port 8190 on your host to the container's internal port 8189, so clients reach Exhibition at http://youraddress:8190.

When using --admin-pass, log in with username admin (always lowercase) and the password you set.

For running both instances simultaneously, see the dedicated section under Launch Parameters.

Update:

docker pull mmartial/smart-comfyui-gallery
docker stop smartgallery && docker rm smartgallery
# Re-run the docker run command above

Full Docker guide: docs/DOCKER_HELP.md

Once installed, open SmartGallery at:

http://127.0.0.1:8189/galleryout

[!IMPORTANT] When you update to a new version:

  • For Portable Installations: Simply download the new version, extract it, and overwrite your existing files. Remember to keep your existing launch scripts (.bat or .sh files) to preserve your custom paths and settings.

  • For Docker Installations: Pull the latest image and restart your container. Your configuration is preserved via your volume mappings.

  • For Manual Installations: Remember to keep your existing launch scripts (.bat or .sh files). After updating your files, refresh your environment dependencies by running:

    pip install -r requirements.txt
    

2.2 Launch Parameters

The Main Interface and Exhibition are completely independent. You can run just one, both at the same time, or alternate between them. Neither requires the other to be running.

Main Interface parameters

All parameters are optional. Launched with no flags, SmartGallery runs on port 8189 and treats you as admin automatically when accessed from a local network.

Flag Required Description
--port <number> Optional Override the default port (8189).
--admin-pass <pwd> Optional* Set the Admin password. Required to enable user management. Minimum 8 characters. Log in with username admin (always lowercase) and the password you set here.
--force-login Optional* Enforces authentication. Must always be combined with --admin-pass. Use when accessing from outside the local network.
--blind-rating Optional Forces Blind Rating mode. Useful if you want team members in the main UI to vote without bias.

* --admin-pass and --force-login must be used together when either is specified.

Accessing the main interface from outside your local network? Always use --admin-pass and --force-login together, without exception. Without these two flags the interface is open to anyone who finds the URL.

Exhibition parameters
Flag Required Description
--exhibition Yes Start in Exhibition Mode. Only assigned or public collections are visible. Physical folder browsing is disabled.
--admin-pass <pwd> Yes Set the Admin password. Required to protect the instance and enable user management. Minimum 8 characters.
--port <number> Yes Use a different port when running Exhibition alongside the main interface. Typically 8190.
--enable-guest-login Optional Shows a "Login as Guest" button. No account needed to browse Exhibition.
--blind-rating Optional Blind Rating Mode. Hides global average ratings from the UI. Users see and sort only by their own personal ratings, ensuring unbiased curation feedback from clients and guests.
Running both instances: together or independently

The two instances can run at the same time from two separate terminals or scripts, or independently whenever needed. Launch Exhibition only when you have something to share. There is no requirement to keep both running permanently.

Python: two terminals or scripts

# Terminal 1: Main interface
python smartgallery.py --port 8189 --admin-pass yourpassword --force-login

# Terminal 2: Exhibition (launch only when needed, with Blind Rating active)
python smartgallery.py --exhibition --port 8190 --admin-pass yourpassword --blind-rating

Docker: same image, launched twice

# Main interface container (port 8189 on host)
docker run --name smartgallery-main \
  -v /your/host/output:/mnt/output \
  -v /your/host/input:/mnt/input \
  -v /your/host/SmartGallery:/mnt/SmartGallery \
  -e BASE_OUTPUT_PATH=/mnt/output \
  -e BASE_INPUT_PATH=/mnt/input \
  -e BASE_SMARTGALLERY_PATH=/mnt/SmartGallery \
  -e WANTED_UID=`id -u` \
  -e WANTED_GID=`id -g` \
  -e CLI_ARGS="--admin-pass yourpassword --force-login" \
  -p 8189:8189 \
  mmartial/smart-comfyui-gallery

# Exhibition container (port 8190 on host)
docker run --name smartgallery-exhibition \
  -v /your/host/output:/mnt/output \
  -v /your/host/input:/mnt/input \
  -v /your/host/SmartGallery:/mnt/SmartGallery \
  -e BASE_OUTPUT_PATH=/mnt/output \
  -e BASE_INPUT_PATH=/mnt/input \
  -e BASE_SMARTGALLERY_PATH=/mnt/SmartGallery \
  -e WANTED_UID=`id -u` \
  -e WANTED_GID=`id -g` \
  -e CLI_ARGS="--exhibition --admin-pass yourpassword --blind-rating" \
  -p 8190:8189 \
  mmartial/smart-comfyui-gallery

Docker port mapping: the syntax is HOST:CONTAINER. Both containers run internally on port 8189, but are reachable at :8189 and :8190 respectively on your machine. They share the same data volumes, so files, tags, and collections are visible in both.


2.3 FFmpeg Integration

FFmpeg is optional but strongly recommended. Without it, video files will not generate thumbnails, the storyboard feature will not work, and formats like ProRes, MKV, AVI, and MOV will not transcode for browser playback.

If you only work with images, you can skip this entirely.

What FFmpeg enables
  • Thumbnail generation for MP4, WEBM, and all transcoded formats
  • Video Storyboard: the 11-frame grid preview (E key in the Lightbox)
  • Interactive Audio Waveforms (GENERATE_WAVEFORMS=true)
  • On-the-fly transcoding of ProRes, MKV, AVI, MOV to a browser-compatible format
  • Workflow extraction from video files generated by ComfyUI

SmartGallery uses ffprobe (included in every FFmpeg installation) to read video metadata, and ffmpeg itself for transcoding. You point SmartGallery to the ffprobe binary via the FFPROBE_MANUAL_PATH variable in your launch script.

Install FFmpeg on Windows
  1. Download a pre-built release from ffmpeg.org/download.html (the "Windows builds" section, for example from gyan.dev or BtbN).
  2. Extract the archive to a permanent location, for example C:/ffmpeg.
  3. The binaries you need are inside the bin folder: ffmpeg.exe and ffprobe.exe.
  4. In your run_smartgallery.bat, set:
set "FFPROBE_MANUAL_PATH=C:/ffmpeg/bin/ffprobe.exe"

You do not need to add FFmpeg to your system PATH. SmartGallery only needs the full path to ffprobe.exe.

Install FFmpeg on macOS

The easiest way is Homebrew:

brew install ffmpeg

After installation, ffprobe will typically be at /opt/homebrew/bin/ffprobe (Apple Silicon) or /usr/local/bin/ffprobe (Intel). Set it in your launch script:

export FFPROBE_MANUAL_PATH="/opt/homebrew/bin/ffprobe"

To confirm the path on your machine: which ffprobe

Install FFmpeg on Linux

On Debian/Ubuntu:

sudo apt update && sudo apt install ffmpeg

On Fedora/RHEL:

sudo dnf install ffmpeg

ffprobe is installed alongside ffmpeg. The default path is usually /usr/bin/ffprobe. Set it in your launch script:

export FFPROBE_MANUAL_PATH="/usr/bin/ffprobe"

To confirm: which ffprobe

Docker: nothing to install

The official Docker image (mmartial/smart-comfyui-gallery) already includes FFmpeg and ffprobe. Video transcoding, thumbnail generation, and storyboard creation all work out of the box with no additional configuration.


3. INTERFACE WALKTHROUGH

3.1 The Main Workspace (Creator Hub)

Access: http://localhost:8189/galleryout

SmartGallery Main Workspace โ€” grid view with batch selection bar active
The Main Workspace: grid view with sidebar navigation, batch selection bar at the bottom, and Workflow badges on each card. Fully responsive and functional on mobile devices.

Mobile View Node Summary
Mobile interface Node Summary: full workflow recall at a glance

3.1.1 Sidebar Navigation

The left sidebar contains three main tabs:

Sidebar with three tabs: Folders, Collections, Status

The three-tab sidebar: Folders (directory tree), Collections (virtual albums), Status (browse by pipeline state).

  • ๐Ÿ“ Folders (Physical): Browse actual folders on your hard drive.
    • + โ€” Create a subfolder
    • ๐Ÿ”— โ€” Mount an external drive or network folder via symlink
    • โ‹ฎ โ€” Rename, Delete, Unmount, or force AI Indexing on a folder
  • ๐Ÿ“š Collections (Virtual): Virtual albums grouping files from different folders without moving them on disk.
  • ๐Ÿท Status: Browse all files by their color-coded pipeline status across every folder at once.
  • ๐Ÿ‘ค User Profile (bottom): Shows your current role. Click ๐Ÿ‘ฅ to open User Management, ร— to log out.

3.1.2 Top Toolbar & Global Actions

Top toolbar with Filters, Upload, Rescan, Refresh buttons and sort options

The top toolbar: action buttons on the left, file count and sort options on the right.

  • โš™๏ธ Options: Global settings โ€” thumbnail size (Normal 320px / Compact 220px), video autoplay.
  • ? Shortcuts: Full keyboard shortcut list for the current interface.
  • โšก Focus (Q): Toggle Focus Mode.
  • ๐Ÿ•ต๏ธ My Ratings: Quickly toggle between the global average rating view and your personal, blind rating view.
  • ๐Ÿ“ค Upload: Magic Upload via drag & drop. ComfyUI metadata is extracted automatically.
  • โ™ป๏ธ Rescan: Forces a background disk scan for externally added or modified files.

Auto-Watch & Refresh

Auto-Watch popup with Enable Watch toggle and 10 second interval

Auto-Watch: click the โ‹ฎ next to Refresh, enable the toggle and set an interval. A pulsing red dot confirms it's active.

  • Manual Refresh: Click the ๐Ÿ”ƒ icon to instantly scan for new files.
  • Auto-Watch (โ‹ฎ): Silently scans in the background and injects new ComfyUI files into the grid without a page reload. Enable it while ComfyUI is generating to cull in real time.

3.1.3 Search & Filters

Advanced search panel showing all filter options

The Filters panel: search scope, multi-keyword fields, extensions, date range, and options.

Click ๐Ÿ” Filters to open the advanced search engine. Filters work across both physical Folders and virtual Collections.

Search Scope: Current Folder or Global (All Folders). Toggle Include Subfolders for recursive search.

Multi-Keyword Fields (Workflow Files, Prompt Keywords, Comment Keywords):

Syntax Logic Example
, comma AND โ€” must contain both red, car
; semicolon OR โ€” contains either cat; dog
! exclamation NOT โ€” exclude keyword !lora, !cat
" " quotes Exact Match "man" (won't match woman)

๐Ÿ’ก Pro Tip: You can combine Exact Matches and Exclusions! Use !"bad anatomy" to completely exclude a specific phrase from your search results.

Extensions & Prefixes: Filter by file type or filename prefix.

Date Range: Filter by generation/upload date.

Options: Favorites Only ยท No Workflow.

Advanced Ratings Filtering: You can now drill down into feedback by filtering by Star Rating Ranges (e.g., select '4-5 stars' and '1-2 stars' simultaneously) and by Specific Raters to isolate feedback from key clients or team members.

Sort Buttons

Sort by Date (๐Ÿ“…), Name (๐Ÿ”ค), Rating (โญ), or Comments (๐Ÿ’ฌ).

Sorting criteria for Ratings and Comments have been upgraded with Sub-menus. Click the dropdown arrow next to the Rating or Comment buttons to effortlessly toggle between "Highest/Lowest Rated", "Not Rated", "Most/Least Discussed", or "Uncommented" items. A dedicated Newest Comments sort orders files by the most recent activity, making it perfect for Admins to surface the latest client feedback without manually hunting through the grid.


3.1.4 OmniQuery โ€“ AI-Powered SQL Explorer

If you can describe it, you can find it.
The built-in filter panel is great for everyday searches, but sometimes you need to ask complex, cross-table questions like: "Show me all videos longer than 2 minutes that have at least 3 comments mentioning 'review' and belong to a specific collection."

Click the โšก OmniQuery icon in the gallery toolbar to open the AI-Assisted SQL Explorer.

  • Natural Language Translation: OmniQuery generates a perfect schema prompt. Copy it, paste it into ChatGPT, Claude, or DeepSeek, and they will write the perfect SQL logic for you.
  • Read-Only Security: You can safely let AI generate queries. OmniQuery strictly enforces SELECT statements, meaning your database can never be accidentally modified or deleted.
  • Save & Reuse: Save your favorite complex queries directly on the server to run them again with one click.

๐Ÿ‘‰ Read the full OmniQuery Guide for detailed instructions and examples.


3.1.5 Gallery Grid & Focus Mode

Persistent Metadata Hover Bar: Hovering over any image now reveals a sleek status bar at the bottom of the screen. It provides instant, real-time access to crucial file details including exact dimensions, calculated megapixels, file size, and current rating status without needing to open the Lightbox.

Standard Grid View (Focus Mode OFF): Hovering over an image reveals the quick-action card with Node Summary (๐Ÿ“), Favorite (โญ), Download (๐Ÿ’พ), Delete (๐Ÿ—‘๏ธ). Clicking opens the Lightbox.

Standard Grid View โ€” Focus Mode OFF, showing hover cards with action buttons

Standard Grid View (Focus OFF): two files selected (blue checkmarks), hover card visible, batch bar at the bottom.

Focus Mode ON (Q): Hides all UI chrome, metadata, titles, and quick-action cards. A golden star marks favorites. Selected items show a massive fuchsia border. Use keyboard arrows to navigate. Click or press V/Enter to open the Lightbox.

Focus Mode ON โ€” clean grid with fuchsia selection borders

Focus Mode ON: all clutter removed, fuchsia border on the selected file, batch bar still accessible.

Power User Tip: Enable Auto-Watch, activate Focus Mode with Q, then use โ†โ†’ arrows + Del/F/X to blaze through a batch while it's still generating. Press I on any item to view its exact file path and linked real-source mapping (crucial for diagnosing mounted external drives).


3.1.6 Batch Selection Bar

Click the checkmark โœ“ on any image (or Space/X in Focus Mode) to select it. The floating Selection Bar appears at the bottom.

Batch selection bar with context menu expanded showing all batch actions

Batch selection bar: 2 files selected (fuchsia borders), context menu open with all available batch actions.

Action Shortcut Description
โœ• Deselect All Esc Clears the selection
โœ… Select All Ctrl+A Selects all visible files
โ†”๏ธ Range Select โ€” Appears when exactly 2 files selected; selects all between them
โญ Add Favorite โ€” Marks all selected as favorites
๐Ÿท Set Status Y Apply a pipeline color tag to the batch
๐Ÿ“š Add/Remove Collections A Add or remove batch from virtual albums
โš–๏ธ Compare Selected โ€” Split-screen comparison (exactly 2 files required)
๐Ÿ… Rate Selected Shift+R Apply 1โ€“5 stars to multiple files at once
๐Ÿ“ Move / Copy M Transfer files to another physical folder
๐Ÿ“ฆ Download as Zip Z Package selection into a downloadable .zip
โ˜† Remove Favorite โ€” Remove the favorite flag from the batch
๐Ÿ—‘๏ธ Delete Selected Del Permanently delete selected files

3.2 Advanced Media Inspection

3.2.1 The Lightbox (Media Viewer)

Open the full-screen Lightbox with V or Enter. When Focus Mode is OFF, clicking an image also works.

Lightbox open with Node Summary panel on the left, image in center, Ratings & Comments panel on the right

The Lightbox: Node Summary panel (left), full-resolution image (center), Ratings & Comments panel (right). All three panels can be shown or hidden independently.

Enhanced Player Controls: The custom video/audio player now supports Spacebar to Play/Pause, arrow keys to seek by 5 seconds, and full volume/mute controls (Shortcut M).

Dynamic Audio Waveforms: If GENERATE_WAVEFORMS=true is set, visual audio tracks will map onto the seek bar. A dedicated amplitude slider (๐ŸŒŠ) lets you visually boost or reduce the waveform height in real timeโ€”a rare feature that saves you from needing to regenerate the media file.

Toolbar Buttons:

Button Key Description
/ MENU / Touch-friendly list of all commands
โˆ’ / + - / + Zoom out / Zoom in
๐Ÿ”„ Rotate T Rotate 90ยฐ (non-destructive)
๐Ÿ’พ Download S Download original file
๐Ÿ›ก Clean Export Shift+W Download with all metadata stripped (prompts, nodes, EXIF)
โœ๏ธ Rename R Rename file on disk
๐Ÿ“ Node Summary N Open ComfyUI generation dashboard
โœฆ Remix Workflow B Edit workflow parameters and queue new generations
โญ๐Ÿ’ฌ Ratings & Comments G Open side panel for ratings and messages
โš™๏ธ Workflow JSON W Download raw ComfyUI .json workflow
๐Ÿ“‹ Copy JSON C Copy workflow to clipboard
๐ŸŽž Storyboard E Generate 11-frame video overview
๐Ÿ“ Move File M Open the Move File dialog
๐Ÿ‘ Hide Toolbar H "Clean View" โ€” hides all chrome
โ†—๏ธ Open in New Tab O Full-resolution in a new browser tab
๐Ÿ—‘๏ธ Delete Del Delete the file
ร— Exit Esc Return to Grid View

3.2.2 ComfyUI Node Summary (๐Ÿ“)

Press N on any image (in the grid or in the Lightbox) to open the Node Summary.


Node Summary dashboard: positive prompt with one-click Copy, and all generation parameters at a glance.

Raw Node List: every single node in the ComfyUI graph (DualCLIPLoader, ConditioningZeroOut, MarkdownNoteโ€ฆ) with all parameters.

The dashboard shows:

  • Positive & Negative Prompts โ€” with one-click Copy buttons
  • Generation Parameters โ€” Seed (with copy button), Steps, CFG, Sampler, Scheduler, Resolution
  • Active LoRAs โ€” all LoRAs used and their weights
  • Source Media (Inputs) โ€” if the workflow used Image2Image, ControlNet, or Video inputs, the source media is displayed and downloadable directly from this panel
  • Raw Node List โ€” complete scrollable list of every node in the workflow graph

3.2.3 Remix Workflow & The { } Nodepad (โœฆ)

The Philosophy: "Suffer Only Once on the Canvas"
ComfyUI is incredibly powerful, but its node-based interface can be overwhelming. The philosophy behind the Remix feature is simple: endure building your perfect node setup once. Once you generate your media, let SmartGallery steal its "soul", extract the parameters, and save it as a clean Template. You will never have to look at the node canvas again. โ–ถ๏ธ Video

Remix Overlay with press B activation The Remix Engine: select an image, press B, and gain full control over the generation pipeline.

Getting started is immediate: just select an image or video in your gallery and press B. SmartGallery dynamically adapts to your workflow's complexity, offering three distinct spaces to work in:

1๏ธโƒฃ Simple Tweaks: ๐Ÿ“ Auto-Form

This is the engine room. SmartGallery aggressively scans the embedded workflow and automatically exposes the most important editable parameters (Prompts, Seeds, Steps, Denoise, Dimensions, etc.).
Best for: Basic workflows where you just need to change the prompt and hit the ๐Ÿš€ Queue button.

2๏ธโƒฃ Build Your Dashboard: ๐Ÿ› ๏ธ My Panel

If your Auto-Form is cluttered, build your own interface! Click the ๐Ÿ“Œ Pin icon next to the inputs you care about in the Auto-Form. Switch to My Panel, and you will find a clean dashboard populated exclusively with your pinned fields. Use the โ†• Reorder button to drag and drop them into a perfect sequence.
Best for: Creating a clean, distraction-free generator isolating just the key parameters needed for daily operations.

My Panel

3๏ธโƒฃ Pro Control: { } The Nodepad (The Game Changer)

No other software on the market offers this level of control. The Nodepad is a revolutionary raw JSON editor designed for power users and prompt engineers. If a custom node isn't supported by the Auto-Form, edit its raw JSON directly here.

  • Live Dictionary Lookup: As long as your ComfyUI server is online, the Nodepad directly interrogates it. Click on any node, and SmartGallery instantly downloads the official definitions and allowed options for that specific node directly from the ComfyUI backend.
  • The Magic Injector: You don't have to type strict JSON manually. The Nodepad generates visual UI elementsโ€”like Comboboxes for node options, or Upload buttons for images/videos. Select a value, and watch the underlying JSON rewrite and format itself magically!
  • Intelligent JSON Formatting: The Nodepad visually converts escaped characters into physical newlines for easy reading, then automatically sanitizes them back into valid \n code upon saving to prevent ComfyUI syntax errors.
  • The "Favorite" Node System: If a custom node is too complex, open it in the Nodepad and click โญ Favorite. That entire node will instantly become a "Quick Edit" button inside your clean My Panel dashboard!

Nodepad

The Workflow Library & Queueing

Once you have pinned your fields and favorited your complex nodes inside My Panel, click โญ Save to Library. You can recall these templates at any time from the main Tools menu without needing a source image. When ready, set your Generation Count, toggle the Random Seed, and click ๐Ÿš€ Queue to send the jobs to ComfyUI in the background.

Queue

Video Companion PNGs & Autofix

Video files (MP4/WebM) generated by ComfyUI sometimes lack the full "API Workflow" data required for direct queuing. If you see a warning, just click the blue ๐Ÿ” Find companion PNG button. SmartGallery will automatically locate the VHS sidecar image, extract the hidden data, and restore your ability to queue the video directly!

Companion PNG Warning


3.2.4 LoRA Synergyโ„ข

Stop guessing which LoRA goes with which checkpoint. Let SmartGallery tell you.

LoRA Synergy is a zero-API, fully offline LoRA matchmaker and injector built directly into SmartGallery's Remix Workflow โ†’ Nodepad.

  • Intelligent Architecture Matchmaker: It scans the actual .safetensors files on your disk, reads their metadata, and cross-references their base architecture (SD1.5, SDXL, Flux) against the checkpoint currently loaded in your workflow. Your LoRAs are instantly bucketed into ๐ŸŸข Perfect Matches or โ›” Incompatible.
  • Memory Triggers: Forgetting trigger words ruins generations. Synergy surfaces official CivitAI triggers and pulls historical ones you've used in the past, saving them to a floating "Memory Widget" ready to be pasted.
  • Auto-Wiring: Click Execute Synergy and the system will instantly chain the LoraLoader node and automatically rewire every downstream MODEL and CLIP connection for you. Zero spaghetti routing.
  • ComfyUI-Lora-Manager Integration: Automatically detects if you use willmiao's LoRA Manager, unlocking rich thumbnails and direct CivitAI deep-links inside the panel.

๐Ÿ‘‰ Read the full LoRA Synergy Guide for detailed instructions and Docker/custom-path configurations.


3.2.5 Compare Mode

Select exactly 2 files, click โ‹ฎ in the Selection Bar โ†’ Compare Selected.

Compare Mode with A/B slider on a mandrill image, and Parameter Differences table below

Compare Mode: drag the central handle to compare the two images. The Parameter Differences table below shows only the values that changed between the two generations.

  • Visual Slider: Drag the central handle to compare. Videos synchronize automatically.
  • Parameter Differences (I): Table showing only the parameters that changed (e.g., CFG: 4.0 โ†’ 8.0, different prompt, different LoRA weights).

3.2.6 Video Storyboard (๐ŸŽž)

Press E in the Lightbox on any video file.

Video Storyboard showing 11 evenly-spaced frames of an elephant video

Video Storyboard: 11 perfectly spaced frames extracted from the video. Click any frame to zoom in with timestamp data.

SmartGallery uses FFmpeg to extract 11 perfectly spaced frames and display them in a grid, letting you evaluate the entire motion arc and consistency at a glance โ€” without scrubbing.


3.3 Digital Asset Management (DAM) & Communication

3.3.1 Virtual Collections & Sharing

Collections are virtual albums โ€” group files from different physical folders without moving them on disk.

NEW in v2.15: Nested Collections (Trees) ๐ŸŒณ Your collections no longer have to be a flat list. You can now create sub-collections arranged in a hierarchical folder-like structure. Perfect for managing complex client projects with multiple revisions or separate thematic drops.

Collections sidebar tab with context menu open, and Manage Collections modal on the right

Left: Collections sidebar tab with the context menu (Rename, Set as Exhibition Ready, Delete). Right: Manage Collections modal โ€” add or remove the selected file from any collection, with pending changes shown.

  • Create: Collections tab in the sidebar โ†’ + โ†’ name it โ†’ choose Public, Private, or select specific users. You can also drag and drop collections into one another to build a tree hierarchy.
  • Add files: Select files โ†’ click ๐Ÿ“š in the Selection Bar or press A.
  • Untag (U): Remove files from the current collection without deleting them from disk.

Exhibition Ready vs. Private vs. Shared

Click โ‹ฎ next to any collection to manage visibility:

  • Private (default): Strictly internal. Invisible to clients and guests.
  • Exhibition Ready ๐Ÿ‘: Pushed to the Exhibition Portal, visible to ALL clients and guests.
  • Shared Access ๐Ÿ‘ฅ: Click "Share / Permissions" to assign a collection exclusively to specific clients or users.

3.3.2 Pipeline Status Tags

Status tab in the sidebar showing all 5 tags: Approved (green), Review (yellow), To Edit (blue), Rejected (red), Select (purple)

The Status tab: all five pipeline states with their color coding and the keyboard shortcut for each.

The Status tab in the sidebar lets you browse all files at a given pipeline stage, across every folder at once.

How to assign: hover over an image (or select a batch) and press:

Key Status Color
1 Approved Green
2 Rejected Red
3 Review Yellow
4 Select Purple
5 To Edit Blue
0 Remove status โ€”

Thumbnails with color status bars on the left edge

A vertical color bar on the left edge of each thumbnail indicates the file's pipeline status. No bar = no status assigned.

You can also use Y to open the tagging modal on a batch selection. Status tags are entirely optional.


3.3.3 Ratings & Comments (โญ๐Ÿ’ฌ)

Both interfaces share a unified communication database. Press G on any image to open the Ratings & Comments panel.

Ratings & Comments panel showing global rating 3.5, your vote, collections & status, comment count

The Ratings & Comments panel: Global Rating (average of all users), your personal vote with Reset button, file's collections and pipeline status, and comment thread.

Ratings & Transparency

  • Click โญ stars (1โ€“5) to cast a personal vote. Click ๐Ÿ—‘ Reset to remove it.
  • Global Rating = average of all users (staff + clients in Exhibition).
  • Rating Details (๐Ÿ‘๏ธ): Click the "Details" icon next to the global rating to see exactly who voted and what rating they gave.
  • Blind Rating Mode: Use --blind-rating at launch to force users to rate without seeing the global average, eliminating group bias.
  • Batch rating: select multiple files โ†’ press Shift+R.

Comments & Visibility

Comments thread showing Direct Message from STAFF to John Doe, and Private Staff Only message from client. Visibility dropdown open with Public and Private options

Comments thread: a STAFF Direct Message (To: John Doe) and a Private (Staff Only) message from the client. The visibility dropdown is open showing all options.

When writing a comment, choose who can read it from the dropdown:

Visibility Who sees it
๐ŸŒ Public (Everyone) All users in both Main Workspace and Exhibition
๐Ÿ”’ Internal / Private (Staff Only) Only Admin, Manager, Staff โ€” clients never see these
๐Ÿ‘ค Direct Message (To: User) Only that specific user and Staff โ€” click a username to pre-select

Every message displays a colored badge showing its visibility at a glance. Comment text is fully searchable from the Filters panel.


3.4 User Management & Access Control

If you work alone, skip this section โ€” the system works without it.

User Management panel with role table and user creation form

User Management panel: role permissions table (Admin/Manager/Staff, Friend, User/Customer/Guest), user registration form, and login timestamp tracking.

Click the ๐Ÿ‘ฅ icon at the bottom of the sidebar to open the User Management panel.

Role Permissions

Role Main Interface Exhibition Workflows Downloads
admin / MANAGER / STAFF โœ… Yes โœ… Yes Full access Original + JSON workflows
FRIEND โŒ No โœ… Yes Visible in metadata Original files (with embedded metadata)
USER / CUSTOMER / GUEST โŒ No โœ… Yes Hidden Clean/stripped only
  • admin: The built-in root user. Case-sensitive โ€” always lowercase. Password set via --admin-pass.
  • MANAGER / STAFF: Full access to Main Interface. Can read and respond to all comments.
  • FRIEND: Exhibition only. Downloads original files (metadata intact, but Node Summary panel not available).
  • USER / CUSTOMER / GUEST: Exhibition only. All downloads are metadata-stripped โ€” no workflow can be recovered even with external tools.
  • Guest (anonymous): With --enable-guest-login, anonymous users browse Exhibition without an account; they choose a nickname before posting their first comment.

User Analytics

The User Manager panel now displays the Last Login timestamp for every user. You can easily sort the user list by this timestamp, making it incredibly easy for admins to monitor client activity and see exactly who has recently engaged with the Exhibition portal.

Creating a User Account

Fill in: User ID (login name) ยท Password (min. 8 chars) ยท Full Name (display name) ยท Email (optional) ยท Phone (optional) ยท Role ยท Expiration (optional) ยท Active toggle.


3.5 The Exhibition Portal (Client Hub)

Access: Launch with --exhibition, typically on port 8190.

3.5.1 Exhibition Interface Overview

Exhibition Portal grid showing curated collections with ratings and comment counts on each card

The Exhibition Portal: clean, curated grid showing only assigned/public collections. Each card shows the rating and comment count. No prompts, no folders, no workflow data visible.

The Exhibition portal is designed for non-technical users โ€” clients, art directors, friends.

  • Strictly Read-Only: Guests can vote and comment; they cannot delete, move, rename, or alter files.
  • Metadata Stripped: Workflows, prompts, and EXIF are completely hidden. Downloads are always clean.
  • Curated View: Guests see only public collections OR collections explicitly shared with them by the Admin.
  • Blind Rating System: If the server is launched with --blind-rating, clients will only see their own ratings, ensuring completely unbiased feedback.

Grid & Navigation:

  • Sidebar: Switch between collections, search by collection name.
  • Sorting: Newest ยท Top Rated ยท Latest Commented ยท Most Commented ยท A-Z.
  • Media Cards: Each thumbnail shows the global average rating (โ˜…) and comment count (๐Ÿ’ฌ).

3.5.2 Theater Mode (Exhibition Lightbox)

Theater Mode in Exhibition showing image with ratings panel open on the right, with comment thread and post form

Theater Mode: full-resolution image with the Ratings & Comments panel open. Shows the global average rating, the user's personal vote, and a comment thread with visibility badges.

Clicking any image opens it in the Theater โ€” the Exhibition's version of the Lightbox.

  • Media Controls: Zoom (+/-), Rotate (T), Download (S), Open in New Tab (O).
  • Rating & Comment Panel (G):
    • Rate 1โ€“5 stars by clicking or pressing 1โ€“5 on keyboard; 0 to clear.
    • Read messages addressed to you and public messages.
    • Post comments as Public (everyone) or Private (staff only).
  • Mobile: Comments panel collapsed by default; tap ๐Ÿ’ฌ Show Comments to expand.

4. ADVANCED TOPICS & REFERENCE

4.1 Sharing Online

By default SmartGallery runs on your local network. If you want to reach it from outside your home or share Exhibition with clients over the internet, you have two options: a reverse proxy (if you have a server or VPS with a domain), or a tunnel service (if you just want to share quickly with no server).

In both cases: Exhibition (port 8190) is designed for external access. The Main Interface (port 8189) can also be exposed externally, but always use --admin-pass and --force-login when you do.

Reverse Proxy with Nginx

Use this if you have a server, VPS, or NAS running Nginx and want SmartGallery accessible at a clean URL or on port 80/443. Configure one block per instance.

# Main Interface (port 8189)
location /studio/ {
    proxy_pass http://127.0.0.1:8189/galleryout/;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

# Exhibition (port 8190)
location /gallery/ {
    proxy_pass http://127.0.0.1:8190/galleryout/;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

You can also dedicate a full subdomain to each instance (e.g. studio.yourdomain.com and gallery.yourdomain.com) using separate server {} blocks.

Reverse Proxy with Apache

Requires mod_proxy and mod_proxy_http enabled (a2enmod proxy proxy_http).

# Main Interface (port 8189)
<Location "/studio/">
    ProxyPreserveHost On
    ProxyPass http://127.0.0.1:8189/galleryout/
    ProxyPassReverse http://127.0.0.1:8189/galleryout/
</Location>

# Exhibition (port 8190)
<Location "/gallery/">
    ProxyPreserveHost On
    ProxyPass http://127.0.0.1:8190/galleryout/
    ProxyPassReverse http://127.0.0.1:8190/galleryout/
</Location>
No server? Share Exhibition with a tunnel (ngrok, Cloudflare Tunnel, and others)

If you do not have a server or a domain name but want to share Exhibition with a client or friend outside your local network, tunnel services are the fastest solution. They create a public URL that forwards directly to your local machine, with no router configuration, no static IP, and no hosting fees.

ngrok (free tier works for personal use, runs on Windows, macOS, Linux)

Install:

# macOS
brew install ngrok

# Linux (Debian/Ubuntu)
curl -sSL https://ngrok-agent.s3.amazonaws.com/ngrok.asc | sudo tee /etc/apt/trusted.gpg.d/ngrok.asc
echo "deb https://ngrok-agent.s3.amazonaws.com buster main" | sudo tee /etc/apt/sources.list.d/ngrok.list
sudo apt update && sudo apt install ngrok

# Windows: download the .exe from ngrok.com/download

Start your Exhibition instance first, then open the tunnel:

ngrok http 8190

ngrok prints a public URL like https://a1b2c3d4.ngrok.io. Share that with your client. It stays active as long as ngrok is running. On the free tier the URL changes every time you restart.

Alternatives:

  • Cloudflare Tunnel (free, no bandwidth limit, stable permanent URL): best for recurring or long-term sharing. Requires a free Cloudflare account. See developers.cloudflare.com/cloudflare-one/connections/connect-networks.
  • Tailscale: creates a private mesh network between your devices. Better suited for trusted collaborators or family than for anonymous client access.
  • Localtunnel: no account needed, instant setup. Run npx localtunnel --port 8190. Less stable for long sessions.

You can tunnel just Exhibition, just the Main Interface, or both. Exhibition is built for external access. The Main Interface is also safe to expose remotely (useful for culling from your phone or working with a distributed team), as long as --admin-pass and --force-login are active.

Docker users: the same approach works identically. Run your Exhibition container with -p 8190:8189, then point ngrok or Cloudflare Tunnel at port 8190 on your host.


4.2 Keyboard Shortcuts Reference

Main Interface shortcuts

Global App Controls

Shortcut Action
? Open Shortcuts Help panel
Q Toggle Focus Mode (hides UI, enables keyboard-only grid navigation)
T Scroll to Top and open Search/Filters
P Toggle Video Autoplay on/off
L Refresh view (sync with disk)
K Open Rescan Folder modal
Ctrl+A / Cmd+A Select all files in current view
Esc Close any modal, overlay or menu / deselect all
Home / End Scroll instantly to top / bottom
PgUp / PgDn Scroll page by page

Grid: Single Item Actions (hover over an item, or navigate with arrow keys in Focus Mode)

Shortcut Action
V / Enter Open Lightbox (full screen view)
I Display actual file path and real-source mapping (Diagnostic)
X / Space Select / deselect item
N View Node Summary (ComfyUI generation data)
B Open Remix Workflow modal (edit & queue)
F Toggle Favorite
A Add to / remove from Virtual Collection
W Download Workflow JSON
Shift+W Clean Export: download stripped of all metadata
C Copy Workflow JSON to clipboard
S Download original media file
R Rename file
E Generate Video Storyboard (videos only)
G Open Details Panel: rate, post or read comments, view collections
Shift+R Batch Rate: Opens the batch rating modal for selected files in the grid
Del Quick delete

Grid: Selection and Batch Actions

Shortcut Action
Click Focus Mode OFF: opens Lightbox. Focus Mode ON: selects item.
Ctrl+Click Add single item to selection
Shift+Click Select a range between two files
A Add / remove selection to / from a Collection
Y Open Status Tagging modal
M Move selected files to another folder
U Remove selection from current Virtual Collection
Z Download selection as ZIP
Shift+R Batch Rate: Opens the batch rating modal for selected files in the grid
Del Delete entire selection
Esc Deselect all

Status Tags (works on a single hovered item or a batch selection)

Shortcut Action
1 Approved (Green)
2 Rejected (Red)
3 Review (Yellow)
4 Select (Purple)
5 To Edit (Blue)
0 Clear status

Lightbox

Shortcut Action
โ† / โ†’ Navigate previous / next media
Space Play/Pause video or audio
M Mute/Unmute audio
+ / - Zoom in / out
0 Reset zoom and pan
T Rotate media 90ยฐ
H Hide / show UI (clean view)
/ Open interactive Quick Menu
N View Node Summary
B Open Remix Workflow modal
F Toggle Favorite
A Add to / remove from Collection
Y Set Status Tag
G Open Ratings and Comments panel
W Download Workflow JSON
Shift+W Clean Export (no metadata)
C Copy Workflow JSON
R Rename file
E Generate Video Storyboard
M Move file
S Download media
O Open full-res in new tab
Del Delete file
Esc / V Close Lightbox

Compare Mode and Storyboard

Context Shortcut Action
Compare Mode + / - Synchronized zoom in / out
Compare Mode 0 Reset zoom
Compare Mode I Toggle Parameter Differences panel
Storyboard โ† / โ†’ Navigate frames (when a frame is zoomed)
Both Esc Close current mode
Exhibition Portal shortcuts

Grid Navigation

Shortcut Action
โ† โ†‘ โ†’ โ†“ Move keyboard focus across the grid
Enter / V Open focused item in Theater (Lightbox)
Home / End Jump to first / last item
PgUp / PgDn Scroll page rapidly
? Open Shortcuts Help panel

Quick Rating (works on the focused grid item or the item open in Theater)

Shortcut Action
1 to 5 Rate media from 1 to 5 stars
0 Clear your rating

Theater (Lightbox)

Shortcut Action
โ† / โ†’ Navigate previous / next media
Space Play/Pause video or audio
M Mute/Unmute audio
/ Open Quick Action Menu
H Toggle toolbar (clean view)
G Toggle Ratings and Comments panel
B Toggle Admin Blind Rating Override (Admins/Staff only)
T Rotate media 90ยฐ
+ / - Zoom in / out
0 Reset zoom and rotation
S Download media
O Open full-res in new tab
/ Quick Menu
Esc Close Theater

4.3 Experimental Features

The /experiments folder contains beta versions and hotfixes under active development.

Use at your own risk. Always back up before testing.


4.4 Philosophy, Feedback & License

Philosophy

Local-first. Privacy-first. Minimal dependencies. Cross-platform. Cross-device. No forced upgrades. No vendor lock-in.


Contributing and Feedback

Issues, ideas, and pull requests are welcome.


License

MIT License. See LICENSE


๐ŸŽž๏ธ Presentation Video

Watch the presentation video
(Click on the image to play the video)

smartgallerydam.com ยท full documentation, wiki and feature reference

Made for the ComfyUI community and every digital creator who takes their work seriously.

Install Smart-Gallery-for-ComfyUI on Unraid in a few clicks.

Find Smart-Gallery-for-ComfyUI in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.

Open the Apps tab on your Unraid server Search Community Apps for Smart-Gallery-for-ComfyUI Review the template variables and paths Click Install

Download Statistics

13,745
Total Downloads

Related apps

Explore more like this

Explore all

Details

Repository
mmartial/smart-comfyui-gallery
Last Updated2026-06-26
First Seen2025-11-29

Runtime arguments

Web UI
http://[IP]:[PORT:8189]
Network
docker
Shell
bash
Privileged
false

Template configuration

WebUI PortPorttcp
Target
8189
Default
8189
Value
8189
SmartGallery directoryPathrw

Location to store SmartGallery data

Target
/mnt/SmartGallery
Default
/mnt/user/appdata/smart-comfyui-gallery
Value
/mnt/user/appdata/smart-comfyui-gallery
ComfyUI input directoryPathrw

Location to find ComfyUI input data

Target
/mnt/input
Default
/mnt/user/appdata/comfyui-nvidia/basedir/input
Value
/mnt/user/appdata/comfyui-nvidia/basedir/input
ComfyUI output directoryPathrw

Location to find ComfyUI output data

Target
/mnt/output
Default
/mnt/user/appdata/comfyui-nvidia/basedir/output
Value
/mnt/user/appdata/comfyui-nvidia/basedir/output
WANTED_UIDVariable

UID to use for content in mounted folders (should allow deletion of files)

Default
99
Value
99
WANTED_GIDVariable

GID to use for content in mounted folders (should allow deletion of files)

Default
100
Value
100
FORCE_CHOWNVariable

Set to true to force chown of the BASE_SMARTGALLERY_PATH folder only

Default
true
Value
true
THUMBNAIL_WIDTHVariable

Width (in pixels) of the generated thumbnails

Default
300
Value
300
WEBP_ANIMATED_FPSVariable

Assumed frame rate for animated WebP files

Default
16.0
Value
16.0
PAGE_SIZEVariable

Maximum number of files to load initially before showing a Load more button

Default
100
Value
100
BATCH_SIZEVariable

Number of files to process at once during database sync

Default
500
Value
500
BASE_SMARTGALLERY_PATHVariable

Target for SmartGallery directory mount, do not modify

Default
/mnt/SmartGallery
Value
/mnt/SmartGallery
BASE_INPUT_PATHVariable

Target for ComfyUI input directory mount, do not modify

Default
/mnt/input
Value
/mnt/input
BASE_OUTPUT_PATHVariable

Target for ComfyUI output directory mount, do not modify

Default
/mnt/output
Value
/mnt/output