見出し画像

【第2回】動画生成AI×LensStudioでSnapChatのARフィルターをつくる(全3回)

前回の記事では、使用したツールの解説を行いました。
第2回ではイラスト作成と、修正の方法について記載します。


イラスト画像生成の手順

まずはDALL-E3で、イラスト作成に取り掛かりました。画像生成のプロンプト(指示文)は主に「目的」「必要条件」「制限事項」の3点を重視しました。詳しく解説します。

指示文について

ChatGPTの一機能なので、画像生成でもツールの使い方が大きく相違するところはありません。検索すると、良い指示文の作り方が多数出てきますので、それをコピペして使うだけでも十分だと思います。

ChatGPTへの指示文には必ず以下の3点を入れることを意識すると良いです。

  • 目的

  • 必要条件

  • 制限事項


本記事では以下のサッカー選手の画像を例として、頭の中で思い描いたイメージと近い画像を生成しやすくなる指示文の例をご紹介します。

生成AIで出力したサッカー選手

この画像は、以下のような指示文で生成しました。

サッカー選手のイラスト画像を作成してください。
イラスト画像は以下の指示に従って描いてください。
・フランス人のサッカー選手が立っている様子が写っています
・サッカー選手はユニフォームを着ています
・両手でボールを持って顎の下で構えています
・サッカー選手の上半身が映っています
・サッカー選手の顔が画像の中心で大きく映るような構図にしてください
・ボールで顔が隠れないように注意してください
・背景は観客が溢れたサッカースタジアムの中を描いてください
・実写のような緻密に書き込まれたテイストでお願いします
・映画的な色合いとライティングになるようにしてください
・画像は縦長にしてください

目的

目的は「イラスト画像を作成すること」だけです。
画像を生成してほしい旨が指示文に書かれていれば、ChatGPTは自動的にDALLE-3の機能を使って画像を出力します。最初にはっきり「画像を作成して」と伝えておきましょう。今回の例で言えば「サッカー選手のイラスト画像を作成してください」です。

画像を生成する旨が書かれていない、あるいは書いたつもりでも指示が曖昧だと、DALL-E3が機能せずに文章による返答となってしまいます。

必要条件

以下の項目を踏まえていただくと良いです。

  • 被写体

  • カメラワーク・アングル

  • 背景

  • 色彩・タッチ

  • 画像仕様

ー被写体

どんな人や物が写っているかを、より具体的に記します。
「フランス人のサッカー選手が立っている様子」「ユニフォームを着ています」「両手でボールを持って顎の下で構えています」といった内容になります。

ーカメラワーク・アングル

上記の被写体と背景をどう切り取るかです。
これは「サッカー選手の上半身が映っています」「サッカー選手の顔が画像の中心で大きく映るような構図」というような指示です。
人物であれば「遠景」「全身」「上半身」「顔のアップ」のうちから選べば、近いものが出力されるのではないでしょうか。

ー背景

被写体の後ろ側がどんな景色になっているかを記します。
例でいうと「背景は観客が溢れたサッカースタジアムの中を描いてください」の部分です。

ー色彩・タッチ

画像全体の雰囲気を決めるための記載です。
サッカー選手の画像では「実写のような緻密に書き込まれたテイスト」としています。(補足:最初の目的の指示をイラスト画像の作成としているので、上記のように記載してもイラストになっています。もし最初に「サッカー選手の写真(画像)を作成してください」と書いていたら、カメラで撮影したような実写の画像に寄ります)

ー画像仕様

画像が縦長か横長かの指示です。今回は「縦長」です。何も指示を入れないと正方形で出力されるので、希望がある場合は記しておきましょう。なお、デフォルトは1024×1024pxの画像が出力されます。縦長で出力するように指示すると1024×1792ピクセル(アスペクト比9:16)、横長の場合は1792×1024ピクセル(アスペクト比16:9)です。

ー指示文が思いつかない場合

指示文が思いつかない項目がある場合、上記に従って無理に項目を埋めようとせず、分かる項目だけを埋めてそのまま一度出力してみてください。その時点での指示に沿った画像が出てきます。要求通りではなくても、生成された画像の改善点を修正する指示を考えたほうが進めやすくなります。

まずは適当でも良いので作ってみるのをおすすめします。改善点は返信でDALL-E3に伝えてもいいですし、元の指示文を書き直して再出力させるのもいいと思います。

私も何度も書き直しながら作成して修正していきました。
左が1回目の指示で出力したものです。

ボールが2つあったり、空に旗が浮かんでいたりとおかしいことばかりです。
指示文を加えたり減らしたり、変えたりしていきました。そうして出力しているうちに良い構図が思いつき、明確にそれを指示に反映していきました。

フィルターで使った画像素材にたどり着くまでは、32回程度の出力を繰り返しています。身も蓋もないことですが、ここに記載した知見は試行回数をできるだけ少なくするためのノウハウに過ぎないとも言えます。まずなによりも試行回数です。

制限事項

指示を変更してもイラストの表現がうまくいかない場合には、制限事項を追加することをお勧めします。サッカー選手の指示文では「ボールで顔が隠れないように注意してください」という部分です。

必要事項の一つとして「両手でボールを持って顎の下で構えています」という指示を入力しているのですが、口元が隠れた画像が出力されてしまいました。(この画像はそもそも色もおかしいのですが…)

今回の画像の使用目的は顔を使ったフィルターです。顔が隠れるようなものは素材として不適切なので、このような制限事項を加えました。

制限事項を指示に加える前に注意すべきことは
できるだけ否定形を避けて、肯定形で表現することです。
ChatGPTは時々否定形が理解できないことがあります。

今回は「ボールで顔が隠れないように注意してください」と指示に否定形を使いましたが、正しく反映されました。ただしこれは成功例で、この指示だと上手く伝わらない場合があります。

正しく伝わらない場合どうなってしまうかというと、「顔を隠すこと」を“禁止(否定)”しているにも関わらず、この“禁止(否定)”が伝わらずに「顔を隠すこと」という指示だけが伝わってしまう場合があります。結果的に顔が隠されたイラストが出力されてしまうことになります。

否定形が全く使えないわけではありませんので、試行錯誤を重ねて確かめてもらうのが良いと思います。指示がうまく伝わらないときには、否定形の指示が含まれていないかチェックし、もし含まれていた場合は別の表現で書き換えてみてください。

対話ができるChatGPTだからこそ、指示文の齟齬が生じるのは、StableDiffusionやMidjourneyにはない、難しい部分かもしれません。

余談: 丁寧語について

指示文を「◯◯してください」とか「お願いします」など、丁寧語で書いているのが気になった方もいるかもしれません。
命令文と丁寧語で出力結果に差が出るという旨のXのポストを見かけたことがあり、指示する労力も変わらないのであればと、私の場合はおまじないとして丁寧語にしています。正直なところ、大きな出力結果の差はないと思います。

イメージの修正方法(Photoshopの活用)

Photoshopのレタッチについても言及しておこうかと思います。画像の見栄えを上げる細かなテクニックはいくらでも資料があるので、そちらを参照していただくとして、今回は生成塗りつぶしについて気づいた点を何点かご紹介をします。

今回のケースで一番活躍したのはナポレオンのイラストに対する修正です。
DALL-E3でナポレオンの画像を出力しようとすると、ナポレオンが前足を上げた馬に乗馬した状態で右手を突き上げているという構図ばかりが出力されました。(ナポレオンと言われたら多くの人が想像するであろう、サン=ベルナール峠を越えるボナパルトの絵画にかなり引っ張られていたのだと思います)

フィルターとしてはもっと顔がアップの状態で見せたいという意図があり、何回か試行錯誤を回しました。すると、出てきたのが以下でした。

比較のために修正後のナポレオンの画像も合わせて掲載しています。出力時(画像左)は右手で人差し指を立ててポーズをとった状態のナポレオンが出力されました。服装や背景も含め、理想的な構図です。しかし、顔をはめるフィルターを作るにあたってはどうしてもこの右手が邪魔になります。

そこで、Photoshopでレタッチを重ねて完全に右手を除去しました(画像右)。この修正には、選択と生成塗りつぶしのみを用いました。着色や変形は行っていません。


手の部分を選択して、生成塗りつぶしを行います。ここで生成したいオブジェクトをテキストで指示することが出来ますが、元の画像に馴染ませる調整を行う場合は何も入力しなくて構いません。すると数秒のうちに人差し指が除去され、イラストのタッチに合わせて顔や髪の毛、肩口から除く背景が描かれました。

人差し指が被っていた帽子の質感が潰れたような見た目になってしまっていますが、再度直したい範囲を選択して、生成塗りつぶしを行えば元の画像に合わせてくれます。

この画像は比較的、生成塗りつぶしがうまく行いやすい画像でしたが、画像の一部が歪んだり余計なオブジェクトがまた生成されてしまうケースもあります。そのような場合は、変更したい範囲を一気に選択するのではなく、段階的に変更していくと理想のイメージに近づいていきます。

ナポレオンの画像でいうと、以下の3回くらいに分けて選択、生成塗りつぶしをするのがいいと思います。

  1. 帽子に被っている人差し指

  2. 顔に被っている親指

  3. 背景に被っている残りの部分

AIの生成画像では腕や手の指が不自然に多いケースが時々見られます。即ボツとせずに、Photoshopでの「生成塗りつぶし」での修正を頭に入れておいて損はないと思います。比較的簡単に修正できます。

第3回では動画生成AIについて解説します。

エンジニア募集中!

デザイニウムはWebAR ができるウェブエンジニア を募集中です💻話題のApple Vision Pro向けアプリをはじめとした、多彩なXRコンテンツの開発に携われる刺激的な環境です🤩✨テーマを持ってR&Dに取り組むことも歓迎しています。就業はフルリモートなので、全国どこからでも応募できます🏢

カジュアル面談も大歓迎です。ぜひご応募お待ちしています👍

関連記事

動画生成AI×LensStudioでSnapChatのARフィルターをつくる

デザイニウムはAIを駆使して、SnapChatのARフィルターを制作しました。一連の記事では、動画生成AIとLensStudioを融合させることで、新たな表現を探求したプロジェクトの舞台裏をご紹介します。

【第1回】制作に使用した生成AIツールの解説

【第2回】生成AIによるイラスト作成と、修正の方法について

【第3回】Runwayでの動画生成からLensStudioでのセットアップまでの流れ


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