7 Commits
Author SHA1 Message Date
Will Miao d81218f3f0 feat(settings): link directly to ComfyUI node settings 2026-11-11 08:25:09 +08:00
Will Miao 1c652e76b7 feat(library): refine card preview cycling interaction and defaults
- Arm hover cycling only from the bare preview area; hovering the card
  header or footer disarms the timer, so action buttons and tooltips
  stay undisturbed
- Drop the activation delay from 1.5s to 0.8s now that chrome
  interactions are protected structurally
- Revise cycle interval options to Fast (1.5s) / Normal (2s, default) /
  Relaxed (3s), dropping the rarely useful 5s/8s choices
- Translate the updated cardPreview strings in all 9 locales
2026-11-09 20:09:43 +08:00
Will Miao f4ea2551a8 feat(library): cycle example images on card hover
Cards with a static image preview now crossfade through the model's
example images when the pointer rests on the card, giving multi-concept
LoRAs a richer at-a-glance signature without giving up the single fixed
preview that anchors visual memory of the library.

- Cycling activates only after a 1.5s dwell so ordinary hover actions
  (action icons, tooltips) keep working; the card chrome fades out for
  an unobstructed view while cycling and returns on mouse leave
- Example metadata and the first frame start preloading at hover time,
  and each shown frame warms the next, so mode entry and interval ticks
  never wait on the network
- The cover image (usually the preview itself) opens the rotation as
  the anchor's stand-in; cycling starts from the second example and the
  cover rejoins when the rotation wraps
- Video previews keep their autoplay-on-hover behavior; video entries
  inside example lists are skipped, as are NSFW entries under SFW mode
  and blurred cards until unblurred
- Honors prefers-reduced-motion, pauses in hidden tabs, and cleans up
  when the virtual scroller recycles a card
- New settings: card_preview_cycle (default on) and
  card_preview_cycle_interval (2/3/5/8s, default 3s)

Implements #1182
2026-11-08 00:19:25 +08:00
Will Miao 19abf7ed03 feat(ui): show quantization badge on model cards
Distinguish same-version quantized models (e.g. GGUF Q4_K_M vs Q8_0) on
cards, which previously showed only the identical CivitAI version name.

Detection is content-based and stored as a three-state sidecar field
(absent = unchecked, "" = checked-unavailable, value = canonical name),
mirroring the autov3 pipeline:

- GGUF: minimal pure-struct header parser reads general.file_type
- safetensors: dominant tensor dtype F8_* -> FP8
- CivitAI files[].metadata.fp == "fp8" fills in as a fallback only
- A one-time backfill service covers existing libraries; each file
  costs only a few-hundred-byte header read

The footer renders the badge after the version name (suppressed in
grouped mode), gated by a new show_quantization_on_card setting that
follows the show_version_on_card toggle pattern.
2026-10-15 11:18:06 +08:00
Will Miao 9dacaf06f7 feat(ui): add optional vertical list layout for model modal showcase
Bring back the pre-v1.2.2 classic vertical list for example images as a
persisted showcase_layout setting (gallery stays the default), switchable
from both a Settings select and an in-modal segmented toggle.

- Revive the vertical list renderer (adapted from 4a6042d0) as
  VerticalListView.js, reusing the shared MediaUtils/MetadataPanel
  infrastructure; legacy CSS scoped under .showcase-vertical
- Dispatch showcase rendering on state.settings.showcase_layout;
  collapsed bar, empty/filtered states and import flow stay shared
- Keep the back-to-top button available in vertical mode (the
  showcase-expanded class that hides it now only applies to the gallery,
  whose thumbnail strip occupies that corner)
- Persist the setting via DEFAULT_SETTINGS + DEFAULT_SETTINGS_BASE and a
  new select under Settings > Layout Settings
- i18n: 6 new keys translated in all 9 locales; terminology recorded in
  docs/i18n-translation-guidelines.md

Closes #1136
2026-10-05 09:38:48 +08:00
Will Miao ec147bd677 feat(ui): add setting to keep the action bar visible while scrolling (#1095)
Adds a 'Keep Action Bar Visible' toggle (default off) under
Settings > Interface > Layout Settings. When enabled, the controls bar
(Refresh, Download, etc.) and the breadcrumb nav are wrapped in a shared
sticky container (.sticky-topbar) so both stay pinned as one unit; when
disabled, the wrapper is display: contents and the original behavior
(only the breadcrumb stays visible) is preserved.
2026-09-04 23:53:27 +08:00
Will Miao cb4fd3a0e6 refactor(ui): split settings modal into section templates with shared macros 2026-08-21 09:14:52 +08:00