見出し画像

AIを使って漫画を描いた話

多くの方がAIを使った創作をするようになってきて、大変うれしく思っている葦沢です。

今回は、第2回日本SF作家クラブの小さなマンガコンテストにAIを使って制作した漫画を応募したので、どうやって作ったのかを解説します。

作品には、以下のリンクからどうぞ。

1. ストーリー

私はAIを使った小説執筆は割と長くやっていますが、漫画制作は初めてでした。

原作は、同じ日本SF作家クラブが主催する「第2回日本SF作家クラブの小さな小説コンテスト」にて、既に私が書いた掌編があったので、それを使うことにしました。

AIを使ってストーリーを作りたいということであれば、AI BunChoAIのべりすと、ChatGPTなど、色々なサービスがあるので、その中から自分に合うものを選ぶのが良いかなと思います。最近は、AIを編集者的なアドバイザーとして使うのが流行りですね。

2. コマ割り

コマ割りは、枠の形と台詞を入れ替えながら検討したかったので、パワポを使いました。ペイント系のソフトでもできますが、私はパワポの方が使い慣れているので。サイズはA4にしましたが、実際の漫画のサイズとは微妙に違う気がするので、適宜設定した方がいいかもしれません(私はどうせ設計段階なので気にしませんでした)。

パワポでのコマ割りの例

ストーリーのどの部分を入れるかと、あとはどんな絵を入れたいかをテキストで入れています。

最初は適当でいいかなと思っていたのですが、ストーリーに違和感のない流れや、効果的なページ内の位置や演出、ページ数上限(8ページ)との兼ね合いを考えると、非常に難しい作業でした。

3. イラスト生成

3-1 生成した環境

イラストの生成モデルには、Waifu Diffusion v1.3Stable Diffusion v1-4を使いました。基本的な漫画系のイラストはWDを使い、ビルの廃墟や未来の地球などはSDを使いました。

(※2023年1月22日現在、モデルの学習時に使用している画像の問題などが指摘されているため、どういった点が議論されているのかをよく理解した上で使用しましょう。私個人としては、できる限り、問題がないという共通理解が得られ、かつ十分なクオリティを持つモデルを利用したいと考えています)

生成は、NMKD Stable Diffusion GUIというソフトウェアを用いてローカルPC上で行いました。一般的には、機能が豊富なAutomatic1111を使う方が多いと思います。NMKDの方は、環境構築が不要で操作も単純なので、初心者向きかなと思います。ただしそれなりのGPUは必要なので、持っていなければGoogle Colaboratoryを使うのが良いと思います(時間制限はありますが)。

GPUは、GTX 1660 Ti。3年前くらいに機械学習の勉強用にと思って買った、当時でもそんなにスペックが高い訳ではないゲーミングPCです。GPUはスペックが高いに越したことはないのですが、そこは個人のお財布や用途と相談してください。私のPCでも1枚20秒くらいで生成できるので、そんなに困ることはなかったです。生成している間は、頭の中でイメージを膨らませたり構想を練ったりして有効活用していました。

プロンプトについては非公開とします。

3-2 白黒画像の検討

最初は白黒画像での制作を検討していました。その理由は、修正がしやすいからです。今も多くの漫画が白黒で描かれているのは、色塗りという工程を省略できるからという理由が大きいのだろうなと思っていました。

作りかけの当初イメージ

実際にやってみると、確かに修正はしやすいのですが、他の問題を感じるようになりました。

それは色の情報が無い分、AIへの指示がしづらいという点です。例えば上の画像の1コマ目は花畑のシーンですが、花畑を指定していても、宇宙系の単語が含まれるせいで月面基地みたいな画像になってしまうことが多々ありました。あとは人物を人物として認識してくれないことも多かったです。私の指示の仕方が悪かったのかもしれませんが。

そうした理由から、1ページくらい作ったところでカラーに方針を変えました。

3-3 基本的な制作方法

イラストは1つのコマごとに作成しています。基本的な作成の手順としては、プロンプトを与えて画像を生成するtext to image(t2i)でざっくり生成したのち、適宜修正を加えてimage to image(i2i)をするということを繰り返してイメージへ近づけていく方法を採用しました。その過程でプロンプトをいじったりもしています。その過程を詳細には記録していなかったため、どんなプロンプトを使ってそのイラストが生成できたのか、完全に辿れる自信はないです(経過の画像と基本的なプロンプトは残っているので、それを証拠として見せることはできます)。

ここで念のため注意喚起しておきますが、他の方が著作権を持っている画像をi2iすると著作権違反となる可能性が高いので絶対に行ってはいけません。このあとでもi2iの例を紹介していますが、自分でラフに描いた画像で十分クオリティの高い画像を生成することができます。制作時のマナーとして、制作過程を説明できるようにきちんと準備しておきましょう。(現状は、プロンプトがファイル名に途中まで記載されるくらいなので、こういう記録を自動的にやってくれるとありがたいですよね……)

ここからは1ページ目の1コマ目で使った画像を例にして、実際の流れを見ていきます。

1コマ目は、白黒の時にイメージしていた「花畑」と「二人のキャラ」のイメージから良さそうな画像を大量に生成している中で、次のイラストが生成された時にひらめきました。

1コマ目の元になった画像

これを反転させて結合すればテーブルに向かい合う構図になるなと思い、そこから宇宙のような空間でテーブルを挟んで対話しているイメージが湧いてきました。

右側部分は、以下のような形に手で修正しました。ソフトはクリスタを使っています。服の色は、範囲選択して色調をいじったような記憶があります。あと背景部分は、コピースタンプで元々描画されていた部分のコピーで埋めています。このあとi2iしていく中で、髪型は塗りつぶしてショートに修正しました。

1コマ目の右側の途中経過

左側部分も、同様に修正しました。画像を反転させたのち、頭は元画像の右側のキャラから切り取って貼り付けています。長髪の足りない部分は、適当にブラシで塗っています。このあとi2iするので雑でも問題ありません。

1コマ目の左側の途中経過

ここから左右それぞれi2iをして良さげなものを採用して、修正してさらにi2iをする、というのを繰り返して、結合したのが下の画像です。

1コマ目の結合後の画像

修正する際には、マスク機能を使って修正したい部分ごとにi2iしていくのが効率的だと感じました。例えば、左のキャラは主に髪と目を修正していますが、同時にi2iしてどちらもいい感じになることはあまりありません。部位によって私がいいと感じるパラメータが違うので、髪の部分だけマスクして髪をi2iしたら、その画像に対して次に目をマスクしてi2iする、というのが個人的にはしっくりきました。

以上が基本的な生成の説明になります。他のコマの画像も、キャラとテーブルは別々に生成したものを切り貼りしてi2iしたりしています。目だけ手で描き直してi2iかけるとかもやりました。全ての画像には手で修正を入れており、AIで一度生成してそれで終わりにしたものはありません。

3-4 背景の統一

ここからは特殊なテクニックを解説していきます。まずは背景について。

今回の作品は、1コマ目の着想時点で「宇宙のような空間」という背景の設定が決定しました。実はこれは雰囲気がいいだけではなく、作業が簡単になるというメリットも含めて判断しました。

使用した背景

今回は上のように背景画像を別に作っておき、そこに切り取ったキャラやオブジェクトを配置してi2iをする方法を採用しました。

これがもしも部屋の中だったりすると、コマ間の部屋の内装をアングルの違いも含めて一貫させる必要があるので、それを準備するのは面倒です。

でも大体同じ背景を使い回せるのであれば、作業は簡単になります。

ちなみに、テーブルを上からのアングルで描いているコマが6ページ目にありますが、これはテーブルクロスのテクスチャを生成して背景にしています。手は、別で生成したものをレイヤーで重ねて動かしています。

6ページ目の1コマ
テーブルクロスの背景

3-5 正確性の担保

3ページ目に、フレームに入った写真の上に花を載せたコマがあります。

花の載った写真のコマ

この花はシオンの花にしたいと考えていました。t2iでシオンの花を指定するとそれらしい花は生成されるのですが、やはり生物学を学んできた人間としては、葉の形や葉序といった細部が違うのは個人的に納得できませんでした。

シオンの花っぽい画像たち

そこで、i2iの元画像については、自分で描いたものを使いました。といっても形をざっくり指定した程度です。

シオンの花のラフな元画像

これにi2iして、細部を修正したのち背景を透過したものが、先程の画像になります。他にも一部の花は、ラフスケッチを元に種類を指定して生成しています。

写真の上に載っている演出にしたかったので、写真に落ちる影はレイヤーで重ねています。

ちなみに写真部分は、カラーで生成した画像をセピア化して、そこに別で生成したフォトフレームを重ねています。

3-6 Talking Head Anime for Single Image3の利用

7ページ目の1コマ目

7ページ目のこのコマにはTalking Head Anime for Single Image3を使用しています。これは1枚絵をlive2dのように動かす技術です。私は、第2回創作+機械学習LT会に参加した際に、YUzushioさんの発表で知りました。詳しい使い方は、npakaさんの解説記事が参考になります。

基本的な立ち絵さえ用意していれば、正面からの表情だけですが、簡単に作ることができます。フェイストラッキングもできますが、私はColab上でGUIのパラメータをいじったくらいです。

THAを使用して作成したバリエーション

人間が描いた漫画でも、4コマ漫画とかは同じ絵を使いまわして上手に手を抜いていたりするので、こういう技術もうまく使えると便利だと思います。

3-7 Dream Boothによるキャラの学習

今回の作品では結局使わなかったのですが、Dream Boothでファインチューニングを行い、銀髪のキャラのイラストを生成できるモデルを作りました。下のページで提供されているnotebookを使ってColab上で学習させました。

学習させたデータは、今回の作品制作の過程で得られた銀髪のキャラの画像です。大量生成した中から切り貼りして使えるようにストックしていた画像も使っています。

ファインチューニングに使用した画像

Dream Boothにてファインチューニングしたモデルで生成した画像は、以下のようになりました。キャラクターの特徴を一貫させながら、様々なポーズ、シチュエーションを生成できるので、大変強力なツールです。

Dream Boothして得られたモデルの出力画像

4. イラストの配置とセリフの挿入

漫画のページ画像は、クリスタを使用して作成しました。漫画用のテンプレートがあるので、それのA4判カラーを使っています。

パワポで作成したコマ割りを参考に、イラストを配置した後、セリフを入れています。フキダシツールで雲形のテンプレートと中身のテキストを入れることができ、位置調整などもできるので便利です。

フキダシツールを使用した例

出力時の注意点として、クリスタの漫画のテンプレートには印刷用に裁ち落としという裁断用の線が入っています。クリスタのEX版だと裁ち落としの範囲で出力できますが、私はPro版を使っているのでページ全体での出力しかできませんでした。調べた限りだと、Pro版はわざわざ選択範囲で切り抜いたりする必要があるようです。私はページ全体で出力した後に自前のスクリプトで自動的に切り抜いています。

セリフのテキストは、色々と漫画を観察して気付いた点があるので、原案の小説から漫画特有のものに適宜変更しています。例えば句点(。)や読点(、)は使われません。今回のコンテストのレギュレーションとして、冒頭に「そうして人類は永遠の眠りについた。」というセリフが指定されていたため、この部分だけ句点を使いました。

またセリフは、吹き出しの中に切れ目よく収める必要があります。読みやすくするために細かく吹き出しに分けて、連続する吹き出しは1段下げたりすると良さそうかなと思いました。当然ですが、文字ばかりはストレスになりそうなので、文章も短くするよう心がけました。

2ページ目の一コマ

5. おわりに

今回、AIを活用して漫画を制作してみた感想としては、これだけのクオリティのイラストを全て手で描いて漫画を作るのは大変な労力だなと思いました。私なら、多分途中で挫折しています。一部は手で描いているとはいえ、AIを使うことで省力化できるという利点は大きいように感じました。

これからも漫画制作は取り組んでいきたいです。特に原作を持っている小説書きの人にとって、漫画化へのハードルが低くなったというのは大きなチャンスだと思います。

技術の発展が速いので、明日には、小説を入力したらいい感じに漫画が出力されるサービスが公開されて、ここに書いた内容がレトロなやり方になっているかもしれません。そう考えると今やるのは無駄なようにも思えてしまいますが、今後も応用可能な周辺知識を得られるのは貴重だと思います。

いずれは、「作家」といえば「小説と漫画と動画を同時公開するクリエイター」というのが当たり前になるかもしれませんね。置いていかれないように、日々精進したいと思います。

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