fooocusの使い方・インストール、SDXLのモデル追加

Fooocusの使い方

Fooocusの特徴

StableDiffusionの新モデルSDXL用のwebuiについて覚書してみたい。

StableDiffusionに新モデルSDXLが登場。こいつは、従来のStableDiffusion2.0までが512×512画像を学習していたのに対し、倍の1024×1024画像を対象に学習したというもの。

その結果、よりクォリティの高い画像が生成できるようになったのだ。これが、SDXLで出力した画像。

ああ、きれい。でも1.5系と比べて全然違うかというと?。最初はピンとこなかったけど、しばらくSDXL使ってから、1.5系使ったら、全然違った。もう戻れない。

きれいな反面、メモリをめっちゃ食い、私が愛用するAutomatic1111では、メモリ16G、グラボのメモリ8Gの環境では動かなかった。

SDXL専用のwebui、foocus使えばメモリ少なくても動くっぽいぞ!」という情報を得た私は、早速試してみたのだった。

実際、なんだあっさり動いたぞ…というほどあっけなく動いた。

今回は、自分のパソコン上で動かすやり方と、ColabというGoogleの無料の研究目的ワークスペース上で動かすやり方をまとめた。

Colab使えば、パソコンのスペックがなんだろうと動くので、パソコンパワーはイマイチだけど試したい、という人はやってみよう。

SDXL専用webui、Fooocusをインストール

SDXL専用webui、Fooocusをインストール

以下ははパソコンにFooocusをインストールする手順だ。

自分のパソコンのスペックがいまいちで動かなさそう…という場合は、Colabで動かす方法を見てほしい。

まず、githubのfooocusのページを開く。

GitHub – lllyasviel/Fooocus: Focus on prompting and generating

で、DownloadのとこにあるWindows→Click here to downloadのリンクをクリック

※Mac版はないみたい。

インストールしたい場所に、ファイルを保存する。(適当なフォルダを作って入れたほうがいいかも)

私は、d:\stablediffusion\fooocusというフォルダを作って、その下に解凍した。

7-zipという形式で圧縮されているので、解凍。デフォだと、ファイルのある場所にそのまま解凍になる。

7-zipがパソコンに入ってないという人は、こちらから。

圧縮・解凍ソフト 7-Zip

解凍したら、run.batというファイルがあるのでダブクリで実行。

なお、run_anime.batとrun_realstic.batがあるが、これはrun_anime.batだとイラスト調の画像を生成、run_realstic.batだと実写系の画像を生成するようになる。(内部的には、使用モデルを変えてるだけっぽい?)

モデルのダウンロードも自動的におこなう。6G超のファイルを2つダウンロードするので、ハードディスクにそれなりの空き容量は必要。(30Gくらいは必要っぽい)

あとは待っていれば、勝手にブラウザが立ち上がって使えるようになる。

具体的に言うと、

http://127.0.0.1:7861/

とかで立ち上がる。パソコンのバックグラウンドでウェブサービスが起動する感じだ。

終了は、起動したDoS窓の右上のバツをクリックして閉じる。

ColabでFooocusを起動する方法

colabで動かす

ColabでFooocusを起動する方法

Google Colabサービス上でFooocusを使う方法もある。

いわゆるクラウド環境で、お金をかけずにある程度の時間使える。ネットの向こう側にハイスペPCがあって、間借りできるイメージだ。ある程度無料なのは、研究目的でどうぞ!という意味合いかな…。

手持ちのパソコンのスペックが高くないけど、SDXLで画像生成したいというときに有効だ。

なお、無料で使用する場合、1日あたりGoogle Colabは連続2時間のみ使用可能という制限がある。

ちなみに、Google Colabを使うには、Googleアカウントを作ってログインしておく必要がある。それだけであっさり使えてしまう。

そしたら、以下の手順でFooocusをさっそく試そう。

まず、Fooocusの公式ページを開く。

GitHub – lllyasviel/Fooocus: Focus on prompting and generating

コードがわらわらと書かれた画面が出てくるので、再生ボタンっぽいアイコンをクリック。

メッセージがダーッと出てきて、Colab環境に自動的に環境が構築される。

ぼへーっと見ていると、App started successfull…という行が出てくるので、そこの行の、https://なんたらかんたん.gradio.liveというリンクをCtrlを押しながらクリック。

※Cntlを押すのは、別タブで開くため。

そしたら、あっさりとFooocusの画面が出てきて、そこから2時間使い放題である。

すげぇなColab!

なお、メモリもたっぷり使えるようで、デフォルト状態でプロンプトにgirlとか入れて動かすと、60秒くらいで1枚が生成される。(私のパソコンのローカル上で動かした場合は、デフォルトだとメモリへのモデル載せ替えとかが発生して3分くらいかかった)

生成した画像は、colabの画面に戻って、「フォルダっぽいアイコン」をクリックするとエクスプローラー風のファイル選択画面が出てくるので、outputs>日付>ファイル名上で右クリック>ダウンロードでローカルに画像を取得できる。

1つづつしかダウンロードできない上に、ダウンロード前に画像をプレビューする手段がないのでまあ不便。一括でガッとダウンロードする方法もあるのかな…。

止めたいときは再生ボタンのとこがグルグルしてるのをもう一度クリックで止められる。まあ、2時間放置しても勝手に止まる。

fooocusの使い方

fooocusのコンセプトは、「プロンプト以外は全部やっときます」というもので、デフォだとプロンプト欄と生成ボタンしかない。

Advancedにチェック入れると、右側にオプションが表示される。

input imageにチェック入れるとimg2imgが使えるっぽいけど、まだ試してない。

で、japanese girlとか入れて生成ボタンをクリックするとメッチャ時間かかるけど画像が生成される。デフォで2画像生成されるようになってて、5分とかかかる。

あと、japanese girlだとほぼ着物姿になるので、「girl,tokyo」とかの指定がよさそう。

fooocusでリファイナーを使わない設定

※2023年12月現在、fooocusのデフォルトモデルは、juggernautXLになってて、リファイナーはオフになってるので、以下を考える必要はあまりないかも。

もともと、SDXLの画像生成は2段階になってて、まず画像を作るプロセスがあり、その後Refinerという仕上げプロセスが起動するという構成だった。が、最近はリファイナーナシで動くモデルが主流で、SDXL出た当時のRefiner使用は非推奨、みたいな扱いになってた。

なお、古いバージョンなどでリファイナーを使わないようにするには、こうする。

Advancedにチェックをいれたあと、画面右に出現するAdvancedタブをクリックして、SDXL RefinerをNoneにすればOKだ。

※LoRAsのとこにあるモデルもNoneしたけど、ここはデフォルトのままのほうが生成画像の出力品質があがるっぽい。

Fooocusでモデルをインストール

Fooocusでモデルをインストールするには、civitaiなどでダウンロードしたモデルを、以下のフォルダに入れる。ファイルがでかい(5ギガとか6ギガとかある)ので、ダウンロード時の保存先を以下のフォルダに指定するのがいいかも。

<インストールフォルダ>\Fooocus\models\checkpoints

プロンプト欄の下の「Advanced」にチェックを入れる。

設定画面が現れる。

  • Modelタブをクリック
  • Refresh All Filesをクリック(Fooocus起動中にダウンロードしたモデルをプルダウンに表示させるための手順)
  • Base Model(SDXL only)のプルダウンメニューからダウンロードしたモデルを選択

あとは、プロンプトに文字列を入れてGenerateをクリックすると指定したモデルで画像が生成される。

なお、モデル切り替えには、数分かかると考えておこう。(5ギガ以上のファイルを読み込むので)

Fooocusで画像生成 スタイルを変える

右のStyleにチェックを入れると、内部的にプロンプトが追加されて、作風が変わる。

2024年1月時点のアップデートでは、スタイル名にカーソルを当てると、サンプル画像が表示されるようになり、「これってどういうスタイル?」というのが描画前にわかるようになった。便利。

▲「Misc Manga」にカーソルをあてたとこ。漫画風の猫のサンプルが表示された。

 

ブラウザ上で右クリック→日本語に翻訳しても動いたので、そのほうがいいかも。

ただ、モデル指定(とかRefiner指定)のときは、「日本語に翻訳」を解除しないと動かなかった。

↓キュビズム

↓ポップアート

↓色鉛筆アート

↓アナログ写真

ためしてわかったのは、実写系以外はいまいちかも…という点。厳密に実写系じゃなくても、色鉛筆アートなどはきれいに出てた。SDXLの学習対象として実写系が圧倒的に多いか、もしくはアニメ・イラスト系の学習は難しいか…どちらにして、イラスト系は苦手っぽい。

もうだいぶSDXL系モデルも増えてきたので、実写系とイラスト・アニメ系のモデルを用途に応じて切り替えるのがいいかも。

複数Styleをいい感じにブレンドしてくれる機能

複数のStyleにチェック入れるときは「Fooocus V2」にもチェック入れておくと、「スタイルをいい感じにブレンド」してくれる。

逆にチェック入れないと、意図しない出力結果になるみたいだけど、正直効いてるのか効いてないんだかわからなかったな…。

シード固定して比較した例。Styleの組み合わせによっては、もっと劇的に効果でるのかも。

※シード固定は、Advanced→SettingでRandomのチェック外す

Fooocusのイメージプロンプト

Fooocusには、画像ファイルを渡して生成を指示する機能が大きく4種類ある。(今後増えるかも)プロンプトの下にある「Input Image」にチェックを入れると、使えるようになる。

Upscale or Variation(画像デカくする or バリエーション作る)

細部のディティールを描かせつつ画像を大きくしたい場合や、チョッとだけAIに画像全体を補正したい場合に使う。

バリエーションは画像全体に適用されるので小回りが効かない。「ざっくりやっちゃって!」っていう場合にいいのかも。

Image Prompt

画像を渡して、「こんな感じの絵でお願い」っていうざっくりした指示が出せる。4種類の指示方法が選べる。

  • ImagePrompt 画像からなんとなく読み取って似た感じに仕上げてくれ
  • PyraCanny 画像の輪郭を抽出して、絵を作ってくれ
  • CPDS 画像の輪郭をざっくり目に抽出して絵を作ってくれ
  • FaceSwap 顔をこの画像に差し替えてくれ

ImagePromptは、例えばピカソの絵を指定するとピカソっぽい画像をガンガン生成してくれるようになる…イメージなのだが、実際はそうはならず、画像からAIさんが気まぐれで適当に特徴をチョイスして、似たような画像を生成するという感じになってる。いずれパワーアップしていくのか。

あとは、Controlnetのcannyっぽい簡易の輪郭抽出が2種と、画像の顔を入れ替えるFaceSwap。FaceSwapは、そっくりさんかな?というレベルに顔を似せてくれる感じ。

Inpaint or Outpaint(指定箇所を再生成)

Describe

画像を与えると、画像からプロンプトを逆生成してくれるやつ。

InputImageにチェック入れてから、Describeタブを選択して、画像をドラッグアンドドロップする。Photograph(実写系)か、Art/Anime(イラスト系)を選んで、「Describe this image into Prompt」(この画像の詳細をプロンプトへ)をクリックで、テキストがプロンプト欄に生成される。

今回、「girl, tokyo」で生成した画像を指定したところ、asian woman posing for the camera on the street(アジア女性が通りでカメラにポーズをとっている)というプロンプトが生成された。うむ、まあその通り。

この機能はありがたい。

Inpaintは塗りつぶした箇所のみ再生成する機能。生成画像の手がおかしかった場合に手だけ再生成するのに使ったり、写真などの目をパッチリ目にAIで修正するとかいうときに使える。

Outpaintは、画像の周りにAIが想像する画像の続きをでっちあげる機能である。Outpaintは最近までベータ版で、徐々に精度が上がってきている。

FooocusのFreeU

FreeUというのは、指定すると画像の品質がお手軽に上がるというものらしい。

FreeUとは 推論中に二つのスケール関数を追加することで、容易に、出力を上げることができるメソッド

とか言われても、何のこっちゃ私にはよくわからなかった。

以下は、FreeUを無効、有効にした画像を比較したものだ。プロンプト「girl,tokyo」でシード値を固定して生成した。これを見ても結局何がいいのかわからん。パラメータを詰めれば違いがわかるのかも知れないな。

Seed固定してGenerateしたので、同じ画像が生成されるはずだが、女性がクローズアップされて生成されたかな、という程度の違いしかわからない。背景はだいたい同じものが生成されてるっぽい。

まあ、そのうち良い使い方が発見されたときのために、FreeUの使い方をメモっておこう。

Foocusで、FreeUを使うには、debug optionを有効にする。

まず、プロンプトの下の「Advanced」にチェックを入れておく。すると画面右に各種設定パネルが出現。

画面右に現れるパネルにて「Advancedタブをクリック」、その下で「FreeUタブをクリック」する。

Enabledにチェックを入れてからGenerateすると、FreeUが有効になる。

 

まあ、そんな感じ。作者によると、Automatic1111はモデルの読み込みの効率?が悪いせいでSDXLが動かないらしく、fooocusの仕組みの一部をAutomatic1111側で取り込む予定らしい。

関連)Stable DiffusionのWEBUI Automatic1111の使い方

※2024年1月、試してみたら以前はできなかったのにSDXLがAutomatic1111で動くようになってた。メモリ周りが最適化されたのか。パソコン16Gメモリ、ビデオカート8Gメモリで動作を確認。

タイトルとURLをコピーしました