画像生成AIへの禁止プロンプトが、想像した失敗しか防げなかった話
江戸の町並みを描かせるとき、画像生成AIのプロンプトには「遠景に現代のビルや電柱を描かない」と書いていました。ところが出てきたのは、その禁止事項には触れない現代の京都の住宅でした。看板の文字の指定や、静止画の言葉が動画で動き出す現象、禁止文が600語まで膨らんだ話などを通じて、何を禁じるかではなく何でできているかを指定するようになるまでの試行錯誤をまとめました。
YouTubeチャンネル「歴史の雨音」の映像はAIで生成しています(全体像は「AIエージェントに、動画チャンネルの運用を丸ごと任せてみた」)。画像を作るプロンプトはAIエージェントが毎回書いていて、そのもとになるルール集を少しずつ育ててきました。
最初、そのルールの多くは禁止事項でした。「陸屋根の四角いビルを描かない」「電柱を描かない」「ガラスを描かない」といったものです。
しかし、動画を100本単位で作り続けるうちに実感したのは、禁止のルールは書いた人間が事前に想像できた失敗にしか効かない、ということでした。モデルは、人間が想像していなかった形で、禁止事項の網の目をすり抜けて別の不自然さを生成してくるのです。
この記事では、禁止事項プロンプトをすり抜けた失敗の数々と、意図した情景を描かせるために試行錯誤した記録を共有します。
禁止事項を満たした現代の家
9月下旬、京都の町家の縁側から庭を眺めるシーンを確認していて、庭の向こうに見える2軒の家に目が留まりました。瓦屋根の伝統的な日本家屋の形をしているのですが、江戸時代の建物に見えませんでした。
直前にエージェントが出力したセルフチェックのログには、「すべて勾配屋根、漆喰壁、電柱なし。問題なし」と記録されていました。
画像を拡大してみると、均一に塗られた外壁、大きさが綺麗に揃った瓦、まっすぐな金属製にも見える樋が描かれていました。昭和以降の日本家屋のように見えます。


当時のプロンプトの禁止ルールには、こう書いてありました。
遠景の現代建築(陸屋根の四角いビル、コンクリート構造物、鉄塔、電柱、看板)。雨霞に溶けたシルエットであっても不可。遠景の建物はすべて勾配屋根(瓦葺・板葺・檜皮葺・茅葺)とすること
AIが描いた現代の家は、このルールのどこにも違反していません。瓦葺きの勾配屋根で、ビルでも鉄塔でも電柱でもありませんでした。
禁止ルールは、私が頭に思い描いていた「江戸の町に高層ビルや電柱が紛れ込む」という分かりやすい失敗は防いでくれていました。しかし実際の失敗は、その網の目をすり抜けてしまっていたのです。
遠景の建物について指示している21本のプロンプトを調べてみると、14本が屋根の形だけで時代を縛ろうとしていました。
禁止項目をいくら増やしても追いつかないので、江戸の家が何でできているかを具体的に指定するように変えました。時代を決めるのは屋根の輪郭だけでなく、壁や開口部、二階のつくりでした。土壁や漆喰、焼杉の板壁、格子と虫籠窓、背の低い厨子二階、手作りの不揃いな瓦、竹の樋か樋なし、といった要素をプロンプトに足していきました。


どこを見れば時代が分かるのかを具体的に定義したことで、モデルへの指示だけでなく、人間がレビューするときにチェックすべきポイントも明確になりました。
看板の文字で4回やり直した話
もうひとつ、禁止する、というアプローチで苦労したのが看板の文字でした。宿場町の旅籠を描かせたときに看板1枚の描写を決めるために画像の生成を4回やり直すことになりました。
1回目は構図こそ良かったものの、通りの向かいにある旅籠の看板の漢字が崩れていました。日本の漢字ではなく、古代中国の漢字が崩れたような不自然な字体です。


そこでエージェントに出した指示は、「読める文字を描くこと自体を禁止する」というものでした。
出てきた2回目の画像は、すべての看板が無地のただの古い木の板になっていました。

街道沿いの看板から文字を排除した結果、宿場町全体がまるで人の住んでいないゴーストタウンのように寂れて見えてしまいました。人のいない情景の中にも生活の息遣いを残す、というのはこのチャンネルの大切な演出方針です。
3回目は、看板に「宿」と正しい漢字一文字を書かせ、暖簾や提灯、柱に掛けた草鞋の束などの生活道具も配置しました。しかし今度は、文字は正しく書けたものの、時代考証の面で引っかかりました。
看板に「宿」と一文字だけ書くのは、現代の略し方です。酒屋の「酒」や質屋の「質」なら一文字看板は実在しますが、江戸時代の旅籠の看板は「亀屋」のような屋号か「御宿」と書くのが通例でした。崩れた文字と同じような違和感ですが、日本語と歴史を知っている人間でなければ感じられない違和感です。
最終的に4回目で、旅籠の屋号として「亀屋」を正面から指定して、ようやく思い描いていた情景になりました。

画像生成モデルには、絵の中に板があればどの板にも文字を書こうとし、そのうち最も大きく描かれた1枚だけが正しい漢字になりやすい、という特性があります。看板の文字をごまかすのではなく、一番目立つ看板の文字をはっきりと指定し、周囲の小さな板は距離や霧雨で自然に読めなくなるよう構図で目立たなくさせるのが、一番安定するやり方でした。
静止画の言葉が動画で動き出す
このチャンネルでは、まず静止画をNano Banana Proで生成し、その静止画を入力として動画生成モデルに渡して雨を降らせています。
そのとき、静止画を作るためのプロンプトに書いた言葉が、後の動画生成ステップで意図しない激しい動きになってしまう現象が何度かありました。
平安時代のシーンで、静止画のプロンプトに「地面に落ちて小さな波紋を広げる水滴」と指定していたところ、出来上がった動画では土の上に湖のような巨大な波紋が広がりました。「風に揺れるススキの穂」と書けばススキが激しく揺れ動き、「雨樋から勢いよく吐き出される水の塊」と書いたシーンでは軒下から滝のような水が吹き出しました。「雨に煙る町並み」という比喩表現の「煙」を、モデルが文字通り煙突の煙のように立ち上らせたこともあります。
静止画の段階では画面が止まっているため、プロンプトに動きを表す言葉が入っていても問題ありません。しかし、動画プロンプトは静止画のプロンプトをベースにして作る上に、静止画そのものを入力として使うため、静止画側に書いた言葉や描写の影響が動画にも強く作用してしまうのです。
雨の描写そのものについても、同じような現象が起きました。静止画のプロンプトに白い雨の筋をはっきり描き込ませると、動画生成モデルはその雨筋を「動かない風景の一部」として認識してしまい、止まった雨筋の上にさらに別の雨を降らせてしまいます。
静止画側には霧や濡れて濃くなった地面、軒先の短い雨だれといった環境の変化だけを描かせ、空から降る雨の描写は動画モデルに委ねるようにしたことで、ようやく自然な雨が降るようになりました。
動かしたくない部分は画像の段階で乾かす
動画側のプロンプトでいくら禁止事項を重ねても、静止画が持っている情報に押し切られてしまうこともありました。
旅籠の縁側のシーンで、濡れた縁板の上で水が不自然に波打つのを止めるため、動画を何本も作り直したことがありました。プロンプトで水たまりを指定して「鏡のように静止している」と書くと水たまりは止まりますが、今度は縁板が動き出します。縁板を固定すると庭の地面が揺れ、地面を固定すると植え込みが揺れ始めました。
雨のシーンである以上、モデルは何かしらを動かそうとします。プロンプトの禁止文は、その動きの行き先をあちこちに移動させているだけに見えました。
プロンプトの文面はまったく同じなのに、縁板の動きが止まった回と止まらなかった回がありました。違いを調べると、画像の側にありました。動きが止まった回の縁板は乾いた灰色で、止まらなかった回の縁板は濡れて光を反射していたのです。
画像の上で濡れて光っている面は、プロンプトでどれだけ「動くな」と指定しても、動画モデル側で水面としての物理的な動きとして解釈されて動いてしまいます。この時に、プロンプトによる制約は、ベースとなる画像がそれを支えているときにしか効かない、という根本的な理解に至りました。
禁止文が600語まで膨らんだ話
動画生成モデルを別のエンジンに乗り換えたときには、この禁止事項の肥大化が別の問題を引き起こしました。
モデルをSeedanceに切り替えた際、水面の不要な揺れを抑えるために、プロンプトには大量の指示が追加されていきました。「この面は硬い木材である」「この床は完全に乾いている」「水面は鏡面であり波紋は生じない」。気づけばプロンプトは英語で965語(単語)にまで膨らみ、そのうち600語以上が動きを抑え込むための禁止と制約の文言で埋まっていました。
その後、別の窓口経由で以前のモデル(Kling)を再び使えるようになり、当時の簡潔な手順書で動画を作ってみたところ、たった200語のプロンプトであっさりと美しい映像が生成されました。
600語の禁止事項は、前後の文脈を推測しない特定のモデルを力づくで制御するために積み上げられたものでした。推測能力を持つモデルにとっては、それらの禁止事項はかえって邪魔になっていたのだと思います。
何でできているかを書く
試行錯誤を重ねる中で見えてきたのは、生成AIに対する指示の組み立て方でした。
禁止事項は、人間が事前に想像できた失敗の形だけを塞ぎます。しかし生成モデルは、その禁止された形を避けて、別の不自然な描写を作ってきます。そして禁止事項を重ねすぎると、本来描きたかった町の生活感や風景の情緒まで削ぎ落としてしまいます。
いまプロンプトを設計するときに意識しているのは、「何を描くな」と禁じるのをやめ、対象が「何でできているか」を具体的に指定することです。
江戸の家なら、屋根だけでなく壁の素材、窓の形式、二階の高さ。旅籠の看板なら、曖昧な文字を期待するのではなく正面から屋号を指定する。絶対に水を動かしたくない部分なら、プロンプトで無理に抑え込むのではなく、最初から乾いた素材として描かせる。
言葉で禁止事項を積み上げるのをやめ、対象の構成要素を具体的に記述し、それでも制御できないものは画像の側から外す。その割り切りができてから、プロンプトは破綻しにくくなりました。
画像や動画の生成AIを実際のプロダクトや業務プロセスに組み込もうとすると、プロンプトの調整だけでは思い通りにならない場面も多く出てきます。モデルの特性に合わせたパイプラインの設計や、安定した品質管理の仕組みづくりをご検討中の方は、お気軽にご相談ください。