スイスのソフトウェアエンジニアMatthias Bühlmann氏は、最近人気の画像合成モデルStable Diffusionが、注意点はあるものの、既存のビットマップ画像を高い圧縮率でJPEGやWebPよりも圧縮することが出来る事を発見し、自身のサイトで公開している。
- Matthias Bühlmann: Stable Diffusion Based Image Compression
Stable Diffusionは、テキスト記述(「プロンプト」と呼ばれる)に基づき画像を生成するAI画像合成モデルだ。このAIモデルは、インターネットから取得した数百万枚の画像を学習することで、テキストから画像を生成する術を身につけた。学習過程で、画像と関連する単語の統計的な関連付けを行い、各画像の重要な情報をかなり小さくまとめ、「重み」として保存する。これは、いわばAI画像モデルが得た知識を表す数学的な値だ。
Stable Diffusionが画像を解析し、重みの形に「圧縮」するとき、画像は研究者が「潜在空間」と呼ぶ場所に存在する。これは、画像が解読されると画像として実現できるファジーな潜在能力のようなものであると言い換えることができる。Stable Diffusion 1.4では、この「重み(weights)」に当たるデータは約4GBだが、これは何億枚もの画像に関する知識を表している。
多くの人はStable Diffusionをテキストプロンプトと共に使用するが、Bühlmann氏はテキストエンコーダーを省き、代わりにStable Diffusionの画像エンコーダー処理によって画像を強制的に取得した。この処理は、低精度の512×512画像を、より高精度の64×64潜像空間表現に変換する。このとき、画像は元の画像よりもずっと小さなデータサイズで存在するが、それでも512×512の画像に展開(デコード)することは可能で、かなり良好な結果を得ることができるのだという。
Bühlmann氏はテストを行う中で、Stable Diffusionで圧縮された新しい画像は、JPEGやWebPよりも圧縮率が高く(ファイルサイズが小さく)、主観的によく見えることを発見した。例えば、ラマを撮影した写真(元は768KB)をJPEGで5.68KB、WebPで5.71KB、そしてStable Diffusionでは4.98KBに圧縮する事が可能だったという。Stable Diffusionの画像は、他のフォーマットで圧縮された画像よりも細部が分解され、明らかな圧縮による劣化が少なくなっているように見えるようだ。
ただし、顔や文字が苦手で、場合によっては、元画像にはないような要素を作り出してしまうこともあるという重大な注意点もあるようだ。また、デコードには4GBのStable Diffusion weightsファイルが必要で、デコード時間も余分にかかるという。
このStable Diffusionの使用は型破りなもので、実用的なソリューションとは言えない物だが、画像合成モデルの新しい未来の使い方を指し示す可能性がありそうだ。Bühlmann氏のコードはGoogle Colabで見ることができる。
コメントを残す