infinite-image-browsing
AI 绘画图片库管理神器,自动解析元数据、语义搜索、智能聚类
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
AI 绘画图片库管理神器,自动解析元数据、语义搜索、智能聚类
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一个这样的场景:你是一位 AI 绘画爱好者,每天用 Stable Diffusion、ComfyUI、Fooocus 生成大量作品。一个月下来,硬盘里堆积了上万张图片——有的来自 SD-webui 输出目录,有的在 Fooocus 的专属文件夹,有的则是 ComfyUI 的工作流截图。你想找"上周用某款 Lora 生成的人物图",却发现只能靠文件名盲猜。这就是 无边图像浏览(IIB) 诞生的背景。
无边图像浏览由独立开发者 zanllp 创建,最初定位为 SD-webui(Stable Diffusion Web UI)的扩展插件。随着支持的 AI 绘画软件越来越多——ComfyUI、Fooocus、NovelAI、StableSwarmUI、Invoke.AI——它逐步演化为一款功能完整的通用图像管理工具。截至目前,项目在 GitHub 拥有超过 1300 颗星,获得了稳定的技术社区关注。
从技术定位来看,IIB 属于 AI 绘画工作流辅助工具:它不生成图像,而是解决"生成之后如何高效管理"的难题。类似 Pixiv 浏览、相册管理、Google 图片搜索的体验,被浓缩进一个本地部署的 Web 应用中。
图1:IIB 的全局设置面板,支持缩略图分辨率、缓存目录等参数配置
IIB 最核心的性能承诺是"有缓存情况下,图像几毫秒内呈现"。实现方式靠两层缓存机制:缩略图预生成(--generate_image_cache)和视频封面预生成(--generate_video_cover)。默认缩略图为 512 像素,用户可在设置中调整至 64px1024px。图像网格支持自定义宽度(64px1024px),适配不同屏幕尺寸。
这是 IIB 最有技术含量的部分。作者自定义了一套 标签提取 pipeline:从图像文件名、EXIF 元数据、PNGInfo/TAESD 元数据中解析 Prompt、Model、Lora、采样器、CFG、步数等信息,转化为结构化标签并按使用频率排序。搜索支持:
开发者为此实现了多个解析器(parsers),覆盖不同 AI 绘画工具的元数据格式差异——这是工程量最大的部分之一。
图2:Prompt 编辑与标签管理界面,可对单张图像的生成信息进行修改
IIB 集成了基于向量的语义聚类能力:使用 numpy + hnswlib 构建 HNSW 索引,对图像进行语义相似度聚类,自动生成有意义的文件夹名称(支持多语言)。整理前提供预览,用户可跳过或调整特定分组。处理过程为后台异步执行,大文件夹不会阻塞界面操作。
使用智能整理的前置条件:需配置 OPENAI_BASE_URL + OPENAI_API_KEY(本地模型也支持)
图3:智能整理预览界面,执行前可确认聚类结果
纵向无限刷图体验,针对视频文件自动生成封面。信息面板与背景遮罩持续优化,支持快捷键切换图片、全屏预览下方向键导航。
图4:TikTok 风格浏览,图像与视频统一展示,支持全屏预览
基于已提取的标签,生成标签关系图可视化 + 主题聚类联动。用户可直观看到标签之间的共现关系,辅助发现创作模式。
内置类似 ImgSli 的双图对比功能,并排显示两张图像及其生成参数,方便比较不同模型/Lora 的效果差异。
从代码结构来看,IIB 采用 FastAPI(Python后端) + Vue 3(前端) 的经典组合:
| 层级 | 技术 | 说明 |
|---|---|---|
| 后端框架 | FastAPI + Uvicorn | RESTful API 服务,支持 CORS、认证 |
| 前端框架 | Vue 3 + TypeScript | 组件化开发,有 Pinia 状态管理 |
| 构建工具 | Vite | 前端开发/生产构建 |
| 桌面打包 | Tauri | 独立桌面应用(Rust 后端) |
| 数据库 | SQLite | 本地图像索引存储 |
| AI 向量 | numpy + hnswlib | 语义聚类(可选功能) |
| 元数据 | Pillow (PIL), ExifRead | EXIF 解析、图像处理 |
Python 后端结构(scripts/iib/):
api.py:FastAPI 路由定义(图像列表、搜索、收藏等)db/:SQLite 数据模型(DataBase、Image、ExtraPath)parsers/:各 AI 软件的元数据解析器(SD-webui、ComfyUI、Fooocus 等)tool.py:工具函数(配置读取、路径规范化)update_image_data.py:索引更新逻辑Vue 前端结构(vue/src/):
page/:页面级组件components/:可复用 UI 组件store/:Pinia 状态管理api/:前端 API 封装i18n/:国际化(中文/繁体/英文/德语)安全设计:支持 secret_key 认证、文件系统访问控制(白名单路径)、只读模式。SD-webui 扩展模式下默认启用安全限制。
IIB 提供三种部署形态,适应不同用户场景:
在 SD-webui 扩展页面,从 URL 安装:https://github.com/zanllp/sd-webui-infinite-image-browsing
安装后在 SD-webui 界面中直接访问,适合已部署 SD-webui 的用户,零额外配置。
python app.py --sd_webui_config /path/to/config.json --update_image_index
支持指定 SD-webui 配置文件路径,自动扫描图片目录并建立索引。提供 --extra_paths 添加额外搜索路径。
cd vue && npm install && npm run tauri:build
生成跨平台桌面应用,不依赖 SD-webui,适合普通用户。
项目提供 install.py 脚本,一键安装依赖(Python packages + npm 依赖),降低上手门槛。
图5:智能整理功能配置,支持选择操作模式(移动/复制)和聚类参数
图6:整理预览列表,按语义聚类分组,可逐个确认或跳过
IIB 还支持与 AI 编程助手协同工作:Claude Code、Cursor、OpenClaw 等工具可通过 API 直接与 IIB 交互,查询/操作本地图像库。详见 docs/ai-agents-zh.md。
元数据解析依赖特定格式:各 AI 绘画工具的元数据存储方式不统一,新增工具需要额外开发解析器,维护成本随支持软件数量线性增长。
搜索基于本地索引:初次运行需要较长时间扫描所有图片目录生成索引(--update_image_index),大仓场景下可能需要数分钟。
中文社区依赖 B 站视频:README 中提到功能演示视频在 Bilibili,但视频质量参差不齐,不如图文文档友好。
智能整理依赖外部 API:虽然支持本地模型,但默认需要 OpenAI API Key,存在隐私和成本考量。
无 Docker 支持:没有容器化部署方案,无法在服务器环境一键部署。
IIB 代表了一类 "AI 时代数字资产管理(DAM)" 工具的兴起。随着 AI 生成内容(AIGC)的爆发,传统的文件夹/标签分类方式已无法满足创作者的需求——图片数量太多、人工打标签成本过高。IIB 通过自动元数据解析 + 语义搜索 + AI 聚类,为这一痛点提供了务实的解决方案。
1300+ 星的关注度说明这一细分需求有真实的市场空间,未来可能看到更多类似工具的出现(事实上已有 fork 和类似项目)。作者持续维护、版本迭代稳定,表明这是一个有生命力的个人项目。