最近Stable Diffusionをグーグルコラボで起動させると、
起動後の画像生成のタイミングで「NotImplementedError」
というエラーメッセージが表示され画像生成が行うことが
できない現象が発生しています。
対処方法を解説しているので上記エラーが発生している方は
参考にしてみてください。
また「NotImplementedError」以外のエラーで画像生成ができなく
なっている場合は下記のエラー対策を試してみてください。
Pytorchが原因で起こるエラー対策
https://yomutoku.website/2023/10/22/stable-error-10gatu/
謎のエラーが起こったら真っ先に試すこと
https://yomutoku.website/2023/10/10/stable-diffusion-error2/
エラーの解消方法
グーグルコラボの最初にこちらのコードを追加し、
実行してください。
コード:「!pip install -U xformers –index-url https://download.pytorch.org/whl/cu121」
※「」は不要なので!から121までの部分をコピペして貼り付けてください。
コード追加し、実行した後は今まで通りの方法で起動させて
ください。
今回の「NotImplementedError」に該当する場合は
この方法で恐らく解消され、画像生成が行えるはずです。
なんでエラーが起こったの?
今回のようなエラーが発生する原因は、
Stable Diffusionを起動させる際に、
「xformars」という処理を高速化させる
機能も起動させているんですけど、
「xformars」のような画像生成関連は「CUDA」という
プログラミング言語が担当していて、
1、グーグルコラボと「CUDA」の間にバージョンにズレがでる
(片方だけバージョンアップする等)
2、この状態で画像生成しようとすると生成過程で高速化機能の
「xformars」の出番が来た際に、
「私の主であるCUDAはこのバージョン対応していないからできません、
みんなにはNotImplementedErrorって伝えといたらたぶんわかるはず」
3、「NotImplementedError」が表示されて生成ができない状況が発生する
このような内部事情になっています。
ややこしいのが高速化担当の「xformars」ではなく上司ポジションの
画像生成担当の「CUDA」の方が原因というところですね。
「上がだめっていっているからできません、そういう決まりだから
できません」
みたいなどこかで見聞きしたことがあるような言い分ですね。
まあそういうわけで「CUDA」のバージョンを変更して
あげる必要があって、変更してあげる指示文が、
「!pip install -U xformers –index-url https://download.pytorch.org/whl/cu121」
になります、
最後の「cu121」っていうところが「CUDA」のバージョンを121にしてください
みたいな意味合いになります。
まとめ:免疫をつけましょう
Stable Diffusionで画像生成時に発生するNotImplementedError
の原因と解消方法について説明しました。
エラーが起こると焦ったり不安になりがちですが、
定期的に起こるものなので免疫をつけるイメージで
慣れた方が精神的に楽なように思います。
「また起こったな、まあ対処方法はあるはずだからゆっくり考えるか」
くらいの気持ちでエラーと付き合っていきましょう。