Um mecanismo de pesquisa de imagens de IA on-line baseado no modelo Clip e no banco de dados vetorial Qdrant. Suporta pesquisa por palavra-chave e pesquisa de imagens semelhantes.
中文文档
As capturas de tela acima podem conter imagens protegidas por direitos autorais de diferentes artistas. Por favor, não as use para outros fins.
Na maioria dos casos, recomendamos usar o banco de dados Qdrant para armazenar metadados. O banco de dados Qdrant oferece desempenho de recuperação eficiente, escalabilidade flexível e melhor segurança de dados.
Implante o banco de dados Qdrant de acordo com a documentação do Qdrant. Recomenda-se usar Docker para implantação.
Se não quiser implantar o Qdrant sozinho, você pode usar o serviço online fornecido pelo Qdrant.
O armazenamento de arquivos local armazena diretamente metadados de imagem (incluindo vetores de recursos, etc.) em um banco de dados SQLite local. É recomendado apenas para implantações em pequena escala ou implantações de desenvolvimento.
O armazenamento local de arquivos não requer um processo adicional de implantação de banco de dados, mas tem as seguintes desvantagens:
O(n)
. Portanto, se a escala de dados for grande, o desempenho da pesquisa e da indexação diminuirá.v1.0.0
).python -m venv .venv
. .venv/bin/activate
Se você quiser usar a aceleração CUDA para inferência, certifique-se de instalar uma versão PyTorch compatível com CUDA nesta etapa. Após a instalação, você pode usar
torch.cuda.is_available()
para confirmar se CUDA está disponível.
pip install -r requirements.txt
config/
, você pode editar default.env
diretamente, mas é recomendado criar um novo arquivo chamado local.env
e substituir a configuração em default.env
.python main.py
--host
para especificar o endereço IP ao qual deseja vincular (o padrão é 0.0.0.0) e --port
para especificar a porta à qual deseja vincular (o padrão é 8000).python main.py --help
.As imagens docker do NekoImageGallery são construídas e lançadas no Docker Hub, incluindo variantes serval:
Etiquetas | Descrição | Tamanho da imagem mais recente |
---|---|---|
edgeneko/neko-image-gallery:<version> edgeneko/neko-image-gallery:<version>-cuda edgeneko/neko-image-gallery:<version>-cuda12.1 | Suporta inferência de GPU com CUDA12.1 | |
edgeneko/neko-image-gallery:<version>-cuda11.8 | Suporta inferência de GPU com CUDA11.8 | |
edgeneko/neko-image-gallery:<version>-cpu | Suporta apenas inferência de CPU |
Onde <version>
é o número da versão ou alias da versão do NekoImageGallery, como segue:
Versão | Descrição |
---|---|
latest | A última versão estável do NekoImageGallery |
v*.*.* / v*.* | O número da versão específica (corresponde às tags Git) |
edge | A versão de desenvolvimento mais recente do NekoImageGallery pode conter recursos instáveis e alterações significativas |
Em cada imagem, agrupamos as dependências necessárias, pesos de modelo openai/clip-vit-large-patch14
, pesos de modelo bert-base-chinese
e modelos easy-paddle-ocr
para fornecer uma imagem completa e pronta para uso.
As imagens usam /opt/NekoImageGallery/static
como volume para armazenar arquivos de imagem, monte-o em seu próprio volume ou diretório se o armazenamento local for necessário.
Para configuração, sugerimos o uso de variáveis de ambiente para substituir a configuração padrão. Segredos (como tokens de API) podem ser fornecidos por docker secrets.
nvidia-container-runtime
(somente usuários CUDA) Se quiser usar a aceleração CUDA, você precisa instalar nvidia-container-runtime
em seu sistema. Consulte a documentação oficial para instalação.
Documento relacionado:
- 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
do repositório. # 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
Existem maneiras servais de fazer upload de imagens para NekoImageGallery
python main.py local-index < path-to-your-image-directory >
python main.py local-index --help
para obter mais informações. A documentação da API é fornecida pela UI Swagger integrada do FastAPI. Você pode acessar a documentação da API visitando o caminho /docs
ou /redoc
do servidor.
Esses projetos funcionam com NekoImageGallery :D
Há muitas maneiras de contribuir com o projeto: registrando bugs, enviando solicitações pull, relatando problemas e criando sugestões.
Mesmo se você tiver acesso push no repositório, você deve criar ramificações de recursos pessoais quando precisar delas. Isso mantém o repositório principal limpo e o fluxo de trabalho fora de vista.
Também estamos interessados em seus comentários sobre o futuro deste projeto. Você pode enviar uma sugestão ou solicitação de recurso por meio do rastreador de problemas. Para tornar este processo mais eficaz, pedimos que incluam mais informações para ajudar a defini-los com mais clareza.
Direitos autorais 2023 EdgeNeko
Licenciado sob licença AGPLv3.