| 8/29 ローカルLLMとOpen WebUIでチャットからイラストを生成する環境を構築してみた。 |
はじめに ローカル環境で動作するLLMと画像生成AIを組み合わせ、ブラウザ上のチャットから自然な文章でイラストを生成できる環境を構築してみました。 ChatGPTとかに聞きまくってなんとか構築出来ました。せっかくなので日記として公開しようと思います。 この手の技術は日進月歩でツールの設定とかUIとかコロコロ変わるのであくまで参考程度に見てもらえると助かります。 構築も結構頑張って長い作業になったので、記事作成をAIに手伝ってもらってます。雛形を作ってもらってそこから追記・修正してます。 最初に言っておきますが、ローカルLLMはまぁそれなりにHDDの容量を食うので少なくとも100GB程度は開けておいたほうがいいです。 CPUとGPUも必要ですがロースペックでもおっそいだけで動くことは動くので、物足りなくなったらスペックアップを目指してもいいでしょう。 さて今回構築する環境では、以下の4つのソフトを組み合わせます。 Stability Matrix ↓ Stable Diffusion WebUI reForge ↓ Ollama ↓ Open WebUI 最終的には、Open WebUIのチャット欄に、「青い髪の少女が夕暮れの海辺に立っているイラストを作って」といった自然な文章で指示すると、LLMが内容を理解し、Stable Diffusion WebUI reForgeを利用して画像を生成する環境を目指します。 この記事では、各ソフトの細かなインストール方法そのものは解説しません。さすがにそこまで解説するととんでもなく長くなるので、AIに聞くかググってね。 各ソフトは更新によってインストール方法や画面構成が変わるため、基本的にはそれぞれの公式サイト・公式ドキュメントを参照してインストールしてください。 その代わり、この記事では「この4つを連携させるために、どの段階で何を設定し、どこまで動作確認すればよいのか」を重点的に説明します。 1.全体像 今回使用するソフトは4つです。 Stability Matrix Stable Diffusion関連のソフトを管理するためのパッケージマネージャーです。 Stable Diffusion WebUI reForgeなどを比較的簡単に導入・管理できます。 公式: https://github.com/LykosAI/StabilityMatrix 2026/08/29現在だと、上記のページから「Releases」→最新バージョンのページ下部にある「StabilityMatrix-win-x64.zip」をダウンロードすればいいかと思います。 Stability Matrixは、Stable Diffusion WebUI reForgeを含む複数のStable Diffusion関連パッケージに対応しています。 今回使うStable Diffusion WebUI reForgeもStability Matrixから簡単に入れられます。 Stable Diffusion WebUI reForge Stable Diffusionを利用して実際に画像を生成するWebUIです。 今回の構成では、Open WebUIから画像生成の要求を受け取り、実際に画像を作ります。 reForgeはStable Diffusion WebUI Forgeをベースとしたプロジェクトです。 Stability Matrixから導入すればたぶん最新がインストールできるので問題ないでしょう。 Ollama PC上でLLMを実行するためのソフトです。 私はローカルLLMの実行自体はLM Studioを使っているのでOllamaを入れるのは初めてでしたが、まぁ特に難しいこともなく。あえて難しいところを上げるならOllamaで起動するLLMは画像生成に対応しているLLMでないといけない、という点でしょうか。その辺りは後述のOllamaのインストールのところで説明します。 今回の構成では、ユーザーとの会話を理解し、画像生成に必要な指示を処理する役割を担当します。 公式: https://ollama.com/ Open WebUI ブラウザからローカルLLMとチャットするためのWebインターフェースです。 今回の構成では、Ollamaと接続してチャットを行い、さらにStable Diffusion WebUI reForgeと連携して画像生成を行うための入口になります。 公式: https://github.com/open-webui/open-webui 2.各ソフトのインストール ここでは、各ソフトの詳しいインストール手順ではなく、「インストールした時点で、この環境を作るために確認しておくこと」をまとめます。 各ソフトのインストール方法は、使用するOSやバージョンによって変わるため、基本的には各公式サイトの説明に従ってください。 2-1.Stability Matrix 公式: https://github.com/LykosAI/StabilityMatrix 公式インストール手順: https://github.com/LykosAI/StabilityMatrix/blob/main/docs/getting-started/installation.md インストール後、Stability MatrixからStable Diffusion WebUI reForgeをインストールします。 この段階で確認すること Stability Matrixが正常に起動する。 ↓ Stable Diffusion WebUI reForgeがインストールできる。 ↓ reForgeが単独で起動する。 ↓ ブラウザからreForgeの画面を開ける。 ↓ reForgeで何でもいいので画像生成が出来る。(ちなみにNSFWな画像を作成したいならcivitaiでModel Type=CheckPoint、File Format=SafeTensorsでフィルターした好きなモデルを取得すること) 通常、reForgeは以下のURLで起動します。 ※Stability MatrixからreForgeを起動した時点で勝手にブラウザで開いてくれる。 http://127.0.0.1:7860/ reForgeの起動設定 今回の環境では、reForgeをAPI有効状態で起動します。 起動オプション:--api この「--api」が、後からOpen WebUIからreForgeへ画像生成を依頼するために重要になります。 Stability Matrixの以下の画像のように設定できます。![]()
reForge単体で画像を生成できるところまで確認してから、次の段階へ進みます。 2-2.Stable Diffusion WebUI reForge 公式: https://github.com/Panchovix/stable-diffusion-webui-reForge reForge単体で、 ・WebUIが起動する ・任意のモデルを入れてreForge内で認識される(選択できる) ・画像を生成できる ところまで確認してください。 reForge APIの動作確認 reForgeが起動した状態で、PowerShellまたはコマンドプロンプトから以下を実行します。ブラウザで直接開いてもいいです。 curl http://127.0.0.1:7860/sdapi/v1/sd-models 正常であれば、reForgeに登録されているStable Diffusionモデルの一覧がJSON形式で返ってきます。 ここでモデル一覧が取得できれば、 「reForge本体」 ↓ 「reForge API」 までが正常に動作していることを確認できます。 2-3.Ollama 公式: https://ollama.com/ Ollamaをインストールし、LLMを1つ以上導入してください。 LLMの導入はhttps://ollama.com/libraryで好きなModelを選び、OllamaのChat画面のチャット入力欄の右にModelを選択出来る箇所があるので、そこにモデル名を入力しチャットを開始すると自動でダウンロードしてくれます。 今回は「lfm2.5:latest」を使用してみます。以下の画像のようにModel名に「lfm2.5:latest」と入力して適当にチャットを開始してみてください。 Ollamaが自動的にModelをダウンロードしてくれます。 重要事項:OllamaのサイトでModelを検索する時、「tool calling」で検索して出てきたModelを使用すること。 tool calling非対応のModelを使用すると、Open WebUIとOllamaの画像作成指示の連携がうまくいきません。 ※画像は別のModelです。
なお、NSFWな指示をしたい場合はここにあるModelだと不健全なプロンプト生成は拒否されるので、Hugging Faceで、abliterated(制限解除)等のワードで検索したModelを使用する必要があります。 番外として「手持ちのモデル(.gguf)をOLLAMAで使用できるように変換する方法」を記載します。 1.使用したい制限解除モデルを入手する 2.Modelfileというファイルを作って以下を記述する。 FROM 取得したモデルのフルパス 3.コマンドプロンプトでModefileを配置した場所に移動し、以下のコマンドを実行すると、Ollamaで使用できるようになる。 ollama create モデル名 -f Modelfile この段階で確認すること Ollamaが正常に起動する。 ↓ LLMを起動できる。 ↓ OllamaアプリのChatからLLMと会話できる。 この段階では、まだ画像生成との連携は必要ありません。 「OllamaでLLMが正常に動作する」ことだけ確認します。 2-4.Open WebUI 公式: https://github.com/open-webui/open-webui Open WebUIにはDocker、Python、uvなど複数の導入方法があります。 各自の環境に合った方法でインストールしてください。 今回の環境では、uvxを利用して起動しました。 参考用に自分の起動バッチを記述しておきます。 Open WebUI起動用.bat
Ollamaとの接続 Open WebUIを起動し、Ollamaと接続します。 Open WebUIを起動すると管理者アカウントを作成しろと言われるので適当に作成します。 その後、Ollamaと連携するための設定を行います。 左下のアイコンから「「設定」→「接続」からOllama APIにOllama API接続の管理を追加し、「http://localhost:11434」を追加します。これは標準のOllamaのAPIの設定です。@echo off cd /d "%~dp0" set "DATA_DIR=任意のOpen WebUIの設定ファイルを保存したい場所" uvx open-webui@latest serve![]()
設定後、Open WebUIで新しいチャット画面を開き、チャット入力欄でモデル選択を行います。ここに出てくるモデル一覧はOllamaにインストールしているモデル一覧になります。 チャット画面からLLMに質問して、正常に返答されればOKです。 ここでは、 Open WebUI ↓ Ollama ↓ LLM という経路が正常に動作することを確認します。 3.いよいよ各ソフトを連携する ここからが、この環境構築の本番です。 重要なのは、最初から全部を一度に接続しようとしないことです。 1つ接続するたびに動作確認を行います。 起動しているもの(Stable Diffusion WebUI reForge、Ollama、Open WebUI)があったら全部終了させます。 3-1.reForgeを起動する まずStable Diffusion WebUI reForgeを起動します。 重要:--apiを有効にしてください。 起動後、ブラウザで、http://127.0.0.1:7860/を開きます。 reForgeの画面が表示されればOKです。 3-2.reForgeのAPIを確認する PowerShellまたはコマンドプロンプトから、curl http://127.0.0.1:7860/sdapi/v1/sd-modelsを実行します。 モデル一覧が返ってくればOKです。 ここでエラーになる場合は、Open WebUIとの連携に進まないでください。 まずreForge側の問題を解決します。解決の仕方はAIに聞くのが一番でしょう。 3-3.Ollamaを起動する 次にOllamaを起動します。 LLMを正常に使用できることを確認します。 この段階では、 Ollama ↓ LLM だけを確認します。 3-4.Open WebUIを起動する Open WebUIを起動します。 今回の環境では、uvx open-webui@latest serveを使用しています。 Open WebUIが起動したら、まずOllamaとの接続を確認します。 Open WebUIからLLMを選択し、通常のチャットを行います。 LLMから正常に返答があれば、 Open WebUI ↓ Ollama ↓ LLM の接続は成功です。 3-5.Open WebUIとreForgeを接続する 次に、Open WebUIとreForgeを接続します。 Open WebUIの画像生成設定を開きます。 ここはちょっとややこしいです。 さっきのOllamaの連携と同じく「設定」→「Images」を開きます。 1.「画像生成」をONにする。 2.「画像生成エンジン」をAutomatic1111にする。 3.「Base URL」をhttp://127.0.0.1:7860にする。 ここで非常に重要な注意があります。 【重要】Base URLの末尾に「/」を付けない Base URLは、http://127.0.0.1:7860としてください。 URL指定に失敗するとこのあとのモデル一覧の取得が出来ません。 今回の環境では、Base URLの末尾に「/」を付けたことで、Open WebUIがAPI URLを、http://127.0.0.1:7860//sdapi/v1/sd-modelsのように組み立ててしまい、404エラーが発生しました。 本来アクセスするURLは、http://127.0.0.1:7860/sdapi/v1/sd-modelsです。 ※Open WebUIや接続方式のバージョンによってURL処理が変更される可能性があります。この記事では、今回実際に動作確認した構成における設定として記載しています。 4.「Base URL」の右にある再読み込みボタンを押下する 5.「モデル」欄にカーソルを入れると、正常なら、reForge側に存在するStable DiffusionモデルがOpen WebUI側にも表示される。 6.「Image Size」は適当な値を入れる。512x768など。
ここまで確認できれば、 Open WebUI ↓ reForge API ↓ reForgeのモデル一覧 という接続が成功しています。 3-7.Function呼び出しを設定する この設定はもしかしたら必要ない可能性がありますが、私が構築した際は必要でした。 Open WebUIの設定にある、「Function呼び出し」を確認します。 今回の環境では、Nativeに設定しました。
今回、画像生成後にチャットが「running」の状態のまま終了しない問題がありましたが、 Function呼び出し ↓ Native に変更することで正常に処理が完了しました。 このため、今回の構成ではNativeを使用しています。 4.ここまでの動作確認 ここまでの確認です。 reForge単体で画像生成できる。 ↓ reForge APIからモデル一覧を取得できる。 ↓ Ollama単体でLLMを使用できる。 ↓ Open WebUIからOllamaのLLMと会話できる。 ↓ Open WebUIからreForgeのモデル一覧を取得できる。 ↓ Open WebUIのFunction呼び出しをNativeにする。 5.実際にチャットからイラストを作成する ここまで正常に接続できたら、実際にチャットから画像生成を行います。 ここで最後の注意点です。 チャット欄の下部に画像連携マークが表示されていないとイラスト作成の指示を出してもOpen WebUIはイラストを作成せず、プロンプトを作る等別の動作をします。 ↓画像連携出来ていない状態。
ひし形みたいなマークを押して、画像連携をONにします。
これでイラスト作成指示がreForgeまで連携されるようになります。 画像作成を依頼します。 例えば、Open WebUIのチャット欄に次のように入力します。 「夕暮れの海辺に立っている少女のイラストを作成してください。長い髪が風になびいていて、背景には夕焼けの海と空が広がっています。アニメ風の美しいイラストにしてください。」 環境が正常に動作していれば、 Open WebUI ↓ Ollama / LLM ↓ 画像生成処理 ↓ reForge API ↓ Stable Diffusion ↓ 生成画像 という流れで画像が生成されます。
6.画像生成がうまくいかない場合 ここでは、今回の構築時に実際に遭遇した問題を例にします。 Q.reForgeのモデル一覧がOpen WebUIに表示されない まず、reForge単体でモデルが表示されているか確認します。 ブラウザでhttp://127.0.0.1:7860/sdapi/v1/sd-modelsを開いてください。 JSONによるモデル一覧が返ってこない場合は、Open WebUIではなくreForge側の問題です。 モデル一覧が正常に返ってくる場合は、Open WebUIのBase URLを確認します。 Q.「Failed to list image generation models」と表示される 今回、次のようなエラーが発生しました。 Failed to list image generation models: string indices must be integers, not 'str' 原因は、Open WebUIがreForgeのAPIからモデル一覧を取得するときに、誤ったURLへアクセスしていたことでした。 実際には、http://127.0.0.1:7860//sdapi/v1/sd-modelsという二重スラッシュになっていました。 その結果404が返され、本来のモデル一覧ではなく、{"detail": "Not Found"}というデータをOpen WebUIが受け取っていました。 対策 Open WebUIのBase URLを確認します。 正: http://127.0.0.1:7860 末尾に「/」を付けないことがポイントです。 Q.画像生成そのものはreForge側で実行されたが、Open WebUIのチャット処理が終了しない状態になった。 対策 Open WebUIの、「Function呼び出し」を確認してください。 今回の環境では、Nativeに変更することで解決しました。 7.トラブルシューティングの基本 この環境で問題が発生した場合、全部を一度に確認するのではなく、通信経路を分解して調べます。 まず、「reForge単体」が正常か確認します。 次に、「reForge API」が正常か確認します。 次に、「Ollama+LLM」が正常か確認します。 次に、「Open WebUI+Ollama」が正常か確認します。 最後に、「Open WebUI+reForge API」を確認します。 つまり、 reForge ↓ reForge API ↓ Ollama ↓ Open WebUI+Ollama ↓ Open WebUI+reForge という順番です。 どこまで正常なのかを切り分ければ、原因をかなり絞り込めます。 8.最終的な構成 最終的には、以下のような構成になります。 ユーザー ↓ Open WebUI 「このようなイラストを作って」 ↓ Ollama ローカルLLMが文章を理解・処理 ↓ Open WebUI / Function Call ↓ Stable Diffusion WebUI reForge ↓ Stable Diffusionモデル ↓ 画像生成 ↓ Open WebUI ↓ ユーザー 9.まとめ 今回の環境では、4つのソフトをそれぞれ別の役割で使用します。 Stability Matrix → Stable Diffusion環境を管理する Stable Diffusion WebUI reForge → 実際に画像を生成する Ollama → ローカルLLMを動かす Open WebUI → LLMとのチャットと画像生成の入口になる 最後に。 ほんとうに色々と大変でした。 でもAIが居てくれたから環境構築出来ました。 マジAIは神。 わからないことはAIに聞くといいよ!!
reForge単体で画像を生成できるところまで確認してから、次の段階へ進みます。
2-2.Stable Diffusion WebUI reForge
公式:
なお、NSFWな指示をしたい場合はここにあるModelだと不健全なプロンプト生成は拒否されるので、
設定後、Open WebUIで新しいチャット画面を開き、チャット入力欄でモデル選択を行います。ここに出てくるモデル一覧はOllamaにインストールしているモデル一覧になります。
チャット画面からLLMに質問して、正常に返答されればOKです。
ここでは、
Open WebUI
↓
Ollama
↓
LLM
という経路が正常に動作することを確認します。
3.いよいよ各ソフトを連携する
ここからが、この環境構築の本番です。
重要なのは、最初から全部を一度に接続しようとしないことです。
1つ接続するたびに動作確認を行います。
起動しているもの(Stable Diffusion WebUI reForge、Ollama、Open WebUI)があったら全部終了させます。
3-1.reForgeを起動する
まずStable Diffusion WebUI reForgeを起動します。
重要:--apiを有効にしてください。
起動後、ブラウザで、
ここまで確認できれば、
Open WebUI
↓
reForge API
↓
reForgeのモデル一覧
という接続が成功しています。
3-7.Function呼び出しを設定する
この設定はもしかしたら必要ない可能性がありますが、私が構築した際は必要でした。
Open WebUIの設定にある、「Function呼び出し」を確認します。
今回の環境では、Nativeに設定しました。
今回、画像生成後にチャットが「running」の状態のまま終了しない問題がありましたが、
Function呼び出し
↓
Native
に変更することで正常に処理が完了しました。
このため、今回の構成ではNativeを使用しています。
4.ここまでの動作確認
ここまでの確認です。
reForge単体で画像生成できる。
↓
reForge APIからモデル一覧を取得できる。
↓
Ollama単体でLLMを使用できる。
↓
Open WebUIからOllamaのLLMと会話できる。
↓
Open WebUIからreForgeのモデル一覧を取得できる。
↓
Open WebUIのFunction呼び出しをNativeにする。
5.実際にチャットからイラストを作成する
ここまで正常に接続できたら、実際にチャットから画像生成を行います。
ここで最後の注意点です。
チャット欄の下部に画像連携マークが表示されていないとイラスト作成の指示を出してもOpen WebUIはイラストを作成せず、プロンプトを作る等別の動作をします。
↓画像連携出来ていない状態。
ひし形みたいなマークを押して、画像連携をONにします。
これでイラスト作成指示がreForgeまで連携されるようになります。
画像作成を依頼します。
例えば、Open WebUIのチャット欄に次のように入力します。
「夕暮れの海辺に立っている少女のイラストを作成してください。長い髪が風になびいていて、背景には夕焼けの海と空が広がっています。アニメ風の美しいイラストにしてください。」
環境が正常に動作していれば、
Open WebUI
↓
Ollama / LLM
↓
画像生成処理
↓
reForge API
↓
Stable Diffusion
↓
生成画像
という流れで画像が生成されます。
6.画像生成がうまくいかない場合
ここでは、今回の構築時に実際に遭遇した問題を例にします。
Q.reForgeのモデル一覧がOpen WebUIに表示されない
まず、reForge単体でモデルが表示されているか確認します。
ブラウザでhttp://127.0.0.1:7860/sdapi/v1/sd-modelsを開いてください。
JSONによるモデル一覧が返ってこない場合は、Open WebUIではなくreForge側の問題です。
モデル一覧が正常に返ってくる場合は、Open WebUIのBase URLを確認します。
Q.「Failed to list image generation models」と表示される
今回、次のようなエラーが発生しました。
Failed to list image generation models:
string indices must be integers, not 'str'
原因は、Open WebUIがreForgeのAPIからモデル一覧を取得するときに、誤ったURLへアクセスしていたことでした。
実際には、http://127.0.0.1:7860//sdapi/v1/sd-modelsという二重スラッシュになっていました。
その結果404が返され、本来のモデル一覧ではなく、{"detail": "Not Found"}というデータをOpen WebUIが受け取っていました。
対策
Open WebUIのBase URLを確認します。
正:
http://127.0.0.1:7860
末尾に「/」を付けないことがポイントです。
Q.画像生成そのものはreForge側で実行されたが、Open WebUIのチャット処理が終了しない状態になった。
対策
Open WebUIの、「Function呼び出し」を確認してください。
今回の環境では、Nativeに変更することで解決しました。
7.トラブルシューティングの基本
この環境で問題が発生した場合、全部を一度に確認するのではなく、通信経路を分解して調べます。
まず、「reForge単体」が正常か確認します。
次に、「reForge API」が正常か確認します。
次に、「Ollama+LLM」が正常か確認します。
次に、「Open WebUI+Ollama」が正常か確認します。
最後に、「Open WebUI+reForge API」を確認します。
つまり、
reForge
↓
reForge API
↓
Ollama
↓
Open WebUI+Ollama
↓
Open WebUI+reForge
という順番です。
どこまで正常なのかを切り分ければ、原因をかなり絞り込めます。
8.最終的な構成
最終的には、以下のような構成になります。
ユーザー
↓
Open WebUI
「このようなイラストを作って」
↓
Ollama
ローカルLLMが文章を理解・処理
↓
Open WebUI / Function Call
↓
Stable Diffusion WebUI reForge
↓
Stable Diffusionモデル
↓
画像生成
↓
Open WebUI
↓
ユーザー
9.まとめ
今回の環境では、4つのソフトをそれぞれ別の役割で使用します。
Stability Matrix
→ Stable Diffusion環境を管理する
Stable Diffusion WebUI reForge
→ 実際に画像を生成する
Ollama
→ ローカルLLMを動かす
Open WebUI
→ LLMとのチャットと画像生成の入口になる
最後に。
ほんとうに色々と大変でした。
でもAIが居てくれたから環境構築出来ました。
マジAIは神。
わからないことはAIに聞くといいよ!!