AI漫画はJSONで書いたほうがいい理由。ChatGPTに普通に頼むと、同じ構図が何コマも続く

ChatGPTなどの画像生成に「この内容で漫画を描いて」と頼むと、1分ほどでそれらしいページが出てきます。ところが、よく見ると「なんとなく」の絵です。特に多いのが、同じ並び・同じ角度の構図が何コマも続く こと。AI漫画でよくある失敗です。ほかにも、頼んでいない数字や小道具が描き込まれる、コマをどの順番で読めばいいのか分からない、といったことが起きます。
ACGWORLDSは企業向け漫画の制作を研究する中で、AIへの指示をJSONで組み立てる方法 に行き着きました。この記事では、その理由を実際の出力で確かめます。同じ場面を「普通に書いた文章」と「JSON」で描かせて比べると、JSONのほうがはっきり良くなりました。普通の文章では、同じ構図のコマが7つも並びました。その差がどこから来るのか、JSONとは何か、そしてコピーして使える型までまとめます。
JSONとは
たとえば、漫画の1コマ分をJSONで書くと、こうなります。
{
"コマ": 1,
"構図": "引き(部屋全体)",
"カメラ": "二人の背中越し、目の高さ",
"セリフ": "はじめまして。ACGWORLDSの黒瀬です"
}
覚える記号は4つだけです。
| 記号 | 意味 |
|---|---|
| { } | ひとまとまり(ここでは1コマ分) |
| " " | 中身が文字であることを示す |
| : | 「項目の名前」と「中身」をつなぐ |
| , | 項目と項目の区切り |
コマがいくつもあるときは、[ ] の中に1コマずつ並べます。
実験:同じ場面を「普通の文章」と「JSON」で頼んだ
条件は次のとおりです。
| 項目 | 内容 |
|---|---|
| 使った道具 | ChatGPTの画像生成 |
| 題材 | 当社の作例の7ページ目。会議室に営業の黒瀬が現れ、料金を聞いたひなたと部長が驚く場面 |
| 共通で渡したもの | 登場人物3人の設定画(見た目の見本)3枚 |
| 比べた指示 | 普通に書いた文章/JSON/JSONに「人物の位置」の欄を足したもの |
| 回数 | それぞれ2回ずつ |
普通に書いた文章
漫画を頼むときに、多くの人が書きそうな文章です。縦書き・右から読む・余計な文字を入れない、というお願いも入れました。
JSON
同じ場面を、コマごとの項目に分けて書きました。
{
"page": {
"format": "縦長の漫画1ページ",
"reading_order": "日本の漫画の順番(右上のコマから始めて、右から左、上から下へ)",
"dialogue": "セリフはすべて縦書きの吹き出しに入れる",
"text_rule": "絵の中に入れてよい文字は、下の dialogue と screen_text に書いたものだけ。看板・札・ロゴ・キャッチコピー・人物の名前ラベル・ナレーションは追加しない"
},
"characters_reference_only": {
"note": "人物の説明は見た目を合わせるための参考。絵の中に文字として書かない",
"芦原ひなた": "28歳・広報担当・黒髪のショートボブで右の一房が跳ねている・赤いフレームの丸メガネ・紺のパンツスーツに白シャツ・襟元に小さな赤いリボンタイ",
"轟大介": "52歳・広報部長・恰幅がよく角刈り・太い眉と口髭・ベージュのジャケット",
"黒瀬一颯": "35歳・営業・長身・前髪の右側に一房だけ白髪・チャコールの三つ揃いに赤いポケットチーフ"
},
"panels": [
{
"no": 1,
"size": "ページ上半分を使う大きなコマ",
"shot": "引き(部屋全体)",
"camera": "ひなたと轟の背中越し、目の高さ",
"layout": "手前に座る二人の後ろ姿、奥の扉を開けて立つ黒瀬の全身",
"action": "見積書を前に困っている二人のところへ、黒瀬が扉を開けて入ってくる",
"dialogue": [{"speaker": "黒瀬", "text": "はじめまして。ACGWORLDSの黒瀬です"}]
},
{
"no": 2,
"size": "中くらいのコマ",
"shot": "寄り(手元)",
"camera": "机の高さ、名刺と手だけ",
"action": "黒瀬が名刺を差し出す",
"screen_text": ["名刺: ACGWORLDS 黒瀬一颯"]
},
{
"no": 3,
"size": "縦長のコマ",
"shot": "胸から上",
"camera": "やや下から見上げる",
"action": "黒瀬が人差し指を立てて説明する",
"dialogue": [
{"speaker": "黒瀬", "text": "早い・安い・高品質。その全部を、私たちが解決します"},
{"speaker": "黒瀬", "text": "一律、10万円です"},
{"speaker": "黒瀬", "text": "キャラクター決定から、3営業日で第1稿です"}
]
},
{
"no": 4,
"size": "ページ下の横長のコマ",
"shot": "全身",
"camera": "やや上から見下ろす",
"action": "ひなたと轟が椅子から飛び上がるほど驚く。背景に集中線",
"dialogue": [{"speaker": "ひなたと轟", "text": "見積書の、3分の1……!"}]
}
]
}
普通の文章で頼んだら、同じ構図が何コマも続いた
普通の文章で頼んだ結果は、2回ともこうなりました。
- ひなたと部長が出るコマは、3コマとも同じ並び・同じ角度(左にひなた、右に部長、正面から胸から上)
- 営業の黒瀬は、4コマ続けて同じ胸から上
- コマ数を書かなかったので、AIが 9コマ に割った。1コマずつが小さく、窮屈
- 「余計な文字は入れないで」と書いたのに、金貨・時計・カレンダー・「300,000円」と書かれた見積書・「10万円」の札・「早い/安い/高品質」のアイコンが描き込まれた
- 右から読むと、話の順番が逆になる段がある
なぜこうなるのか。文章には「何コマで、どのコマに、どの角度で何を描くか」が書かれていないからです。空いたところはAIが自分で埋めます。人物は一番無難な「正面の胸から上」で、同じ並びのまま繰り返され、説明の場面は小道具と数字で埋まります。「なんとなく」の正体は、この AIが埋めた部分 です。
JSONで書いたら、構図がコマごとに変わった
JSONで頼んだ結果は、2回ともこうなりました。
- 指定どおり4コマ
- ひなたと部長は、1コマ目は背中越し、4コマ目は正面から全身と、角度が変わった
- 背中越しの引き → 名刺を持つ手元 → 見上げる胸から上 → 全身で驚く と、コマごとに角度が変わった
- 頼んでいない小道具・ロゴ・人物の名前ラベルが出なかった
- 名刺の文字が指定どおり「ACGWORLDS 黒瀬一颯」

AI漫画をJSONで書いたほうがいい理由
当社が研究の中でJSONに行き着いたのは、次の6つの理由からです。
1. 書き漏らさない
JSONには、コマごとに「大きさ」「構図」「カメラ」「位置」「セリフ」「画面の文字」の欄が並びます。空欄があれば「まだ決めていない」とすぐ分かります。普通の文章では、カメラの位置や人物の左右まで書こうとは、まず思いません。上の実験の差は、ほぼこれで説明できます。
2. 「描くもの」と「参考」を分けられる
人物の年齢や役職は、見た目を合わせるための参考です。絵の中に書いてほしいわけではありません。ところが、ひと続きの文章で渡すと、AIが参考情報まで絵に描いてしまうことがあります。以前の記事で試したときは、人物の説明がそのまま名前ラベルとして絵に入りました。

JSONなら、人物の説明を「参考(絵の中に文字で書かない)」の欄に入れられます。今回のJSONの出力では、名前ラベルは一度も出ませんでした。
3. 共通の設定を1か所に書ける
部屋の配置や人物の位置は、ページ全体に関わる設定です。JSONなら、ページの欄に1回書けば全コマに効き、変えるときも1か所で済みます。
これがよく分かったのが、キャラクターの左右です。1コマ目は二人を後ろから見ていて、左にひなた・右に部長。4コマ目は二人を正面から見ています。カメラが、並んで座る二人を結ぶ見えない線(イマジナリーライン)を越えて反対側に回ったので、本来は左右が入れ替わり、左に部長・右にひなたになります。最初のJSONには位置の欄がなく、2回とも4コマ目の左右がそのまま でした。
そこで、ページの欄と、1コマ目・4コマ目の欄に位置を書き足しました。
"staging": "3人のいる位置は全コマで同じ部屋の同じ配置。机をはさんで、ひなたと轟が並んで座り、扉は二人の正面の奥。カメラの向きが変わったら、画面の左右もそれに合わせて入れ替える",
"position": "カメラは二人の背中側。画面左にひなた(後ろ姿)、画面右に轟(後ろ姿)、奥の中央に黒瀬",
"position": "カメラは二人の正面側(1コマ目と反対側)。そのため左右が入れ替わり、画面左に轟、画面右にひなた"
結果、2回とも正しく入れ替わりました。

イマジナリーラインを越えて左右を入れ替えるか、越えずに左右を保つかは演出の判断です。大事なのは、どちらにするかを決めて書くこと。書かなければ、AIが決めてしまいます。
4. 1コマだけ直せる
「4コマ目だけ、もう少し上から見下ろす角度にしたい」。JSONなら、4コマ目の camera の欄だけ書き換えて出し直せます。どこを変えたかも一目で分かります。文章の指示だと、長い文のどこを直せばいいか探すところから始まります。
5. セリフを一字一句固定できる
セリフを dialogue の欄に分けておけば、話者と言葉がはっきり結びつきます。長い文章に混ぜるより、言い回しが崩れにくく、画面に出た文字と見比べるのも簡単です。
6. チームで確認しやすく、翻訳版も作りやすい
上司や法務に「3コマ目のセリフ」と指して確認してもらえます。英語版や中国語版を作るときも、セリフの欄だけ差し替えれば済みます。
正直に書いておくこと
- 中身が同じなら、文章でも効きます。JSONと同じ項目を、そのまま細かい文章にして頼んだ場合も、JSONとほぼ同じ結果が出ました。研究で分かったのは、JSONの力は形式そのものではなく、書くべき項目が欄として並ぶこと にある、ということです
- 欄に書かなかったことは、JSONでもAIが埋めます。位置の欄が無かったときに左右を間違えたのが、その例です。4コマ目の「やや上から見下ろす」は、JSONでも無視されたことがありました
- 最初からJSONで話を考えると、硬くなりがちです。先に普通の文章で話を考え、あとで項目に写すほうが、セリフが生きます。写す作業はChatGPTに頼めます
- 1ページが整っても、12ページで人物を揃えるのは別の難しさです。詳しくはAI漫画は自分で作れるのかにまとめています
- 今回試したのはChatGPTの画像生成だけで、それぞれ2回ずつです
コピーして使えるJSONの型
実験で使ったJSONを、どの場面にも使える形にしました。中身を書き換えて使ってください。
{
"page": {
"format": "縦長の漫画1ページ",
"reading_order": "日本の漫画の順番(右上のコマから始めて、右から左、上から下へ)",
"dialogue": "セリフはすべて縦書きの吹き出しに入れる",
"text_rule": "絵の中に入れてよい文字は、dialogue と screen_text に書いたものだけ",
"staging": "人物の位置と部屋の配置(全コマ共通)",
"style": "絵柄の指定"
},
"characters_reference_only": {
"note": "人物の説明は見た目を合わせるための参考。絵の中に文字として書かない",
"人物A": "年齢・髪型・服装・目印"
},
"panels": [
{
"no": 1,
"size": "コマの大きさ",
"shot": "引き/全身/胸から上/顔のアップ/手元 など",
"camera": "どこから、どの高さで見るか",
"position": "画面の左・右・奥に誰がいるか",
"action": "何が起きているか",
"dialogue": [{"speaker": "人物A", "text": "セリフ"}],
"screen_text": []
}
]
}
コマ割りは、JSONの文字だけでは決めきれない
JSONに「ページ上半分を使う大きなコマ」と書いても、どこまでが上半分なのか、コマ同士の段差や読む順番まで、思いどおりになるとは限りません。今回も、2段目の左右が逆に並んだことがありました。コマの位置と大きさを、数値と下絵で指定する方法は、次の記事で扱います。
ACGWORLDSの場合
ACGWORLDS株式会社の企業向け漫画制作は、コマごとの設計を決めてから描き、担当スタッフが150項目で検品してからご提出します。1〜12ページを基本料金100,000円(税別)で、企画・ストーリー・キャラクターデザイン・作画・文字入れ・修正2回まで含めて制作する受託サービスです。

まとめ
よくある質問
JSONとは何ですか?
「項目の名前」と「中身」をセットにして書く、決まった書き方です。もともとはプログラム同士がデータをやりとりするための形式で、ChatGPTなどのAIもよく読めます。記号は { } " " : , の4つを覚えれば読めます。
AI漫画のプロンプトはJSONで書いたほうがいいですか?
書いたほうがいいと考えます。ACGWORLDSが企業向け漫画の制作を研究する中で行き着いた方法です。同じ場面をChatGPTの画像生成に頼んで比べたところ、普通の文章では同じ並び・同じ角度の構図が何コマも続きましたが、JSONではコマごとに角度が変わりました。JSONにはコマごとに書く欄が並ぶので、書き漏らしが減ります。
普通の文章ではだめなのですか?
同じ中身を細かく書けば、文章でも同じように効きました。ただ、普通に書く文章では、カメラの位置や人物の左右まで書くことはまずありません。書くべき項目が欄として並ぶのが、JSONの強みです。
JSONを書けなくても使えますか?
使えます。記事の型をコピーして中身を書き換えるか、ChatGPTに「この台本を、この型のJSONにして」と頼めば作ってもらえます。
ChatGPT以外の画像生成でも同じですか?
今回試したのはChatGPTの画像生成だけです。ほかの道具では結果が違う可能性があります。
