ゲームを作るとき、都合のいい絵をAIで生成してみようかと思い
StableDiffusionのモデル選定をしています。
今回はKerasCVのStableDiffusionを試してみようとしたときに出たエラーについてです。
一回目に実行した時のバージョン
windows nativeでtensorflow-gpuが提供されているのは
tensorflow2.10までなのでこのバージョンです。
tensorflow-directml-pluginが追い付いてきたらアップグレードしたいですね。
和訳すると、エラーメッセージ「KerasCVを使う時は、Tensorflowのバージョンを最低でも2.11か最新に更新してください。」なので、ひとまず2.11にしてみます。
今度はkeras_cv.src.backend.kerasの中にsavingが無いって出てますね。
Githubを見ると
import * はfromに含まれる全てを読み込む処理です。
config.keras_3はkerasのバージョンが3の時Trueになります、keras3は2023年末頃にリリースされています。
私の環境ではkeras2.11がインストールされていますので、tensorflowのkerasがベースになっていますね。
一応、38、39行目にsavingへの対処が実施されています。
どのように保持しているのか見ていきましょう。
tensorflow.kerasにはsavingが無く、もちろんkeras_cvのbackend.keras直下にもありません。
代わりにbackend.keras.kerasの中にsavingが配置されています。
これではkeras2系で動作しませんね。
keras3にアップグレードして実行してみます。
keras3をインストール中にtensorflow2.11では互換性が無いと言われたので
こちらも2.12にアップグレード
では、早速動かして・・・
この後PCが強制シャットダウンしました。
読み込まれたモデルを辿って見ると、3.2GBのStable Diffusion v1_4を加工したモデルでした。
テストしたPCは一応SDXL版が動いた環境なので十分動くはずでした、Tensorflow以外のbackendで動作するか確認してみることにします。