Stable Video Diffusion入門|静止画からAI動画を生成する方法

stable-video-diffusion-guide Uncategorized

Stable Video Diffusionとは

Stable Video Diffusion(SVD)は、Stability AIが開発した静止画から短尺動画を生成するAIモデルです。1枚の画像を入力すると、2-4秒のスムーズなアニメーション動画を生成します。

技術的背景

SVDはStable Diffusionの画像生成技術を動画に拡張したものです。

動作原理
1. 入力画像のエンコード: 静止画を潜在空間(Latent Space)に変換
2. 時系列拡張: 潜在ベクトルを時間軸方向に複製・補間
3. ノイズ除去: 各フレームに対してDiffusionプロセスを適用
4. 時間的一貫性: 3D U-Netでフレーム間の連続性を保持
5. デコード: 潜在空間から動画フレームを生成

学習データ
– 大規模動画データセット(LVD-10M等、1000万本以上)
– カメラモーション、オブジェクト動作のパターンを学習
– 解像度: 576×1024(縦長)、1024×576(横長)

SVDのバリエーション

1. SVD(標準版)

仕様
– フレーム数: 14フレーム
– 解像度: 576×1024
– FPS: 6fps(2.3秒)
– モデルサイズ: 5GB

用途
– 短尺アニメーション
– プロトタイプ検証
– 動きの試行錯誤

2. SVD-XT(拡張版)

仕様
– フレーム数: 25フレーム
– 解像度: 576×1024
– FPS: 6fps(4.2秒)
– モデルサイズ: 5GB

用途
– より長い動画生成
– ストーリーテリング
– プレゼンテーション素材

3. SV3D(3D回転版)

静止画から3D回転動画を生成するバリエーションです。

仕様
– 360度回転アニメーション
– 21フレーム(フロント視点)または40フレーム(周回)
– オブジェクト中心の回転に最適化

用途
– 商品展示動画
– 3Dモデルのプレビュー
– キャラクター紹介

導入方法

ComfyUIでの使用(推奨)

ComfyUIは動画生成ワークフローの構築に最適です。

1. 環境準備

# ComfyUIのインストール
git clone https://github.com/comfyanonymous/ComfyUI.git
cd ComfyUI
pip install -r requirements.txt

# モデルのダウンロード
cd models/checkpoints/
wget https://huggingface.co/stabilityai/stable-video-diffusion-img2vid-xt/resolve/main/svd_xt.safetensors

2. 基本ワークフロー

Load Image(入力画像)
  ↓
SVD_img2vid_Conditioning(条件設定)
  - width: 1024
  - height: 576
  - video_frames: 25
  - motion_bucket_id: 127
  - fps: 6
  - augmentation_level: 0
  ↓
KSampler
  - steps: 20
  - cfg: 2.5
  - sampler: euler
  - scheduler: karras
  ↓
VAE Decode(動画生成)
  ↓
VHS_VideoCombine(動画保存)

AUTOMATIC1111 WebUI(拡張機能)

導入手順

# 拡張機能のインストール
cd stable-diffusion-webui/extensions/
git clone https://github.com/deforum-art/sd-webui-deforum.git

使用方法
1. Deforum タブに移動
2. Animation mode: “Video Input”
3. 入力画像をアップロード
4. Max frames: 25
5. Generate

Stability AI API(クラウド)

プログラムから直接生成できます。

import requests

url = "https://api.stability.ai/v2alpha/generation/image-to-video"
headers = {
    "authorization": f"Bearer {API_KEY}"
}
files = {
    "image": open("input.png", "rb")
}
data = {
    "cfg_scale": 2.5,
    "motion_bucket_id": 127,
    "seed": 42
}

response = requests.post(url, headers=headers, files=files, data=data)
with open("output.mp4", "wb") as f:
    f.write(response.content)

料金: $0.08/生成(SVD-XT、25フレーム)

パラメータ調整ガイド

1. motion_bucket_id(動きの強度)

動画のモーション量を制御します(0-255)。

効果 用途
1-50 微細な動き(瞬き、髪の揺れ) ポートレート、静物
51-127 標準的な動き(歩行、カメラパン) 一般的な動画
128-200 ダイナミックな動き(ジャンプ、ズーム) アクション、エフェクト
201-255 過剰な動き(歪み発生リスク) 実験的表現

推奨値: 100-150(自然な動き)

2. cfg_scale(プロンプト遵守度)

入力画像への忠実度を調整します(1.0-10.0)。

効果 用途
1.0-2.0 元画像に近い、動きは控えめ 正確な再現
2.0-3.5 バランス型(推奨) 一般的な用途
3.5-5.0 動きが大胆、歪みリスク増 創作的表現

推奨値: 2.5

3. fps(フレームレート)

出力動画のなめらかさ(SVD-XTは6fps固定、後処理で変更可能)。

# FFmpegで24fpsに変換(スローモーション効果)
ffmpeg -i output_6fps.mp4 -filter:v "setpts=4*PTS" -r 24 output_24fps.mp4

4. augmentation_level(ランダム性)

生成のばらつきを調整(0.0-1.0)。

  • 0.0: 入力画像に最も忠実
  • 0.2-0.5: 適度なバリエーション(推奨)
  • 0.5-1.0: 大胆な変化(実験的)

実践的なテクニック

1. 高品質な入力画像の準備

SVDは入力画像の品質に大きく依存します。

推奨仕様
– 解像度: 1024×576(横長)または576×1024(縦長)
– 被写体: 中央配置、明確な輪郭
– 背景: シンプルなほど動きが安定
– ライティング: 均一な照明

前処理
– ControlNetで構図を整える
– アップスケーリングで高解像度化
– 背景ノイズ除去

2. ループ動画の作成

最終フレームと最初のフレームを繋げて無限ループを作ります。

手順
1. SVDで25フレーム生成
2. FFmpegでリバース動画を作成
3. 2つを連結

# リバース動画作成
ffmpeg -i input.mp4 -vf reverse output_rev.mp4

# 連結
ffmpeg -i "concat:input.mp4|output_rev.mp4" -c copy loop.mp4

3. カメラモーションの制御

入力画像の構図でカメラワークをある程度誘導できます。

構図 期待されるモーション
中央の被写体 ズームイン/アウト
左右に配置 パン(横移動)
低い視点 チルトアップ
遠近感のある背景 ドリー(前後移動)

4. 複数動画の連結

異なる入力画像から生成した動画を繋げてストーリーを作ります。

# 動画リストを作成
echo "file 'scene1.mp4'" > list.txt
echo "file 'scene2.mp4'" >> list.txt
echo "file 'scene3.mp4'" >> list.txt

# 連結
ffmpeg -f concat -safe 0 -i list.txt -c copy final.mp4

高度な活用法

1. AnimateDiffとの併用

AnimateDiffでモーション指示、SVDで高品質化という2段階生成。

ワークフロー
1. AnimateDiffで粗い動画生成(プロンプト指定)
2. 各フレームをSVDに入力して補間・高品質化

2. ControlNetでの動き制御

ComfyUIのControlNet(Temporal)で動きを細かく指定します。

入力画像 → ControlNet Temporal(モーション指示)→ SVD → 動画

3. 商用プロジェクトでの活用例

  • 広告動画: 商品画像から回転・ズーム演出
  • プレゼン資料: 静止画スライドにモーション追加
  • SNSコンテンツ: 縦長動画(Instagram/TikTok用)
  • ゲーム開発: キャラクターのアニメーションプロトタイプ

詳細な副業活用法はAI動画編集で副業を参照してください。

トラブルシューティング

動画が歪む・ブレが激しい

原因: motion_bucket_idが高すぎる、入力画像が複雑

対策
– motion_bucket_id を50-100に下げる
– 背景をシンプルにする
– cfg_scaleを2.0-2.5に設定

動きがほとんどない

原因: motion_bucket_idが低すぎる、被写体が小さい

対策
– motion_bucket_idを150-200に上げる
– 被写体を画面の50%以上に拡大
– 入力画像にモーションヒント(ブラー等)を追加

VRAMエラー

RuntimeError: CUDA out of memory

対策
– フレーム数を14に削減(SVD標準版を使用)
– 解像度を512×288に縮小
– バッチサイズを1に設定
--lowvram フラグを使用

商用利用時の注意点

ライセンス
– SVD: Stability AI Community License(条件付き商用可)
– 年間売上$1M未満: 無料
– $1M以上: Enterprise License必須(要問い合わせ)

入力画像の権利
– 他人の写真を動画化する場合は著作権確認必須
– AIで生成した画像も元モデルのライセンス継承

生成動画の権利
– 生成者に帰属(Stability AI規約に準拠)
– 倫理的使用義務(ディープフェイク禁止等)

FAQ

Q1. SVDで生成できる動画の長さは最大どのくらいですか?

SVD-XTで最大25フレーム(6fpsで約4秒)です。より長い動画が必要な場合、複数の動画を生成して連結するか、AnimateDiff等のプロンプト駆動型モデルを検討してください。

Q2. 特定の動き(例: 手を振る)を指定できますか?

現在のSVDは動きを直接指定できません。入力画像の構図とmotion_bucket_idで間接的に誘導するのみです。詳細な制御が必要な場合、ControlNet TemporalまたはAnimateDiffを使用してください。

Q3. 実写とアニメ、どちらが向いていますか?

SVDは実写写真で学習されており、リアルな映像に強みがあります。アニメやイラストでも動作しますが、AnimateDiff(アニメモデル対応)の方が適している場合があります。

Q4. GPUなしでSVDを使用できますか?

ローカル実行は難しいですが、Stability AI APIまたはReplicate等のクラウドサービスを利用すれば可能です。料金は1生成あたり$0.05-0.10程度です。

関連記事

出典

コメント