見出し画像

今さらながらFreeU V2ノードのアップデートをした話

FreeU V2について、今更になりますがSDXLでの効果とそれに向けてのスクリプトの調整を行いました。

FreeU自体はSD1.5やSDXLで使えるものですが、設定によってはイマイチな画像になることもあり人気はあまり無いものだったりします。

私はずっと脳死状態で適当な設定で使っていましたが、FreeUの機能を振り返って考えてみると既存の方法がSDXLの生成過程に合わない設定だと思い至ったのが今回の改修の始まりです。

SDXLの生成過程についてざっくりと振り返ってみます。
最初の1/3くらいで大まかな構図を作り、残りで完成に向かっていくという感じですね。Geminiにまとめてもらった内容は以下

初期ステップ(高シグマ域)の役割低周波特徴の確立
複数の技術資料が、生成の初期段階(高シグマ域)が画像の「低周波特徴(色、構図など)」を定義する(defines the low frequency features)と指摘している 。この段階の目標は、「全体的なトーンと構造を安定させ、初期のドリフトを抑制する」ことにある 。モデルは純粋なノイズから「漠然とした輪郭(vague outlines)」を形成し 、「粗い属性(coarse attributes)」の確立に集中する 。
この期間は、画像のグローバルな一貫性(Global Coherence)と主要なセマンティクスが確立される、最も重要なフェーズであると言える。

後期ステップ(低シグマ域)の役割高周波特徴の洗練
生成プロセスが進行するにつれて、潜像の構造は「低周波から高周波へとシフト」する 。後期ステップ(低シグマ域)は、「微細なディテール(micro-detail)」、「高周波テクスチャ(high-frequency textures)」、そして「オブジェクトの輪郭の洗練」に焦点を当てる 。一般的に「ディテール」と呼ばれるものは「中~高周波領域」に該当し、これはサンプリングプロセスの中~後期ステップに対応する 。この期間は、画像の忠実度(Fidelity)を高め、テクスチャや微細なエッジを追加する洗練のフェーズである。

Gemini

上の内容は先ほど私が言及していた内容と一致していますが、

前半では低周波特徴が主体、
後半が高周波特徴が主体

と言い換えることができます。

FreeUの基本機能
B1B2:(バックボーン係数): バックボーン特徴を増幅し、より鮮やかなディテール(vivid details)と品質向上に寄与するが、副作用として「テクスチャの過度な平滑化(over-smoothening)」を引き起こす可能性がある。
S1S2:(スキップ係数): スキップ接続からの高周波特徴を調整(通常は減衰)し、「テクスチャの過度な平滑化を最小限に抑え」、ディテールを保持する。

B1B2の設定は低周波領域に関与し、色とか構図の安定化に寄与する、S1S2は高周波領域に関与し、シャープさとか滑らかさとかディティールをの向上に寄与する感じになります。

SDXLの生成過程を加味するとB1B2は最初の1/3だけでよく、S1S2は後半だけで良さそうだという事が想定されます。
これまでのFreeUだとその様な設定が出来ない仕様でした。

また、元々のFreeUで経験する事があった画像の崩れ問題は、スクリプトによって異常な値になっている可能性も考慮されたので、FreeUで設定するB1B2, S1S2のデバッグログを追加する事で、生成時の実測値を出力する事で、安定した結果を出せる様な調整をしてみました。

実際に生成した画像を比較してみます。

<プロンプト>
a detailed portrait of a young girl, sharp eyes, smooth skin texture, 85mm lens, f/1.4, ultra realistic 8k, upper half body

B1B2の設定

通常生成 VS B1B2

全体的な構図は変わらず、若干の奥行と髪の毛と目の色が変わりました。

S1S2設定

通常生成 VS S1S2

若干の質感の変化があります。

B1B2 VS B1B2 S1S2

Start percentを0にしたB1B2 fullの設定です。

通常生成 VS B1B2 full

B1B2 VS B1B2 full

この設定だと、元画像とかなり変わると思います。

ちなみに、S1S2を前半にも適用させるとまた違う画像になったります。

ちなみに元々のノードで以下の設定で生成した画像と、私の修正したノードで同じB1B2S1S2設定で生成した結果

この違いはS1S2のスクリプトに調整を入れているからだと思われます。


いいなと思ったら応援しよう!