2025年4月25日金曜日

OpenSora を M2 Mac 上で動作させる方法

OpenSora を M2 Mac 上で動作させる方法

概要

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 件のコメント:

コメントを投稿