前記事では、CLIPを使った品質スコアの設計とExcel記録の仕組みを紹介しました。本記事ではその続きとして、ローカルPC移行・Ollamaによるメタデータ自動生成・Adobe Stock申請CSV出力までを解説します。

本記事の位置づけ(フロー④後半)

前記事はGoogle Colabでの実装でしたが、本記事では以下の拡張を行っています。

  • 処理基盤をColabからローカルPCに移行
  • Ollamaとmoondreamモデルによるタイトル・キーワード自動生成
  • Adobe Stock申請用CSVの自動出力
  • Excelへの2シート構成(スコア記録+申請データ)

Google ColabからローカルPCへの移行

ColabとローカルのCLIPスコア処理結果は数値的にほぼ同一ですが、「毎日使う」という運用の観点でローカルのほうが便利と判断しました。ブラウザを開いてColabに接続する手間がなく、batファイルをダブルクリックするだけで処理が始まります。

ローカルPCのスペック(GTX 1060 3GB・RAM 16GB)で動作するか確認したところ、CLIP処理はGPUで問題なく動作することを確認しました。専用VRAM 3GBに対し共有メモリも含めると最大11GBを活用できるため、思ったより余裕がありました。

処理Colab(T4)ローカル(GTX 1060)
CLIP処理(50枚)約3〜5分約15〜30分
Ollama生成(50枚)約25〜50分
起動の手間ブラウザ起動が必要batファイル1クリック
結果の数値差ほぼ同一(小数点4桁目以降の微差のみ)

環境構築:batファイル一発起動の設計

毎日使うツールとして、できる限り起動を簡単にする設計にしました。ファイル構成はシンプルな3点セットです。

ファイル構成

  • setup.bat:初回のみ実行。ライブラリのインストールとOllamaモデルのダウンロードを自動化。
  • run.bat:毎回の実行用。Ollamaサーバーを起動してからPythonスクリプトを呼び出す。
  • stock_analyzer.py:メイン処理。設定エリアのパスを変更するだけで動作する。

環境構築の過程でいくつかトラブルに遭遇しました。batファイルの文字コード問題でコマンドが認識されないエラーが発生しましたが、日本語をすべて英語に統一することで解決しました。また、PythonとOllamaのパスが環境変数に登録されておらず、GUIから手動で追加する対応が必要でした。こういった「環境構築のつまずき」はローカル運用あるあるで、一度解決すればその後は快適に使えます。

Ollamaで画像を見てメタデータを自動生成

Adobe Stockへの申請には、ファイルごとに英語タイトル(200文字以内)とキーワード(最大49個)の入力が必要です。これを手動で行うのは非常に手間がかかります。

そこで、ローカルで無料で動くAI「Ollama」を使い、画像を見てタイトルとキーワードを自動生成する仕組みを実装しました。

モデルの選定では、当初qwen2.5vl:3b(日本語対応の視覚言語モデル)を試みましたが、VRAM 3GBでは画像認識時にメモリ不足でクラッシュしてしまいました。そこで、画像認識専用に設計された軽量モデルmoondreamに切り替えました。moondreamは必要VRAMが約1.5GBと少なく、GTX 1060でも安定して動作します。英語でのキーワード生成に特化しているという点でも、Adobe Stock向けとして適切な選択でした。

モデル選定のポイント

「日本語対応モデルだから良い」ではなく、「VRAMに収まるか」「英語キーワードを生成できるか」を優先しました。Adobe Stockのメタデータは英語が基本のため、英語特化モデルのほうが結果的に適切でした。

VRAMの競合問題とその解決策

実装の過程で、CLIPとOllamaを同時に動かすとVRAMが不足してOllamaがタイムアウトするという問題が発生しました。GTX 1060の専用VRAM 3GBはCLIP処理でほぼ使い切ってしまうため、Ollamaが追加でメモリを確保できない状態でした。

解決策として、処理を2フェーズに分離しました。

  1. フェーズ1:全画像のCLIP処理(処理2・3・4)を完了させる
  2. CLIPモデルをGPUメモリから完全に解放する
  3. フェーズ2:Ollamaが全VRAMを使えるようになってからメタデータ生成

また、Ollamaに送信する画像は512pxにリサイズしてから渡すことで、通信データ量を削減しています。元の4Kアップスケール画像をそのまま送るとbase64変換だけで数十MBになってしまい、処理時間が大幅に増加するためです。

Adobe Stock申請CSV自動出力

Adobe StockではCSVファイルをアップロードすることで、複数ファイルのメタデータを一括登録できます。必要な列はFilename・Title・Keywords・Category・Releasesの5項目です。

本ツールでは、Ollamaが生成したタイトルとキーワードを自動でCSV形式に変換して出力します。カテゴリは画像の内容から自動判定(人物・自然・ビジネス・食べ物・動物など)します。

出力されるファイル

  • analysis_results.xlsx(シート1「解析結果」):処理2・3・4のスコアを追記
  • analysis_results.xlsx(シート2「Stock申請CSV」):タイトル・キーワード・カテゴリを追記
  • adobe_stock_upload.csv:Adobe Stockに直接アップロード可能なCSVファイル

実際に出力されたCSVの一部です。タイトルとキーワード49個が自動で入っています。

FilenameTitleKeywords(抜粋)Category
0519 (18).jpgYoung Asian woman using smartphone indoorswoman, smartphone, asian, indoor, technology, portrait...1

完成した運用フローのまとめ

一連の実装を経て、審査前の作業が以下のフローで完結するようになりました。

  1. Upscayl処理済みの画像をフォルダに入れる
  2. run.bat をダブルクリックするだけ
  3. フェーズ1:全画像のCLIPスコアを自動算出
  4. フェーズ2:Ollamaが各画像を見てタイトル・キーワードを自動生成
  5. Excelに追記(既処理ファイルは自動スキップ)
  6. Adobe Stock申請用CSVが自動出力される

毎日の運用でかかる人手間

新しい画像をフォルダに入れてrun.batをダブルクリックするだけです。あとはPCが自動で処理します。処理中は別の作業ができます。

次のステップは、Adobe Stockへの申請後の審査OK・NG結果をExcelに記録する仕組みの構築です。審査結果とスコアを照合することで、どのような画像が通りやすいかの傾向分析が可能になります。この内容は別記事で紹介予定です。

FAQ

Ollamaとは何ですか?

ローカルPCでAIモデルを無料で動かすためのツールです。インターネット接続なしでもLLMを利用でき、画像認識対応モデルを使えばタイトルやキーワードの自動生成も可能です。

Adobe StockのCSVアップロードとは何ですか?

Adobe Stockでは、Filename・Title・Keywords・CategoryをCSV形式で一括アップロードできます。手動入力の手間を大幅に削減できます。

GTX 1060でAI処理は動きますか?

CLIP処理は問題なく動作します。ただし画像認識モデルはVRAMを多く消費するため、モデル選定が重要です。本記事ではmoondreamという軽量モデルを採用しました。