KerasCVのimport

ゲームを作るとき、都合のいい絵をAIで生成してみようかと思い

StableDiffusionのモデル選定をしています。

今回はKerasCVのStableDiffusionを試してみようとしたときに出たエラーについてです。

 

一回目に実行した時のバージョン

tensorflowとkerasのバージョン

windows nativeでtensorflow-gpuが提供されているのは

tensorflow2.10までなのでこのバージョンです。

tensorflow-directml-pluginが追い付いてきたらアップグレードしたいですね。

tensorflow2.10のkeras_cv importエラー

和訳すると、エラーメッセージ「KerasCVを使う時は、Tensorflowのバージョンを最低でも2.11か最新に更新してください。」なので、ひとまず2.11にしてみます。

Tensorflow2.11にアップグレード

tensorflow2.11のkeras_cv importエラー


今度はkeras_cv.src.backend.kerasの中にsavingが無いって出てますね。

Githubを見ると

Github上の問題個所

import * はfromに含まれる全てを読み込む処理です。

config.keras_3はkerasのバージョンが3の時Trueになります、keras3は2023年末頃にリリースされています。

私の環境ではkeras2.11がインストールされていますので、tensorflowのkerasがベースになっていますね。

一応、38、39行目にsavingへの対処が実施されています。

どのように保持しているのか見ていきましょう。

それぞれのsavingの確認

tensorflow.kerasにはsavingが無く、もちろんkeras_cvのbackend.keras直下にもありません。

代わりにbackend.keras.kerasの中にsavingが配置されています。

これではkeras2系で動作しませんね。

keras3にアップグレードして実行してみます。

keras3とtensorflowのアップグレード

keras3をインストール中にtensorflow2.11では互換性が無いと言われたので

こちらも2.12にアップグレード

 

ようやくkeras_cvのインポートに成功

では、早速動かして・・・

実行できたのはここまで

この後PCが強制シャットダウンしました。

読み込まれたモデルを辿って見ると、3.2GBのStable Diffusion v1_4を加工したモデルでした。

テストしたPCは一応SDXL版が動いた環境なので十分動くはずでした、Tensorflow以外のbackendで動作するか確認してみることにします。