Files
ComfyAssets-ComfyUI_PromptM…/docs/concepts/workspace/README.md
T
Vito 590aa2cd0e feat(workspace): add native Images browsing and infinite scroll (#201)
* feat(workspace): add native image browsing and continuous loading

* test(workspace): assert empty collections through their status

* fix(workspace): rescan refreshed images and expose ancestor folders
2026-10-17 11:22:10 -07:00

9.2 KiB

Prompt Manager application redesign concept

Status: visual concept approved by the maintainer, 2026-10-17. Production implementation is progressing in tested slices; see the development plan. The production workspace now has native Images browsing; this concept remains the approved target for the complete application.

Review the mockup

Run python tools/preview-prompt-timeline.py --bind 0.0.0.0 --port 8767 and open /workspace/. The original approved timeline remains available at /. The server exposes an explicit allowlist of concept files and pinned assets. All examples are synthetic; there are no application API calls, database access, real model downloads, or ComfyUI handoffs. Local file inspection previews an image in the browser without uploading it. Exports contain sample data only.

The sidebar opens Images, Prompt library, Tags & categories, Inspect a file, Activity, System and Design review. System includes Overview, Appearance, Sources & scans, Integrations, Auto-tagging, Maintenance, Backup & export, and Diagnostics & logs. The in-app Design review contains the feature map below.

Proposed direction

One application shell replaces separate Admin, Gallery and Metadata shells. Use the approved shared ComfyAssets theme: ComfyUI dark/light, blue primary actions, green positive roles, red negative roles and errors. Preserve existing capabilities and services while consolidating controls and clarifying their scope.

Browsing is image-led with readable thumbnails and one metadata inspector. Prompt library groups by positive; negative variants and runs share its gallery. The full selected negative appears directly beneath the positive in history. Favorites express preference independently of the existing quality rating. Collections organize projects without duplicating recipe text; saved views keep search/filter context. New capabilities are proposals, not implemented features.

Maintenance moves out of the browsing toolbar. Checks, impact preview, backups, and apply steps have separate responsibilities. Distinguish prompt text reuse from image-file duplicates, and metadata enrichment from thumbnail generation. No repeated global thumbnail-generation prompt on opening the gallery.

Send to ComfyUI

Use the same original paper-plane outline, blue accent and accessible role label on every positive/negative prompt block, including image details and the viewer. A pair action sends both. Preview destination and exact fields before applying; positive-only and negative-only actions leave the other role untouched. An explicitly empty negative means clear the target field; unknown metadata must never be interpreted as empty. Sending text neither queues execution nor replaces a workflow.

Production needs a shared host bridge with versioned payloads, origin validation, destination discovery, capability checks, disconnected-host handling, linked-input checks and acknowledgements. Preview actual target values and report success only after acknowledgement. Default to asking for a destination; never guess between multiple nodes or positive and negative encoder inputs. Verify Classic and Nodes 2.0 with both packs installed independently and together.

Existing feature inventory

Current feature Proposed home / behavior Disposition
Admin prompt cards / per-prompt gallery Prompt library + one prompt history workspace Retained, rebuilt
Standalone image gallery / Admin image modal One Images workspace + shared Viewer.js viewer Consolidated
Video playback, autoplay / mute / loop, viewer slideshow and transforms Shared media viewer; playback controls in Appearance; same image navigation Retained
Metadata page / viewer sidebar / full-text popups One reusable metadata inspector; inline complete prompt text Consolidated
Prompt add, edit, rating, notes, copy, delete Recipe editor, shared details, contextual bulk actions; reference-safe archive Retained, clarified
Categories, tag rename / merge, autocomplete Tags & categories; same vocabulary in every editor Retained
Grid/list, thumbnail size, columns, pages/infinite scroll Infinite scroll only; one Appearance configuration and contextual layout / density overrides Simplified
Scan, rescan, monitoring directories, worker threads Sources & scans; explicit metadata enrichment vs thumbnail work Consolidated
Ollama, HuggingFace, WD14 variants, thresholds, review One Auto-tagging configuration and review flow Retained
Thumbnail quality, size limit, metadata cache, paths Appearance + cache controls in Maintenance Retained
Prompt dedup, hash checks, consistency, unused prompts Maintenance plan with dependency checks and impact preview Retained, safer flow
Image dedup, orphan image links, browser cache Separate reviewed operations in Maintenance Retained
Database backup / restore, JSON export Backup & export; recovery and portable recipes clearly distinguished Retained
Diagnostics, image-link checks, logs, rotation, log levels System → Diagnostics & logs Retained
LoRA detection/import, trigger injection, CivitAI key System → Integrations; positive-only triggers Retained
Statistics / counts System overview + usage breakdown; context counts in the workspace Retained
Send prompts to ComfyUI from every prompt surface Role-aware paper-plane action + destination / overwrite preview New proposal
Reusable negatives / approved branch timeline Prompt history with selected negative directly beneath positive Approved concept
Favorites, saved searches, project collections Sidebar views; collections do not duplicate recipe text New proposal
Ambiguous metadata review, source provenance, run comparisons Needs review queue; recorded vs inferred evidence; pair/run selection New / expanded
Unified jobs, cancellation, resumable progress visibility Activity center; cancellation distinguished from hiding progress New proposal
Scheduled backups, pre-change safety snapshots Explicit recovery policy after storage configuration New proposal

Implementation boundaries and test requirements

Keep Viewer.js 1.15.2 and the shared toolkit as reproducible pinned artifacts; this mock uses their actual checked-in files without modifying them. Preserve legacy routes during the transition, current node layouts/schemas, existing controllers where reusable, and all existing test/coverage gates.

The timeline needs persisted execution records to represent real runs. Saved views, collections, metadata review resolution, activity history, scheduled backups, portable JSON import, and the ComfyUI bridge need separate implementation and persistence work. Preserve source evidence and distinguish recorded from inferred metadata. Existing schema migration is automatic; old image enrichment remains an optional explicit scan. The one-time upgrade notice belongs in the new shell, with Scan and Later choices.

Implement in reviewed slices: shared application shell and inspector; reusable prompt blocks/send bridge; image workspace; grouped library/history; settings and maintenance; optional organization and workflow improvements. Write regressions first for production behavior. Retain Python, frontend unit, Chromium/Firefox/ WebKit/touch and managed Classic/Nodes 2.0 tests. Add behavior tests for shared filters, navigation state, viewer cleanup, interrupted jobs, dependency-safe maintenance, backup/restore, paired metadata and correct send destinations.

Screenshots in screenshots/ record the reviewed starting point. The approved standalone timeline in ../prompt-variant-timeline.html remains unchanged.

Review polish

History actions use a shared branch icon. Images can switch among Grid, List and Masonry; Masonry preserves each image's proportions and keeps DOM order while packing cards with a responsive layout. It does not require experimental native masonry support. Resize observers are disconnected when leaving the view.

Every image card includes a tagging action beside Info, including cards in Needs review. Choose WD14 SwinV2, WD14 ViT, Ollama or HuggingFace; adjust thresholds or instructions, generate sample suggestions, edit tags manually, and approve only the desired suggestions. Changes are staged until approval, apply to that image alone and do not resolve uncertain prompt associations. Changing models discards previous suggestions. Cancel preserves existing tags. All inference is simulated.

Continuous browsing decision

The redesign uses infinite scroll only. Remove page numbers, previous/next page buttons, paged/infinite mode selection and results-per-page controls. Keep request batching internal. The mock appends 12 images at a time in Grid, List and Masonry; it preserves existing card nodes, focus and selection while appending. It also retains the loaded range when switching layouts or revisiting a search. A keyboard-accessible Load more action provides an alternate trigger for the same continuous stream, not pagination. Exhausted and empty results are explicit.

Production will need bounded rendering, stable cursors, scroll restoration and loading/error/retry behavior for large collections. Existing backend pagination can continue providing internal request batches; no production tests or routes are removed as part of this prototype.