見出し画像

FreeUのカスタムノードを一部修正した話@ComfyUI

FreeUを使用してみると、彩度とか良くなる場合もありますが、期待したのと異なる画像になりやすいカスタムノードかと思います。

過去に記事を作成したこともありますが、人によって数値が違ったり、その数値を試しても期待と異なったりする事があります。

FreeUの設定値について(実写系モデルで試してみた):SDXL(pony)forgeshiba*2

ComfyUIにはFreeUのカスタムノードが二つあります。

FreeUFreeU V2ですね。

それに対応するスクリプトは以下の部分に相当します。

ComfyUI/comfy_extras/nodes_freelunch.py at master · comfyanonymous/ComfyUI

カスタムノードは以下。

これらになります。ちなみにV2は何が違うのか解析してもらいました。
GPTにまとめてもらった表は以下です。

過去にFreeUについて記事を作成していますが、おそらくはV1を見ていた可能性があります。V2の方が変な絵が出にくい印象です(使ってみた印象)。

さて、新版ForgeのFreeUを見ると若干異なる部分があることが分かります。

「Start steps]「Endsteps」が追加されていますね。
ちなみに新版Forgeの方はV2を採用しているようです。
でも旧版はV1だったと思います。

新版ForgeのFreeUのスクリプトは以下に配置されていましたので、それを参考に、ComfyUIでもこの部分を追加出来ればと考えました。

stable-diffusion-webui-forge/extensions-builtin/sd_forge_freeu/scripts/forge_freeu.py at main · lllyasviel/stable-diffusion-webui-forge

GPT壁打ちをし、10数回の試行が必要でしたがとりあえず動くものが出来ました。

この試行では、Forgeと同じようにStart stepsで設定するとうまく動かず、Kyoha Deep Shrinkの方法を採用することでなんとか反映させることができました。

この修正を加えたスクリプトは以下です。V2のみのものにしています。

このスクリプトをカスタムノードのフォルダに配置するとノードが追加されます。

以下のような感じです。V2のロジックを使用しています。

以下、適当な値を入れたものです

シード値を固定したものです。

元画像

Start 0

Start 0.001

Start 0.3

Start 0.5

Start 0.8

ということで、FreeUの効果範囲を変えることができたと思われます。

ここでも、

Start 0とそうでない場合


で画像の変化がとても大きいことが分かります。

数値自体はかなり適当でしたが、V2は良い感じに対応してくれているようです。

<設定の調整>

設定の効果は以下を参照にすると良さそうです。

b1 の調整:

人物のディテール(目や髪の質感)を適度に強調。
値を大きくしすぎると過度にシャープになり、不自然になるため 1.2 程度が適切。

b2 の調整:

全体の形や構造(顔の輪郭や体のライン)を自然に維持。
値を小さめにすることで、背景や大きな構造が目立ちすぎず、人物が際立つ。

s1 の調整:

肌の質感や輪郭を保つため、1.0 でニュートラルな設定に。
高すぎるとエッジが強調されすぎ、低すぎるとぼんやりするため、バランスが重要。

s2 の調整:

高周波数成分を抑え、ノイズを減少させることで滑らかな肌を表現。
0.8 程度であれば、ノイズを抑えながら微細なテクスチャを残せます。

リアル系とアニメ系などで異なるのかなと感じました。

ちなみに、FreeUとKyoha Deep Shrinkを併用した上で、WaveSpeedも使用したりしましたが、生成自体は問題ない印象です。

最適な値については、まだ模索中ですが、汎用性が高まったかと思います。

<以前の記事で、言及されていた数値を試してみました>

※以前の記事で人物がぼやけてしまった設定です。
※上とシード値は同じで、FreeUとKyoha Deep ShrinkとWaveSpeedを併用

この設定

Start 0.01

end 0.5

この設定では、構図がもともとのシードから大きく変わりましたが、人物が描出されるようになりました。色が強く出ている場合はendを早めることで改善しました。

WaveSpeedをだけの場合

これらは、モデルによって効果が異なるので、いろいろと試してみると面白いかと思います。


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