見出し画像

xFormersで高速化+高解像度化を行う

xFormersとは?

xFormersとは、PyTorchベースのライブラリで、Transformersの研究を加速するために開発されたものです。xFormersは、NVIDIAのGPUでのみ動作し、画像生成や自然言語処理などのタスクにおいて、高速化とメモリ効率の向上を実現します。しかし、xFormersを使うと、同じパラメータでも異なる結果が得られることがあります。これは、非決定的な演算を行うことで計算コストを削減するためです。この記事では、xFormersの特徴やインストール方法、使い方について紹介します。

xFormersの導入方法

xFormersのダウンロード、インストールはとても簡単で以下のコードを入力するだけです。

!pip install xformers==0.0.18
!pip install -U --pre triton

これによりxFormersが使える状態になっているので通常通りモデルの導入を済ましてください。
(2023年5月時点でバージョンが0.0.20になっています。)

次にautomatic1111の基礎的な部分だけをインストールしておきます。

%cd /content/stable-diffusion-webui
!python launch.py --exit

次にautomatic1111を起動します。事前に基礎的な部分をインストールしてあるのでこのコードからでエラーやモデルの追加した後の再起動時に高速で起動できます。

!python launch.py --xformers --opt-sdp-attention --opt-sdp-no-mem-attention --share --gradio-debug

これで問題なくautomatic1111が起動できればxFormersが使えるようになっています。

xFormersのメリット

xFormersとは、深層学習の分野で人気のあるTransformerモデルを効率的に実装するためのライブラリです。AIイラストは性質上、大量のメモリを消費するという問題があります。メモリの消費量が多いと、モデルのサイズやバッチサイズを制限せざるを得なくなり、クオリティの低下や時間がかかったりしてきます。xFormerを使うことでメモリの使用量を劇的下げる事が出来るので従来のautomatic1111と比較して自由度を上げる事が出来ます。

使い方

hires.fixでのupscale時に今までメモリ不足でエラーを起こしていた解像度は覚えていますか?
それがxFormers利用時はメモリを節約することにより生成が可能になっているはずです。
私の場合1.4倍が限界だったのが2.0倍まで生成できるようになっていました。

生成できる解像度を上げる事でクオリティを劇的に上げる事が出来ます

またどれくらいの解像度が生成できるか試していたところ
時間はとてもかかりましたが1920×2944の化け物解像度まで生成できる事が分かりました。イラスト自体はかなり破綻していますが。

破綻しているが凄いディティール感!!

更に上げてみました。3264×4608の5K相当の解像度です。

高画質カリカリのイラストが作れるのでとても楽しいですよ。
是非導入してみてください。


※この記事はBingチャットのサポートを受けながら書いています。
問題がありましたらご報告ください

この記事が気に入ったらサポートをしてみませんか?