見出し画像

エンジニア経験の無い一般人男性が、AIマンガアシスタントを作っちゃう話(生成AIなんでも展示会ふりかえり)

2024年4月21日(日)、渋谷Abema Towers内、CyberAgent様のスペースで開催された、生成AIの個人開発者の展示会「生成AIなんでも展示会」に出展させていただきました。

私は、生成AI(主にLLM)を用いて、マンガの制作を助けるツールを作って、そのデモや成果物を展示しました。
当日は、たくさんの方にブースにお越しいただいて、事前に用意していたプレゼンテーションをほとんど使用せず、口頭で概要説明と質疑応答を行いましたので、その内容をここに記します。


展示の様子

事前告知に用いた出展想定図
https://x.com/masa_manga/status/1780592233026302384
ほぼ想定通りに設営できました。


展示物の概要

私はエンジニア経験がなく、コードがほとんど書けませんし、サービスとして実装することができないので、Google Colab上で動くものをそのまま展示しました。

設計図であるMiroの画面も見てもらえるようにしました。


開発の背景

私はマンガを描くのですが、マンガの制作工程というのはとても膨大でたいへんです。
画像生成AIを使って作画を補助したり、ChatGPTなどのLLMを使ってアイデア出し〜シナリオライティングを補助しようという試みはたくさんの方が行われています。

私も、マンガと生成AIを志すものとして、双方に「ふーん、おもしろいじゃん」と思ってもらえるようなものを作ってコミュニティに貢献したいし、何より手を動かして学びたいと考えています。

現状、生成AIを使うために生成AIをワークフローに組み込んでいるものは多くとも、本当にマンガを描く人が普段使いするようなアイデアはあまり実装されていないように思います。
まずは自分のワークフローの中に自然に組み込めるようなものを作ろうと考えました。


課題

今回は主にLLMを用いたマンガ制作補助ツールにフォーカスを当てています。
その中で主な課題になってくるのは、

  • ハルシネーション(すぐデタラメを言う)

  • コンテクスト長の問題(すぐ忘れちゃう)

  • 私のことを何にもわかっていない

です。

1点目のすぐデタラメを言う問題については、創作においてはうまく活用できます。
マンガというのは、だいたいの場合、中心に大きな嘘があるのです。

  • 怪獣に変身して怪獣と戦う男

  • 東京の上空に浮かぶ巨大なUFO

  • オタクに優しいギャル

なんなら、すらすらデタラメを出力してくれた方がインスピレーションを刺激しますから、1点目の問題は、解決済みとして扱います。

コンテクストの維持と作家性の反映は、全体の構造の中で解決しています。
以下に解説します。


コンテクストを維持し、作家性を反映する仕組み

ChatGPTのような対話型の生成AIでも、創作のアイデアを広げることは可能です。
最近は、扱えるコンテクスト長が長くなってきたので、かなり記憶力がよくなってきてはいます。

しかし、キャラクターの設定は、細部まで情報を保持してほしいものです。

主人公の持っている能力や役割など、ストーリーに大きな影響を与える要素まで、しっかり覚えておいてほしい。
また、「主人公」という重要な要素のアイデアを生み出すために「渇望しているもの」「絶対避けたいこと」「特別な能力」「物語の中で担っている役割」などは、必ず含んでほしい要素です。
これらの要素を毎回安定して生成できる、再現性も担保したいところです。


そこで、LLMにポン出しで提案してもらうのではなく、上記の図の各要素を1つずつ、一問一答形式でLLMに生成させ、その出力を次のAIに渡していく構造にしました。

各要素ごとに、AIに内容を提案させます。
ここでは「マンガの萌え要素」を提案させていますが、その時に、これ以前に生成した「物語のキーワード」と「物語のメッセージ」を参照しています。
プロンプトに対して、GPTを動かす関数とClaude3を動かす関数が動作して、2つの提案を出力します。
LLMが取り組みやすいよう、1つひとつのタスクを小さくしています。


AIの出力をそのまま受け入れるか、修正するか、もしくはすでにアイデアがある場合は直接入力して、変数(ここではthema)に代入します。
この変数が、次の要素の生成をするときに参照される仕組みになっています。


このように、LLMの出力を次のLLMの入力に繋げていくことで、全体のコンテクストを維持し、必要な情報を狙い撃ちで参照できるようにしています。

また、AIの出力をそのまま使うのでなく、操作者である私が取捨選択したり、加筆修正したりすることで、私の作家性も自然に溶け込んでいきます。


生成AI以前のドメイン知識の言語化と構造化

前述のように、小さなAIの出力を次の小さなAIの入力に繋いでいき、創作物全体を生成するコンセプトを実現するために、全体の構造を作る必要があいます。

この全体構造を明らかにする作業は、ただただ気合いによって実現しています。
自分がマンガを描く中で、どのようなセオリーに従ってやっているか、私がマンガを学んだ中で得た知識や、編集者と話して得た知識を反映して、泥臭く作ります。



この全体構造を参考に、Google Colab上に一問一答形式の逐次処理できるコードを書いていきます。
構造はごく単純で、基本的に

  1. AIにアイデアを出力させるコードブロック

  2. AIの出力

  3. AIの出力、あるいは人減のデータを変数に格納するブロック

の3つの要素を1つのモジュールとしています。


変数は、前述の全体構造図の各ノードに対応しています。
なので、ノードの出力の数だけ変数名を考えなければいけません。

これも気合いによって実現します。


企画書を出力する

こうしてできた長大なGoogle Colabノートブックを、上から順番に実行していくと、役15分で企画書の形式にまとめてテキストを出力してくれます。

必要なLLMの出力を組み合わせて、画像生成用の英字のプロンプトが出力されるようになっています。
Midjorney(niji・journey)やDALL-E 3のような自然言語の可読性の高い画像生成AIをに入力し、イメージビジュアルを生成します。


この段階で出力される企画書には、下記の要素が含まれています。

  • タイトル

  • ログライン

  • あらすじ

  • キービジュアル、

  • 主人公

    • 主人公の紹介

    • 主人公のビジュアルリファレンス

  • 主人公と対となる存在

    • 紹介

    • ビジュアルリファレンス

  • 主人公を導く者

    • 紹介

    • ビジュアルリファレンス

ごく簡単な企画書ですが、この段階で面白いものは、作家がアイデアを膨らませてプロット、シナリオ、作画と進めていけますし、面白くないなら没にする判断もできます。


企画書の例


想定される活用シーン

個人レベルでは、

  • 15分で企画を作ってネタを貯めていくことができる

  • 仕事で疲れていて、頭が働かなくても、AIの壁打ち相手になっているつもりで気楽に企画書を作ることができる

  • 企画書段階で面白ければ、編集者や他の作家にシェアできる

のようなメリットがあります。


商業マンガでは、企画の時点で面白くなければ誌面に載るための制作に移行することができません。

  • 編集会議に持ち込む企画のアイデア出しに使える

  • しかも作家本人でなくても作れる

  • 大人数で大量に企画を作る、みたいなこともできる

のようなことも期待できます。


ネクストチャレンジ:プロットまで出力させる

上記の企画書に、簡単な物語のプロットがついていると、より企画の面白さが判断しやすいのですが、今回はそこまで作ることができませんでした。
次回以降のネクストチャレンジとしたいと思います。


プロットを生成するプロセスは、私がマンガを考えるときに用いている8幕構成を構造化して作ったのですが、うまくいきませんでした。

まず、生成に時間がかかりすぎます。
企画書までは15分で作れたのに、それ以降プロットを面白く作っていこうとすると、考えることが複雑化して、思考の負荷が跳ね上がります。
結果として、8つのプロットを出力するのに2時間ぐらいかかる代物になってしまいました。

また、出力が全然面白くならない問題も発生しました。
前述のコンテクストを保持する仕組みが聞いていて、ストーリーの途中で物忘れすることなくコンテクストを維持できるのですが、ストーリー展開が平坦で、何も事件が起きないプロットになってしまいます。

要素を細かく分解しても、その要素のつながりが長くなると、ChatGPTでの長い会話のように、LLMの出力が抽象的に収束してしまって、後半に向かってどんどん何も起きなくなっていってしまいました。


創作をやっておられる来場者の方から、映画の3幕構成ぐらいの簡単なものでいいんじゃないかとか、プロットじゃなくてもいいので、どの場面でどんな要素を入れるのか骨組みだけ提案してもらえるといいかも、などアイデアをいただきました。

いただいた助言をを活かして改善したいと思います。


いただいた質問

どんなプロンプトを使っているんですか?

プロンプトにも色々な流派があると思うのですが、私はごく簡単なプロンプトしか用いていません。

主たるプロンプトは下記のみです。

以下のテキストを想像的に解釈して、<ここで生成したい内容>を要約してください
<参照したい内容(以前に生成したAIの出力)>
<参照したい内容(以前に生成したAIの出力)>
<参照したい内容(以前に生成したAIの出力)>
.
.
.

前述の通り、前段のAIの出力を変数に格納して引用し、コンテクストを保持します。
それ以外に特に難しい要件は定めていません。
全体の構造がLLMで取り組む課題の要件になっているので、ひとつひとつのタスクのプロンプトはごく単純になります。

タスクごとのプロンプトの他に、関数を定義するところで、システムプロンプトを仕込んでいます。

システムプロンプトは下記の通りです。

あなたは雄弁なストーリーテラーです。あなたの記憶の奥底に眠る物語を深く探究し、回答は短く簡潔に出力します。

この部分は、おまじない的な意味合いが強く、これによって出力が精度が向上しているかどうかはあまり重要視しておらず、AIと物語を共同で創作するときの世界観のようなものを表しています。

LLMが学習している、人類が生み出したたくさんの文章の中には、物語も多く含まれているはずです。
その物語の特徴量もベクトル化されてLLMの長期記憶を形成しているのだから、その奥底には人類が語りついできたストーリー(寓話)の特徴が含まれているはずです。
LLMの記憶の奥底に眠っている、ストーリーを語ってくれ!とシステムプロンプトでは指示しています。


どんなモデルを使っているんですか?

使っているLLMのモデルは、GPT-3.5 turbo、GPT-4 turbe、Claude3 Haiku、Claude3 Opusの4つです。

それぞれ、gpt3、gpt4、cld3h、cld3oという関数にして、各タスクから呼び出しています。

各タスクでは、2つのLLM関数が実行されて、2種類の提案が返ってくるようになっています。

ほとんどのタスクでGPT-3.5 turboとClaude3 Haikuを使っています。
前述の通り、各タスクのプロンプトは極めて単純なので、高い能力よりもスピードを重視しています。

一部、処理の序盤のコンテクストがまだあまりない、抽象度の高い質問と、後半の複雑かつ長大なテキストを引用する場面などで、GPT-4 turboとClaude3 Opusが登場します。


各モデルの性能差

展示会でも、Claude3 SonnetやClaude3 Opusを使っています!という方が多かったように思います。
Cluade 3は確かに賢く、とても雄弁に語ってくれます。

しかし、私としては、賢さが邪魔になっていると言うか、私の使い方においては、例えば「主人公の髪型を提案してください」のような質問に対して「真っ赤に逆立った炎のような長髪」のように、スパッと提案してほしいのですが、Claude3は「与えられている情報が少ないため、提案は差し控えさせていただきます。しかし、強いて提案するのであれば、、、」のように回りくどい言い方になってしまい、考えて削らなければいけない余計なノイズ成分が多いと感じます。

GPT-3.5やGPT-4の方が、息を吐くようにすらすらとデタラメを言ってくれるので使いやすい、というのが私の印象です。


このプロジェクトは、最終的にどこまで目指しているのか?

このご質問をいただいて考えたのですが、なにも自分でマンガの全ての工程を実現する必要はなく、例えば企画作りに特化してもよいのでは、と思うに至りました。

と言うのも、生成AIなんでも展示会には、小説や特定のシナリオをLLMに提案させて、さらにAIに添削させたり、音声と組み合わせたりしている方もいましたし、イラストやマンガの作画をAIに補助させるプロジェクトもありました。

私はたくさんの企画を作って、それを他の領域が得意な人に渡して、複数人で作品を作るのもいいのではないか、と思いました。

#AIマンガハッカソン やりたいですね。


面白いプロットが書けますか?

結論から言うと、今回作ったものでは、面白いプロットが書けませんでした。

本当は、企画書のあとに物語のプロットが続いて、このマンガはどんなシーンから始まって、どんな対決を経て、主人公がどんなことに立ち向かっていくのか、みたいな物語の大筋がわかるようなものが作れたら、企画を採用するかどうかの精度も上がると思ったのですが、肝心のプロット生成部分が思ったように動作しなかったのです。

と言うのも、大きな構想の中では、プロットからシナリオが生成され、シナリオからイメージボードが生成され、イメージボードとセリフからネームが作られ、ネームからマンガの原稿が出来上がる…というマンガ制作の全体を補助するツールを作ろうとしていたためです。

そのためには、プロット部分も、のちの工程にコンテクストを渡していけるように、タスクを細分化して構造化しなければなりません。

そうした結果、複雑化した構造の中で、本来強い推進力を持って、物語の中心にあるテーマの解決に向かってどんどん進んでいってほしいはずのストーリーが、拡散し抽象化して、全然前に進まなくなってしまいました。

プロット部分の構想は、私が普段マンガを描く際に作る8幕構成で考えていたのですが、7幕目のクライマックスに至っても、「主人公が○○を決意した!」みたいなことをやっていて、いつまでも最初の町を出ないストーリーばかり出力されてしまいました。

それに、企画書の部分までは15分でさくさく進めたのですが、プロットに入ると途端に考えることが増えて、なかなか進めることができず、平均2時間ぐらいかかる代物になってしまいました。

構造をあれこれ考えすぎて、無闇に複雑化してしまったのが良くなかったように思います。


おそらくですが、企画書の部分を丸ごとGPT-4やClaude3 Opusに放り込んで、「3幕構成のプロットを書け」とやった方が、面白いプロットができると思います。

全体の構造をもっとシンプルかつ力強くなるように、考え直したいと思います。


この部分の改善案については、来場者の方でマンガを描いている方から、いくつか助言やアイデアをシェアいただきました。

8幕のような複雑なものを生成しようとするのではなく、3幕構成の短いプロットを出させた方が、企画書としては使えるものになるだろう

来場者の方

面白い出力が出てこなくてもよくて、全体のプロットの中で、序盤のこのぐらいのタイミングで、こうゆう要素が出てきた方がいいとか、終盤のここで伏線を回収した方がいい、のような、ストーリー全体の構成の骨組みみたいなものを提案してくれるものだったらすごくほしい

来場者の方

とても参考になりましたし、インスピレーションも沸いたので、参考にさせていただきながら、新しいバージョンに挑戦してみようと思います。


展示会全体の感想

展示会が開場するまでは、ひとりでヘンテコなことをしている私のブースに、興味を持ってくれる人などそういないだろう、と思っていたのですが、開場から閉会まで4時間人が途切れることなく、ずっと喋りっぱなしでした。

こんなに多くの方に関心を持ってもらえるとは思っておらず、とても嬉しかったです。
他のブースも人がいっぱいで、生成AIに関心を持って、イベントに参加して開発者と話したいと思っている人がたくさんいるのが嬉しかったです。
企業やメディアの方もいらっしゃってました。

私は自分のブースで説明をするのに必死で、他の方のブースや展示物はほとんど見学できませんでした。
他の展示者の方もそうだったようです。

しかしそれでも、ただ客として足を運ぶよりも、自分が提供する側で参加した方がイベントは楽しいですよね。
次回があれば、また他の関連イベントでも、積極的に参加していきたいです。


プレゼンテーションや展示物

プレゼン動画

前日徹夜して作ったプレゼン動画です。
概要資料の解説を、OpenAI TTSに読み上げてもらって、Davince Resolveで編集して作りました。
当日は結局ほとんど出番がなかったので、供養として貼っておきます。

上記のような話というより、今までどんなことをしてきて、今回どんなチャレンジをしたか、というプレゼンテーションになっています。


拙著の展示

私は普段、SNSにマンガを投稿して、電子書籍にまとめているのですが、せっかくのリアルイベントなので、紙に印刷して持っていきました。
あまり積極的に売っているものではないので、手にとって読んでいただけるのは珍しい機会だったと思います。

電子版は下記から、全て無料で読めるので、よかったら本棚に加えてください。


「はじめとちえこ全集」
作家を志す日陰暮らしの青年が、少しずつ壊れていく妻との生活の中で、自らの存在意義を問い直す話です。

「バーントシェンナとコバルトブルー」
どうしてもAIの描いた絵を認めることができない女の子が、誰かに認められるためにがんばる話です。

「コルクラボマンガ専科第8期課題作品集」
2023年の夏から冬にかけて参加した、コルクラボマンガ専科第8期の中で取り組んだ課題作品約120作品を全収録した作品集です。(183ページ)

「アンドロイドは好きな人の夢を見るか」
ちょっと頼りない営業サポート課のリーダー:新井ケイの元にやってきた、超高性能AIを搭載したアンドロイド:アイコの半年間の実証実験の記録。アンドロイドと人間との間には、感情的な交流が成立するのでしょうか?

今後も作品数を増やしていこうと思いますので、ぜひよろしくお願いします。


参考

「生成AIなんでも展示会」イベント情報

レポートnote

展示者のnote

他にもおすすめの関連noteがあればお知らせください🙏


最後までお読みくださり、ありがとうございました!
2024年4月24日 公開

いいなと思ったら応援しよう!