11 Commits
Author SHA1 Message Date
chrmc40 dcc31e4eae tag-builder: add + delete subjects (characters) via a 'Mine' tab
User-created characters now live in a Subjects -> Mine view with an 'Add
subject' tile; the character menu gains Delete (hide base) / Remove (drop
add). apply_overlay gains include_adds=False (used by the paginated
character browser + detail) so adds never leak into a LIMIT/OFFSET page.
2026-06-29 23:50:07 -07:00
chrmc40 b710afef7e Add splash hero2.webp + 4 demo workflow JSONs and README links; tag-customizer overlay + Tag Builder UI updates 2026-06-29 22:54:55 -07:00
chrmc40 49954df995 Boot-time DB-safe auto-updater + tag-builder UI/preset fixes
- Self-updater (core/update_boot.py + __init__ boot hook + system_api routes):
  apply staged updates before sqlite opens — git ff-only + DB backup + quick_check
  + paired rollback; discards only the tracked DB. 24h event-driven check, About
  'Update' entry, post-boot status toast (js/lib/update-check.js, js/main.js).
- tag-builder: NSFW toggle styling + NSFW Actions category, card/list view toggle,
  colon-bearing thumbnail serve fix, model-scoped Styles/templates preset matching,
  styles carry their own header + negative prompt.
- sidebar/onboarding/asset-browser: Windows asset drop + minor UI.
2026-06-29 18:30:22 -07:00
chrmc40 94821f9fca NSFW toggle: clearer labelled active button (drop ambiguous 🔞) 2026-06-29 14:30:58 -07:00
chrmc40 1e2733f5a5 Add NSFW filter toggle, NSFW Actions category, and card/list view toggle
- NSFW hide toggle (🔞) beside Tags/Natural-Language: hides designated NSFW
  groups + leaked NSFW items from the picker browser only; build state /
  round-trip / emit untouched. Manifest-driven, default hidden.
- NSFW Actions category: surfaces the dormant nsfw_action bucket (451 acts)
  as a toggle-gated 🔞 category; emits like a normal action. Backend already
  existed; frontend-only.
- Card/list view toggle (▦/☰) in the browser header: compact list rows with a
  tiny left thumb, persisted; pure CSS restyle, works in every view.
2026-06-29 14:00:41 -07:00
chrmc40 34b7cc6050 Remove illegal/unsafe content + fix character round-trip recognition
Safety: delete 19 curated tag-builder items that should not exist at all
(non-consent, bestiality, guro, and minor-sexualization tags across
appearance/expression/nsfw_action/cast items), per a content-safety audit.
Also: add /characters/identity-index so the picker recognizes all 1,486
normalized characters in existing prompts (was capped at 200).
2026-06-29 09:59:00 -07:00
chrmc40 5c57f1411a Fix slow first-open of the tag-builder picker
The default 'all' view mounts ~4,200 cards at once; almost all are off-screen.
Add content-visibility:auto so the browser defers layout/paint of off-screen
cards until they scroll into view. Initial open is now noticeably faster;
behaviour is unchanged (cards stay queryable/scrollable/findable).
2026-06-29 08:28:42 -07:00
chrmc40 0649ac1031 tag-builder: infinite-scroll the character rail
The rail capped at the top 60 by popularity with no way to browse the rest of a
narrowed category (anime/video_game). Add loadMoreCharacters + an
IntersectionObserver sentinel that appends the next page on scroll.
2026-06-28 23:10:30 -07:00
chrmc40 3b996851b4 tag-builder H6: debounce the card-grid filter to fix the typing freeze
The All-view filter re-rendered thousands of card DOM nodes synchronously on
every keystroke. Drive the filter off a debouncedQuery that lags the input by
200ms so the grid updates ~5x/sec while typing instead of per keypress; the
input stays instant, category switches clear it, jumpToTag stays synchronous.
2026-06-28 22:54:26 -07:00
chrmc40 f0b47753fa tag-builder Wave A: backend stability + cleanup + customizer/timer frontend fixes
Backend:
- H4 get_db reconnect storm: gate the one-time schema/normalize/reconcile helpers
  behind a process-level flag so the ~11,529-row reconcile stops re-running on the
  asyncio loop on every spurious mtime reopen.
- H5 tag_search write-on-read: cache last-good fingerprint (return it on transient
  lock instead of zeros -> no spurious 5-10 min re-embed) + mtime-gate the query.
- Remove dead /clothing/assemble + /furniture/assemble routes.
- Escape LIKE %/_ in 3 character-prefix lookups; NULL-guard /props/assemble.
- New POST /tag-builder/maintenance (idempotent orphan cleanup + alias dedup).

Frontend:
- Customizer output-mode: thread real isNaturalMode into the 3 customizers; preview
  matches the actual emit per mode; focus checkbox disabled (not silent no-op) in
  tag mode.
- Event-driven timers: drop 3 setTimeout(0) click-outside deferrals + the 1100ms
  flash timer (animationend instead).
2026-06-28 22:44:30 -07:00
chrmc40 8e3dceae99 ComfyUI-PromptChain
A prompt-authoring and image-iteration suite for ComfyUI.
2026-06-17 19:35:25 -07:00