また ComfyUI の話。
やっと gfx1151 を使う環境で Wan2.2 14B t2v のサンプルワークフローをクラッシュせずに最後まで実行できるようになった。前に TheRock を使って rocm を自分でビルドしたときにやり方を間違えていたので、今日改めてビルドし直していたら、どうしたらいいのかが分かった。
僕の場合は自分で rocm をビルドしたけど、そんなことはしなくてもよくて
ComfyUIを動かしている python 環境で
pip install --index-url https://rocm.nightlies.amd.com/v2/gfx1151/ --pre torch torchaudio torchvision pytorch-triton-rocm --upgrade
こんな感じで torch などと一緒に pytorch-triton-rocm も入れればよかった。それが大事なポイントで、それを知らなかった。
で、僕の場合には
HSA_ENABLE_SDMA=0 TORCH_ROCM_AOTRITON_ENABLE_EXPERIMENTAL=1 python main.py --highvram --use-pytorch-cross-attention
で、ComfyUI を起動して無事に最後まで Wan2.2 14B t2v のサンプルワークフローを実行して金髪のお姉さんのビデオを生成できた。
かかった時間は23分。もちろんまだめちゃ遅いけど、たぶんこれが今普通にできる範囲のgfx1151の性能じゃないかなあ。
途中でクラッシュしないし、8月のときには --use-split-cross-attention --cpu-vae --lowvram で何時間もかかっていたので、ずっとマシになった。
でも遅いので、320x320 とかの小さいサイズに変えて動画を生成して遊ぶのがいいと思う。そしたら7分くらいで生成が終わるので。やっぱり短時間で色々試せるほうが楽しい。
その後、プロンプトを変えて遊んでいたら hipErrorIllegalAddress で何度もクラッシュしたので、以下を書き直す。
ビデオサイズを320x320にする。
rocm ninodesを使ったほうがクラッシュが減っている。でも、映像を長くするとVAE decode でバッチ処理されるせいで途中で映像の色味とかちょっと変わってカクッってなる。
81フレーム(16fps)だとクラッシュすることが多いので、33とか49くらいのフレーム数で2〜3秒の動画にしたら安定してくる。
そんな感じで遊べるなー。クラッシュを減らして楽しもう。
余計なオプションを付けて main.py 呼んでいたせいでクラッシュしていたようにも思えたのでオプション減らした。
8月のときに使うモデルに応じて ComfyUI の起動オプションを変えていて(それぞれのbashスクリプト用意してた)、それで用途に応じて使い分けてクラッシュを避けていたのだけど、今でも結局それが必要かなあという気がしてきた。アプリの安定性、それが一番大事。