こんにちはこんばんは、teftef です。今回はつい最近公開された ControlNet の利用法、、、ではなく、少し工夫して使おうという記事です。ぶっちゃけ使い方や論文は今更主が説明するより、ほかの方の記事を見てみたほうがよく、また ControlNet 作品を淡々と並べていくのもつまらんと思い、今回書いていくのは少し変わった使い方、元画像の集め方などについてです。3Dやボーン画像の編集技術、線画を書く技術がなくても、生成画像を思った通りに(高精度に)「コントロール」する工夫です。
私もまだ初学者であり、説明が間違っていたり勘違いがある可能性が 0 ではないということをご了承ください。ぜひコメントなどをいただけたら幸いです。
それでは行きます。
↑この猫の人 Gradio 嫌いらしいです
使い方
まずは使い方ですが、こういったわかりやすい記事があふれるほどわんさか出ているのでこちらからどうぞ
controlNetの機能
多くは語りません。やっていることを大まかにいうと入力を条件として画像を生成しようというものです。ボーン画像、セグメンテーション画像、線画、depth (深度) 画像 をベースに自然言語をguidanceとして画像生成することができます。今回は大きく分けて2つの機能 : ボーン画像、線画に大別して、それぞれの機能で主がやっている画像生成の方法についてです。
① : ボーン画像 (Pose2Image)
公式の Github にも書いてあるようにこのように、Openposeを用いた入力画像から色がついた棒人間を作成し、この棒人間のポーズに沿った画像を生成することができます。Openpose は人の姿勢と動きを検出するためのライブラリで、カメラやビデオから得られた画像を処理し、人の体の各部位や関節の位置を検出することができます。これにより、人の体のポーズや動きを認識することができます。他にも姿勢推定、顔検出、手の検出、姿勢追跡などの機能を提供しています。
利用規約と権利について
それでは元画像をアニメ画像などを使って使おうとするとうまくポーズを出してくれず、実際の人間を使わないとうまくいかないことが多いです。しかし実際の人間の画像を使うときにはその画像と人の肖像権、プライバシー、著作権、利用規約などに十分に気を付ける必要があります。例えばスポーツ解析を使用する場合は注意が必要だったりします。また Openpose では商用利用は一切禁止なのでお気を付けください。
3Dソフトをつかって作る
ボーンや3Dモデルを利用してアバターを自分で作ってしまうという方法があります。確かに ArtPose や Blender などの3Dモデルを使って人形を制御してポーズを取らせ、レンダリングするという方法があります。
Adobe Photoshop 、CLIP STUDIO を使う
結局ボーン画像は関節とパーツの色と形をベースに画像生成するので、元画像をボーン画像として画像生成することも可能です。なので、楕円ツールを使ってパーツと関節を作成し、画像とすることで好きなポーズを取らせることができます。
問題点
ネットに落ちている画像を使うと権利や規約がめんどう。で、3Dソフトや画像編集ソフトを0から学んでちまちまやるのもめんどう。しかもこれらを使って制作されたポーズはやはり「自然じゃない」と思うことが多々あります。
人間の体は骨と筋肉、関節が繋がっていて、例えば手を上げただけでも腕の筋肉のみを使っているわけではないのです。人体の仕組み (どこがどのように動くのかやどのように連動しているのか) は美術解剖学を学ぶことで得られる知識であり、実際にプロのイラストレーターの方などはこの学問を熟知している方が多いです。
もっと自由に利用できる素材
それでは本題です。権利も規約もなく美術解剖学の知識がなくても自由に使えるもの。そうそれは自分の体です。自分の写真を Controlnet に突っ込むのは問題ないです。しかも自分の体のポーズは自由に変形できるので、自然なポーズを作ることができます。
作成
というわけで用意するのは
・スマホ
・パートナー(親や彼女、付き合ってくれる友達)
・なければスマートウォッチや遠隔でスマホのシャッターを切れるもの
です。主は2つ目がないので3つ目で書いていきます。(2つ目が用意できる方は撮ってもらいましょう。) 全身タイツである必要はないのですが、だぼだぼの服を着るのはあまりよくないです。それではスマホを壁に立てかけ、自撮りモードにしてポーズをとり、スマートウォッチを使ってシャッターを切りましょう。
そうして作成した画像を Controlnet を用いてポーズ画像を取り出します。(もちろん自撮りを突っ込んでもいいですが今後の汎用性のためにポーズは保存しておくことをお勧めします。) ポーズですが、 S字を意識すると美しい(らしい)のでなるべく体をくねらせることを意識しましょう。写真を撮るときによくモデルさんにS字を意識するように要求します。
画像生成結果
こうして生成されたポーズと画像を見てみましょう。ポーズ画像は使っていただいても大丈夫です。そのうち全部公開します。
pose_anger
pose_lean
pose_hanikami
pose_lean
pose_banzai
② : 落書き、線画 (Scribbles2Image)
続いて線画についてです。線画のモードはたくさんありますが今回は主に、Scribbles (落書き)モードです。
棒人間を書いただけでも人間と認識されるのですが、やはり背景などを思った通りに制御することが難しいです。かといって線画を書くのは難しく、ペンタブを持っていないとマウスで書く羽目になってしまいます。では ControlNet with Fake Scribbles (カバンの図)のように画像から輪郭(高周波数成分)を抽出することができます。
問題点
しかしこれも同様、インターネットからダウンロードした画像は利用規約を真夢る必要がありますし、かといって(ポーズの時のように)スマホなどで写真を撮ろうとすると、このかばんの画像のように背景を切り抜かなければなりません。(切り抜かなくてもいいけど背景を変えたい場合は、ホワイトバックのほうがいい)。
Nijijourney Midjourney の活用
今回は Nijijourney にフォーカスします。まず Prompt として
として画像を生成させます。するとこのような画像が出てきます。
"塗り絵" , "白黒" (英語の場合は coloring book, black and white ) を変えずに、 Prompt をいじったりしてガチャします。で気に入った画像をアップスケールしてそれを Controlnet Scribbles2image に入れます。
画像生成結果
こうして生成された線画と画像を見てみましょう。元の線画画像は使っていただいても大丈夫です。そのうち全部公開します。
女の子ー1
女の子ー2
女の子-背景付き
キャラシート風
キャラシート風ー猫耳
戦闘機の説明書
(石油骸骨マンさんからお借りしました)
という感じで、線画から生成できます。キャラシートは前を向いてくれなかったりすることがありますが、構図は正しくとれていて、同じキャラクターが3つの方向から描かれていることがわかります。
次回予告と宣伝
今回は Controlnet の元画像を工夫しようという記事でした。おそらくこれが一番楽な方法ではないかと思っています。もちろんボーンを編集する拡張機能にとても便利なものがありま。(主はこちらが使いやすかったです)
しかし今回はボーンではやはり自然ではないという点が気になりました。また3Dやボーン画像の編集技術、線画を書く技術がなくてもできるような手法を紹介しました。
今回紹介した方法は2つでしたが、これ以外の方法も模索しています。
最後に
最後まで読んでいただきありがとうございました。最後に少し宣伝です。主のteftefが運営を行っているdiscordサーバーを載せます。このサーバーではMidjourneyやStble Diffusionのプロンプトを共有したり、研究したりしています。ぜひ参加して、お絵描きAIを探ってみてはいかがでしょう。(teftef)
↓↓もしよろしければこの記事と開発の支援お願いいたします!