見出し画像

画像とプロンプトを合成しちゃおう

こんにちはクゥ(@kuchan_AI)と申します!
主にTwitterでAIによるイラストの投稿をしています。
普段、技術系の記事は興味はありつつも中々手が出せずにいましたが、今回Twitterで質問があったのでこれは良い機会だなと思いnoteにまとめました。

はじめに

今日紹介するのは、ControlNet(以下:CN)を使った画像とプロンプトの組み合わせの手法です。
先日発見した手法なので、すでに正規で別の手法が存在してたり、他の方がご紹介されているかもしれません。最適解でない可能性があるのでご容赦ください。

どんな手法か

同じ構図で別のイラストが出せる

まずはこちらをご覧ください。

似たような構図の「普通の部屋」と「植物で荒れた部屋」

左の絵は普通の部屋を描いていますが、右の絵はその部屋が植物でいっぱいになっています。
見た目はとても似ていますが、実は、両方とも全く違うプロンプトから描かれています。

それでは、確認してみましょう。

プロンプトの比較

最初に、普通の部屋のプロンプトから。(日本語も添えておきます)

普通の部屋
(warm:1.1), illustrated style, room, background, pastel colors, cozy atmosphere BREAK (furniture:1.1), sofa, bookshelf, table, window, curtains, rug, lighting
(温かさ:1.1)、イラスト風、部屋、背景、パステルカラー、居心地の良さ BREAK (家具:1.1)、ソファ、本棚、テーブル、窓、カーテン、ラグ、照明

まさに普通の部屋のプロンプトといった感じですね。しっかり指示通りに出力されています。

では植物で荒れた部屋のプロンプトを見て見ましょう。

植物で荒れた部屋
(Moss, Forest, Lush Greenery) BREAK (Tree Trunks, Overgrown, Ancient) BREAK (Moss-covered, Damp, Cool) BREAK (Quiet, Serene, Isolated) BREAK (Canopy, Dappled Sunlight, Shadowed Ground) BREAK (Nature, Wild, Untouched, Enchanting)
(苔むす、森、豊かな緑)BREAK (木の幹、生い茂る、古い)BREAK (苔むす、湿った、涼しい)BREAK (静か、静寂、孤立)BREAK (天蓋、薄日、影のある地面)BREAK (自然、野生、手つかずの、魅惑的)

少し違うどころか、部屋要素が皆無です。
本来だと、森が生成されるはず。

このようにプロンプトが生み出す本来の構図を無視し、別の構図を参考にしてプロンプトの影響を与える。これがプロンプトと画像の合成です。

いろんな遊び方ができるよ!

こういうのも作れます。
左がベース

キノコロボットと、キノコと植物で構成された造形

こんなのもできます。

ロボットに乗る女の子、キノコハウス


これも先ほどの部屋と同じように、キノコロボットだけ正規のプロンプト、他は全くの別物です。
こういったものをi2iや画像加工ソフトを使わず、簡単に作れるようになります。

1)実際にやってみよう

少し前置きが長くなりましたが、ここからがやり方です。

前準備

まず前提として、ControlNet v1.1が必須になるので準備しておきましょう。導入方法はwebやYouTube等で調べれば沢山出てくるはずなので、ここでは割愛します。

造形を残したい画像をセット

最初に、CNの単一画像にベースとなる画像をセットしましょう。
今回は体験なので、画像はなんでも大丈夫です。

こんな感じ

パラメータは上記を参考に各自調節。

Control Weightはこの場合0.5ですが、複数のモデルで試したところ、モデルによって効きが結構変ったので、モデルにあわせて調整してください。
Control Weightの数字が小さいほど単一画像の影響が薄くなり、数字が大きいほど影響が濃くなりました。

プロンプトを準備する

上記の画像とは全く違うプロンプトを準備しましょう。
とりあえずキノコの森をテーマにしたサンプルを置いておきます。クオリティプロンプトはつけてません。

ポジティブプロンプト

(Mushroom, Forest) BREAK (Dense, Towering, Colorful Fungi) BREAK (Mossy Ground, Undergrowth, Damp Earth) BREAK (Spores Floating, Fairy Rings) BREAK (Sunlight Filtering, Shadows, Mystical Atmosphere) BREAK (Flora, Fauna, Hidden Life)

ネガティブプロンプト

nsfw, (artist name), (worst quality, low quality:1.4), (bad anatomy:1.4), (realistic)

単一画像に画像がセットされ有効になっている状態で、プロンプトを出力

すると・・・

このように構図が固定された状態で、プロンプトが適用されました。
決まった構図の画像に後からプロンプトで追加出来る事によって、表現の幅もぐんとひろがりそうですね。

おまけ


このままだとネタ扱いされそうなので、小技をひとつ。

書き込みがアップ

一度、出力の途中でわざと中断し、ノイズ状態の画像を生成します。
そのノイズを単一の画像に適用し、同じプロンプトで再度出力します。
すると、右側のような幻想的なイラストが生まれます。

基本的な構成や全体の色彩感は元のベースから引き継がれています。
さらに、ノイズをうまい具合に絵にしようとAIくんが頑張ってくれるので、詳細な描写が自然と出来上がります。

こういった使い方の方が有用な場合が多いと思います。
さまざまな変化が楽しめるので、過去のプロンプトを使って色々と試してみてくださいね!

追記:中断ではなく、ステップ数を最小に弄ると良いそうです。ぶるぺんさんや動物園の方々、ありがとうございます。🙇

おまけQ&A

Q1.SEED固定で出来ないの?

プロンプトが変わると同じ構図は出せません。

Q2.i2iで出来ないの?

出来ると思いますが、相当時間がかかると思います。


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