本地图片语义搜索工具,基于CLIP模型实现中英文图片语义检索,类似小米相册AI搜索。适用场景:自然语言搜索本地图片、搜索中文关键词相关图片、用户提及"搜图片""找图片""图片搜索""AI相册"等关键词。
基于 CLIP 模型的全盘中英文图片语义搜索工具,支持中文关键词检索。
text
image-search/
├── SKILL.md # 本说明文件
├── requirements.txt # Python 依赖
└── scripts/
├── scan.py # 首次全量建库(约2小时)
├── update.py # 增量更新(只处理新增图片)
├── search.py # 搜索图片
└── config.py # 配置文件
bash
pip install -r requirements.txt
注意:首次运行会 自动下载 CLIP 模型(约 400MB),请确保网络畅通。模型会缓存到 ~/.cache/huggingface/。
bash
python scripts/scan.py
image_db/ 目录bash
python scripts/search.py 关键词
支持中英文关键词,例如:
bash
python scripts/search.py 塔
python scripts/search.py 猫
python scripts/search.py sunset
python scripts/search.py 建筑 红色
搜索结果保存到桌面 搜索结果_关键词.txt,包含图片路径和相似度分数。
每次新增图片后,运行增量更新:
bash
python scripts/update.py
OFA-Sys/chinese-clip-vit-base-patch16 模型将图片转换为 512 维向量编辑 scripts/config.py:
python
SCAN_ROOTS = ["C:\\", "D:\\", "E:\\", "F:\\"] # 扫描的根目录
EXCLUDE_DIRS = ["$RECYCLE.BIN", "System Volume Information", ".cache"] # 排除的目录
IMAGE_EXTENSIONS = {".jpg", ".jpeg", ".png", ".gif", ".bmp", ".webp"} # 支持的图片格式
MODEL_NAME = "OFA-Sys/chinese-clip-vit-base-patch16" # CLIP 模型
BATCH_SIZE = 16 # 批处理大小,内存不足可调小
Q: 内存不足怎么办?
A: 减小 config.py 中的 BATCH_SIZE(如改为 4 或 8)
Q: 模型下载失败? A: 国内网络可能需要设置镜像源:
bash
set HF_ENDPOINT=https://hf-mirror.com
Q: 如何完全重建索引?
A: 删除 image_db/ 目录,然后重新运行 scan.py