【画像生成AI】 Flux.1 の表現力をさらに上げる! SDXL の構図を取り入れる方法
はじめに
こんにちは、きまま / Easygoing です。
今回は、話題の画像生成AIの Flux.1 の表現力をさらに上げる方法を考えます。
お題:戦闘機と新人女性パイロット
今回のお題は、戦闘機で初飛行に挑む新人女性パイロットです。
初めて空に飛び立つ緊張感と、戦闘機の重厚感を同時に表現することに挑戦します。
Flux.1 は質感がスゴイ
Flux.1 は、2024年8月に登場した新しい画像生成AIです。
Flux.1 は従来のAIと比べて 質感がとても優れています。
その圧倒的な質感は、まるで実物と見間違えるほどです。
新人には弱点もある
Flux.1 は画像生成のクオリティを爆上げした大型新人ですが、今の段階では弱点もあります。
それはズバリ、経験が少ないことです。
Flux.1 を前世代モデルの SDXL と比較すると、いろいろなことが見えてきます。
スペックは優れているが・・・
まずは、Flux.1 と SDXL のテキストエンコーダー(言語理解モデル)を比べてみます。
両者には、それぞれ2つずつテキストエンコーダーが搭載されていて、プロンプトの理解力を高めています。
Flux.1
T5-XXL(Text-to-Text Transfer Transformer Extra Extra Large text encoder) 9.6 GB
CLIP-L(Contrastive Language-Image Pre-training Large text encoder) 0.3 GB
SDXL
OpenCLIP-ViT/G(Opensorce Contrastive Language-Image Pre-training Vision Transformer Gigantic) 3.5 GB
CLIP-ViT/L(Contrastive Language-Image Pre-training Vision Transformer Large) 1.5 GB
何が違うの?
どちらも何だかすごそうな名前ですが、両者を比べると 容量に大きな違い があります。
言語理解モデルの理解力は情報量に比例します。つまり、入力されたプロンプトの理解力は新しい Flux.1 の方がずっと良いはずです。
ところが実際に使ってみると、古い SDXL の方がより正確にプロンプトを再現 します。
この違いは経験の差から来るもので、SDXL は 多くのユーザーが独自の追加学習を行った ことにより実践的な理解力が高まっているのです。
Flux.1 は天才肌の新人なのに対して、SDXL は社会経験が豊富なベテランに当たります。
Flux.1 は退屈?
Flux.1とSDXLの理解力の差は、どういった場面で現れるのでしょうか?
まずは Flux.1 の画像をいくつか見てみます。
Flux.1 の画像は、いずれも一枚の絵としては優れています。
しかし、何枚も続けて見ると 何か退屈な感じ がします。
問題は構図にある
上に挙げた写真はどれも単純な構図になっています。
対象物を中央に捉えてカメラを水平に構えた構図で、いわゆる 日の丸構図 と呼ばれるものです。
日の丸構図は、シンプルに中央に視線を集める構図として良いのですが、これが続くと飽きを感じてしまいます。
写真のほとんどは日の丸構図
私たちが写真を撮るとき、水平線が傾くのは多くの場合 NG です。
また、記念撮影ではプロアマの写真家を除いて対象をほぼ中央に捉えて撮影しています。
インターネット上の学習データの多くがこの構図のため、Flux.1 はこれを再現するのです。
SDXL は大胆に撮れる
次に、SDXL の画像を見てみます。
立体感をはじめとした全体の質感は Flux.1 の方が優れていますが、SDXL はカメラを傾けたり被写体の一部を見切ったりして面白い配置になっています。
こうした遊び心があると、絵に動きが生まれます。
SDXL の中でもアニメ系の絵で追加学習を行ったモデル、特に Animagine-XL 3.0 とその派生モデルでは、このような大胆な表現が得意です。
Flux.1 はプロンプトを再現できない
今回は、絵に動きをつけるために次のプロンプトを入力しています。
dutch angle:カメラを傾けて撮影
close up:望遠レンズで撮影
SDXL がプロンプトの入力を忠実に再現して構図が変化した一方で、Flux.1 は実践的な追加学習が少ない のでプロンプトをうまく再現できないのです。
ベテランが補佐すれば最強!?
そこで、Flux.1の弱点をSDXLで補ってみてはどうかと考えました。
Flux.1の得意な質感を活かしつつ、SDXLが構図や仕上げを担当するというアイデアです。
実際にやってみた
それでは実際の絵を見てみます。
まずは SDXL でラフな原画を描いています。
次に Flux.1 で再描画して高解像度化します。この過程で質感が上がるとともに、指なども修正されます。
人物は逆に質感が高くなりすぎてしまうので、今度はもう一度 SDXL で質感を落として仕上げをします。
人物の柔らかさと飛行機の質感の両方を表現するのに、何度か試して丁度良いバランスを探しました。
ComfyUI にチャレンジ!
私が今まで使ってきた Stable Diffusion webUI Forge では、今回の工程を自動化するのは無理だったので、これを機会に ComfyUI を導入しました。
Flux.1 の初期設定は、まゆひらさんの記事が分かりやすくてオススメです。
ComfyUI を初めて学ぶのは難しく、3日ぐらいエラーメッセージと格闘しましたが、ようやく絵が出力できるようになりました。
ComfyUI は VRAM 消費が見える!
ComfyUI を使うと、どの過程で VRAM を使うのかよく分かります。
Flux.1 の実行はVRAM の管理が鍵となり、VRAM の利用を最適化すると絵のクオリティーが上がり、生成速度も早くなります。
ワークフロー
興味ある方がいるか分かりませんが、今回利用したワークフローを掲載します。
SDXL-Flux1-SDXL アニメ用
動作確認モデル
t5xxl-Q8_0.gguf
anima_pencil-XL_v500
blue_pencil-flux1_v001_Q_8.gguf
今回のアニメイラストで使用したワークフローです。
SDXL-Flux1 半実写用
動作確認モデル
T5xxl-fp16
anima_pencil-XL_v500
Flux_Realistic_v1_unet_only
アニメイラストの構図を取り入れた半実写用のワークフローです。
VRAM ごとのオススメ設定
Frux.1 の VRAM 量に応じたおすすめの設定は次の記事にまとめました。
まとめ
Flux.1 は構図が苦手
SDXL のアニメモデルは構図が得意
ComfyUI で柔軟な組み合わせができる
Flux.1 には大きな可能性を感じます。
Flux.1 の学習がもっと進めば、今回紹介したような SDXL に頼るようなテクニックは必要なくなるかもしれません。
その時まで、もうしばらくベテランとの二人三脚が続きそうです。
最後までお読みいただきありがとうございます!
おまけ
戦闘機では、兵装を発射するときに Fire ! といいますが・・・
違う! そうじゃない!
ComfyUI 導入の参考記事
ComfyUI の導入には、こちらの方々の note が大変参考になりました。
とーふのかけら さん
はかな鳥 さん
なかむらしっぽ さん
分かりやすく解説して頂きありがとうございます!
更新履歴
2024.9.23 ワークフローを修正して再度アップロードしました
参考書籍
名画から学ぶ 写真の見方・撮り方 東京カメラ部 2022年10月
English Article
この記事が参加している募集
この記事が気に入ったらサポートをしてみませんか?