Commit Graph

578 Commits

Author SHA1 Message Date
Will Miao cdd77029b6 fix(autocomplete): improve wildcard onboarding UX 2026-04-15 22:25:25 +08:00
Will Miao 439679e15f fix(autocomplete): preserve manual accept-key selection 2026-04-15 21:19:00 +08:00
Will Miao 2640258902 fix(prompt): invalidate dynamic wildcard cache without seed (#895) 2026-04-15 20:43:21 +08:00
Will Miao b910388d54 fix(autocomplete): remove short prompt command aliases (#895) 2026-04-15 20:43:03 +08:00
Will Miao 4514ca94b7 fix(autocomplete): reduce tag search overhead (#895) 2026-04-15 20:42:33 +08:00
Will Miao 62247bdd87 feat(prompt): expand wildcards at runtime (#895) 2026-04-15 20:42:27 +08:00
Will Miao 70cd3f4e1b fix(download-history): use title for downloaded tooltip 2026-04-13 20:26:40 +08:00
Will Miao a95c518b30 feat(download-history): add downloaded status UX 2026-04-13 19:51:04 +08:00
Will Miao ba1800095e fix(recipes): preserve scroll on in-place reloads 2026-04-13 10:30:50 +08:00
Will Miao 39c083db79 fix(recipes): preserve legacy gen params in modal flows 2026-04-12 21:25:54 +08:00
Will Miao 55e9e4bb6f fix(recipes): sanitize remote import gen params 2026-04-12 20:29:01 +08:00
Will Miao 0253d001e6 fix(recipe): hydrate stale modal data from recipe json 2026-04-12 19:22:58 +08:00
Will Miao 9998da3241 fix(ui): refresh stale model page versions 2026-04-11 20:11:21 +08:00
Will Miao 5f1bd894b9 fix(settings): prevent library modal focus jump 2026-04-11 16:20:37 +08:00
Will Miao 1817142a7b feat(doctor): add system diagnostics feature 2026-04-11 16:03:38 +08:00
Will Miao 25fa175aa2 fix(usage): resolve checkpoint hashes from disk 2026-04-10 22:28:04 +08:00
Will Miao 39643eb2bc fix(metadata): recover prompts through scheduled guidance 2026-04-10 21:36:42 +08:00
Will Miao 72f8e0d1be fix(backup): add user-state backup UI and storage 2026-04-10 20:49:30 +08:00
Will Miao 32875042bd feat(metadata): support PromptAttention CLIP encoder 2026-04-09 19:21:25 +08:00
Will Miao db4726a961 feat(recipes): add configurable storage path migration 2026-04-09 15:57:37 +08:00
Will Miao e13d70248a fix(usage-stats): resolve pending checkpoint hashes 2026-04-08 09:40:20 +08:00
Will Miao 18ddadc9ec feat(autocomplete): auto-format textarea on blur (#884) 2026-04-08 07:57:28 +08:00
Will Miao 9344d86332 test(misc): cover model existence download status 2026-04-03 22:16:09 +08:00
Will Miao d36b16c213 feat(settings): skip previously downloaded model versions 2026-04-03 19:01:19 +08:00
Will Miao 33a7f07558 feat(download-history): track downloaded model versions 2026-04-03 16:13:14 +08:00
Will Miao 4f599aeced fix(trigger-words): propagate LORA_STACK updates through combiners (#881) 2026-04-03 15:01:02 +08:00
Will Miao 30db8c3d1d fix(csp): support CivitAI CDN subdomains for example images (#822)
- Update CSP whitelist to use wildcard *.civitai.com for all CDN subdomains
- Fix hostname parsing to use parsed.hostname instead of parsed.netloc (handles ports)
- Update rewrite_preview_url() to support all CivitAI CDN subdomains
- Update rewriteCivitaiUrl() frontend function to support subdomains
- Add comprehensive tests for edge cases (ports, subdomains, invalid URLs)
- Add security note explaining wildcard CSP design decision

Fixes CSP blocking of images from image-b2.civitai.com and other CDN subdomains
2026-04-03 09:40:15 +08:00
Will Miao 9bdb337962 fix(settings): enforce valid default model roots 2026-04-01 20:36:37 +08:00
Will Miao 14cb7fec47 feat(cycler): add preset strength scale (#865) 2026-04-01 11:05:38 +08:00
Will Miao 8dc2a2f76b fix(recipe): show checkpoint-linked recipes in model modal (#851) 2026-03-31 16:45:01 +08:00
Will Miao 316f17dd46 fix(recipe): Import LoRAs from Civitai image URLs using modelVersionIds (#868)
When importing recipes from Civitai image URLs, the API returns modelVersionIds
at the root level instead of inside the meta object. This caused LoRA information
to not be recognized and imported.

Changes:
- analysis_service.py: Merge modelVersionIds from image_info into metadata
- civitai_image.py: Add modelVersionIds field recognition and processing logic
- test_civitai_image_parser.py: Add test for modelVersionIds handling
2026-03-31 14:34:13 +08:00
Will Miao 3dc10b1404 feat(recipe): add editable prompts in recipe modal (#869) 2026-03-31 14:11:56 +08:00
Will Miao 06f1a82d4c fix(tests): add missing MODEL_TYPES mock in ModelModal tests
Add mock for apiConfig.js MODEL_TYPES constant in test files to fix
'Cannot read properties of undefined' errors when running npm test.

- tests/frontend/components/modelMetadata.renamePath.test.js
- tests/frontend/components/modelModal.licenseIcons.test.js
2026-03-30 08:37:12 +08:00
Will Miao 301ab14781 fix(nodes): restore autocomplete widget sync after metadata insertion (#879) 2026-03-29 10:09:39 +08:00
Will Miao 2626dbab8e feat: add lora stack combiner node 2026-03-29 08:28:00 +08:00
Will Miao 12bbb0572d fix: Add missing mock for getMappableBaseModelsDynamic in tests (#854)
- Add getMappableBaseModelsDynamic to constants.js mocks in test files
- Remove refs/enums.json temporary file from repository

Fixes test failures introduced in previous commit.
2026-03-29 00:24:20 +08:00
Will Miao 00f5c1e887 feat: Dynamic base model fetching from Civitai API (#854)
Implement automatic fetching of base models from Civitai API to keep
data up-to-date without manual updates.

Backend:
- Add CivitaiBaseModelService with 7-day TTL caching
- Add /api/lm/base-models endpoints for fetching and refreshing
- Merge hardcoded and remote models for backward compatibility
- Smart abbreviation generation for unknown models

Frontend:
- Add civitaiBaseModelApi client for API communication
- Dynamic base model loading on app initialization
- Update SettingsManager to use merged model lists
- Add support for 8 new models: Anima, CogVideoX, LTXV 2.3, Mochi,
  Pony V7, Wan Video 2.5 T2V/I2V

API Endpoints:
- GET /api/lm/base-models - Get merged models
- POST /api/lm/base-models/refresh - Force refresh
- GET /api/lm/base-models/categories - Get categories
- GET /api/lm/base-models/cache-status - Check cache status

Closes #854
2026-03-29 00:18:15 +08:00
Will Miao dcc7bd33b5 fix(autocomplete): make accept key behavior configurable (#863) 2026-03-28 20:21:23 +08:00
Will Miao e5152108ba fix(autocomplete): treat newline as a hard boundary 2026-03-28 19:29:30 +08:00
Will Miao 1ed5eef985 feat(autocomplete): support Tab accept and configurable suffix behavior (#863) 2026-03-28 19:18:23 +08:00
Will Miao a82f89d14a fix(nodes): expose save image outputs to generated assets 2026-03-28 14:28:48 +08:00
Will Miao 16e30ea689 fix(nodes): add save_with_metadata toggle to save image 2026-03-28 11:17:36 +08:00
pixelpaws ad3bdddb72 Merge pull request #876 from willmiao/codex/analyze-issue-869-on-github
Handle Enter on tag input to add tags and add unit tests
2026-03-27 19:55:12 +08:00
pixelpaws 9121306b06 Guard Enter tag add during IME composition 2026-03-27 19:52:53 +08:00
Will Miao ca0baf9462 fix(nodes): lazy load qwen lora helper 2026-03-27 19:44:05 +08:00
pixelpaws 20e50156a2 fix(recipes): allow Enter to add import tags 2026-03-27 19:28:58 +08:00
Will Miao 1e8aca4787 Add experimental Nunchaku Qwen LoRA support (#873) 2026-03-27 19:24:43 +08:00
Will Miao 76ee59cdb9 fix(paths): deduplicate LoRA path overlap (#871) 2026-03-27 17:35:24 +08:00
Will Miao a5191414cc feat(download): add configurable base model download exclusions 2026-03-26 23:07:12 +08:00
Will Miao ceeab0c998 feat: add configurable mature blur threshold setting
Add new setting 'mature_blur_level' with options PG13/R/X/XXX to control
which NSFW rating level triggers blur filtering when NSFW blur is enabled.

- Backend: update preview selection logic to respect threshold
- Frontend: update UI components to use configurable threshold
- Settings: add validation and normalization for mature_blur_level
- Tests: add coverage for new threshold behavior
- Translations: add keys for all supported languages

Fixes #867
2026-03-26 18:24:47 +08:00