ローカルLLMで画像・動画生成!OllamaとLocalAIによる完全実装ガイド

ローカルLLMで画像・動画生成!OllamaとLocalAIによる完全実装ガイド

2026年4月19日


はじめに:ローカルLLMはテキストだけじゃない

「大規模言語モデル(LLM)と言えばチャットbots」――そう思い込んでいる方も多いのではないでしょうか。しかし、OllamaLocalAIといった近年のオープンソースフレームワークを使えば、テキスト生成以外の領域、すなわち「画像」や「動画」の生成までローカル環境で完結させることが可能になっています。

ポイント: Ollamaは本来、テキスト処理に特化したフレームワークです。しかしマルチモーダルモデル(LLaVAなど)を採用することで、画像解析・生成への応用も広げています。一方、LocalAIはOpenAI互換APIを提供する推論プラットフォームで、画像・動画・音声の生成を全て一つのインターフェースから操作できます。


1. LocalAIでの画像生成

インストールと起動(docker or CLI)

# Dockerによる推奨インストール
docker run -p 8080:8080 --name local-ai -ti localai/localai:latest-cpu

# CLIで直接モデルを指定して起動
local-ai run flux.1-dev-ggml

テキスト→画像(Text-to-Image)

LocalAIでは、OpenAI互換の/v1/images/generationsエンドポイントを使って画像生成をおこないます。バックエンドに合わせて手順が異なります。

stablediffusion-ggmlバックエンドの場合(軽量・CPU対応)

curl http://localhost:8080/v1/images/generations \
   -H "Content-Type: application/json" \
   -d '{
     "prompt": "A cat playing in a garden on a sunny day",
     "model": "flux.1-dev-ggml",
     "size": "512x512",
     "step": 25,
     "cfg_scale": 4.5
   }'

diffusersバックエンドの場合(高品質・推奨)

まず設定ファイルを作成します。

# models/animagine-xl.yaml
name: animagine-xl
parameters:
  model: Linaqruf/animagine-xl
  backend: diffusers
  cuda: true
  f16: true
  step: 51
diffusers:
  scheduler_type: euler_a

生成リクエスト:

curl http://localhost:8080/v1/images/generations \
   -H "Content-Type: application/json" \
   -d '{
     "prompt": "A cute baby sea otter|blurry background",
     "model": "animagine-xl",
     "step": 51,
     "size": "1024x1024"
   }'

画像→画像(Image-to-Image・編集)

既存の画像に対してプロンプトで指示を出して編集することもできます。

curl http://localhost:8080/v1/images/edits \
   -H "Content-Type: application/json" \
   -d '{
     "image": "<base64_encoded_image>",
     "prompt": "Replace the background with a beach",
     "model": "stablediffusion-edit",
     "step": 25,
     "cfg_scale": 7.5
   }'

あるいはFlux Kontextを使った編集:

local-ai run flux.1-kontext-dev

バックエンド別のモデル対応一覧

バックエンド 特徴 VRAM目安
stablediffusion-ggml stable-diffusion.cppベース。CPUでも動作可能 低〜中
diffusers HuggingFace Differs活用で高品質 中〜高

サポートされる主要モデル:
Stable Diffusion 1.5(VRAM 4GB以上推奨)
SDXL(VRAM 6GB以上推奨)
Flux Schnell / Dev(VRAM 8〜12GB以上推奨)
Kandinsky, PixArt-Alpha


2. Ollamaでの画像生成

LLaVA(マルチモーダルモデル)を使った手法

Ollama本体はテキストモデルを扱うフレームワークですが、マルチモーダルのLLaVAを使用することで画像の理解・生成につなげられます。

# LLaVAモデルを取得
ollama pull llava

# テキスト→画像生成(モデルの実装状況により動作は異なります)
ollama run llava "A photorealistic image of a cat wearing sunglasses"

実践的な連携ワークフロー:Ollama + Stable Diffusion / ComfyUI

最も実用的な使い方は、「Ollamaをプロンプト作成担当、Stable Diffusion/ComfyUIを描画エンジン」として組み合わせることです。

  1. プロンプト入力: Ollama(Llama 3, Mistralなど)に日本語で詳細な指示
  2. 英語プロンプト出力: LLMが英語の画像生成用テキストを返す
  3. 描画実行: 出力されたプロンプトをComfyUIへ投入
# Ollamaで英文プロンプトを作成
ollama run llama3 "猫が海辺で遊んでいる様子 の詳細な画像プロンプトを英語で作って"

# 出力例: "A photorealistic image of an adorable kitten playing in the ocean waves at sunset..."
# この文字列をComfyUIやStable Diffusion WebUIに貼り付けて描画

Visionモデル(VLM)を使った画像解析・プロンプト作成

LLaVAなどのビジョンモデルを使うと、既存の画像の内容を詳細に説明させることができ、インペイント(部分的な書き換え)や新規プロンプト生成に活用できます。

curlによる画像付与リクエスト:

curl http://localhost:11434/api/generate -d '{
   "model": "llava",
   "prompt": "この画像には何が写っていますか?詳細に説明してください。",
   "images": ["./reference.jpg"]
}'

Pythonライブラリ経由:

import ollama
res = ollama.chat(
    model="llava",
    messages=[{
         'role': 'user',
         'content': 'この画像には何が写っていますか?',
         'images': ['./vision.jpg']
     }]
)
print(res['message']['content'])

ComfyUIとの統合(MCP経由)

MCP (Model Context Protocol)を使うことで、LM StudioとComfyUIをシームレスに連携させることも可能です。

セットアップ概要:

# MCPサーバーのインストール
pip install mcp

# LM Studio <-> ComfyUI間のPython MCPスクリプトを作成
# LM Studio側で画像生成リクエストを受け付け、ComfyUIへ送信

3. LocalAIでの動画生成

LocalAIは、/videoエンドポイントを介して動画生成をサポートしています。

テキスト→動画(Text-to-Video)

curl http://localhost:8080/video \
   -H "Content-Type: application/json" \
   -d '{
     "model": "video-model",
     "prompt": "A cat playing in a garden on a sunny day",
     "width": 512,
     "height": 512,
     "num_frames": 16,
     "fps": 8
   }'

レスポンス例:

{
   "created": 1709900000,
   "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
   "data": [
     { "url": "/generated-videos/abc123.mp4" }
   ]
}

画像→動画(Image-to-Video / FLF)

最初フレームと最終フレームを指定した生成(FLF: First Last Frame)も可能です。

開始画像を指定:

curl http://localhost:8080/video \
   -H "Content-Type: application/json" \
   -d '{
     "model": "video-model",
     "prompt": "A timelapse of flowers blooming",
     "start_image": "https://example.com/flowers.jpg",
     "num_frames": 24,
     "fps": 12,
     "seed": 42,
     "cfg_scale": 7.5,
     "step": 30
   }'

Base64エンコード形式で取得:

curl http://localhost:8080/video \
   -H "Content-Type: application/json" \
   -d '{
     "model": "video-model",
     "prompt": "Ocean waves on a beach",
     "response_format": "b64_json"
   }'

バックエンド別の動画モデル

バックエンド 対応モデル例 特徴
diffusers damo-vilab/text-to-video-ms-1.7b Diffusersベースの標準動画生成
stablediffusion Stable Video Diffusion (SVD) 静止画からの動画変換に強い

設定ファイル例:

name: txt2vid
parameters:
  model: damo-vilab/text-to-video-ms-1.7b
  backend: diffusers
  step: 25
  f16: true

動画生成パラメータ詳細一覧

パラメータ デフォルト値 説明
model string 使用するモデル名(必須)
prompt string 動画の説明文(必須)
negative_prompt string 除外したい要素
start_image string 開始画像(base64またはURL)
end_image string 最終フレーム(FLF用)
width int 512 動画の幅(ピクセル)
height int 512 動画の高さ(ピクセル)
num_frames int フレーム数
fps int フレームレート
seconds string 動画の秒数
cfg_scale float クラスフリーガイダンススケール
step int 推論ステップ数
seed int 乱数シード

4. Ollamaの動画生成活用(間接ワークフロー)

Ollamaは動画そのものをレンダリングする機能を持ちませんが、動画制作の前工程を強力にサポートします。

ワークフローの流れ

  1. アイデア → スクリプト: Llama 3やMistralでストーリー・プロットを作成
  2. Scene Descriptions(場面の説明): 各カットの詳細な映像説明文を生成
  3. Text-to-Audio: TTSモデルで音声化(BarkもOllamaで使用可能)
  4. Image / Video Clip Generation: 場面説明文をStable Diffusionや動画モデルへ投入
  5. 編集・結合: 画像・動画と音声をエディタで統合

コマンド例

# スクリプト作成
ollama run llama3 "猫が庭で遊んでいる様子 の短編アニメのシナリオを書いて"

# シーン説明文を生成
ollama run llama3 "第1シーン: 朝日が昇る公園。犬が走っている。 - 映像プロンプトに英文で変換して"

# 画像生成(Stable Diffusion/ComfyUI側で実行)
# 生成されたプロンプトを転用

コミュニティプロジェクト例

プロジェクト 概要
ai-video-generator Ollamaのストーリー生成→音声化→字幕作成→動画統合パイプライン
MoneyPrinterTurbo テーマを入力するだけでスクリプト・背景映像・字幕を自動合成

5. ハードウェア要件とツール比較

VRAM容量別の推奨スペック

VRAM 画像生成対応状況 動画生成 推奨ツール
4〜6GB SD 1.5 △, SDXL – × Fooocus, Biniou
8GB SD 1.5 ◯, SDXL △ × ComfyUI, InvokeAI
12GB 全モデル対応 △(単純な動画) ComfyUI + AnimateDiff
16GB+ 全モデル最適 ComfyUI + Flux Dev + Video
24GB+ プロ仕様に適す CogVideoX, Mochi等

CPUのみでの運用(Biniou)

GPU非搭載環境でも、Biniouを使用することでCPU駆動の画像・動画生成が可能です。

git clone https://github.com/Woolverine94/biniou
cd biniou
./install.sh    # Linuxの場合
# Windows: 公式リリースからexeをダウンロード
  • 最低RAM: 8GB
  • 推奨RAM: 16GB以上
  • 内蔵ツール: SD, Kandinsky, PixArt-Alpha, Flux, MusicGen, Bark TTS, Whisper, LLMチャットボット
  • 注意点: GPU比で数倍〜数十倍の時間がかかります(5秒→2〜3分)

Apple Silicon(M1/M2/M3/M4)対応

Macのユニファイドメモリアーキテクチャにより、比較的良好な動作が期待できます。

  • MPS (Metal Performance Shaders)サポート
  • ComfyUI, InvokeAIが動作
  • 通常のGPU比で30〜50%程度の速度性能

まとめ

タスク 推奨ツール ハードウェア要件 主なポイント
画像生成(標準) LocalAI / Ollama + LLaVA VRAM 4GB以上 OpenAI互換APIで容易に統合可能
高品質画像 LocalAI (diffusers) / ComfyUI VRAM 8〜12GB以上 Fluxモデルなどで最高品質を
プロンプト生成 Ollama (Llama 3, Mistral) GPU不要でも可 LLMで英語プロンプト→SD/ComfyUI投入
動画生成(簡易) LocalAI (/videoエンドポイント) VRAM 12GB以上 AnimateDiff、SVDに対応
動画制作(フルフロー) Ollama(スクリプト) + LocalAI(画像・動画) VRAM 24GB以上 Ollamaが「頭脳」、他ツールが描画

ローカル生成のメリット

  • コストゼロ: API利用料や月額課金が発生しない
  • プライバシー保護: データは外部へ送信されない
  • フィルターなし: コンテンツフィルタによる制約がない
  • 無制限生成: 回数制限なく何度でも生成できる
  • カスタマイズ性: 独自モデルやLoRAを自由に組み込める

参考URL


最終更新: 2026年4月19日
情報元: LocalAI公式ドキュメント、Ollama公式リポジトリ、コミュニティブログ・GitHub(2024〜2026年)

コメント

タイトルとURLをコピーしました