生成AI研究室(51) MiniMax H3の「Seamless Anime VAE」——最後の工程だけ替えると、絵がセル塗りになる

生成AI研究室(51) MiniMax H3 Seamless Anime VAE——最後の工程だけ替えると絵がセル塗りになる

昨日の朝に引用した「VAEを差し替えるだけで、H3の絵がアニメ塗りになる」が、当方の投稿としては一番読まれました(1日で190いいね・8,400表示)。リンク先にした第26回は「速くするVAE」の話で、「絵柄を変えるVAE」の説明はまだ書いていません。配布元のモデルカードを読んで、1本にまとめます。当方はまだ動かしていません。 動かしたら続報を書きます。

目次

先に、VAEは「最後の工程」

MiniMax H3は、動画を直接描いているのではありません。縮めた数の並び(latent・潜在表現)の上でノイズを消していき、最後に VAE のデコーダが、その並びを絵(フレーム)に戻します。 生成時間の大半はノイズ除去ですが、絵の「肌ざわり」——線の鋭さ、平らな面のむら、色の転び——を決めるのは、この最後の工程です。

H3の生成の流れとVAEの位置。ノイズ除去(ステップ数で時間が決まる)→VAEデコーダ(latent→絵)。デコーダは差し替えられる部品で、速さを替えるもの(Sol・LightVAE)と絵柄を替えるもの(Seamless Anime)が別々にある
H3の生成の流れとVAEの位置。ノイズ除去(ステップ数で時間が決まる)→VAEデコーダ(latent→絵)。デコーダは差し替えられる部品で、速さを替えるもの(Sol・LightVAE)と絵柄を替えるもの(Seamless Anime)が別々にある

だから、モデル本体もLoRAもプロンプトも変えずに、デコーダだけ替えると絵が変わる。これがVAE差し替えの意味です。

Seamless Anime VAEとは何か

dully3865 が Hugging Face で公開した、H3の公式VAE(fp16)を追加学習したデコーダです。公開は10月30日(JST)、10月31日にTensorRT向けのONNX版が加わりました。ライセンスはH3本体と同じ MiniMax H3 Community License。

出典: dully3865/Minimax_H3_seamless_anime_VAE(Hugging Face)

作者が挙げている学習の狙いは6つです。

  1. 2Dイラスト・アニメの表現を広く再現する
  2. 格子の除去——16×16の圧縮の格子と、256×256のタイル分割の格子を消す(名前の「Seamless」はここ)
  3. 鋭い縁のぼけ・にじみを消す
  4. アニメ絵で肌が赤らむ(酔ったように見える)・色が転ぶ問題を直す
  5. 平らな塗りの、かすかな色のちらつきを抑える
  6. 1フレーム(T=1)の安定性

学習データは、動画クリップ15,000本と画像15,000枚。中身は2Dイラストが約6割、3Dレンダーが約2割、実写が約2割です。アニメ専用というより、「2D寄りに重心を置いた汎用」と読むのが正確です。学習は30,000ステップ×バッチ8=24万ステップ。

ファイルは3種類。

ファイル大きさ用途
fp16 safetensors5.21GBComfyUIの Load VAE でそのまま
int8 safetensors2.8GB同上・軽い
TensorRT/ONNX(フォルダ)TensorRT向け。作者注記: ONNX版は1フレーム画像が壊れる(公式VAEでも同じ)

使った人の数字

日本語圏で早く試した方(@yu_ichi_suzuki)が、同じ1088pの動画(約10秒)を4つのデコーダで戻して比べています。機材はRTX 5090。

デコーダ復元(デコード)時間
公式VAE50秒
Sol-H3-VAE7秒
Seamless Anime fp1649秒
Seamless Anime int824秒

見た目の報告は、「平らな塗りのむらは明らかに減る。線の鋭さはそのままで、ジャギーやアンチエイリアスがきれいになる」。一方で「仕上がりがセル画っぽく均一になるので、いつも使うのがいいとは限らない。質感を残したい場合には合わない」。fp16とint8は見た目の差を感じず、速いint8でよさそう、とのことです。

数字から読めることが1つ。Seamless fp16の49秒は、公式の50秒とほぼ同じ。 公式VAEの追加学習なので、構造も速さも公式と同じです。速くなるのはint8にしたぶんだけ。

3つのVAEは、同じ場所の「別の目的」

H3のデコーダを差し替える道具は、この1か月で3つそろいました。

公式VAESol-H3-VAE(NVlabs)LightVAE(lightx2v)Seamless Anime(dully3865)
替えるもの—速さ速さ絵柄
作り方—36層を24層に蒸留した別のデコーダ時間方向を低ランクに縮め、層を間引く公式fp16を追加学習
速さ(作者/報告者)5秒768pで12.5秒(5090)同5.0秒(5090)約半分(第26回)公式と同じ(int8で約半分)
絵基準公式と同じ絵を目指す(PSNR 45.4dB)公式の99.5%(VBench)意図的に変える(セル塗り寄り)
入れ方Load VAEComfyUI本体にマージ済み専用ノード Load H3 LightVAELoad VAE に置くだけ

出典: Efficient-Large-Model/Sol-H3-VAE、第26回

大事な点が1つ。デコーダは1つしか使えません。 Solの速さとSeamlessの絵柄を同時に取ることはできません。SolもLightVAEも「公式と同じ絵を、速く」が目的で、Seamlessは「公式と違う絵を」が目的。選ぶときは、速さが欲しいか、絵柄が欲しいかのどちらかです。絵柄を取って速さも欲しいなら、Seamlessのint8(報告で24秒)が今のところの答えになります。

ComfyUIでの入れ方

Seamless Anime は公式VAEと同じ構造なので、特別なノードは要りません。

  1. safetensors(fp16かint8)を models/vae/ に置く
  2. 既存のH3ワークフローの Load VAE で、公式VAEの代わりにこのファイルを選ぶ
  3. VAE Decode 以降はそのまま。音声のVAEは触らない(第26回のLightVAEと同じ)

生成し直す必要はありません。すでに作った動画の latent が残っていれば、デコードだけやり直せます。同じ latent を公式とSeamlessで戻して並べるのが、一番わかりやすい比較です。

当方の線

このサイトの動画は実写寄り(白いマネキンの参照から実写風の女性を出す、魔女のダンス)が中心で、セル塗りの線はまだ1本もありません。Seamlessの出番は、次の2つです。

  • 同じ latent を2つのデコーダで戻す比較。 当方の第47回(魔女ダンス・実写風)の latent をSeamlessで戻すと、実写風の絵がどう変わるか。作者のデータは実写も2割入っているので、壊れないはずですが、「セル画っぽく均一になる」が実写風にどう出るかは見てみないとわかりません。
  • キャラシート→アニメ調の線。 第3回のキャラシートはイラストなので、こちらは本来の用途です。クリスマス企画をアニメ調で組むなら、デコーダはこれになります。

機材はデスクトップ(RTX 5060 Ti 16GB)です。int8が2.8GBなのでVRAMは心配していませんが、復元時間は5090の報告(24秒)より長くなります。測ってから書きます。

試す順番

  1. models/vae/ にint8版を置き、第47回の既存ワークフローの Load VAE だけ差し替えて、同じ latent をデコード(復元時間・見た目)
  2. fp16版で同じことをして、int8との差を見る
  3. キャラシート(イラスト)で1本——セル塗りが本当に均一になるか

結果が出たら、同じ型で続報を書きます。


本記事は公開情報(Hugging Faceのモデルカード・公開されている利用報告)の整理で、数値は作者と報告者の公表値です。当方の実測は含みません。


よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次