Yyatmita

【第3回】芥川『鼻』を 2 分のミニアニメドラマにしてみた——Colab の A100 と MiniMax H3 で、固定する絵で動きを指示する

前回の口パクの動作確認から一歩進めて、芥川龍之介『鼻』を約 2 分のショートドラマにした。MiniMax H3 で 16 本のカットを作り、声と語りは Irodori-TTS、音楽は ACE-Step。動きは「固定する絵」を何枚も置いて指示した。瞬間移動、同じ動きの繰り返し、抜いた穴に粒が戻る、を越えた作り方と、時間、ユニット、ハマりどころ、ライセンスの読み落とし。

AI動画制作#ai-video#minimax-h3#pika#comfyui#google-colab#short-drama
← 前の記事: 【第2回】Google Colab の A100 で MiniMax H3+Pika H3 Flex——ComfyUI で、用意した声どおりにキャラを口パクさせる

※ハス画像・微グロ画像注意。鼻の毛穴から脂を抜く場面が、動画と「抜く場面」の節にある。

AI 生成動画(映像: MiniMax H3+Pika H3 Flex/声と語り: Irodori-TTS/音楽: ACE-Step 1.5)。原作は芥川龍之介『鼻』。一部の地域では動画を再生できません(理由は後半の「ライセンスを読み落としていた」に書いた)。

前回は、キャラが用意した声どおりに口を動かすかを確かめた。いわばハローワールドだ。締めに「次は、ショートドラマの会話を切り返しでつないでみる」と書いた。

今回はその続きで、1 本のドラマを最後まで作った。題材は芥川龍之介の『鼻』。あごの下まで垂れた鼻を気に病む僧が、弟子の聞いてきた治療で鼻を短くする。ところが、短くなった鼻をかえって笑われる、という話だ。

長さは 1 分 51 秒。MiniMax H3 で作ったカットを 16 本つなぎ、題名と語りの止め絵を足した。かかったのは 3 日。

作り方の全体像

段やったこと使ったもの
1. 原作を読む場面の流れ、セリフの話者、どこを動画にするかを決める青空文庫の本文
2. カット表14 カット前後。セリフは今の言葉に直す—
3. キャラ絵内供(主人公の僧)と弟子。案を何十枚も出して選ぶGPT Image、Gemini
4. 絵コンテカットごとに「何コマ目にどの絵か」を決め、その絵を描くGPT Image
5. 声内供と弟子の声、心の声、語りIrodori-TTS
6. 生成Colab の A100 で、絵コンテの絵を固定してカットを作るMiniMax H3+Pika H3 Flex(ComfyUI)
7. 仮組使う範囲を切ってつなぎ、声と字幕を重ねるffmpeg
8. 音楽3 案作って選ぶACE-Step 1.5
9. 仕上げ704×1280 を 1080×1920 に拡大し、字幕を焼く4x-UltraSharp(手元の RTX 3090)

作業は、ほとんど Claude Code に回してもらった。私がしたのは、絵と動画を見て「ここが変」と言うことだ。

作品名や監督名は、絵の指示に書かなかった。「手描きの 2D アニメ、細い線、色鉛筆のようなやわらかい陰」のように、絵の特徴で書いている。


固定する絵で、動きを指示する

前回は、声のトラックを MiniMaxH3AddGuide で 0 コマ目に固定した。同じノードで、絵も決まったコマに固定できる。今回はこれを主役にした。

たとえば、小坊主たちが内供の背中で笑うカット(C12、141 コマ・約 5.9 秒)は、6 枚の絵を固定した。

コマ固定した絵
0内供が左を向いて立ち、小坊主たちは右で頭を下げている
36背中で小坊主たちが袖で口を隠して笑う
54内供が気づいて、横目で振り返る
72振り向く。小坊主たちは慌てて下を向く
100内供が鼻をかく
最後小坊主たちが逃げ、内供が首をかしげる

プロンプトには、絵と同じ流れを秒で書く(「0.8 秒から 2 秒まで、背中で笑う」「2 秒ごろ気づく」)。

1 回目: 画面から消えて、急に戻ってきた

1 回目の C12 を 0.25 秒ごとに並べた一覧。上の段の 2 コマ目で内供が左へ歩き出し、3 コマ目で画面の端に消えかけ、4〜6 コマ目では小坊主たちだけになり、7 コマ目で急に画面の中ほどに現れる。

内供が左へ歩いて画面から消え、少しして急に戻ってくる。原因は、プロンプトに「左へ歩き去る」と書いたのに、固定した絵では内供が同じ場所に立っていたことだ。モデルは「歩き去る」を守って画面の外へ出し、固定したコマで帳尻を合わせるために、絵の位置へ急に戻した。

2 回目: 同じ動きを繰り返した

最初のコマに「右を向いて言いつける」絵を足した。今度は、振り向いた後にもう一度背を向け、また笑われる。0 コマ目と 72 コマ目に、似た「右を向いた」絵を置いたのが原因だった。似た絵が離れて置かれていると、その間を同じ動きで 2 回つないでしまう。

3 回目: 一つ一つの区切りを絵で押さえる

3 回目の C12 を 0.25 秒ごとに並べた一覧。内供はずっと左に立ったまま、上の段で小坊主たちが笑い、内供が振り返る。下の段で内供が鼻に手をやり、最後に小坊主たちが右へ逃げていく。

「左を向いている → 笑う → 気づく → 振り向く → 慌てて下を向く → 鼻をかく → 逃げる」と、区切りごとに絵を置いた。プロンプトには「内供は左の同じ場所から動かない。歩かない」と書いた。これで流れどおりになった。

分かったこと:

  • プロンプトの動きと、固定した絵の位置を食い違わせない。歩かせたいなら、絵の位置も動かす
  • 似た絵を離れたコマに置かない。置くなら、その間も絵で押さえる
  • 固定したコマで、絵が少しだけ「ぽん」と切り替わることがある。止まっている所に置くと目立たない

抜く場面: 全部抜いて、すっきりさせる

真ん中の見せ場は、茹でた鼻を弟子が足で踏み、毛穴から出てきた脂を毛抜きで抜く場面だ。原作では「鳥の羽の茎のような形をして、四分ばかりの長さにぬける」。角栓を抜く動画のような気持ちよさを狙った。

気持ちよさの型は、「気持ち悪い絵 → 障害が全部取り除かれる → すっきり」だと考えた。なので、映した脂は必ず抜く。抜いた脂は消さずに、懐紙に並べて見せる。

続きの絵を描かせると、抜いた穴に粒が戻る

抜いていく様子は、「つまむ」「置く」の絵を交互に固定して作る。その絵は、前の絵を元に次の絵を描かせた。ところが、画像生成に続きを描かせると、抜いたはずの穴に粒が戻ってしまう。

左は 2 本目を抜いて懐紙に置いた絵で、丸で囲んだ所に穴が開いている。右は続きとして描かせた 3 本目をつまむ絵で、同じ所の穴に粒が戻っている。

固定する絵がこうなっていると、動画でも抜いた脂がまた生えてくる。

直し方は 2 つ。

  • 粒をつまむ絵は、画像の編集で作る。ただし、編集で変わった所だけを元の絵に貼り戻す。ほかの粒や穴は、1 画素も変えない
  • 「置いた」絵は、画像生成を使わず、プログラムで作る。抜いた所には、別の穴の絵を周りの肌ごと写して貼る。懐紙の脂は、1 本目を形に沿って切り抜き、少しずらして並べる

11 か所を固定して、4 本抜く

固定した絵 9 種類を左から並べた図(0 と 12、252 と最後のコマは同じ絵を置いたので、置いたのは 11 か所)。0 コマ目でつまみ、60 コマ目で半分抜け、88 コマ目で抜けきる。124 で 2 本目をつまみ、152 で懐紙に置く。176 と 204 で 3 本目、226 と 252 で 4 本目をつまんで置く。懐紙の上の脂が 1 本ずつ増えていく。

同じ絵を 0 と 12 コマ目、252 と最後のコマにも置いたので、固定したのは 11 か所だ。これで 277 コマ(約 11.5 秒)を 1 本で作った。0.33 秒ごとに並べると、こうなる。

出来た動画を 8 コマおきに並べた一覧。毛抜きで粒をつまみ、長い脂が抜け、懐紙に置く。これを 4 回くり返し、懐紙の脂が 1 本から 4 本に増え、鼻には抜いた穴が残っていく。 0、120、200、276 コマ目を並べた拡大。鼻の穴は 0 個、1 個、3 個、4 個と増え、懐紙の脂も 0 本、1 本、3 本、4 本と増えている。

抜いた穴は粒で埋まらず、1 つずつ増えていく。前は 1 本ずつ別のカットで作ってつないでいたので、つなぎ目で手や懐紙がずれていた。1 本にしたら、ずれも消えた。

引きの絵で残りを早回しで抜く案も試した。固定した 11 枚の絵に手が描かれていなかったので、絵と絵の間で毛抜きを持った手が出たり消えたりした。これは使わなかった。

安全チェックとの付き合い

弟子が足で鼻を踏む場面では、絵の安全チェックに何度か止められた。「少年の素足」と「気持ちよさそうな顔」が同じ絵にあると、性的な絵と判断される。そこで、この 2 つは同じ画面に入れない、と決めた。足が画面から出てから、内供の顔がゆるむ。表情も「うっとり」ではなく「かゆい所をかいてもらった」ほっとした顔で頼んでいる。


声と語りと音楽

声は Irodori-TTS(v4.1)で作った。内供は五十過ぎの気難しい僧、弟子は丁寧な少年。候補を何本も作って聞き比べた。同じ意味のセリフを 2 回言わせる所は、言い方を変えて別に作っている。

語りは、内供の心の声と聞き分けられるよう、大人の女性の声にした。最後の語りは原作のままだ。

内供は、心の中でそうささやいた。長い鼻を、明け方の秋風にぶらつかせながら。

音楽は ACE-Step 1.5 で 3 案作った(和風でひょうきん、和風でしっとり、昔話風で明るめ)。選んだのは、三味線と琴と木の笛の、昔話風の曲だ。声が鳴っている間は、音楽を少し下げている。


仕上げ: 拡大と字幕

H3 で作ったカットは 704×1280 だ。第1回の 4x-UltraSharp で、1080×1920 にした。手元の RTX 3090 で、2,645 コマに 3 時間 44 分かかった。

字幕は拡大の後に焼いた。字幕ごと拡大すると、文字の縁が崩れるからだ。

止め絵にゆっくり寄る所では、画面が細かく揺れた。ffmpeg の zoompan は、切り抜く位置を 1 コマごとに整数の画素に丸める。ゆっくり寄るほど、中央が 1〜2 画素行ったり来たりする。1 コマずつ画素より細かい単位で拡大して作り直したら、止まった。


時間とユニット

Colab を借りるたびに、回数・本数・分・ユニットを 1 行ずつ記録している。『鼻』の分はこうなった。

回日時本数分ユニット結果
111/01 22:138243.20成功。ただし、あとで全部作り直し
211/02 00:26070.43失敗(幅 720 で落ちた)
2(やり直し)11/02 05:398252.97成功
311/02 09:275171.87成功
411/02 10:384233.08成功・接続切れ 2 回
511/02 11:262121.19成功
611/02 14:410537.70失敗(返事を待ち続けた)
711/02 16:208284.08成功・接続切れ 3 回
811/02 17:383161.90成功・接続切れ 1 回
911/02 17:56020.24失敗(Hugging Face の 429)
1011/02 20:313202.78成功・接続切れ 2 回
1111/02 22:560131.80失敗(ドライブの上限)
1211/03 04:002253.69成功・接続切れ 4 回
計4326534.93使ったのは 16 本
  • 失敗した 4 回で 10.17 ユニット。全体の約 3 割だ。そのうち 7.70 は、6 回目の 1 回で消えた
  • 成功した回だけなら、43 本で 24.76 ユニット。1 本あたり約 0.58 ユニット
  • 1 本の生成は、704×1280・124 コマ・6 段で 130〜145 秒。277 コマ・固定 11 か所の C10 は 454 秒で、VRAM は最大 46,880MiB だった
  • 1 回借りるごとに、セットアップ(ComfyUI の導入とモデル 42GB の取得)に 8〜10 分かかる。1〜3 本ずつ小刻みに回したので、その分がかさんだ。長いものを作るなら、絵コンテをまとめて用意し、1 回で 10〜20 本回すほうがよい

失敗の記録

1 回目: お風呂屋さんで、袈裟を着ていた(3.20 ユニット)

最初の 8 本は、プロンプトだけで作った。出来上がりは、湯屋(お風呂屋さん)で内供が袈裟を着たまま鼻を踏まれていた。原作を読み直すと、治療は湯屋ではなく、湯を運んできて僧房で行っている。ほかにも、2 人の位置関係がカットごとに合わない、カットがぶつ切れ、セリフの時間割が合わない、と私の指摘が続いた。

8 本とも捨てて、絵コンテから作り直した。場所、立ち位置(内供は常に左、弟子は右)、カットごとの時間割を先に文字で決め、始まりと終わりの絵を描いて固定する。この記事の「固定する絵」のやり方は、ここから始まった。

2 回目の最初: 幅 720 で落ちた(0.43 ユニット)

前回の口パクと同じ 720×1280 で、絵を固定して流したら、生成が始まってすぐ shape '[1, 24, 1, 1, 40, 2, 22, 2]' is invalid で落ちた。

H3 は画面を 16 画素のマスに分け、絵を固定するときはさらに 2 マスずつまとめる。720 は 45 マスで奇数なので、まとめられない。声だけを固定する前回は、この処理を通らないので動いていた。絵を固定するときは、幅と高さを 32 の倍数にする。縦なら 704×1280 だ。

6 回目: 返事を待ち続けて 53 分(7.70 ユニット)

モデルを取る途中で接続が切れ、16 分待たされた。やっと生成に入ったと思ったら、1 本目が 17% で止まった。手元のスクリプトは VM の返事を待ち続けた。私が「それも長くない?」と聞いて、Claude Code が気づいて手で止めた。0 本で 7.70 ユニット。今回いちばん高くついた失敗だ。

直したのは 3 つ。長い処理は VM の裏で走らせ、手元からは 30 秒ごとに短く様子を聞く。5 分進まなければ止まったと見なして打ち切る。動画は 1 本できるごとに回収する。これ以降、接続は 1 回に 1〜4 回切れているが、作業は止まっていない。

9 回目と 11 回目: モデルを取ってこられない(0.24+1.80 ユニット)

同じ日に 42GB を何度も取っていたら、Hugging Face が 429 Too Many Requests を返した。ログインなしの取得は、IP ごとに 5 分あたりの回数が決まっている。Colab の IP はたくさんの人で共有されているので、こちらの回数が少なくても当たることがあるようだ。

代わりに、モデルを Google ドライブの共有フォルダに置いて取ってみた。10 回目は 6 分で取れた。数時間後の 11 回目は「最近このファイルを見た・取った人が多すぎる」と断られた。共有リンクでのダウンロードには、ファイルごとの上限がある。1 日に何度も借りる使い方には向かなかった。

12 回目は Hugging Face に戻し、429 が返ったら待ってやり直すようにして、通った。

手元でも

  • 拡大の最後に、ちらつきを測る段で、メモリが足りなくなって止められた。拡大そのものは終わっていたので、測る段だけ飛ばした
  • 止め絵の揺れ(仕上げの節)は、私が見て気づいた。数字で測ると、中央が 192 コマ中 87 回ずれていた

ライセンスを読み落としていた

最後に、反省を一つ。

MiniMax H3 のライセンス(MiniMax H3 Community License、2026 年 8 月 2 日付)には、地域の制限がある。米国、EU、英国、韓国が除外地域で、日本は使える側に入っている。

第2回の時点では、ここまでしか読んでいなかった。今回読み直したら、第 V 条 4 項にこうあった。

You may not use, reproduce, modify, distribute, or display the MiniMax H3 Works or any of their Outputs or results outside the Applicable Territory.

モデルだけでなく、生成物(Outputs)の使用や表示も、除外地域の外に限られている。

一方で、MiniMax のライセンスについての Q&Aは、制限の理由を「オープンウェイトが手を離れたあとの、法令順守を管理できないから」と説明している。除外地域の組織が展開したいなら申請を、とも書いている。利用規定には「生成物を公開の場に出すときは、機械で生成したとはっきり示す」という決まりもある。ネットに出すことは想定されていると読める。

日本にいる私が作って、日本から出す分には問題ないと考えている。それでも、ネットで世界から見られることや、借りた Colab の VM がどの国にあるかについては、条文に書いていない。いま MiniMax に問い合わせている。返事が来たら、ここに書き足す。

それまでは念のため、このサイトの H3 で作った動画(第2回と今回)は、除外地域からは再生できないようにした。記事そのものは、どこからでも読める。

H3 を使う人は、モデルを動かす場所と、生成物を出す先に気をつけてほしい。


まだ分かっていないこと

  • 2 人が同じカットで交互に話すカット。今回も 1 カット 1 話者の切り返しで作った
  • 固定する絵に何か所まで頼れるか。今回は最大 11 か所で、それより多くは試していない
  • ライセンスの地域の制限が無いモデル(Wan、LTX など)で、同じ作り方ができるか。次はこれを確かめる

前回の記事: 【第2回】Google Colab の A100 で MiniMax H3+Pika H3 Flex——ComfyUI で、用意した声どおりにキャラを口パクさせる