Commit Graph

1255 Commits (6e3e8b072bbb08d786d2c4ebf9a3ea6e5386fbb5)

Author SHA1 Message Date
zanllp 6e3e8b072b releases 2026-04-08 21:40:05 +08:00
zanllp 4c59f706d9 release 2026-04-08 21:25:12 +08:00
zanllp 26e5e36872
Merge pull request #945 from zanllp/fix/sidecar-process-cleanup-on-close
fix(tauri): ensure sidecar process is killed when app window is closed
2026-04-08 21:24:19 +08:00
zanllp b408d253a1 fix(tauri): ensure sidecar process is killed when app window is closed
Previously, the app only sent an HTTP shutdown request to the Python
sidecar with no timeout and no fallback. If the request failed, the
sidecar process became orphaned, causing memory leaks.

- Add 3-second timeout to the HTTP shutdown request
- Add fallback to force-kill the sidecar by PID (taskkill /F /T on
  Windows, kill -9 on Unix) after HTTP shutdown attempt
- Store child PID in AppState for use in both window close handler
  and Tauri command shutdown

Fixes #944
2026-04-08 21:06:25 +08:00
zanllp 06e72b0059
Merge pull request #943 from azurebluedawn/main
Possible bug fix for "Open with default app" on Windows
2026-03-31 20:50:13 +08:00
azurebluedawn 47234f9a64
Replace subprocess.call with os.startfile for Windows 2026-03-30 16:04:36 +02:00
zanllp 09c3f41bd0
Merge pull request #942 from zanllp/fix/non-standard-exif-support
fix(exif): handle non-standard EXIF with UserComment in IFD0
2026-03-29 18:10:53 +08:00
zanllp 942b184b15 fix(exif): handle non-standard EXIF with UserComment in IFD0
Some images store UserComment directly in IFD0 with type BYTE instead
of the standard Exif sub-IFD with type UNDEFINED, causing piexif to
return empty results. Add a raw EXIF fallback to extract and decode
UserComment in both ComfyUI detection and webui gen info reading.

- Add _extract_usercomment_from_raw_exif() for raw IFD0 parsing
- Add detection fallback in is_img_created_by_comfyui() for JPEG/WEBP
- Add extraction fallback in read_sd_webui_gen_info_from_image()
- In dev mode, bypass DB cache for unedited images to aid debugging
2026-03-29 18:08:16 +08:00
zanllp 5694044a09
Merge pull request #933 from osirigunso/fix/comfyui-populated-text
Fix ComfyUI prompt extraction for ImpactWildcardProcessor
2026-03-24 00:22:49 +08:00
osirigunso e74293806b Fixed wrong negative prompt acquisition. 2026-03-23 21:59:04 +09:00
osirigunso a4e503f214
Merge branch 'zanllp:main' into fix/comfyui-populated-text 2026-03-23 21:03:36 +09:00
zanllp 16330934f5
Merge pull request #939 from zanllp/fix/image-filename
fix(image): preserve original filename when saving images via right-c…
2026-03-21 03:02:07 +08:00
zanllp 5990f0b811 fix(image): preserve original filename when saving images via right-click
- Add new /img/{filename} API endpoint that preserves filename in URL
- Replace toRawFileUrl with toImageUrl in all preview components
- Fix issue where right-click save named all images as "file"
- Update CHANGELOG with user-facing explanation
2026-03-21 03:01:07 +08:00
zanllp d113b0effc
Merge pull request #938 from zanllp/feat/panel-settings
feat(panel): add customizable panel block visibility settings
2026-03-19 01:23:30 +08:00
zanllp ddd5f61773 feat(panel): add customizable panel block visibility settings
Add settings panel to customize which feature blocks are displayed in the full-screen info panel.

- Add settings dropdown for toggling visibility of action buttons, info tags, custom tags, layout controls, draggable image, and prompt tabs
- Persist user preferences to backend via globalStore
- Add i18n support for all block names (EN, ZH, DE)
- Rename change.log.md to CHANGELOG.md following industry standards
- Add panel settings screenshot to documentation
2026-03-19 01:21:25 +08:00
zanllp f586aaa71c docs(drag): add video demo to changelog
Add video demonstration link for the ComfyUI drag-to-transfer feature
to help users understand the workflow.
2026-03-18 00:18:47 +08:00
zanllp 363b073622
Merge pull request #937 from zanllp/feat/comfyui-drag-drop
feat(drag): add ComfyUI-ready image dragging feature
2026-03-17 23:47:12 +08:00
zanllp 66ae0869ab feat(drag): add ComfyUI-ready image dragging feature
Add drag-to-transfer functionality specifically designed for ComfyUI workflow integration.
Users can now click to display original images and drag them directly into ComfyUI
to automatically restore complete workflows with metadata extraction.

Features:
- Click-to-display original images with configurable size
- Dual placement: full-screen info panel and file grid overlays
- Multi-language support (EN, ZH, DE)
- Full metadata preservation for seamless workflow transfer

This feature streamlines the workflow from IIB to ComfyUI by enabling
direct image transfer with automatic parameter reconstruction.
2026-03-17 23:30:38 +08:00
zanllp fff1cc42fe
Merge pull request #936 from zanllp/i18n/update-extra-meta-info-hint
i18n(extraMetaInfo): update hint description across all languages
2026-03-15 13:35:40 +08:00
zanllp a01fc67aa3 i18n(extraMetaInfo): update hint description across all languages
Updated extraMetaInfoHint in all 4 language files to emphasize that it can save any complex information as a perfect supplement to params format limitations, with JSON mode supporting any valid JSON values.
2026-03-15 13:32:52 +08:00
zanllp 059a60db29
Merge pull request #935 from zanllp/fix/api-update-exif-permission
fix(api): add write permission requirement for update_exif endpoint
2026-03-15 13:07:51 +08:00
zanllp a89d5befd4 fix(api): add write permission requirement for update_exif endpoint 2026-03-15 13:07:22 +08:00
zanllp 34ca95ec51
Merge pull request #934 from zanllp/feat/exif-caching-ui-improvements
feat(metadata): add editable generation information and EXIF caching
2026-03-15 01:28:30 +08:00
zanllp 41ad78f6b3 feat(metadata): add editable generation information and EXIF caching
- Add prompt editor modal with support for editing positive/negative prompts
- Add key-value editor for custom metadata fields (string and JSON modes)
- Cache EXIF data in database for faster retrieval
- Track manually edited prompts with exif_edited flag
- Add validation for required fields and unique key constraints
- Add full internationalization support (EN, ZH-Hans, ZH-Hant, DE)
- Update changelog with new features and screenshot
- Clean up gitignore to use wildcard for video files
2026-03-15 01:22:11 +08:00
osirigunso 97f760aa54 Fix ComfyUI prompt extraction for ImpactWildcardProcessor 2026-03-14 23:30:35 +09:00
zanllp fcc23b5337
Merge pull request #930 from zanllp/feat/invokeai-metadata-parser
feat(parser): add support for invokeai_metadata format
2026-03-05 23:31:45 +08:00
zanllp 74382f25eb feat(parser): add support for invokeai_metadata format 2026-03-05 23:26:59 +08:00
zanllp 117aa7fb27
Merge pull request #928 from zanllp/docs/update-changelog-inline-video
docs(changelog): add inline video playback and recent updates
2026-02-23 21:35:41 +08:00
zanllp 41471e4349 docs(changelog): add inline video playback and recent updates
Add changelog entries for:
- Inline video playback feature (2026-02-23)
- Parse extra JSON metadata (2026-02-22)
- Tips carousel component (2026-02-22)
- Optimize database backup (2026-02-22)
- Docs improvements (2026-02-22)

Include screenshot for inline video playback feature.
2026-02-23 21:34:04 +08:00
zanllp f8015e6631
Merge pull request #927 from zanllp/feat/parse-extra-json-meta-info
feat(metadata): parse and mixin extraJsonMetaInfo field
2026-02-22 23:26:51 +08:00
zanllp 7d603c1e94 feat(metadata): parse and mixin extraJsonMetaInfo field
Add support for parsing the extraJsonMetaInfo field from image metadata.
The field values are merged into the meta dictionary with all values
ensured to be strings for safety.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-22 23:25:47 +08:00
zanllp 1933d27f97
Merge pull request #926 from zanllp/feat/tips-carousel
feat: add tips carousel component with 10 multilingual tips
2026-02-22 22:35:38 +08:00
zanllp 5e061010b8 feat: add tips carousel component with 10 multilingual tips
- Add TipsCarousel component with random shuffling (Fisher-Yates)
- Display 10 tips in 4 languages (zh-hans, en, zh-hant, de)
- Tips include filename uniqueness, batch operations, shortcuts, AI clustering, fuzzy search regex, walk mode, workspace snapshots, auto-tagging, performance optimization, and AI agent integration
- Integrate TipsCarousel into TagSearch and SubstrSearch pages
- Auto-rotate every 10 seconds with smooth fade transitions
- Support dismissing warning tips via localStorage
- Compact horizontal layout for minimal space usage

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-22 22:34:24 +08:00
zanllp 6a98bcb429
Merge pull request #925 from zanllp/chore/optimize-db-backup
chore(db): optimize database backup to once per day and reduce max ba…
2026-02-22 13:46:35 +08:00
zanllp 0aa0321ee2 chore(db): optimize database backup to once per day and reduce max backups to 4
- Change default IIB_DB_FILE_BACKUP_MAX from 8 to 4
- Add daily backup check to prevent multiple backups per day
- Skip backup if one already exists for the current date
2026-02-22 13:44:30 +08:00
zanllp 230b394f4f
Merge pull request #924 from zanllp/docs/fix-url-encoding-example
docs: fix URL encoding example with correct keywords
2026-02-22 13:32:36 +08:00
zanllp c5f2532ddc docs: fix URL encoding example with correct keywords 2026-02-22 13:32:01 +08:00
zanllp d3892407bb
Merge pull request #923 from zanllp/docs/reorganize-skill-references
docs: reorganize skill documentation and extend URL scheme
2026-02-22 13:26:00 +08:00
zanllp 57a811e8a1 docs: reorganize skill documentation and extend URL scheme
- Move agent-guide.md to references/agent-patterns.md
- Create references/search-strategies.md for advanced search techniques
- Add Quick Links section to SKILL.md for better navigation
- Extend fuzzy-search pane to support pre-filled search parameters
  - Add initialSubstr, initialIsRegex, initialPathOnly props
  - Add initialMediaType filter and autoSearch control
- Update queryActions.ts to map URL props to component props
- Make search API parameters optional (regexp, cursor, folder_paths)
- Add ai-agents.md and ai-agents-zh.md documentation
2026-02-22 13:24:51 +08:00
zanllp c3defd180a
Merge pull request #922 from zanllp/docs/improve-skill-for-agents
docs: improve skill docs for better agent integration
2026-02-18 21:26:18 +08:00
zanllp 61d18d7f1a docs: improve skill docs for better agent integration
- Rename skill from iib-api to iib for simpler installation:
  npx skills add https://github.com/zanllp/infinite-image-browsing --skill iib
- Rewrite SKILL.md following agentskills.io best practices
- Use curl examples instead of Python for simpler agent execution
- Add "Before You Start" section: ask user for port, test connectivity first
- Add --noproxy flag to bypass proxy for localhost connections
- Add service status check and daemon startup instructions
- Add quick reference table for common operations
- Add agent-guide.md with decision tree and workflow patterns
- Update README.md with AI agent usage section

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-18 21:17:37 +08:00
zanllp fb2a8878af
Merge pull request #921 from zanllp/fix/cleanup-orphaned-images-on-path-removal
fix: cleanup orphaned images when removing extra paths
2026-02-18 14:23:51 +08:00
zanllp a5b99223e3 fix: cleanup orphaned images when removing extra paths
When a folder is removed from the library, images under that folder are
now properly cleaned up from the database if they are not covered by any
other registered paths. This fixes the issue where Random Image would
pull from folders that had been removed.

The cleanup logic checks if each image is still "owned" by any remaining
scanned path before deletion, supporting nested path scenarios where a
parent path may still contain the images.

Fixes #868

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-18 14:21:56 +08:00
zanllp 20dd9b09a2
Merge pull request #920 from zanllp/fix/scroll-top-on-fixed-mode
fix: scroll to top when entering new folder in fixed mode
2026-02-17 21:26:30 +08:00
zanllp 2e1562d321 fix: scroll to top when entering new folder in fixed mode
In scanned-fixed mode, stack.length is always 1 since openNext replaces
the entire stack instead of pushing. The existing watch on stack.length
wouldn't trigger scroll because v === lv is always true.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-17 21:23:28 +08:00
zanllp 1289db58a9
Merge pull request #919 from zanllp/feat/reuse-existing-folders
feat: AI reuses existing folder names when organizing files
2026-02-17 20:13:04 +08:00
zanllp c062b3bed5 feat: AI reuses existing folder names when organizing files
When running AI organize on a folder that already contains subfolders,
the AI will now consider reusing existing folder names if the theme
matches, instead of always generating new titles. This prevents
duplicate folders from being created when re-organizing the same
directory multiple times.

- Add existing_folder_names parameter to ClusterIibOutputReq
- Pass existing folder names from dest directory to AI title generation
- Update AI prompt to prioritize reusing matching folder names

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-17 20:02:19 +08:00
zanllp d5167e293e
Merge pull request #918 from zanllp/fix/recursive-filter-in-cluster-job
fix: pass recursive parameter to embedding and include in cache key
2026-02-17 18:13:00 +08:00
wuqinchuan 603262e42a fix: pass recursive parameter to embedding and include in cache key
- Pass recursive parameter from request to _build_embeddings_one_folder
- Include recursive in cache_params to avoid cache collision between
  recursive and non-recursive clustering results
- Add debug logging for recursive parameter tracking

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-17 18:11:25 +08:00
zanllp f6b185e8a8
Merge pull request #917 from zanllp/feat/smart-organize
feat: add smart organize feature with AI-powered file organization
2026-02-17 17:31:33 +08:00