ComfyUI と Ollama / LM Studio の連携(画像→テキスト)

本サイトで紹介している商品・サービス等の外部リンクには、アフィリエイト広告が含まれる場合があります。

概要

これまでローカル環境では、テキストから画像を生成する(Text-to-Image)ことを中心に、さまざまなモデルを試してきました。

一方で、「画像からテキストを生成する(Image-to-Text)」処理については、ローカル環境ではあまり試していなかったため、今回検証してみました。

ローカル実行環境の用意

必要なものは以下です。

  • PC
  • ComfyUI + ComfyUI Manager
  • Ollama + 必要なモデル
  • LM Studio + 必要なモデル

※ Ollama または LM Studio のどちらか一方でも動作可能ですが、本記事では比較のため両方を使用しています。

PC 環境

NVIDIA GeForce RTX 5060 Ti 16GB を搭載した自作 PC を使用します。

Stability Matrix + ComfyUI の実行環境の用意

今回は ComfyUI を Stability Matrix 経由でセットアップした環境を使用します。
準備方法については、必要に応じて過去記事をご参照ください。

もちろん Stability Matrix を用いずに Windows 版の ComfyUI を直接インストールする形でも問題ないです。

Stability Matrix と ComfyUI のアップデート

古いバージョンだと正常に動作しない可能性があるため、事前に更新しておきます。

  • Stability Matrix – Settings – アップデート
  • Stability Matrix – パッケージ – ComfyUI の更新


以下では、
Stability Matrix 2.15.6
ComfyUI v0.18.0

で試してみます。

ComfyUI Manager のインストール

ノードのインストールのために ComfyUI Manager を導入します。

以下は Stability Matrix を使った例です。

(1) Stability Matrix – パッケージ – ComfyUI の Extensions アイコンをクリックします。

Stability Matrix - パッケージ - ComfyUI - Extensions

(2) “comfyui-manager” で検索して、表示された ComfyUI-Manger をインストールします。

Extensions - comfyui-manager で検索してインストール

Ollama

Ollama をインストールし、必要なモデルをダウンロード後、動作させておきます。
準備方法については、過去記事もご参照ください。

LM Studio

LM Studio もインストールして動作させておきます。
準備方法については、過去記事もご参照ください。

ComfyUI と Ollama との連携(画像→テキスト)

まずは Ollama を使用して、画像からテキストを生成します。
Ollama の場合、テンプレートがあるのでそれを利用します。

ワークフローの準備

(1) ComfyUI を起動し、[拡張機能の管理] をクリックします。

ComfyUI 起動後 - 拡張機能の管理 をクリック

(2) “ollama” で検索して、表示された “comfyui-ollama” のノードパックををインストールします。
インストール後、必要に応じて ComfyUI を再起動します。

(3) ComfyUI – 左側の [テンプレート] クリックします。

ComfyUI - テンプレートをクリック

(4) “ollama” で検索し、表示された “ollama-vision” をクリックします。

テンプレート - ollama で検索 - ollama-vision をクリック

(5) ノードが不足している場合はダイアログが表示されます。
[エラーを表示] をクリックして、不足しているノードをインストールします。(必要に応じて ComfyUI を再起動します。)

準備完了です。

ollama-vision のワークフロー

実行

(1) 利用するモデルを選択し、入力画像も指定します。

ollama-vision のワークフロー - model と画像を選択

(2) [実行する] クリックします。結果は、[Show Text] のノードに表示れされます。

ollama-vision のワークフロー - 実行後、Show Text ノードに結果が表示される

(3) LLM に渡すプロンプトで変化があるかについても試してみます。

以下のように、プロンプトを変更します。
Describe this image in extreme detail as a prompt for an AI image generator.

ollama-vision のワークフロー ‐ プロンプトを少し変えてみる

(4) 変更後、[実行する] クリックします。
先ほどとは少し異なった形でテキストが生成されました。

ollama-vision のワークフロー - プロンプト変更後の結果

ComfyUI と LM Studio との連携(画像→テキスト)

次に、LM Studio との連携を試します。
LM Studio はテンプレートがないので、ノードをインストールして手動でワークフローを作成します。

ワークフローの準備

(1) [拡張機能の管理] をクリックします。
“lm studio image to text” で検索し、表示された “comfyui-lmstudio-image-to-text-node” をクリックしてをインストールします。
(必要に応じて ComfyUI を再起動します。)

(2) 新規でワークフローを作成して、左側の [ノード] をクリックします。

新規でワークフローを開いて、ノードをクリック

(3) [画像を読み込む] ノードを配置します。

ノードをクリックして、”画像を読み込む” と検索欄に入力し、表示された [画像を読み込む] ノードをワークフローにドラックアンドドロップします。

(4) 次に [LM Studio (Image to Text)] ノードを配置します。
同様に、”lmstudio” で検索し、表示された [LM Studio (Image to Text)] をドラックアンドドロップします。

ノード - "lmstudio" で検索 - "LM Studio (Image to Text)" を選択してドラックアンドドロップ

(5) 最後に [Show Text] ノードを配置します。
“show text” で検索し、表示された “Show Text” ノードをドラックアンドドロップします。

ノード - "show text" で検索 - "Show Text” を選択してドラックアンドドロップ

(6) ノード間を接続します。

準備完了です。

実行

(1) [LM Studio (Image to Text)] ノードの [model_key] を変更します。

LM Studio (Image to Text) ノードの model_key を変更


これは、LM Studio の「My Models」で表示されるモデル名と一致させる必要があります。
(画像入力に対応している言語モデルを使う必要があります。)

(2) 入力画像を指定します。

画像を読み込んで実行

(3) [実行する] をクリック。

結果のテキストが表示される

(4) LM Studio でも LLM にプロンプトが変更可能なので、変えてみます。
Describe this image in extreme detail as a prompt for an AI image generator.

(5) こちらも同様に異なる結果が得られます。

変更したプロンプトによる結果

今回は画像から単にプロンプトを生成しただけですが、画像生成のノードと組み合わせることで、以下のような応用も可能になるかもしれません。

  • プロンプトの自動改善
  • 画像の反復進化
  • 完全自動生成パイプライン


参考となれば幸いです。