【GPU不要】話題の動画生成ライブラリFramePackをDatabricksで動かしてみた！

皆さん、こんにちは！最近、SNSやニュースで「動画生成AI」の話題を目にする機会が増えましたよね。特に、FramePackのような新しいライブラリが登場し、その可能性にワクワクしているエンジニアも少なくないはず。でも、「試してみたいけど、高性能なGPUが必要なんでしょ？」「自宅のPCじゃスペックが足りない…」と、諦めかけていませんか？

その悩み、Databricksを使えば解決できるかもしれません。この記事では、GPUを持っていない方でも、クラウド環境のDatabricksを使って話題の動画生成ライブラリFramePackを動かす方法を、ステップバイステップで解説します。

# 概要

## FramePackとは？

FramePackは、Pythonで簡単に動画生成を行うためのライブラリです。他の動画生成ツールと比較して、下記の特長があります。

* **長時間の生成:** 画像1枚から最大120秒の動画生成可能
* **低メモリ:** 最低6GBのGPUメモリで動作可能
* **高速生成:** 1フレームあたり数秒で生成可能

## なぜFramePackをローカルで試すのは難しいのか？

FramePackのような最新の動画生成ライブラリは、その多くが大量の計算処理を必要とします。特に、高画質な動画や長時間の動画を生成しようとすると、高性能なGPUがほぼ必須となります。

* **GPUのコスト:** 高性能なGPUは非常に高価であり、個人で購入するにはハードルが高いです。
* **環境構築の手間:** GPUドライバのインストールや、CUDAなどの関連ライブラリのセットアップは、時に複雑で時間がかかります。
* **PCスペック:** そもそも、手持ちのPCにGPUを搭載するスロットがなかったり、電源容量が足りなかったりするケースもあります。

## Databricksで簡単にFramePackを試す方法

Databricksは、Apache Sparkをベースとした、統合データ分析およびAIプラットフォームです。クラウド上で提供されており、大規模なデータ処理や機械学習モデルの開発・実行環境を簡単に構築できます。

* **GPUインスタンスが使える:** Databricksでは、GPUを搭載した仮想マシン（クラスター）をオンデマンドで利用できます。必要な時に必要なだけ、パワフルな計算リソースを借りることができるのです。
* **簡単な環境構築:** Webブラウザから数クリックでクラスターを作成でき、ライブラリのインストールもノートブック上で簡単に行えます (%pip install ...)。面倒な環境構築作業から解放されます。
* **従量課金制:** 使った分だけ料金が発生するため、高価なハードウェアを自前で購入・維持するよりもコスト効率が良い場合があります。（無料トライアルもあります！）

# Databricks上でのFramePackの利用方法

FramePackはフロントエンドフレームワークのGradioを使用していますが、
Databricks上でGradioを動かすにはひと工夫必要です。

## 1. ノートブックの作成:

左側のメニューから Workspace を選択します。
任意の場所に移動し、Create > Notebook を選択します。
ノートブックに名前を付け、デフォルト言語を Python に設定し、先ほど作成したGPUクラスターにアタッチします。

## 2. FramePackのインストール

ノートブックの最初のセルに以下のコマンドを入力し、実行します。

```python
!git clone https://github.com/lllyasviel/FramePack
%cd FramePack
%pip install -r requirements.txt

# gradioのバグを回避するため、バージョンをアップグレード
%pip install "gradio==5.25.2"
dbutils.library.restartPython()

# FramePackフォルダに移動
%cd FramePack
```

## 3. 環境準備

セルを追加し、下記のコードを貼り付けます。

```python
import sys
from dbruntime.databricks_repl_context import get_context

ctx = get_context()
# 使用するポート番号
port = 8099
# DatabricksのリバースプロキシのURLパス
proxy_path = f"/driver-proxy/o/{ctx.workspaceId}/{ctx.clusterId}/{port}"
# DatabricksのリバースプロキシのURL
proxy_url = f"https://{ctx.browserHostName}{proxy_path}/"
print(proxy_url)
```

ここで表示されたURLは、後でFramePackにアクセスする際に必要になります。

## 4. FramePackのソースコードをコピー

下にセルを追加し、`FramePack/demo_gradio.py`の中身を貼り付けます。

## 5. FramePackのソースコードを編集

そのままではFramePackを動かすことが出来ないため、 先ほどのセルを編集して動くようにします。

```diff
@@ -2,7 +2,7 @@ from diffusers_helper.hf_login import login

 import os

-os.environ['HF_HOME'] = os.path.abspath(os.path.realpath(os.path.join(os.path.dirname(__file__), './hf_download')))
+os.environ['HF_HOME'] = '/local_disk0/tmp/hf_download'

 import gradio as gr
 import torch
@@ -28,18 +28,6 @@ from diffusers_helper.clip_vision import hf_clip_vision_encode
 from diffusers_helper.bucket_tools import find_nearest_bucket


-parser = argparse.ArgumentParser()
-parser.add_argument('--share', action='store_true')
-parser.add_argument("--server", type=str, default='0.0.0.0')
-parser.add_argument("--port", type=int, required=False)
-parser.add_argument("--inbrowser", action='store_true')
-args = parser.parse_args()
-
-# for win desktop probably use --server 127.0.0.1 --inbrowser
-# For linux server probably use --server 127.0.0.1 or do not use any cmd flags
-
-print(args)
-
 free_mem_gb = get_cuda_free_memory_gb(gpu)
 high_vram = free_mem_gb > 60

@@ -402,8 +390,10 @@ with block:


 block.launch(
-    server_name=args.server,
-    server_port=args.port,
-    share=args.share,
-    inbrowser=args.inbrowser,
+    server_name="0.0.0.0",
+    server_port=port,
+    inbrowser=True,
+    root_path=proxy_path,
+    inline=False,
+    debug=True,
 )
```

## 6. FramePackの起動

あとはノートブックを実行すると、Databricks上でFramePackが起動します！

※FramePackのアプリにアクセスするには、ステップ3で表示されたURLをクリックします

# 実際に動かしてみた！

アプリケーションにアクセスし、画像とプロンプトを入力すると、動画が生成されました！

<iframe width="410" height="730" src="https://www.youtube.com/embed/iJra-PmUB6Y" title="FramePack Demo (Whale shark in Aquarium)" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>

使用したプロンプトはこちら↓

```
A whale shark and various fish swimming in a large aquarium tank.
```

# まとめ

この記事では、**手元にGPU環境がない方でも、DatabricksのクラウドGPUクラスターを利用して、話題の動画生成ライブラリFramePackを試す方法**を紹介しました。

Databricksを使えば、高価なハードウェア投資や複雑な環境構築の手間なく、最新のAI技術を手軽に体験できます。動画生成は、これからますます発展していく注目の分野です。ぜひこの機会にDatabricksを活用して、あなただけのオリジナル動画を作成してみてはいかがでしょうか？

この記事が、皆さんの動画生成への第一歩を踏み出すきっかけになれば幸いです。

---

最後まで読んでいただきありがとうございました！もしこの記事が役に立ったと思ったら、ぜひいいねをお願いします！