SeeSRと戯れる20250310

ブログ コンピュータ
ブログ

超解像AIのSeeSRをローカル環境で構築することが出来ましたが、私の環境ではVRAM不足のせいか1枚の画像生成に数十分ほどかかります。

マシンパワーが不足するのであれば、有るところから借りればよいと思いGoogle Colabで実行環境を構築を心みるも上手く動作出来ません。pipで導入するパッケージのバージョンの関係だと思われます。Google Colabは自分でpythonのコードが書く分には良いですが、誰かが構築してくれた環境を再現するには難しい部分があります。特にAI関係に使われる技術は日進月歩でライブラリ関係の破壊的変更も普通にあったりします。そうなると、コードを最新の状態に維持できるスキルが無いと実行環境の維持も難しいソフトウェアということに成ります。実行環境を含めて仮想化する方法を習得したいところです。

Colabは諦めてローカル環境で実行しますが、メモリの利用状況はVRAMの12GBをほぼ限界まで利用し、共有メモリでメインメモリが40GBほど、それでも足りないらしくCドライブへのアクセスが激しく発生しています。

良く動作しているなという感じがあります。処理する画像サイズが1100x1600pxぐらいの画像なのですが、どうやらこのサイズが大きすぎるのだと思います。テスト用のプリセット画像が128x128pxですので想定外のサイズなのかもしれません。

ただ、仕上がった画像は生成AIぽく、つぶれてしまったディティールを画像生成で再現することで、かなりそれらしい絵が出来上がります。画像の良し悪しは人それぞれですが、Real-ESRGANやReal-CUGANなどGANを使った超解像とは違った画像が生成されている感じがします。

実行するとプロンプトらしきテキストが表示されます。画像に何が描かれているか認識しテキストに起こしているのだと思われますが、この辺りの精度も画像の仕上がりにかかわってくる感じがします。

いずれにしても何を学習したmodelかで、出来上がる画像が異なりますので、model選びが重要となります。modelに対し個人的にファインチューニングで追加学習などを考えると、ストレージの容量や、回線速度、GPUを軸としたPCのマシンパワーなどを確保したいところです。

とは言えSeeSRのメモリの使用状況をみるとVRAMが32GB搭載されたグラフィックボードでも不十分な感じがしますので、設定が間違っているか、使い方が間違っているのか何れかだと思われます。

話は変わりまして、個人で作成してるファイル管理ソフトにCSVのインポート・エクスポートの機能を追加してみました。

SQLiteのテーブルの内容をCSVに書き出して、他のアプリにデータ移行することが目的です。

CSVで出力された項目に改行が含まれていて破綻しました。カンマ以外でもケアしないといけない部分があることを知り、簡単だからといって自前でコードを書くものではないなと感じました。

あと、エクスポートは良いのですが、インポートした際UI側を連動させる必要があり、バインドしているコレクションを一旦空にして再読み込みが上手く動作していません。アプリケーションを再起動していると表示されますので、データベースへのインポートは成功している模様です。

操作性は悪いですが、インポート後アプリケーションの再起動を行う仕様にするのもアリかもしれません。(何回もインポート・エクスポートすることもなさそうですし。)

これで、Debugで登録したファイルの情報をRelese版に引き継ぐことが出来ます。

コメント