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
port を使用してバインド先のポート (デフォルトは 8000) を指定できます。python main.py --help
を実行すると、使用可能なすべてのコマンドとオプションを確認できます。NeoImageGallery の Docker イメージは、Serval バリアントを含む 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 | NeoImageGallery の最新の安定バージョン |
v*.*.* / v*.* | 特定のバージョン番号 (Git タグに対応) |
edge | NeoImageGallery の最新開発バージョンには、不安定な機能や重大な変更が含まれている可能性があります |
各イメージには、必要な依存関係、 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
NeoImageGallery に画像をアップロードするにはいくつかの方法があります
python main.py local-index < path-to-your-image-directory >
python main.py local-index --help
を参照してください。API ドキュメントは、FastAPI の組み込み Swagger UI によって提供されます。 API ドキュメントにアクセスするには、サーバーの/docs
または/redoc
パスにアクセスします。
これらのプロジェクトはNekoImageGalleryで動作します:D
プロジェクトに貢献するには、バグの記録、プル リクエストの送信、問題の報告、提案の作成など、さまざまな方法があります。
リポジトリへのプッシュ アクセス権を持っている場合でも、必要に応じて個人用機能ブランチを作成する必要があります。これにより、メイン リポジトリがクリーンな状態に保たれ、ワークフローの粗末な部分が見えなくなります。
このプロジェクトの将来についてのフィードバックもお待ちしています。問題トラッカーを通じて提案や機能リクエストを送信できます。このプロセスをより効果的にするために、私たちはこれらのプロセスをより明確に定義するために、より多くの情報を含めるよう求めています。
Copyright 2023 エッジネコ
AGPLv3 ライセンスに基づいてライセンスされています。