見出し画像

ControlNet を使う上で、ちょっと変わった工夫をする話

 こんにちはこんばんは、teftef です。今回はつい最近公開された ControlNet の利用法、、、ではなく、少し工夫して使おうという記事です。ぶっちゃけ使い方や論文は今更主が説明するより、ほかの方の記事を見てみたほうがよく、また ControlNet 作品を淡々と並べていくのもつまらんと思い、今回書いていくのは少し変わった使い方、元画像の集め方などについてです。3Dやボーン画像の編集技術、線画を書く技術がなくても、生成画像を思った通りに(高精度に)「コントロール」する工夫です。
 私もまだ初学者であり、説明が間違っていたり勘違いがある可能性が 0 ではないということをご了承ください。ぜひコメントなどをいただけたら幸いです。
それでは行きます。

↑この猫の人 Gradio 嫌いらしいです

使い方

 まずは使い方ですが、こういったわかりやすい記事があふれるほどわんさか出ているのでこちらからどうぞ

controlNetの機能

 多くは語りません。やっていることを大まかにいうと入力を条件として画像を生成しようというものです。ボーン画像、セグメンテーション画像、線画、depth (深度) 画像 をベースに自然言語をguidanceとして画像生成することができます。今回は大きく分けて2つの機能 : ボーン画像、線画に大別して、それぞれの機能で主がやっている画像生成の方法についてです。

① : ボーン画像 (Pose2Image)

 公式の Github にも書いてあるようにこのように、Openposeを用いた入力画像から色がついた棒人間を作成し、この棒人間のポーズに沿った画像を生成することができます。Openpose は人の姿勢と動きを検出するためのライブラリで、カメラやビデオから得られた画像を処理し、人の体の各部位や関節の位置を検出することができます。これにより、人の体のポーズや動きを認識することができます。他にも姿勢推定、顔検出、手の検出、姿勢追跡などの機能を提供しています。

利用規約と権利について 

 それでは元画像をアニメ画像などを使って使おうとするとうまくポーズを出してくれず、実際の人間を使わないとうまくいかないことが多いです。しかし実際の人間の画像を使うときにはその画像と人の肖像権、プライバシー、著作権、利用規約などに十分に気を付ける必要があります。例えばスポーツ解析を使用する場合は注意が必要だったりします。また Openpose では商用利用は一切禁止なのでお気を付けください。

3Dソフトをつかって作る

 ボーンや3Dモデルを利用してアバターを自分で作ってしまうという方法があります。確かに ArtPose や Blender などの3Dモデルを使って人形を制御してポーズを取らせ、レンダリングするという方法があります。

3Dモデルを利用したポーズ作成の例

Adobe Photoshop 、CLIP STUDIO を使う

 結局ボーン画像は関節とパーツの色と形をベースに画像生成するので、元画像をボーン画像として画像生成することも可能です。なので、楕円ツールを使ってパーツと関節を作成し、画像とすることで好きなポーズを取らせることができます。

問題点

ネットに落ちている画像を使うと権利や規約がめんどう。で、3Dソフトや画像編集ソフトを0から学んでちまちまやるのもめんどう。しかもこれらを使って制作されたポーズはやはり「自然じゃない」と思うことが多々あります。
 人間の体は骨と筋肉、関節が繋がっていて、例えば手を上げただけでも腕の筋肉のみを使っているわけではないのです。人体の仕組み (どこがどのように動くのかやどのように連動しているのか) は美術解剖学を学ぶことで得られる知識であり、実際にプロのイラストレーターの方などはこの学問を熟知している方が多いです。

もっと自由に利用できる素材

 それでは本題です。権利も規約もなく美術解剖学の知識がなくても自由に使えるもの。そうそれは自分の体です。自分の写真を Controlnet に突っ込むのは問題ないです。しかも自分の体のポーズは自由に変形できるので、自然なポーズを作ることができます。

作成

 というわけで用意するのは

・スマホ
・パートナー(親や彼女、付き合ってくれる友達)
・なければスマートウォッチや遠隔でスマホのシャッターを切れるもの
 
です。主は2つ目がないので3つ目で書いていきます。(2つ目が用意できる方は撮ってもらいましょう。) 全身タイツである必要はないのですが、だぼだぼの服を着るのはあまりよくないです。それではスマホを壁に立てかけ、自撮りモードにしてポーズをとり、スマートウォッチを使ってシャッターを切りましょう。

これ使ってる

 そうして作成した画像を Controlnet を用いてポーズ画像を取り出します。(もちろん自撮りを突っ込んでもいいですが今後の汎用性のためにポーズは保存しておくことをお勧めします。) ポーズですが、 S字を意識すると美しい(らしい)のでなるべく体をくねらせることを意識しましょう。写真を撮るときによくモデルさんにS字を意識するように要求します。

画像生成結果

 こうして生成されたポーズと画像を見てみましょう。ポーズ画像は使っていただいても大丈夫です。そのうち全部公開します。

pose_anger

((masterpiece, best quality)),(((deautifull detailed face))),(beautiful eyes),,white sailor school uniform ,bold line,beautiful hands,(((many folowers around her))),sky,bangs, ,(((((petals fall))))) ,(((((folower))))),yellow ribbon,light blue long hair, (smile),(((lying on her back on bed))),

(low quality, worst quality:1.4),room,(bad anatomy), (inaccurate limb:1.2),bad composition, inaccurate eyes, extra digit,fewer digits,(extra arms:1.2),hat,wings,bad guns,(bad mouth),bed,bad mouth,heart mouth,heart hands,heart pose

pose_lean

((masterpiece, best quality)),(((deautifull detailed face))),(beautiful eyes),white sailor school uniform ,bold line,beautiful hands,(((many folowers around her))),sky,bangs, ,(((((petals fall))))) ,(((((folower))))),yellow ribbon,pink long hair, (smile),(((lying on her back on bed))),

(low quality, worst quality:1.4),room,(bad anatomy), (inaccurate limb:1.2),bad composition, inaccurate eyes, extra digit,fewer digits,(extra arms:1.2),hat,wings,bad guns,(bad mouth),bed,bad mouth,heart mouth,heart hands,heart pose
((masterpiece, best quality)),(((beautifull detailed face))),((((lean on piano,sheet music)))),((((golgen angel ring,feathers,flowers)))),(beautiful eyes),white sailor school uniform,beautiful hands,(((many folowers around her))),bangs,yellow ribbon,(((light blue long hair))), (blush smile),look at the viewer,slightly smile,sky

(low quality, worst quality:1.4),(bad anatomy), bold line,(inaccurate limb:1.2),bad composition, inaccurate eyes, extra digit,fewer digits,(extra arms:1.2),hat,wings,bad guns,(bad mouth),bed,bad mouth,heart mouth,heart hands,heart pose

pose_hanikami

((masterpiece, best quality)),(((deautifull detailed face))),(beautiful eyes),china dress,bold line,beautiful hands,(((many folowers around her))),sky,bangs, ,(((((petals fall))))) ,(((((folower))))),yellow ribbon,light blue long hair, (smile),(((lying on her back on bed))),

(low quality, worst quality:1.4),room,(bad anatomy), (inaccurate limb:1.2),bad composition, inaccurate eyes, extra digit,fewer digits,(extra arms:1.2),hat,wings,bad guns,(bad mouth),bed,bad mouth,heart mouth,heart hands,heart pose

pose_lean

((masterpiece, best quality)),(((deautifull detailed face)),china dress ,bold line,beautiful hands,((((sliced lemmon)))),sky,a girl,white sailor color ,bangs,fox ears,(((((holding a perfume bottle))))),(((((petals fall))))) ,petals saround her,(((((folower))))),black long hair,small breast,perfume,

(low quality, worst quality:1.4),room,(bad anatomy), (inaccurate limb:1.2),bad composition, inaccurate eyes, extra digit,fewer digits,(extra arms:1.2),hat,wings,bad guns,(bad mouth),bed,bad mouth,heart mouth,heart hands,heart pose

pose_banzai

((masterpiece, best quality)),(((deautifull detailed face))),(beautiful eyes),,white sailor school uniform ,bold line,beautiful hands,(((many folowers around her))),sky,bangs, ,(((((petals fall))))) ,(((((folower))))),yellow ribbon,light blue long hair, (smile),(((lying on her back on bed))),

(low quality, worst quality:1.4),room,(bad anatomy), (inaccurate limb:1.2),bad composition, inaccurate eyes, extra digit,fewer digits,(extra arms:1.2),hat,wings,bad guns,(bad mouth),bed,bad mouth,heart mouth,heart hands,heart pose

② : 落書き、線画 (Scribbles2Image)

 続いて線画についてです。線画のモードはたくさんありますが今回は主に、Scribbles (落書き)モードです。

ControlNet with User Scribbles
ControlNet with Fake Scribbles

 棒人間を書いただけでも人間と認識されるのですが、やはり背景などを思った通りに制御することが難しいです。かといって線画を書くのは難しく、ペンタブを持っていないとマウスで書く羽目になってしまいます。では ControlNet with Fake Scribbles (カバンの図)のように画像から輪郭(高周波数成分)を抽出することができます。

問題点

しかしこれも同様、インターネットからダウンロードした画像は利用規約を真夢る必要がありますし、かといって(ポーズの時のように)スマホなどで写真を撮ろうとすると、このかばんの画像のように背景を切り抜かなければなりません。(切り抜かなくてもいいけど背景を変えたい場合は、ホワイトバックのほうがいい)。

Nijijourney Midjourney の活用

今回は Nijijourney にフォーカスします。まず Prompt として

女の子、塗り絵、白黒

として画像を生成させます。するとこのような画像が出てきます。

女の子、塗り絵、白黒

 "塗り絵" , "白黒" (英語の場合は coloring book, black and white ) を変えずに、 Prompt をいじったりしてガチャします。で気に入った画像をアップスケールしてそれを Controlnet Scribbles2image に入れます。

画像生成結果

 こうして生成された線画と画像を見てみましょう。元の線画画像は使っていただいても大丈夫です。そのうち全部公開します。

女の子ー1

((masterpiece, best quality)),(((deautifull detailed face))),(beautiful eyes),white sailor school uniform ,bold line,beautiful hands,(((many folowers around her))),sky,bangs,(((((strawberry))))) ,yellow ribbon,light blue long hair, (smile),(((lying on her back on bed))),

(low quality, worst quality:1.4),(bad anatomy), bold line,(inaccurate limb:1.2),bad composition, inaccurate eyes, extra digit,fewer digits,(extra arms:1.2),hat,wings,bad guns,(bad mouth),bed,bad mouth,heart mouth,heart hands,heart pose
女の子、塗り絵


女の子ー2

a girl,((((charactor sheet)))),(((white back))),brezer

(low quality, worst quality:1.4),(bad anatomy), bold line,(inaccurate limb:1.2),bad composition, inaccurate eyes, extra digit,fewer digits,(extra arms:1.2),hat,wings,bad guns,(bad mouth),bed,bad mouth,heart mouth,heart hands,heart pose
女の子、塗り絵、白黒


女の子-背景付き

((masterpiece, best quality)),(((deautifull detailed face))),(beautiful eyes),room,white sailor school uniform ,bold line,beautiful hands,(((many folowers around her))),sky,bangs,(((((strawberry))))) ,yellow ribbon,light blue long hair, (smile),(((lying on her back on bed))),holding cup

(low quality, worst quality:1.4),(bad anatomy), bold line,(inaccurate limb:1.2),bad composition, inaccurate eyes, extra digit,fewer digits,(extra arms:1.2),hat,wings,bad guns,(bad mouth),bed,bad mouth,heart mouth,heart hands,heart pose
((masterpiece, best quality)),(((deautifull detailed face))),(beautiful eyes),room,white sailor school uniform ,bold line,beautiful hands,(((many folowers around her))),sky,bangs,(((((strawberry))))) ,yellow ribbon,light blue long hair, (smile),(((lying on her back on bed))),holding cup

(low quality, worst quality:1.4),(bad anatomy), bold line,(inaccurate limb:1.2),bad composition, inaccurate eyes, extra digit,fewer digits,(extra arms:1.2),hat,wings,bad guns,(bad mouth),bed,bad mouth,heart mouth,heart hands,heart pose
女の子、塗り絵、白黒 、部屋


キャラシート風

3 girl,((((charactor sheet)))),(((white back))),

(low quality, worst quality:1.4),(bad anatomy), bold line,(inaccurate limb:1.2),bad composition, inaccurate eyes, extra digit,fewer digits,(extra arms:1.2),hat,wings,bad guns,(bad mouth),bed,bad mouth,heart mouth,heart hands,heart pose
coloring book, black and white, character reference sheet, three view, girl --ar 3:2


キャラシート風ー猫耳

a girl,((((charactor sheet)))),(((white back))),cat ears,(((face forward)))

,(low quality, worst quality:1.4),(bad anatomy), bold line,(inaccurate limb:1.2),bad composition, inaccurate eyes, extra digit,fewer digits,(extra arms:1.2),hat,wings,bad guns,(bad mouth),bed,bad mouth,heart mouth,heart hands,heart pose
coloring book, black and white, character reference sheet, three view, girl --ar 3:2


戦闘機の説明書

(石油骸骨マンさんからお借りしました)

manual, fighter, plane,infographic, all items configuration, patent drawing,sheet
manual, fighter, plane,infographic, all items configuration, patent drawing,sheet

man,(low quality, worst quality:1.4),(bad anatomy), bold line,(inaccurate limb:1.2),bad composition, inaccurate eyes, extra digit,fewer digits,(extra arms:1.2),hat,wings,bad guns,(bad mouth),bed,bad mouth,heart mouth,heart hands,heart pose


 という感じで、線画から生成できます。キャラシートは前を向いてくれなかったりすることがありますが、構図は正しくとれていて、同じキャラクターが3つの方向から描かれていることがわかります。

次回予告と宣伝

 今回は Controlnet の元画像を工夫しようという記事でした。おそらくこれが一番楽な方法ではないかと思っています。もちろんボーンを編集する拡張機能にとても便利なものがありま。(主はこちらが使いやすかったです)

しかし今回はボーンではやはり自然ではないという点が気になりました。また3Dやボーン画像の編集技術、線画を書く技術がなくてもできるような手法を紹介しました。
今回紹介した方法は2つでしたが、これ以外の方法も模索しています。

最後に

 最後まで読んでいただきありがとうございました。最後に少し宣伝です。主のteftefが運営を行っているdiscordサーバーを載せます。このサーバーではMidjourneyやStble Diffusionのプロンプトを共有したり、研究したりしています。ぜひ参加して、お絵描きAIを探ってみてはいかがでしょう。(teftef)

 ↓↓もしよろしければこの記事と開発の支援お願いいたします!

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