漫画制作

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

公開日

ChatGPTなどの画像生成に「この内容で漫画を描いて」と頼むと、1分ほどでそれらしいページが出てきます。ところが、よく見ると「なんとなく」の絵です。特に多いのが、同じ並び・同じ角度の構図が何コマも続く こと。AI漫画でよくある失敗です。ほかにも、頼んでいない数字や小道具が描き込まれる、コマをどの順番で読めばいいのか分からない、といったことが起きます。

ACGWORLDSは企業向け漫画の制作を研究する中で、AIへの指示をJSONで組み立てる方法 に行き着きました。この記事では、その理由を実際の出力で確かめます。同じ場面を「普通に書いた文章」と「JSON」で描かせて比べると、JSONのほうがはっきり良くなりました。普通の文章では、同じ構図のコマが7つも並びました。その差がどこから来るのか、JSONとは何か、そしてコピーして使える型までまとめます。

JSONとは

たとえば、漫画の1コマ分をJSONで書くと、こうなります。

json
{
  "コマ": 1,
  "構図": "引き(部屋全体)",
  "カメラ": "二人の背中越し、目の高さ",
  "セリフ": "はじめまして。ACGWORLDSの黒瀬です"
}

覚える記号は4つだけです。

記号意味
{ }ひとまとまり(ここでは1コマ分)
" "中身が文字であることを示す
:「項目の名前」と「中身」をつなぐ
,項目と項目の区切り

コマがいくつもあるときは、[ ] の中に1コマずつ並べます。

実験:同じ場面を「普通の文章」と「JSON」で頼んだ

条件は次のとおりです。

項目内容
使った道具ChatGPTの画像生成
題材当社の作例の7ページ目。会議室に営業の黒瀬が現れ、料金を聞いたひなたと部長が驚く場面
共通で渡したもの登場人物3人の設定画(見た目の見本)3枚
比べた指示普通に書いた文章/JSON/JSONに「人物の位置」の欄を足したもの
回数それぞれ2回ずつ

普通に書いた文章

漫画を頼むときに、多くの人が書きそうな文章です。縦書き・右から読む・余計な文字を入れない、というお願いも入れました。

JSON

同じ場面を、コマごとの項目に分けて書きました。

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 黒瀬一颯」
左が普通に書いた文章(コマ数・構図の指定なし)、右がJSONで書いた指示。左の破線枠Aはひなたと部長の同じ構図、Bは黒瀬の同じ構図(架空の題材)
左が普通に書いた文章(コマ数・構図の指定なし)、右がJSONで書いた指示。左の破線枠Aはひなたと部長の同じ構図、Bは黒瀬の同じ構図(架空の題材)

AI漫画をJSONで書いたほうがいい理由

当社が研究の中でJSONに行き着いたのは、次の6つの理由からです。

1. 書き漏らさない

JSONには、コマごとに「大きさ」「構図」「カメラ」「位置」「セリフ」「画面の文字」の欄が並びます。空欄があれば「まだ決めていない」とすぐ分かります。普通の文章では、カメラの位置や人物の左右まで書こうとは、まず思いません。上の実験の差は、ほぼこれで説明できます。

2. 「描くもの」と「参考」を分けられる

人物の年齢や役職は、見た目を合わせるための参考です。絵の中に書いてほしいわけではありません。ところが、ひと続きの文章で渡すと、AIが参考情報まで絵に描いてしまうことがあります。以前の記事で試したときは、人物の説明がそのまま名前ラベルとして絵に入りました。

普通の文章で頼んだとき、人物の説明がそのまま名前ラベルとして描かれた例(架空の題材)
普通の文章で頼んだとき、人物の説明がそのまま名前ラベルとして描かれた例(架空の題材)

JSONなら、人物の説明を「参考(絵の中に文字で書かない)」の欄に入れられます。今回のJSONの出力では、名前ラベルは一度も出ませんでした。

3. 共通の設定を1か所に書ける

部屋の配置や人物の位置は、ページ全体に関わる設定です。JSONなら、ページの欄に1回書けば全コマに効き、変えるときも1か所で済みます。

これがよく分かったのが、キャラクターの左右です。1コマ目は二人を後ろから見ていて、左にひなた・右に部長。4コマ目は二人を正面から見ています。カメラが、並んで座る二人を結ぶ見えない線(イマジナリーライン)を越えて反対側に回ったので、本来は左右が入れ替わり、左に部長・右にひなたになります。最初のJSONには位置の欄がなく、2回とも4コマ目の左右がそのまま でした。

そこで、ページの欄と、1コマ目・4コマ目の欄に位置を書き足しました。

json
"staging": "3人のいる位置は全コマで同じ部屋の同じ配置。机をはさんで、ひなたと轟が並んで座り、扉は二人の正面の奥。カメラの向きが変わったら、画面の左右もそれに合わせて入れ替える",
"position": "カメラは二人の背中側。画面左にひなた(後ろ姿)、画面右に轟(後ろ姿)、奥の中央に黒瀬",
"position": "カメラは二人の正面側(1コマ目と反対側)。そのため左右が入れ替わり、画面左に轟、画面右にひなた"

結果、2回とも正しく入れ替わりました。

左が位置の指定なし、右が位置の欄を足したJSON。4コマ目の左右に注目(架空の題材)
左が位置の指定なし、右が位置の欄を足したJSON。4コマ目の左右に注目(架空の題材)

イマジナリーラインを越えて左右を入れ替えるか、越えずに左右を保つかは演出の判断です。大事なのは、どちらにするかを決めて書くこと。書かなければ、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を、どの場面にも使える形にしました。中身を書き換えて使ってください。

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回まで含めて制作する受託サービスです。

作例7ページ目(公開版)。この記事の実験と同じ場面(架空の題材によるACGWORLDSのデモ)
作例7ページ目(公開版)。この記事の実験と同じ場面(架空の題材によるACGWORLDSのデモ)

まとめ

よくある質問

JSONとは何ですか?

「項目の名前」と「中身」をセットにして書く、決まった書き方です。もともとはプログラム同士がデータをやりとりするための形式で、ChatGPTなどのAIもよく読めます。記号は { } " " : , の4つを覚えれば読めます。

AI漫画のプロンプトはJSONで書いたほうがいいですか?

書いたほうがいいと考えます。ACGWORLDSが企業向け漫画の制作を研究する中で行き着いた方法です。同じ場面をChatGPTの画像生成に頼んで比べたところ、普通の文章では同じ並び・同じ角度の構図が何コマも続きましたが、JSONではコマごとに角度が変わりました。JSONにはコマごとに書く欄が並ぶので、書き漏らしが減ります。

普通の文章ではだめなのですか?

同じ中身を細かく書けば、文章でも同じように効きました。ただ、普通に書く文章では、カメラの位置や人物の左右まで書くことはまずありません。書くべき項目が欄として並ぶのが、JSONの強みです。

JSONを書けなくても使えますか?

使えます。記事の型をコピーして中身を書き換えるか、ChatGPTに「この台本を、この型のJSONにして」と頼めば作ってもらえます。

ChatGPT以外の画像生成でも同じですか?

今回試したのはChatGPTの画像生成だけです。ほかの道具では結果が違う可能性があります。

この記事の著者

ACGWORLDS株式会社

AI活用や漫画・映像制作の現場から、実務に役立つノウハウをお届けします。

AIの活用、一緒に考えませんか。

記事の内容について、御社の場合はどうなるか。専門用語なし・無料でご相談に乗ります。

無料で相談する →