Commit Graph
38 Commits
Author SHA1 Message Date
Jason HokuandClaude Opus 4.7 6f9862f2b7 feat: Revise modal — rename CANCEL→EXIT and keep open after Generate New
Two QoL tweaks:
- CANCEL button text → EXIT (clearer when paired with the new "stays open"
  behavior — there's nothing to "cancel" after queuing).
- Generate New no longer closes the modal. The QUEUED! flash on the button
  is enough confirmation. Users can keep tweaking sampler/cfg/prompt and
  queueing additional revisions of the same image without re-opening.
  Close manually via EXIT or Esc.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-08 12:38:04 -07:00
Jason HokuandClaude Opus 4.7 1745fd9966 fix: Quick Filter dropdown positioning, click-outside leak, lora_strength
Four bugs in 111e24d:

1. Dropdown positions were zoom-dependent / offset because JS overrode
   the HTML's "position: absolute; top: 100%" with "position: fixed" +
   getBoundingClientRect() coords. Inside the dashboard iframe (with
   Comfy's transformed canvas as ancestor), position:fixed becomes
   relative to that ancestor instead of viewport. Fix: wrap button +
   menus in a position:relative anchor div (#quick-filter-anchor), drop
   all JS coord setting, let CSS handle positioning.

2. Click-outside handler stayed registered after items used
   e.stopPropagation, so reopening required toggling another UI element
   first. Fix: named _qfMenusOutsideHandler with explicit
   _qfAttachOutsideHandler/_qfDetachOutsideHandler pair; capture phase
   (third arg true) bypasses stopPropagation; _closeQuickFilterMenus
   now calls _qfDetachOutsideHandler; addQuickFilter calls
   _closeQuickFilterMenus upfront.

3. Value menu was anchored to a hidden element (type menu hidden BEFORE
   value menu opened), so getBoundingClientRect returned zeros and value
   menu rendered at viewport (0, 6). Fixed by Bug 1 (CSS positioning);
   anchorEl param dropped from _openQuickFilterValueMenu.

4. lora_strength wasn't in _qfAllTypes / _qfFacetableTypes /
   _qfTypeLabels / _qfExtractItemValue / _quickFilterMatches. Now
   selectable: extracts first lora's first strength from item.lora,
   compares with 1e-6 float tolerance.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-08 12:01:07 -07:00
Jason HokuandClaude Opus 4.7 111e24ddc8 feat: Quick Filter creation system (faceted dashboard filtering)
Adds a third filter mode alongside main buttons / search / logic.
User clicks "+ Add Quick Filter" -> picks a type (LoRA/CFG/etc.) ->
picks a value -> adds a chip. Each chip can be expanded to show
"sub-filters": values of OTHER filter types that exist within the
subset matching this chip's primary. Click a sub-filter button to
add it as another chip (ANDed with existing).

Designed as faceted search: drill-down by selecting facets one at
a time. Each chip is independent and ANDed with the others (matching
the GitHub discussion's "logical && between boxes" semantic).

LoRA matching handles stacks ("name1 + name2"), so a "DMD2"
quickFilter matches items where DMD2 is one of multiple stacked
loras. Numeric types (cfg/steps/denoise/seed) use 1e-6 float
tolerance matching the Logic Filter convention.

Reset All Filters and the R key both clear quickFilters along with
the other filter mechanisms.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-08 10:50:16 -07:00
Jason HokuandClaude Opus 4.7 8790f9771a feat: dashboard - Lightbox image click + arrow-key navigation in Revise modal
Clicking a card image now opens the Revise modal as a lightbox. Adds a
navigation bar with prev/next buttons and a position counter. Arrow keys
(← →), Space/Shift+Space navigate between filtered items; 1-9 favorites
the current image. Grid keyboard shortcuts are suppressed while the modal
is open to prevent conflicts.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-07 13:13:19 -07:00
Jason HokuandClaude Opus 4.7 bcadb7e4e3 feat: dashboard - Logic Filter (numeric comparison filtering)
Adds a Logic Filter panel in the filter modal with field/operator/value
dropdowns (supports lora_strength, cfg, steps, denoise, width, height,
seed). Multiple filters apply with AND logic. Chips display active filters
with one-click removal. Integrates into data pipeline via matchesLogicFilters()
helper. Reset All Filters also clears logic filters.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-07 13:11:58 -07:00
Jason HokuandClaude Opus 4.7 b95d2d0cfc feat: dashboard - Reset All Filters button + R key resets filter UI
Adds a 'Reset All' button to the filter modal header that re-selects all
filter buttons and clears search/logic filters. Updates the R key shortcut
to also reset the filter UI before reloading cards so visual state stays
consistent with the data.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-07 13:10:25 -07:00
Jason HokuandClaude Opus 4.7 7821c60d98 feat: dashboard - Delete All Rejected button
Adds a 'Delete All Rejected Items' button in the cog menu next to the
existing 'Delete All Non Favorited Items' button. Adds the matching
/config_tester/delete_rejected backend endpoint that removes rejected
item files and updates the manifest.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-07 13:09:47 -07:00
Jason Hoku 541b73ac0d style: darker teal on COPY FAVORITES and FULL PROMPT STATS, move Keyboard Shortcuts to Settings 2026-04-24 11:11:44 -07:00
Jason HokuandClaude Opus 4.6 1fc660ad78 fix: Revise & Generate sends complete config with model, seed, prompts
The GENERATE NEW button was only sending sampler/scheduler/steps/cfg/
denoise/lora — missing model, seed, prompts, and all advanced settings.
The generated image would use whatever the sampler node had as defaults
instead of the actual parameters from the source image.

Fixed triggerGen() to build a complete config entry:
- Model and seed from the (now editable) modal fields
- Positive and negative prompts from the modal textareas
- seed_behavior set to "fixed" so the exact seed is used
- All advanced settings carried from the source item: vae, clip_type,
  model_type, text_encoders, attention_mode, clip_skip,
  model_sampling_override + shift values, advanced_sampling,
  flux_guidance, gguf_options

Also wraps output in {"configs": [...]} format (was sending bare array).

Template changes:
- Model input: removed disabled attribute + opacity
- Seed input: removed disabled attribute + opacity
Both are now editable so users can change model or seed before re-gen.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 15:18:37 -07:00
Jason HokuandClaude Opus 4.6 75fcc46a91 feat: Export Favorites As Config JSON in Dashboard cog menu
Adds a button in the Dashboard's Export Favorites section that generates
a complete Config Builder JSON from all favorited items, ready to paste
into the Builder UI's lora_config widget.

How it works:
- Collects all favorited items from activeData
- Groups by unique (model, lora, positive, negative) combination
- Each group becomes a config array with all unique samplers,
  schedulers, steps, cfg values from that group's favorites
- LoRA stacks ("lora1 + lora2") are preserved with combine=true
- Per-config prompts are set via use_custom_prompts + positive_prompt_groups
- Session name gets "_rerun" suffix

Output is copied to clipboard. User can then paste into the Config
Builder, adjust resolution/steps/other settings, and regenerate just
the favorited configurations with different parameters.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 23:41:12 -07:00
Jason HokuandClaude Opus 4.6 b3fab600c7 feat: media type filter (image vs video) in Dashboard filter panel
Adds a new "Type" filter row to the filter panel that lets users toggle
between showing images and videos. Works alongside all existing filters
(sampler, scheduler, model, upscale, etc.).

- logic_state.js: new filters.mediaType Set
- logic_pipeline.js: filter check in both incrementalFilter and
  executePipeline; included in getFilterKey() hash for cache
  invalidation
- logic_ui.js initFilters(): populate mediaType values from
  d.media_type (defaults to "image" for backwards compat)
- template.html: new .filter-row with #filter-mediaType container

Items without media_type still appear under "image" automatically.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 00:44:22 -07:00
Jason HokuandClaude Opus 4.6 0c82d2621c feat: quick favorite visible cards with number keys 1-9
Press 1-9 to toggle favorite on the Nth visible card in reading order
(left-to-right, top-to-bottom). Uses getBoundingClientRect() for
accurate card detection regardless of zoom, pan, or dynamic card sizes.
Visual feedback: green/red glow + number badge overlay.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 20:50:23 -07:00
Jason HokuandClaude Opus 4.6 c971e2934d feat: full pipeline editor in dashboard upscale modal
Replace the simplified single-step config editor with renderPipelineEditor(),
a full pipeline/step UI matching the Builder UI feature set:
- Multiple pipelines with add/remove, active toggle, name, collapsible
- Multiple steps per pipeline with all settings (mode, resize, ratio,
  denoise, hires steps, tiled sampling, tiled VAE, repeat)
- Multi-model selector with searchable dropdown and chips
- HiRes prompt adjustment section
- Iteration count display per step

Also fixes:
- Preset double-entry bug: save now deduplicates by name in both
  Builder UI and dashboard modal
- Builder UI hires_force_uniform_tiles checkbox: || true -> !== false
  (was always displaying as checked regardless of stored value)
- Model list fetch: GET instead of POST (matching the endpoint)
- Modal size: 600px wide, 90vh tall for better fit
- Cancel button: sends cancel request to server during active upscale
  instead of just closing the modal

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 12:34:13 -07:00
Jason HokuandClaude Opus 4.6 c03fb050cb docs: update keyboard shortcuts reference with all current hotkeys
Added R (reload), Shift+0-9 (columns), Ctrl+S (save), Escape (close),
Double-click (favorite). Fixed F description (fullscreen, not auto-fit).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 16:03:03 -07:00
Jason HokuandClaude Opus 4.6 d94a0695bd feat: add upscale modal HTML container and wire JS into dashboard
Modal overlay with click-outside-to-close. JS file added to
html_generator.py load order after logic_ui.js.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 15:35:33 -07:00
Jason HokuandClaude Opus 4.6 d2e6717867 feat: dashboard session picker with search and sort by recent
Replace the session <select> dropdown with a searchable scrollable list.
Sessions already come sorted by most recent from the backend. Added
search input that filters sessions by name in real time.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-15 20:13:53 -07:00
Jason HokuandClaude Opus 4.6 b701c5f8b2 feat: add Steps, CFG, and Upscale Model/Method to dashboard filters
New filter buttons for Steps, CFG, and Upscale (combined mode + model
name). Applied in both the new-items filter path and the full
executePipeline filter path.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-15 20:12:28 -07:00
Jason HokuandClaude Opus 4.6 cf896ec1e5 feat: add label size slider to dashboard settings
Slider in Label Mode settings (6-16px range) controls overlay text size.
Uses CSS custom property for instant updates. Persisted to localStorage.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-15 18:00:38 -07:00
JasonHokuandClaude Opus 4.6 89b6ce4eb1 feat: upscale pipelines system + save pre-upscale + HiRes prompt adjust
Replace flat upscale configs with pipeline/steps/repeat architecture:
- Pipelines run independently from base image
- Steps chain sequentially within a pipeline
- Steps support repeat count for iterative refinement

Add "Save Pre-Upscaled Output" option to also keep the base image.

Add "Adjust Prompt During HiRes Fix" with prepend/append/replace
behaviors. HiRes-adjusted prompts are batch pre-encoded for efficiency.
Results written to manifest metadata and exposed as label overlays.

Fix fmtVal scoping error in buildLabelOverlay (was referenced outside
the upscale block where it was defined).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 15:33:04 -07:00
JasonHokuandClaude Opus 4.6 6ad1f792c2 feat: add workflow packing checkboxes and delete non-favorites button to template
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 02:00:30 -07:00
JasonHokuandClaude Opus 4.6 1830713bd2 feat: configurable label mode overlays on dashboard cards
Adds color-coded metadata labels (model, lora, prompt, sampler,
scheduler, cfg, steps, seed, denoise) as image overlays in the
dashboard grid. Settings panel with per-field toggles and unique-only
mode that hides values shared by every card. Per-lora filtering skips
global loras while showing unique ones. Persisted via localStorage,
backwards compatible with older sessions.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 13:00:24 -08:00
JasonHokuandClaude Opus 4.6 bb2f786832 Dashboard session landing page and reload improvements
- Topbar: Changed Load Session to Reload Session with refresh icon
- Settings cog: Added session picker dropdown in SESSION section
- New endpoint: GET /config_tester/list_sessions returns sessions with
  metadata (name, item count, first image, modification time)
- Landing page: Shows session cards with thumbnails when no session loaded
- Click any card or use dropdown to load a session
- Landing page auto-hides when session data loads

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 15:44:16 -08:00
JasonHokuandClaude Opus 4.6 a71b9ed315 Add dashboard toggle to show/hide trigger words in prompts
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 21:15:21 -08:00
JasonHoku 836b737809 dash top bar update 2026-02-18 13:23:58 -08:00
JasonHoku f1dadf244c improve job skipping/resume logic, improve dash topbar organization 2026-02-18 13:16:23 -08:00
JasonHoku 8f2d35ab3b Add Favorited Item Analysis Tools To Dashboard Cogwheel Options Menu 2026-02-17 20:39:40 -08:00
JasonHoku 5f652b813d Add optional save prompt to txt with image name when exporting favorites 2026-02-16 22:09:35 -08:00
JasonHoku 8afde3e707 Roadmap Update & Minor UI Changes 2026-02-16 15:07:49 -08:00
JasonHoku e3e933fc08 Implement prompt combinators: AND, CAT, AVG(), BREAK. Consolidate dashboard topbar 2026-02-16 12:41:20 -08:00
JasonHoku d74a51dd15 UI updates, model based prompting, attention mode selection, recursive cartesian prompting, detect connected node changes for smarter job resuming, eta progress bar in ui, condensed dashboard top bar, close modal hotkeys, 2026-02-16 00:21:58 -08:00
JasonHoku ff9ec1aa9b Seed behavior, load any directory into the dashboard, better lora omit triggerword logic, builder validation & more ui changes. 2026-02-14 17:53:33 -08:00
JasonHoku 30894c4c82 Massive Overhaul, Config Builder Updates, Fixes, Smarter Optional Caching, UI Improvements, Filter Improvements & More! 2026-02-10 16:30:10 -08:00
JasonHoku 47cc06fb33 Config Builder Add Multi Lora & Model Loading Features For Folders & Multi Selections, Add Lora Trigger Tag Lookup & Omitting System 2026-02-07 00:18:43 -08:00
JasonHoku 9d1afab458 Major Refactor, Optimizations & New Features: Move & MetaPack Favorited, Random Lora Selection, Lora & Model Entire Folder Loading, Smart JSON Node, WIP Config Builder 2026-02-06 00:07:47 -08:00
JasonHoku 5900fb20f2 Better Filters, Consolidated Top Bar, More Sorting Options, Improved Prompt Iteration Abilities, & Better Session Handling 2026-01-24 22:57:50 -08:00
JasonHoku ec0662d5a0 Implement Non SD Models (ZImage Tested), Add Favorites Feature, Added Auto Lora Triggerword CivitAI Hash Lookup And Append To Prompt Feature, Add Shift Click Filter Selection, Add GoTo Image #, Dashboard Auto-Load New Sessions, Mobile Panning & Zoom Support, Fix Override Latents & Models, Add Clip Token Prompt Change Detection, Add More Meta-Data To Revise View, (prompt,seed,steps, etc) 2026-01-13 13:47:26 -08:00
JasonHoku 762078657a Massive Overhaul, Refactoring, Optimization, Auto Loading/Unloading Virtual Pagination Of Images, Fullscreen Mode, Multi-Models, Multi-Loras, Multi Seed, Stop & Resume Detection, Spacebar Pan To Next Row & Update Grid After X Images Feature 2026-01-11 19:18:26 -08:00
JasonHoku ba69c48206 Refactor html_gen, better dashboard panning, better config JSON error reporting, fix optional vae not overriding decode, and accept stacking loras and lora arrays for iteration 2026-01-07 22:44:26 -08:00