Skip to content

Asset Manager

The file browser at /admin/assets. Browse input images and generated output files with live refresh, upload, download, and batch delete.

Layout

  1. Header -- page title with LIVE indicator
  2. Tabs -- "Inputs" and "Outputs" toggle
  3. Toolbar -- tab info text, Upload button (inputs) / Download ZIP button (outputs), selection toolbar with Select All and Delete
  4. Asset grid -- responsive grid of file cards

Data Loading

Inputs Tab

GET /api/admin/assets/inputs

Returns a flat list of image files in STUDIO_DIR/assets/input/ (the ComfyUI input directory). Each entry includes:

  • filename -- file name
  • size -- file size in bytes
  • modified -- Unix timestamp

Outputs Tab

GET /api/admin/assets/outputs

Returns output files organized by job ID. Files live under STUDIO_DIR/assets/output/comfyui-studio/{jobid}/ with subdirectories:

  • image/ -- generated images from SaveImage nodes
  • video/ -- generated videos from VHS_VideoCombine nodes
  • preview/ -- preview images from PreviewImage nodes
  • intermediate/ -- intermediate outputs (forced-save from preview-only nodes)

Each entry includes filename, size, modified timestamp, and the job ID it belongs to.

Tabs

Two tab buttons at the top:

  • Inputs (default) -- shows uploaded reference images
  • Outputs -- shows generated files grouped by job

Switching tabs reloads the asset list and resets selection state. The Upload button is only visible on the Inputs tab. The Download ZIP button is only visible on the Outputs tab.

Asset Grid

A responsive CSS grid with minmax(160px, 1fr) columns. Each asset is rendered as a card:

Card Contents

  • Checkbox -- top-left corner, for batch selection
  • Studio badge -- yellow "STUDIO" pill badge (on outputs generated by ComfyUI Studio)
  • Thumbnail -- square image preview. For images, the actual file. For videos, a play icon placeholder.
  • Info -- filename (truncated with ellipsis) and file size

Incomplete Badge

Output directories where a job is still running have a .incomplete marker file. These directories are shown with a visual badge indicating generation is in progress. The badge disappears when the job completes and the marker is removed.

Live Refresh

The LIVE indicator runs a countdown bar. On each cycle, the page re-fetches the asset list. New files appear automatically without manual refresh -- useful for watching output files appear as jobs complete.

Upload (Inputs Tab)

Two upload methods:

  • Upload button -- opens a file picker that accepts image/* files (multiple selection supported)
  • Drag and drop -- not implemented on this page (available on the Runner page dropzone)

Uploads call:

POST /api/admin/assets/upload-inputs

With a multipart/form-data body containing the files. The backend saves them to the ComfyUI input directory. After upload, the grid refreshes to show the new files.

Download ZIP (Outputs Tab)

The "Download ZIP" button packages all output files into a ZIP archive for download. Calls the assets download endpoint which streams the ZIP.

Fullscreen Preview

Clicking an asset card (not the checkbox) opens a fullscreen overlay:

  • Images -- displayed at full resolution with max constraints (90vw x 85vh)
  • Videos -- played in a video element with controls
  • Info line -- filename and size shown below the media

Click anywhere on the overlay to close it.

Batch Selection

Select All

The "Select all" checkbox toggles all visible asset checkboxes.

Multi-Select

  • Click checkbox -- toggles individual selection
  • Ctrl/Cmd+Click card -- toggles selection
  • Shift+Click -- range-selects between last clicked and current card

Delete Selected

The "Delete selected" button (visible when items are selected) opens a confirm dialog:

"Delete N item(s)? This cannot be undone."

On confirm, calls:

POST /api/admin/assets/delete
{type: "inputs"|"outputs", files: ["path1", "path2", ...]}

The grid refreshes after deletion.

Endpoint Method Purpose
/api/admin/assets/inputs GET List input files
/api/admin/assets/outputs GET List output files
/api/admin/assets/upload-inputs POST Upload input images
/api/admin/assets/delete POST Batch delete files
/api/admin/assets/download GET Download ZIP
/api/comfyui/view GET Proxy to ComfyUI's file viewer (for thumbnails)