基于Clip模型和Qdrant向量数据库的在线AI图像搜索引擎。支持关键词搜索和相似图片搜索。
中文文档
以上截图可能包含来自不同艺术家的版权图像,请勿将其用于其他目的。
在大多数情况下,我们建议使用 Qdrant 数据库来存储元数据。 Qdrant数据库提供高效的检索性能、灵活的可扩展性和更好的数据安全性。
请根据Qdrant文档部署Qdrant数据库。推荐使用Docker进行部署。
如果您不想自行部署Qdrant,可以使用Qdrant提供的在线服务。
本地文件存储直接将图像元数据(包括特征向量等)存储在本地SQLite数据库中。仅建议用于小规模部署或开发部署。
本地文件存储不需要额外的数据库部署过程,但有以下缺点:
O(n)
。因此,如果数据规模较大,搜索和索引的性能就会下降。v1.0.0
)。python -m venv .venv
. .venv/bin/activate
如果您想使用 CUDA 加速进行推理,请务必在此步骤中安装支持 CUDA 的 PyTorch 版本。安装完成后,可以使用
torch.cuda.is_available()
来确认CUDA是否可用。
pip install -r requirements.txt
config/
中的项目配置文件,可以直接编辑default.env
,但建议创建一个名为local.env
的新文件并覆盖default.env
中的配置。python main.py
--host
指定要绑定的 IP 地址(默认为 0.0.0.0),使用--port
指定要绑定的端口(默认为 8000)。python main.py --help
来查看所有可用的命令和选项。NekoImageGallery 的 docker 镜像是在 Docker Hub 上构建和发布的,包括几种变体:
标签 | 描述 | 最新图像尺寸 |
---|---|---|
edgeneko/neko-image-gallery:<version> edgeneko/neko-image-gallery:<version>-cuda edgeneko/neko-image-gallery:<version>-cuda12.1 | 支持使用 CUDA12.1 进行 GPU 推理 | |
edgeneko/neko-image-gallery:<version>-cuda11.8 | 支持使用 CUDA11.8 进行 GPU 推理 | |
edgeneko/neko-image-gallery:<version>-cpu | 仅支持CPU推理 |
其中<version>
是NekoImageGallery的版本号或版本别名,如下:
版本 | 描述 |
---|---|
latest | NekoImageGallery 最新稳定版本 |
v*.*.* / v*.* | 具体版本号(对应Git标签) |
edge | NekoImageGallery 的最新开发版本可能包含不稳定的功能和重大更改 |
在每个图像中,我们捆绑了必要的依赖项、 openai/clip-vit-large-patch14
模型权重、 bert-base-chinese
模型权重和easy-paddle-ocr
模型,以提供完整且随时可用的图像。
图像使用/opt/NekoImageGallery/static
作为存储图像文件的卷,如果需要本地存储,请将其安装到您自己的卷或目录。
对于配置,我们建议使用环境变量来覆盖默认配置。秘密(如 API 令牌)可以由 docker 秘密提供。
nvidia-container-runtime
(仅限 CUDA 用户)如果要使用 CUDA 加速,则需要在系统上安装nvidia-container-runtime
。安装请参考官方文档。
相关文件:
- https://docs.docker.com/config/containers/resource_constraints/#gpu
- https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#docker
- https://nvidia.github.io/nvidia-container-runtime/
docker-compose.yml
文件。 # For cuda deployment (default)
wget https://raw.githubusercontent.com/hv0905/NekoImageGallery/master/docker-compose.yml
# For CPU-only deployment
wget https://raw.githubusercontent.com/hv0905/NekoImageGallery/master/docker-compose-cpu.yml && mv docker-compose-cpu.yml docker-compose.yml
# start in foreground
docker compose up
# start in background(detached mode)
docker compose up -d
有多种方法可以将图像上传到 NekoImageGallery
python main.py local-index < path-to-your-image-directory >
python main.py local-index --help
了解更多信息。API 文档由 FastAPI 的内置 Swagger UI 提供。您可以通过访问服务器的/docs
或/redoc
路径来访问API文档。
这些项目与 NekoImageGallery 一起工作:D
为项目做出贡献的方法有很多:记录错误、提交拉取请求、报告问题和创建建议。
即使您拥有存储库的推送访问权限,您也应该在需要时创建个人功能分支。这可以保持主存储库的干净,并且让您的工作流程不再可见。
我们也对您对该项目的未来的反馈感兴趣。您可以通过问题跟踪器提交建议或功能请求。为了使这个过程更加有效,我们要求其中包含更多信息,以帮助更清楚地定义它们。
版权所有 2023 EdgeNeko
根据 AGPLv3 许可证获得许可。