見出し画像

Stable Diffusionを使ったイラスト作成の記録(20) ~ レイヤー構成を逆にしてみる ~

前回の記事

シリーズ一覧

Layered Diffusion Pipelineを使うためのリンク集

今回試すこと

これまでのレイヤー構成では、描きたいものを初めのレイヤーにおいて、後から画質調整レイヤーを加えるという構成にしていましたが、その逆に、初めに画風レイヤーを置いて、その上に描きたいものを追加するというレイヤー構成を試してみようと思います。

レイヤー構成の変更の動機は、最初のレイヤーでは、プロンプトには描きたいものを指定しているものの、ネガティブプロンプトには画質(画風)をコントロールするためのキーワードが詰まっているため、描画対象と画質(画風)がきれいに分離できていないと感じたためです。

ただし、現状では、この構成は単純なレイヤー構成でなければ、想定外の挙動をしてしまうため、今回は、まずは単純なレイヤー構成で動作確認をしてみます。

スクリプト

今回使うスクリプトは、次のようになります。

# スクリプト(20-1)
negative_quality_tags = """
blurry,
lowres,
duplicate,
morbid,
deformed,
monochrome,
greyscale,
comic,
4koma,
2koma,
chibi,
sepia,
lineart,
sketch,
simple background,
rough,
unfinished,
"""

novel_tags = """
novel illustration,
official art,
"""

sketch_tags = """
colored pencil,
sketch,
"""

# パラメータ(デフォルト値)
until=0.8
strength=0.5

images = pipe(
    num_steps=30,
    size=image_size,
    rand_seed=rand_seed,
    initialize=Randomly(strength=using(0.99999, until=1.0)),
    iterate=[
        Layer(
            prompt=novel_tags,
            negative_prompt=negative_quality_tags + sketch_tags,
        ),
        SPLayer(
            prompt="1girl",
            strength=using(1.0, until=until).then(strength),
        )
    ],
)

第19回のものとよく似ていますが、レイヤーの順序が逆になっています。また、2つのレイヤーのネガティブプロンプトが + で文字列結合されています。

描画対象は"1girl"で、プロンプトしかないため、SPLayerで指定しています。strengthは混合割合で、1.0ならばSPLayerのみが使われ、0.0ならばSPLayerは全く使われません。

パラメータはuntilとstrengthが使われ、描画対象SPLayerの混合割合を変更します。untilまではプロンプトに"1girl"のみが使われ、以降はstrengthで指定した割合だけ"1girl"が使われ、残りは画風レイヤーのプロンプトが使われます。

実験結果

実験結果は、上段から下段に向かって、描画対象レイヤーの強さが弱まっていく方向に変化するように並べられています。最上段は全工程にわたってプロンプトに"1girl"のみが使われ、最下段は逆に全工程でプロンプトに"1girl"が使用されていません。

左列は"1girl"の使用割合を下げるタイミング(until)を変化させた画像で、右列は変化後の"1girl"の使用割合(strength)を変化させた画像が並べられています。

プロンプトの混合割合

seed=1334630829

seed=1334630829

seed=1124067389

seed=1124067389

seed=129970857

seed=129970857

seed=2895285493

seed=2895285493

seed=3545805225

seed=3545805225

seed=1578222291

seed=1578222291

まとめ

レイヤー構成を逆にしても使用可能

シンプルなレイヤー構成で試した範囲では、画像生成した結果、特に異状はありませんでした。

パラメータの種類によって変化の仕方が変わる

4段目の生成画像を見ると、untilとstrengthを変化させた画像では変化の方向性が異なります。これは、混合割合の値自体よりも、値が変化するタイミングの方が、構図に与える影響が大きいことが原因と考えられます。

この記事が気に入ったらサポートをしてみませんか?