概要
OpenSora はテキスト -> 動画が生成できるオープンソースのモデルです
内部的に xformers を使っているためデフォルトの状態で Mac で使うのはかなり大変です
今回はMLX を使って動作させる方法があるのでその方法を紹介します
環境
- macOS 15.4.1
- OpenSora 1.2
- Python 3.10.12
- mlx 0.25.0
注意点
今回紹介する記事では OpenSora のバージョンが 1.2 になっています
最新バージョンは 2.0 でまだ MLX では 2.0 に対応していないので注意しましょう
頑張れば 2.0 に対応することもできると思います
OpenSora のサンプルコードのクローン
-
git clone https://github.com/awni/mlx-examples.git
-
cd mlx-examples
-
git switch open_sora
プロジェクト初期化
-
pyenv local 3.10.12
-
python -m venv .venv
-
source .venv/bin/activate
-
pip install -r requirements.txt
-
pip install protobuf sentencepiece
コード修正
一部動作しないので手動で書き換えます
-
vim utils/video_io.py
diff --git a/open_sora/utils/video_io.py b/open_sora/utils/video_io.py
index e18635c..cceb725 100644
--- a/open_sora/utils/video_io.py
+++ b/open_sora/utils/video_io.py
@@ -28,7 +28,7 @@ def save_video(x, save_path=None, fps=8):
for img in x:
frame = av.VideoFrame.from_ndarray(img, format="rgb24")
- frame.pict_type = "NONE"
+ frame.pict_type = 0
for packet in stream.encode(frame):
container.mux(packet)
生成
-
python generate.py --prompt "A beautiful smile girl" --resolution 240p
初回はモデルのダウンロードがあるので時間がかかります
全部で 10GB ほどあるので注意しましょう
-
cd .cache/huggingface/hub/models--mlx-community--OpenSora-VAE-v1.2
できたもの
やはり人間は苦手なのかもです
マシンスペックがそもそも低いのもありますが各種チューニング (フレームレートやプロンプトなど) をしっかりやれば OpenSora1.2 でもいい動画が作れるのかもです
最後に
MLX を使って M2 Mac 上で OpenSora を動作させてみました
バージョンが古いので精度的には微妙な感じはします
そのうち本体にマージされて 2.0 対応されれば精度も上がるかもしれません

0 件のコメント:
コメントを投稿