生成AIグラビアをグラビアカメラマンが作るとどうなる? 連載記事一覧
FLUX.1 Toolsとは?
2024年11月24日に Black Forest Labs から FLUX.1 Toolsが発表された。内容はDepth、Canny、Fill、Reduxの4種類。
DepthとCannyはお馴染みControlNet、FillはInpaint / Outpaint、そして聞き慣れないReduxはIPAdapter的な感じで元画像にある情報を生成画像に反映させる仕掛けだ。
これらは全て基本的にFLUX.1 [dev] と[pro]用。ReduxのみFLUX 1.1 [pro]とUltraでも使用可能だ。ただし1.0 [pro]も含め、checkpointは公開されておらずAPI経由となる。従ってローカル環境で生成可能なのはFLUX.1 [dev]のみ。
以降、順番に説明したい。なお生成環境は全てComfyUIを使っている。これだけいろいろ出てくると、AUTOMATIC1111やForgeは対応しきれず最近はGitHubの更新も止まっている。残念だがある意味仕方ないところか!?
FLUX.1 Tools / Depth, Canny
この2つはControlNetでお馴染み。Depthは深度情報でCannyは線で生成する画像の構図を固定する。
Workflow的には同じなのでDepthで紹介するが、他のControlNetと大きく違うところは、
フルcheckpoint版はFLUX.1 [dev] の替わりに使うのでチューンされたcheckpointなどが使えなくなる
2を避けるためLoRA版を使うのが無難
オリジナルWorkflowのままだと出力解像度/縦横比は元画像と同じになる
この4つ。
まず1について。従来であればApply ControlNetと言うNodeがあり、それにDepth Modelと深度情報画像を与え、ConditionとKSamplerの間に結果が入る。分かりやすいように2つ並べたWorkflowが以下となる。背景青が従来方式、背景緑がFLUX.1 Tools方式。
対してFLUX.1 Tools方式だとこのApply ControlNetに相当する部分がInstructPixToPixConditioningに置き換わり、DepthのModelをLoadする項目が無く、該当する部分がModelの並びにLoRAで入っている。checkpoint版の時は、checkpoint自体がDepth対応だ。
何故そうしたかは不明だが、checkpoint版だとチューンされた他のcheckpointが使えなくなるので不便極まりない。LoRA版だと他のcheckpointやLoRAなどとの相性が気になるところ。
加えて製作側からみれば4も問題。一般的に元画像と生成画像の解像度/縦横比は無関係で、縦横比が異なる場合はトリミングされた深度情報が適応される。生成画像より低い解像度や高い解像度を使っても比率的に適応し出力。
ところがこのFLUX.1 Tools方式のDepthだとwidth / heightを与える項目が無く、元画像の解像度のまま生成される。つまり832x1216の出力を得たければ、元画像も832x1216にしなければならない。精度と言う意味ではこちらなのだろうが、どうにも使いづらい。ということで改良版のWorkflowは下記の通り。
InstructPixToPixConditioning(緑/下)のLatentを外して、Empty Latent Image(青)からwidth / height指定に変えている。これで任意のwidth / heightで生成可能になる。Bypass部分は他のLoRA。緑の部分がFLUX.1-Depth-devのLoRA版となる。
checkpointは普段使っている自家製のに変えてあるが見た感じだと影響は無さそうだ。いずれにしてもこの実装は個人的にはあまり関心しない。
FLUX.1 Tools / Fill
FillはInpaint / Outpaint。元画像の内側をマスクすればInpaint、外側をマスクすればOutpaintとなる。Workflowは以下の通り。こちらは専用のcheckpointを使う方法で他とも大差無し。仕上がりはそこそこ良い。今回はハロウィーン用に作った画像をInpaintで背景をクリスマス用に変えてみる(笑)。
Load Imageの上で右クリックすると Open Mask Editor の項目があり、これで開くとマスクエディタが開くので背景を塗り潰し保存すればマスクが作られ、これを使ってInpaintする。Promptは”photo style, A room decorated for Christmas. Many Christmas presents. It's snowing outside the window.”とかでいいだろう。背景がクリスマス風に入れ替わった!
FLUX.1 Tools / Redux
Reduxは元画像にある情報を使い画像を生成するため、IPAdapterと似ているのだが、Reduxの方が効きが強い(ただし顔は似ない)。Depth(FLUX.1 Toolsではなく、他の一般的なDepth)と合わせるとほぼコピー機に(笑)。
Xなどを見ていると、昔SD 1.5やSDXLで使った画像を元画像にしてRedux。FLUX.1 [dev] 調の画像が出来上がり、リマスタリング的に使われることもあるようだ。もちろん元画像は実写でもOK。
Redux + Depthそして顔LoRAのコンビネーションだと、元画像の絵柄ほぼ同じで別人バージョンが出来てしまう。悪用されないか心配だったりする……。
今回締めのグラビア
今回締めのグラビアは、連載1回目にSD 1.5で作り掲載した画像をリマスター。
FLUX.1 fillで衣装をサンタ風、背景にクリスマスツリー…と2回Inpaint。それぞれのPromptは以下の通り。
これで出来上がった画像をRedux + DepthでFLUX.1 [dev] 風に複製、仕上げはDetail DeamonでUpscale。リマスタリングと言うよりほぼ作り直しだ。SD 1.5版と随分雰囲気が変わった。
これだけやるなら初めからPromptで書いた方が早いな(笑)。あまり実用的な例ではないものの、こんな遊び方もあるということで。