
昨天本來在研究 AI 文字生成語音的應用,意外看到阿里巴巴開源的文字生成影片 (text to video, T2V) 模型 – 通義萬相 Wan 2.2, 畫質很不錯,就來研究看看要如何在本機使用。T2V AI 就是輸入文字提示詞,AI 就依提示詞的描述生成影片。
我發現有一款 app – ComfyUI 可以使用 Wan 2.2,我就在我的 MacBook M1 Pro MAX 64GB (MPS GPU 加速) 筆電上架設。不過一開始沒有很順利,遇到 3 個較大的問題。
問題 1,生成跑一半出現 MPS 不支援 fp8 e4m3fn 的錯誤:這是因為現今主流運行 AI model 加速的 GPU 是 nVIDIA,而不是 Apple MPS. 例如 PyTorch 這個 GPU 加速軟體,目前僅部分實作 MPS 的支援。也就是說,拿一台 MacBook 想跑當今的 AI 模型,還得碰碰運氣,如果軟體實作不支援,就不能玩
好在我研究了一下 Wan 2.2 有 fp16 的模型,PyTorch MPS 有支援。
問題 2,生成影片畫面詭異
:就是 ComfyUI 可以跑 Wan 2.2,也生成影片,但影片卻是一片片詭異畫面、色彩、閃爍,完全看不出跟輸入提示詞有何關聯。後來研究才得知,影片生成模型的輸入解析度不能任意設定,要依模型「指定的解析度」才不會生出詭異的影片。這一點的確是個陷阱
因為影片生成非常吃記憶體,又要跑很久,所以很容易就會想去試低解析度,快一點看到生成結果。
問題 3, 記憶體不足:現在真是大模型的時代,差不多是 2012 年的深度學習開始以及 2022 年的 ChatGPT LLM,人們發現大參數模型所帶來的爆發式 AI 進步,因此大容量記憶體的重要性也可比肩 GPU. 記憶體夠大才能載入這些大模型。特別是影片生成模型,除了模型本身容量大,生成的過程又要吃好幾倍的記憶體!
像我的 64GB MacBook 跑 Wan 2.2,起初一直炸記憶體,只能跑 256×256 的生成,跑 512×512 以上就一直炸掉,但 Wan 2.2 5B 的輸入解析度要用指定的 1280×704,不然只能生出詭異的____影片。有一次跑生成,索性跟它拼了,設定解除 ComfyUI 記憶體上限,讓它無限制用硬碟空間作記憶體 (swap),結果跑到 OS 都掛了
但我還是覺得不太合理,為何別人 32 GB 的 MacBook 都能跑 Wan 影片生成,我的 64 GB 卻一直炸記憶體。後來發現有人研究出要用舊版的 PyTorch 2.8.0 才不會一直炸記憶體。
我換成 PyTorch 2.8.0 後,終於成功生成 5 秒的影片!雖然記憶體也還是在炸,炸到 90 幾 GB 都開始用 swap,不過至少沒有再往上炸到 ComfyUI 或 OS 掛了。而這 5 秒影片,在我 MacBook 就跑了 74 分鐘!不必驚訝跑這麼久,我看別人也差不多這麼久,這時代的硬體跑這種 AI 的確還頗勉強。
擷圖就是在我本機運作 ComfyUI + Wan 2.2 5B 文字生成影片的介面。還有我的作品
:”An orange cat walks”