「FramePack-eichi」でH動画を作ろう エンドフレーム指定、ループ動画モード搭載 (Pixiv Fanbox)
Videos
-
REC.mp4 -
250425_120046_740_1052_46.mp4 -
テスト.mp4 -
テスト2.mp4 -
中間指定2.mp4 -
ループ+中間フレーム.mp4 -
パディング0.2.mp4 -
一方通行.mp4 -
ランダマイズ.mp4 -
モザイク追尾.mp4
Downloads
Content
20250426AM:v1.51で新装された「1秒モード」について追記しました。
20250426PM:v1.6で新装された新UIに合わせて、内容を順次フィックスしています。一部旧UIのスクリーンショットがありますのでご注意ください
20250427PM:v1.61で、主なUIが再び1.51のもの(生成処理順)に戻りました。一方、スタート・エンドフレーム順は上下逆転しています。今後もこうしたUIの模索はしばらく続くと思われますので、安定次第フィックスするようにします。
20250428AM:「3.FramePack-eichiの使い方」に「画像がうまく読み込めないときは」を追記。記事全体を細かく最新環境にフィックス(記事執筆時点ではv1.61)
<注意=記事中にR-18画像・動画が多数含まれます。閲覧時は周囲にご注意下さい>
こんばんは、スタジオ真榊です。今回はローカル動画生成ツールの革命児「FramePack」の機能充実版、「FramePack-eichi」の大型特集です。
FramePack-eichiはlllyasviel氏がリリースした本家FramePackから、nirvash氏がフォークしたエンドフレーム指定機能追加版を、さらに@x_ai_code氏が成人向け動画表現がしやすいようチューンしたもの。ファーストフレーム(動画の1フレーム目)に加えてエンドフレームも指定できるようになっているだけでなく、その中間でもキーフレームと臨時プロンプトでコントロールできるようにしたことで、一貫性を保ちつつ意図通りの動画を作れるようにした野心的ツールです。他にも意欲的な機能が多数詰め込まれており、非常になめらかに2枚の間を動画として補完してくれます。
eichiの導入には、本家FramePackを先にインストールしておく必要があります。この記事では初めて触る方にも分かるようにイチから記述しますが、前回の記事と合わせてご参照頂くとより理解が深まるかと思います。
eichiは名前からNSFW特化型のプロジェクトと思ってしまうのですが、成人向け画像2枚からH動画を作りたいニーズを念頭に、FramePackの機能を充実させたツールという位置付けになるのかなと思います。本家では効かないH動画プロンプトが効くようになるようなものではありませんが、さまざまな機能を使うことで、このような動画を簡単に作ることができるようになります。
家庭用PCで、このレベルの一貫性を保ちながら狙った通りの動画が生成できるのは大変画期的。この記事では、こうした複数クリップを動画編集ソフトで組み合わせてなめらかにつなぐ方法や、キーフレームの作り方、動きに追従するモザイクの掛け方なども解説していきたいと思います。
目次
1.Framepack-eichiの概要
2.インストール方法
①本家FramePackをインストール
②高速化ライブラリ(Xfomersなど)をインストールする
③FramePack-eichiをインストールする
④アップデートのやり方
3.FramePack-eichiの使い方
・生成モード「通常/ループ」
・画像がうまく読み込めないときは new!
・セクションフレームサイズ
・オールパディング機能
・「1秒~4秒モード」
・プロンプトについて
・プロンプト管理
・セクション設定
4.実際の生成手順
①スタート/エンドフレーム指定
・ペア同士の一貫性に注意
②ループ動画
③セクション設定(中間フレーム指定)
・セクションとは?
・セクション設定画面の見方とはたらき
・ループ動画の正しい設定
・オールパディング「0.2」を試す
5.中間フレームを使わずにH動画を作る
・入力画像のペアをインペイントで作る
・等速直線運動の「一方通行動画」を作る
・ランダムな動きをさせてみる
・結論
6.動画編集ソフト「Shotcut」の使い方
・画面の見方
・タイムラインにクリップを並べてみる
・スナップモードとリップルモード
・クリップのトリミング
・逆再生のやり方
7.動画モザイクの掛け方
・ちょっとだけずれているときは?
・モーショントラッカーで追えないときは?
終わりに
1.Framepack-eichiの概要
Framepack-eichiのリポジトリのReadMeは、非常に分かりやすい日本語で丁寧に書かれていますので、まずはこちらにしっかり目を通すことをお勧めします。
本家FramePackと比べて、主な違いは以下の通り。(※nirvash氏によるフォーク版由来の機能も含まれます)
①スタート・エンドフレームを画像指定し、1秒から動画が生成できる。
②動画生成中の「セクション」ごとに、個別のキーフレームや臨時プロンプトを指定可能(※厳格に守られるわけではないが、これにより一貫性保持や動きのコントロール性が向上)
③動画生成用のHunyuan LoRAが適用可能に。モデルが覚えていないキャラクターや表現を後天的に生成できるようになる。
④1秒~20秒まで6つの秒数指定モードを搭載。秒数に応じて効果的なセクション設定ができる
⑤通常の生成モードに加え「ループ」モードが追加。最終フレームが最初のフレームに戻るループ動画を生成できる。
⑥動画プロンプトを記憶させて、いつでもプリセットとして呼び出せる。
他にも生成完了時に音を鳴らしたり、Windows以外にも対応するなど、ユーザーにとってうれしい細かな機能改善が果たされています。グラフィックボードはNVIDIAのRTX30X/40Xシリーズ推奨で、VRAM8GBが最低ラインとのこと。
2.インストール方法
既に本家FramePackのインストールが済んでいる方は、②からお読みください。eichiのインストールを始める前に、必ず「update.bat」をダブルクリックして最新の内容にアプデするのを忘れないこと。
①本家FramePackをインストール
本家FramePackのリポジトリを開いたら、こちらの「Click here to Download One-Click Package」をクリック。約1.7GBの「7z」拡張子の圧縮ファイルがDLされます。「7-zip」などの解凍ソフトを使って任意の場所に展開します。
上の画像に見える5つのファイル・フォルダが展開されますので、「update.bat」をダブルクリック。アップデートの必要があれば、必要なファイルが更新されます。
続いて実行ファイルである「run.bat」をダブルクリック。ここから30GB超のダウンロードが行われます。かなり時間が掛かるので、しばらく放っておきましょう。必要なダウンロードが終了すると、自動的にブラウザでFramePackが立ち上がるはずです。
こちらが表示されたら、無事インストールは終了です。今後は同じように「run.bat」をダブルクリックすれば、次からは快速で起動するようになっています。
②高速化ライブラリ(Xfomersなど)をインストールする
eichiのインストールを始める前に、本家FramePackの生成時間を3割程度削減できる高速化の手続きをします。こちらのリンクを開いて、「package_installer.zip」をダウンロードしてください。
こちらのスクリーンショットの中段にある青文字のリンクがそうです。
ダウンロードしたpackage_installer.zipを解凍したら、中にあるファイルを全てrun.batやupdate.batがあるFramePackのインストールフォルダにコピペしてください。すると、下図のようなファイル構成になるはずです。(まだupdate.batを実行していない場合はここで実行しておいてください)
最新版になっていることが確認できたら、package_installer.batをダブルクリックして実行します。黒いコマンドプロンプト画面が出て「Press Ctrl+C to cancel, or any other key to continue...」(続けていい場合は何かキーを押してください)とメッセージが出ますので、ENTERキーなどを押すとインストールが開始します。
1~2分ほどして「Python Headers/Libs Copied & All Packages Installed Successfully 続行するには何かキーを押してください . . .」とメッセージが出たら高速化は完了。ENTERキーなどを押すと画面が閉じますので、run.batを実行して、ちゃんとwebUIが立ち上がるか確かめておいてください。
③FramePack-eichiをインストールする
高速化が済んだら、いよいよ「eichi」を導入しましょう。
eichiのリポジトリページにアクセスして、緑色のボタンから「Download ZIP」をクリックします。解凍して出てきたファイルを全て、さきほどと同じようにrun.batやupdate.batがあるFramePackのインストールフォルダにコピペします。
すると、このようなフォルダ構成になるはずです。(LICENCEやREADMEは不要なので削除しても構いません)
あとは「run_endframe_ichi.bat」をダブルクリックして実行すればおしまいです。コマンドプロンプトが開いて、しばらくするとeichiバージョンになったFramePackのWebUIがブラウザで起動します。これで、次回からはrun.batを実行すると本家が、run_endframe_ichi.batを実行するとeichi版が立ち上がるようになりました。
※最初は"LoRAサポートが有効です"とだけ出てフリーズしたかのように見えますが、正常な動作です。慌てずしばらく待ちましょう。
途中で"何かキーを押してください"とメッセージが出てeichiのwebUIが開かれなかった場合、run_endframe_ichi.batの前にいったん通常のrun.batを実行してみて、それからもう一度run_endframe_ichi.batを実行し直してみてください。
④アップデートのやり方
更新履歴については、Readmeの最下部で頻繁に報告されています。
アップデートはさきほどと同様、緑色のボタンから「Download ZIP」をクリックしして、解凍して出てきたファイルを全てFramePackのインストールフォルダに上書きコピペするだけでOKです。定期的に更新履歴欄をチェックして、アップデートを掛けるようにしましょう。
3.FramePack-eichiの使い方
こちらがeichi版のwebUI画面です。画面左側の画像入力欄がスタート/エンドの二つに分割され、その間に「セクション設定」というラジオボタンがあります(クリックで展開)。画面上部には「通常/ループ」「動画長」などの新しいモードが追加されています。(★記事執筆現在、毎日精力的なアップデートが続けられており、UIも頻繁に変更されています。この記事は基本的にv1.5時点で書かれているため、スクリーンショットのUIが最新版と異なる部分があります)
操作できるパラメータが非常に増えていますが、基本的な使い方は本家と大きく変わらず、画面左側で静止画を入力し、プロンプトを指定して、「Start Generation」を押すだけです。 v1.61ではスタート・エンドフレームの入力位置が上下逆転している(エンドフレームが上)点にご注意ください。
本家同様、Stepsは25、Distilled CFG Scaleは10がデフォルトで、変更は非推奨です。GPU Inference Preserved Memory (GB)は10がデフォルトに変更されていますが、グラボのVRAM要領が8GBなら7-8GB、12GBなら6-8GB、16GB以上なら6GB前後を指定することが推奨されています。このあたりもReadmeに非常に詳細に書かれているため、必ず読んでおきましょう。
「LoRA設定」からHunyuan LoRAを適用できます。Civitaiなどで共有されているのでVRAM16GB以上のグラボをお持ちの方は試してみると良いでしょう。一時不具合が報告されていましたが、使えるようになっていることを確認しました。
※ちなみに、ダークモードを選択している方は一番下のウィンドウが真っ白になっていますが、ここには白い字で秒数モードとセクションの説明文が出ます。
・生成モード「通常/ループ」
eichiの通常モードではスタート・エンドフレームをそれぞれ指定できるのですが、画面左上から「ループ」モードを選択すると、指定画像から始まって、最終的に再び指定画像に戻ってくるループ動画が作れるモードに変更できます。ループモードを選択しているときに「Final frame」に画像を入力すると、自動でスタートフレーム(下の入力欄)にコピーされます。
ループモードはやや扱いが難しく、eichiの仕組みを理解しないまま直感的に使うと、入力した画像のままほとんど微動だにしない動画になりがちです(上の例だと、ミナちゃんがこのポーズのまま固まって、ちょっと震えるだけの動画になってしまうことが多い)。ループ動画を大きく動かすコツについては具体的生成例の項目で詳述します。
・画像がうまく読み込めないときは
画像を読み込ませようとすると、このように壊れたように表示されてしまう不具合が報告されています(割と頻繁に起こる)。何度か消したり入力したりするとちゃんと読み込めるのですが、Code氏によると実際にはちゃんとUPされているので、そのまま生成しても大丈夫なのだそうです。いずれ解消されると思うので、気長に待ちましょう。
・セクションフレームサイズ
セクションごとのフレームサイズを変更する機能です。通常は1秒間33フレームの「1秒」を選択しておけばOKです。よりなめらかな動きにしたい場合は「0.5秒」モードを選択しますが、セクション回数や処理時間がほぼ倍増するのでご注意ください。実験的機能とのことですので、基本的に1秒モードでOKです。
・オールパディング機能
v1.4から搭載されたばかりの新機能で、セクション全体の「動きの激しさ」を指定できる設定です。通常はオフになっていますが、ここをオンにすると0.2~3の数値を指定できるようになり、数字が0.2に近づくほど動きが激しくなる模様です。当初は0が最低値でしたが、効果が強すぎるため0.2に変更されたようです。
さきほど触れた、ほとんど動きがない動画になってしまうのを防ぐために使うことができ、最低値の「0.2」にすると、セクションに設定したキーフレーム画像をかなり正確に守ることができます。
・動画長に「1秒~4秒モード」追加 new!!
v1.51へのアップデートで、短い動画生成向けの「1秒モード」が追加され、V1.61では2~4秒モードも加わりました。これに伴い、起動時のデフォルト秒数設定は6秒ではなく1秒になっています。試しにやってみると、うちのRTX4080環境ではわずか2分程度で1秒の動画を作ることができました。これは事情が分かっていないと「1秒動画なんて何に使うの?」と首をかしげてしまうアップデートですが、非常に粋なはからいであると感じました。
これは何を想定しているかというと、要するに「入力する2枚の画像差分の間を1秒程度で遷移する動画はニーズが高い」ということです。もう少し分かりやすく言うと、これが2分で作れるのは超ありがたいでしょ!?ということですね。
6秒の動画を生成するには、RTX4080だと11分かかります。もちろん失敗することも多いので、なかなか目的の動画を作るにはスムーズにいかないものです。しかし、自分で画像指定した2点間を1秒で移動する動画クリップが2分程度で得られるなら、それを動画編集ソフトでつなぎあわせればHなループ動画が簡単に作れるわけですね。
2分で1秒動画が作れるというのは、要するに「中割り」の静止画をごく短時間で得られるということでもありますし、エンドフレームを指定しない場合に自由に未来予測してもらった画像をすぐに得られるということでもあります。次回以降の特集で、どんなことができるかをしっかり掘り下げていきたいと思います。
・プロンプトについて
ここについては私の解説よりも、eichiのReadmeをそのまま熟読していただくのが良いと思います。以下、スクリーンショットで画像引用しますが、原文はさらに長く、非常に分かりやすい文体で書かれていますので、ここでは割愛します。
基本的には前回の記事でも紹介したように、LLMと相談しながらプロンプトを作ってもらうのが楽かなと思います。ただ、「女性が男性器を…」的なエッチなプロンプト指示を作ってもらおうとしても断られますので、素直にGoogle翻訳などを使って英訳してもらった方が早いです。
ただ、日本語によるプロンプト指示も思ったよりちゃんと効きますので、あえて英語を選ぶ必要はないかもしれません。ミナちゃんの画像をスタートフレームのみ入力して「制服を着た女の子がダンスしている」という日本語プロンプトで生成したのがこちらの動画。品質はともかく、とりあえず日本語が通じてはいるようです。
▲手が溶けているので、こういうときは「Use TeaCache」をオフにするとよい
日本語と英語、どちらが品質がよくできるのかはまだ知見が蓄積していませんが、苦労して自分でぱっと読めない英語プロンプトをLLMに頼むなら、思いの丈を日本語で書いたほうが素直に通じるような気もしています。特にR-18表現の場合は…。
Readmeによれば、日本語の場合は最初の50-150文字に視覚情報、150-250文字に物語的な詳細情報を入れると良い、とのこと。動画プロンプトは静止画生成に比べて効いているのか効いていないのか分かりにくく、一期一会になりがちな印象がありますが、こうした点に留意しながら手探りでやっていくほかないのかなと思います。
・プロンプト管理
SDwebUIと同様に、動画プロンプトのプリセット管理ができるようになっています。「起動時デフォルト」というのは、eichiを立ち上げたときにデフォルトでプロンプト欄に記入されるものです。そのほか、最初から5つのプロンプトが例として保存されています。
プリセット名とプロンプトを記入して「保存」を押すと「プリセット」の一覧に追加される仕組み。不要になったプリセットは「削除」もできます。「反映」を押すと画面左側のプロンプト欄に反映されます。良い反応をしてくれるプロンプトが見つかったら、忘れずに「保存」しておくようにしましょう。
・セクション設定
eichiの新機能の中で最も重要で、同時に分かりづらい機能。FramePackにおける動画生成は複数の「セクション」に分けて行われますが、その際に参照するキーフレーム画像やプロンプトをここで指定できます。赤いふちのあるセクションが重要なセクションです。
「セクション設定」のメニューを展開すると、このような画面が表示されます。選択した秒数のモードごとにセクションの数は変わり、重要なセクション(赤いふちのあるセクション)の位置も変化。「キーフレーム自動コピー機能を有効にする」にチェックが入っていると、赤いふちのあるセクションに入力したキーフレーム画像は全てのセクションにコピーされる仕組みです。
v1.61では、セクションの並びが「生成順」になりました(v1.6は動画の時系列順だった)。よって、一番上のセクション0が動画の最後の部分で、最後のセクションが動画の始まりになります。生成作業は一番下のセクション0から始まり、一番上のセクションで終わります。
パディング値によって動作は大きく変化しますが、先頭のセクションにキーフレーム画像が入っていると、入力画像より優先で「動画の始まりのフレーム」として採用されやすくなります。終点セクション(セクション0)にキーフレーム画像が入っていると、入力したFinal frameの画像より優先で「動画の終点のフレーム」として採用されやすくなります。
「キーフレーム自動コピー機能を有効にする」にチェックが入っていると、赤いふちのあるフレームに入力した画像が全セクションにコピーされるので便利です。
動画の終わりから生成が始まるFramePackの仕組み上、セクション順序と動画の時系列が逆転して分かりづらいのですが、eichiの一貫性のアドバンテージを支えている大事な機能ですので、こちらも別の章で詳しく後述したいと思います。
4.実際の生成手順
ここからは、さっそく具体的な生成手順を見ていきましょう。eichiの目玉の一つであるエンドフレーム指定やループ動画モード、中間のキーフレーム指定のやり方や生成結果を順番に検証していきます。
①スタート/エンドフレーム指定
まずはエンドフレーム指定での生成を試してみましょう。こちらの2枚の画像を入力し、通常モードで生成してみます。(UIがv1.51のときのスクショなので上がスタート、下がエンドフレームです)
このとき、2枚のペアは必ずアスペクト比を一致させるようにしてください。少しでも違うと生成途中で「スン…」と動作が終わってしまいます(何かエラー吐いてほしいところ)
Readmeによると、二枚の画像は「一貫性の取れた同じキャラクターが違うポーズをとっているペアがベスト」とのことです。特に画像生成AIで同じプロンプトやLoRAを使って生成した画像同士は、入力ペアとして非常に適しているようです。
・ペア同士の一貫性に注意
生成開始する前に、2枚の画像を見比べて、ちゃんと細部のデザインまで一貫性が取れているかどうか「間違い探し」をしましょう。上のペアでは、よく見ると制服の胸元の三角形のエリアの色が上下で異なっています。そのため、この二枚の間を補完しようとすると、その部分が「にょーん」といった感じで変形(この場合は白から青に変色)することになります。こうしたモーフィングを避けるためには、あらかじめ入力画像をインペイントするなどして、ペア間の一貫性をきちんと保っておくことが重要です。
※インペイントでの入力画像の修正については前回記事もご参照ください。
今回のテスト生成では、デフォルトのプロンプト「A character doing some simple body movements.」をそのまま使用します。エンドフレーム指定生成でこれを使うと、余計な動きが足されることなく、自然に2枚の画像の間が補完されるように感じています。
その他設定もほぼデフォルトのままです。Teacacheは「アリ」で、RTX4080のため、GPU Memory to Preserve (GB) は最低の6GBとしました。出力先のOutputsフォルダが生成途中の動画であふれると嫌なので、「完了時にセクションごとの動画を残す」のチェックを外しておきつつ、生成開始。
「Start Generation」をクリックしてから10分57秒で、こちらの6秒動画が生成できました。(RTX4080環境)
※途中で生成ストップしたい場合はEnd Generationボタンを押しましょう。
このテストではプロンプトが「A character doing some simple body movements.」なので、「何も考えずに二枚の間をとりあえず補完するとこんな感じ」という動画になっています。エンドフレームを指定するとスタートフレームから一直線にそのエンドフレームに向かって変化していくことが多いので、スタートフレームだけ指定したときよりプロンプト操作が効きづらくなることを覚えておきましょう。
・「プロンプト通りに動かしたかったらエンドフレームは指定しないほうがいい」
・「スタート・エンドフレームを指定する場合は、2枚の組み合わせを見たら、どう動かせばいいか誰でも分かるような明瞭なペアにする」
・「生成前に間違い探しをして、矛盾点はあらかじめ解消しておく」
…というのがコツかなと思います。上の例では、キラキラの星がどのように現れるか分かりにくい上、具体的にどういう動きをするかのプロンプト指示もないため、雑な動画になってしまっているわけですね。
②ループ動画
コツが掴めたところで、次はループモードでの生成を試してみます。せっかくですので、NSFW画像を使ってループ動画を作ってみました。以前R-18漫画作品「奪妻契約」を作った際に、オリジナルキャラクターの成人向け画像を大量に作りましたので、その中の1枚を使っています。
プロンプトは「A character sucking dick.」で、試しに6秒で生成してみました。セクション設定は特にいじりません。出力先のOutputsフォルダが生成途中の動画であふれると嫌なので、「完了時にセクションごとの動画を残す」のチェックを外しておきます。(※これ以降、FANBOXに掲載するためスクリーンショットに黒塗りやモザイク処理を施していますが、実際は無修正の状態の画像2枚を入力しています)
ところが、できたのはこのような動画でした。
残念ながら期待したような動きはしてくれず、なんとなく静止したまま口元がうにょうにょ動くだけの動画になってしまいました。これが、先ほど説明した「ループモードで普通に生成すると、大きな動きをさせるのが難しい」問題です。はじめはプロンプトの「sucking」がうまく通じなかったのかと思い、「A character doing blowjob.」と変更したり、「rhythmic, piston-like movements.」などと付け加えたりといろいろ試しましたが、改善しませんでした。
ループモードでは再び同じフレームに戻ってこさせるために、全セクションにかなり強い印象が与えられてしまうようです。「dancing」のように効果の強いプロンプトでも、入力画像から大きく離れるような動きをさせるのは難しいようでした。「エンドフレーム影響度」を0.6~0.7程度まで弱めてみると多少動きが出てくるのですが、今度はキャラクターの外見の一貫性が失われがちです。
ただ、次に検証する「セクション設定」を理解して効果的に使うことで、ようやく思ったような動きがさせられるようになってきました。
・セクション設定(中間フレーム指定)
FramePack-eichiのもう一つの目玉が「セクション設定」です。Runwayなどでもできる単純な中間フレーム指定機能かと思ったのですが、どうもちょっと違う機能のよう。この機能をうまく使いこなすには、FramePackにおけるセクション分割の仕組みについてある程度理解を深める必要があります。
・セクションとは?
FramePackは動画生成過程をいくつかの「セクション」に分割し、最終セクションから順番に過去に戻るかたちで動画生成を行うことで、どんなに動画が長くなっても一貫性を保てるというユニークな仕組みです。動画の秒数が長くなるとセクションはそれだけ増えていきますが、1秒=1セクションではないことと、一番最後のセクションから逆行する形で生成されることがポイント。たとえば、6秒動画はかならず4セクションで生成されます。
なぜ、未来から過去へ推論すると一貫性が保てるのでしょうか。ヘタなたとえ話ですが、小学生の子がこれから中学生になり、高校生になり、大学生になったらどんな姿になるか、3人の似顔絵作家に未来予想図を描いてもらうのを想像してみてください。ただし、3人は一つ前の姿しか見せてもらえず、伝言ゲーム形式に未来の似顔絵を描いていくルールです。
すると、一つ前の姿から少し先の未来を想像する過程で、上の画像のように想定していない変化がどんどん強調されてしまう恐れがあります。まさに伝言ゲームで内容が変容してしまうことが動画生成でも起こるわけですね。
これに対して、FramePackは順番に未来へ向かうのではなく、先に大学生になった姿をとりあえず確定させてしまって、そこから小学生の姿に戻るとしたらどんな高校時代、中学時代か?…と戻っていく形で推論を進める仕組みです。こうすることで、伝言ゲーム形式に一貫性が失われていくのを防ぐことができるんですね。
eichiはさらに、全てのセクションでお手本の写真や注意書きに当たる「キーフレームと臨時プロンプト」を指定できる新機能が加わりました。これにより、似顔絵画家は常に小学生時代の顔を見ながら絵を描けるので、上の画像のように一貫性のある未来予想図が完成するわけですね。
・セクション設定画面の見方とはたらき
セクションごとのキーフレームは、スタート・エンドフレームと異なり、基本的に「動画の途中で必ずこの画像になる」というものではありません。あくまで体感ですが、検証した範囲では「このような画像に向かって動きを作ってみて」と促すようなイメージです。
つまり、現在のセクションと一貫性があるけれども構図が大きく違うキーフレームを与えると、「変化させなくてはならないよ」と促すようなはたらきをし、現在のセクションと同じキーフレームが与えられていると、「ここにとどまらないといけないよ」と動きが抑制される影響が起こります。さらに、パディング値を最低に近づけることで、ほぼ正確にその画像を通って終点にたどり着くようなバイアスを与えることができるようになりました。
これを理解することが、eichiをうまく動かす上で非常に重要なポイントになります。
改めて、こちらがセクション設定画面です。(6秒モード)
6秒のループ動画は5セクションで構成されますので、上から
セクション0 最初に生成される、動画の最終部分(大学生)
セクション1 2番目に生成される、動画の4番目の部分(高校生)
セクション2 3番目に生成される、動画の3番目の部分(中学生)
セクション3 4番目に生成される、動画の2番目の部分(小学生・高学年)
セクション4 最後に生成される、動画の最初の部分(小学生)
…という構成になります。
セクション0が最も重要な赤いふちのあるセクションになっているので、ここに小学生、つまりスタートフレームの画像をキーフレームとして入れると、他のセクションにもコピペされます(※"キーフレーム自動コピー機能を有効にする"がオンの場合)。大学生の絵を描き始めた瞬間から最終的にセクション0にたどりつくまで「これが小学生時代の写真だよ」とお手本を見せられ続けるので、スムーズに一貫性のある動画が生成できるわけです。
同時に、これがループ動画をそのまま生成すると失敗する原因でもあります。ループ動画では「画像A▶画像B▶再び画像A」の動きをしてほしい場合、スタート・エンドフレームにはどちらも同じ「画像A」を入力することになります。例えば、「棒立ち→ダンス→同じ棒立ちに戻る」という動きをさせたいときは、スタート・エンドフレームに棒立ちの画像を入力するので、セクション1~4にも棒立ち画像を参照させてしまうと、ほとんど動きのない「棒立ち動画」になるわけです。
「小学生から大学生になり、また小学生に戻る動画」を作りたいのに、スタート地点と同じ小学生の写真をずっと見せられていると、それで頭がいっぱいになってしまって、スタート地点から全く動けなくなってしまうのですね。
・ループ動画の正しい設定
では、こうしたキーフレームのはたらきを利用して、ループ動画をより大きく動かすにはどうしたらいいか検証してみます。こちらのスタート・エンドフレームに対し、同じ画像を全セクションに参照させると、微動だにしない動画になってしまうことは既に検証できた通りです。
まずはスタート/エンドフレームと全く違う、深く咥えた画像をすべてのセクションに適用するやり方を試してみます。
必ずこのキーフレームのポーズのように深く咥えてくれるわけではないものの、各セクションで「あっ、いま生成している構図と全然違うお手本が出されてる!」「もっとキャラクターを大きく動かさなきゃいけないな」とモデルに促すことができ、より大きく動いてくれる動画になることが期待できるわけですね。
さらに、さきほどはエンドフレームの影響が強すぎて、全体にほぼ動きのない動画になってしまう失敗がありましたので、EndFrame影響度を0.4とかなり弱めてみました。
6秒生成の結果がこちら。微動だにしなかった動画に動きが出てきました。
ただ、エンドフレームの影響が弱まったせいで、今度はキャラクターの一貫性が失われてしまいました。一貫性を保つと静止したまま動かない、エンドフレームの影響を下げると一貫性が失われる、という関係にあることがわかります。
よって、今度はEndFrame影響度をもう少し高めの「0.67」くらいに調整。深く咥えるのではなくむしろ上に頭が移動しているのは、プロンプトの「up and down」が影響していることに気づいたので、「A character giving blowjob.she moves her head down and up dynamicly.」と変更してみます。
こちらが生成結果。
明らかに改善が見られました。男性キャラの手など、不自然なところもありますが、キャラクターの一貫性をある程度保ちながら、動きをそれなりに出すことができていますし、何より「まず頭を下に下げる」のを邪魔していたのはプロンプトだったと分かってスッキリしました。up and downは「上下する」の慣用句だと思っていましたが、文字通り「上げてから下げる」と伝わっていたのですね。
ループ動画では「スタート・エンドフレームと大きく異なるキーフレームを与えることで動きを増強できる」「プロンプト記述も非常に重要」ということがよくわかる結果となりました。これらがきちんと設定できていないと、ループ動画はほぼ動きのない動画になるか、一貫性が失われてしまうわけです。
・オールパディング「0.2」を試す
さらに動きを激しくしたいので、オールパディング機能を使ってみましょう。まずは実験として、全てのセクションのパディング値を最低の「0.2」にしてみます。(結果的に失敗するのですが、まずは実験結果をご覧ください)
この機能は各セクションの動きを増強できるもので、0.2にすると各セクションに設定した画像をかなり正確に守ろうとする動作をします。プロンプトは日本語で「女の子が頭を激しく下げたり、上げたりする。カメラ目線のまま、ペニスを口にくわえ、不満そうな表情で睨んでいる。ときおりまばたきをする」としてみました。
こちらが生成結果です。
なんと、最初と最後のフレームだけは指示を守って、その間は完全にキーフレームを守れてしまいました。その代わり、動画としての自然さやプロンプトの指示は完全に失われてしまいました。
これは、全セクションに同じ画像を登録してパディング値も最低値にしてしまったせいです。これをある程度ランダムな画像にし、かつパディング値も最低値の0.2ではなくほどよく上げれば、動きのある動画にできるはずです。
ループ動画とオールパディングモードについては枝記事で深掘りしましたので、詳しくはこちらをご覧ください。
中間フレームを使わずにH動画を作る
さて、その後もさまざまな条件で検証を繰り返したのですが、「セクションごとのキーフレーム指定では厳格に中間地点の画像を指定できるわけではないが、パディング値を下げることで忠実性を上げられる」「ループモードは大きく動きを付けるのがやや苦手で、結果が想像しづらい」「パディング値をほどよく下げてスタート・エンドフレームと異なる画像を中間セクションのキーフレームに入れると硬直が防げる」「動画プロンプトは日本語でも結構きちんとした効果がある。ただ、画像生成に比べて再現性は低い」…といった印象がだんだん固まってきました。
一方で、FramePack-eichiのスタート・エンドフレーム指定機能は非常に性能が高く、セクションごとのキーフレームを活用した一貫性保持能力も素晴らしいものがあります。「難しい設定を極めるよりも、このアドバンテージをおおいに活用したほうが、意図通りの動画ができるのではないか?」と考えました。6秒のループ動画を意図通りに作るなら、ループモードを使うよりも通常モードのスタート・エンド指定でふたつ動画を作って、動画編集ソフトでつなぎ合わせたほうが正確にできるはずではないか、ということですね。
つまり、「画像A▶画像B」の動画と「画像B▶画像A」の動画をそれぞれ作ってつなげば良いわけです。もしくは、一つ目の動画を逆再生するだけで良いかもしれません。AIイラストでいうと、人物と背景を別々に生成して組み合わせたほうが意図通りにしやすいのとよく似ていますね。
・入力画像のペアをインペイントで作る
画像A、Bのペアを用意するときは、一貫性と大胆な動きの変化を両立させることが重要です。そこで、インペイントを使ってペアを作ることにしました。まずこのように基本となる画像を生成したら…
このように、移動したい顔部分だけをざっくりコピペで移動させます。余計なところは雑に消しゴムを掛けて、「だいたい」でいいので顔の位置を定めてしまいます。
そうしたらNovelAIの出番。v4のインペイント機能で、このように矛盾しているところを覆ってしまいます。プロンプトは最初にこの画像を生成したときのものを流用できます。
あっという間に、一貫性を保ったまま顔の位置が違う画像ペアができてしまいました。AI漫画でよく使うテクニックですが、動画生成でも大いに役立ちそうですね。
せっかくなので、もっと上方向にずらした画像も同じやり方で作りました。この3枚の差分を使って、ループ動画ではなく「一方通行」の動画を作ります。
・等速直線運動の「一方通行動画」を作る
入力画像はこのようにします。モードは「通常」+「6秒」です。
スクロールしますと、スタートフレームの画像がこのように4セクション分自動コピーされています。このままだと、最終セクションを生成し始めたとたんに、このスタートフレームに向けた動きを強める指示になっています。(つまり、深く咥えた最終フレームからスタートしたとたんに、最も浅く咥えた画像を参照させられるかたちです)
つまり、スタート地点で即ゴール地点が示され、最後まで一貫してそれが促され続けるため、一定の速度でゴールへ向かうことになります。正確には「ゴールからスタートへ」なのでややこしいのですが、こうしたキーフレーム設定だと「ゴールからスタートへの等速直線運動が生成されやすい」わけですね。
実際はどうなるか、やってみましょう。プロンプトは先ほどの反省を踏まえて「A character giving blowjob.she moves her head down dynamicly」としました。(一方通行のためupは不要)
こちらが生成結果です。
思った通りの結果となりました。きちんと一貫性を保ったペアをスタート・エンドフレームにできている上、目指すべき地点を生成開始直後から一貫して示され続けたため、このように一直線にゴールへ向かう動きが生成できたわけです(まさに大学生▶小学生)。あとは、これを逆再生してつなげれば、立派なループ動画になりますし、速度を調整すればより自然に見えるでしょう。
・ランダムな動きをさせてみる
今度は等速直線運動ではなく、途中で「寄り道」するような動画にしてみようと思います。さきほど用意した画像を使って、各セクションのキーフレームを次のように変更しました。
下から上へ見ていくので、「浅いA→深いB」へ向かう大筋の流れは沿っているのですが、実際には与える「お手本」がセクション変更のタイミングでころころ変わるので、途中で動きのスピードが変わったり、もしかすると逆方向へ向かったりするような影響があるはずです。
実際はどうか。こちらが生成結果です。
しっかり仮説が証明できたと思います。途中の2セクションで中間地点の画像が示され続けたため、そこで停滞する動きが加えられました。エンドフレームへ向かって動こうとする生成が一瞬キーフレームを追い越したため、少し上に戻るような動きをした後、第1セクションの生成が始まって一気にゴールへと向かった…という動きで説明ができるかと思います。
・結論
ここまでの検証で確かめられたのは、次のようなことがらです。
①等速直線運動の動画にしたいとき
スタートフレームに指定した画像を全セクションにコピペすれば、エンドフレームからスタートフレームへ等速・直線的に生成が進む。完成した動画をみると、スタートフレームからエンドフレームへ等速で進む動画になりやすい。
②ループ動画が微動だにしないとき
ループモードではスタート地点とゴール地点のフレームが同じになるため、さらに同じ画像を全セクションに指定すると、当然微動だにしない動画になる。全セクションとも大きく違う画像をキーフレームとすることで、動きを増強することができる。パディング値を下げると動きを増強できるが、「0」は破綻しやすい。
③ランダムな動きを加えたいとき
セクションごとに異なる画像(同じキャラクターの別構図)をキーフレームとして与えると、中間の動きをランダマイズしたり、停滞・加速させたりできる。現在生成しているものとかけ離れた画像の場合は速度が上がり、同じ画像の場合はスローになる。
この三つのテクニックを組み合わせれば、かなり意図に近い動画を作りやすいのではないかなと思います。生成物をそのまま作品とするのではなく、あくまで素材として、動画編集ソフトで繋ぐことで、より思った通りの動きをさせられるはずです。
そこで、ここからは「Shotcut」というフリー動画編集ソフトを使って、生成したクリップをうまくつなぎ合わせて動画らしくしたり、上の動画のように隠すべき部分に追従して動くモザイクを掛けたりする方法を紹介していこうと思います。
6.動画編集ソフト「Shotcut」の使い方
Shotcutはこちらから無料でダウンロードすることができます。インストールも基本的にDLしたexeファイルを実行して「Next」ボタンをぽちぽちしていくだけでOK。UIも最初から日本語で、多くのフィルタがあるので初心者でも使いやすかったです。
・画面の見方
こちらが基本画面です。
プレビュー(中央):作っている動画を再生確認するところ。再生ボタンや停止ボタンが並んでいて、再生を押すとタイムライン上で「再生ヘッド」が左から右へ動いて動画が再生される。Spaceキーでも再生/停止できます。
プレイリスト(左上):素材置き場。ここに生成動画(ここからはクリップと呼びます)や静止画を並べるところから動画編集が始まります。shotcut上でそれらの素材を上手につなぎ合わせたり、モザイクを含めたフィルタを掛けたりして動画を作っていくことになります。
タイムライン(下部):左から右へ、動画の流れを示す画面。プレイリストからか、もしくは動画を直接ドラッグアンドドロップすることでタイムライン上に並べていくのが作業の基本。上に三角形のついた白い縦線が「再生ヘッド」で、この位置を基準にクリップを分割したり、割り込ませたりするので、常に位置を確認する。
再生ヘッドは右クリックでドラッグしたり、タイムラインの上の帯をクリックしたりして移動するほか、プレビューの「|◀」「▶|」ボタンで頭出しできる。
プロパティ/フィルタ(左上):クリップの詳細設定やエフェクト追加部分。モザイクを掛けたり、再生速度を変更したり、逆再生したりするときはここから。プロパティでは逆転(逆再生)したり、速度を変更したりと、各クリップを操作できる。
フィルタはこのように、多数の画像加工エフェクトから好みのものを選んで画像加工できる機能。かなり種類が多いので、上のウィンドウから検索しよう。モザイクを掛けたり、動きに形を追従させるのもここから。
・タイムラインにクリップを並べてみる
まずはFramePack eichiで生成した動画を「ファイルをプレイリストに追加」ボタンから選択します。(プレイリスト画面に直接ドラッグしてもOKです)
すると、画面左上に下図のようにクリップとして追加されます。このクリップをタイムラインにさらにドラッグすると、クリップが青い帯としてタイムライン上に表示され、プレビューに動画として表示されました。再生ボタンか、スペースキーで動画再生できることを確かめます。再生ボタンの横にあるループボタンをオンにしておくと、ずっとループ再生されます。
最初に作業を始めるとき、動画を読み込ませる前はこのような「新規プロジェクト」の画面が表示されていると思います。映像モードが「自動」となっているので、最初に読み込ませたこの動画のフレームレートや画面サイズで今後作業が進むことになります。フレームレートや画面サイズを変えたい場合は、映像モードの中から希望するものを選択して始めましょう。
・スナップモードとリップルモード
まだ何も並んでいませんが、ここがタイムラインです。U字磁石のマークが青く光っているのは、スナップモードがONになっているということ。複数の動画クリップを並べたときに、近づけていくと磁石のように「ピタッ」と張り付き、連続した動画にしやすくなります。クリップ感で一瞬まっ暗にしたり、フェードしたりさせたいときはオフにして、クリップの開始位置を微調整しましょう。
そのふたつ右隣の「◎」アイコンをON にすると、リップル(波及)モードになります。これをONにしていると、左側のクリップを移動したり伸縮したりしても右側の素材が同期して動いてくれるので、タイムライン上のズレを気にせず作業ができる便利な機能です。
タイムライン上ではこのように、複数のクリップや静止画をきれいに並べてエフェクトを付けたりテロップを付けたりといった作業をしていくことで、動画を作っていきます。FramePackで完成動画をいきなり作るのではなく、shotcutで並べる素材を作ってもらうイメージですね。いらない部分を切って捨てたり、つないだりが簡単にできるので、動画の途中で失敗していても問題なく動画作品にすることができます。
・クリップのトリミング
動画の最初と最後のいらない部分をざっくり取り除きたいときは、そのままクリップの端をマウスドラッグすればOK。スマホの動画編集と同じですね。
「][」このような形のボタンは、クリップの分割。「再生ヘッド」の場所でクリップを二分割できるので、これとハサミボタン(切り取り)を組み合わせれば、クリップの不要な部分をカットして削除できます。
・逆再生のやり方
先ほどのフェラ動画は「浅く咥えたAから深く咥えたBへ」等速移動する動画でした。このクリップを二つ並べて、二つ目を逆再生すれば、「A▶B▶A」とループする表現が簡単にできますので、やり方を紹介します。
タイムライン上でコピーしたいクリップをクリックして、ハサミの隣の書類ボタンでコピーします。そのまま貼り付けると、再生ヘッドがいまある場所に割り込まれてしまうので、プレビュー画面の「|◀」「▶|」ボタンを使って、クリップの終わり際に再生ヘッダを動かした状態でペーストしましょう。ペーストボタンはこの一番右のボタンです。
そうすると、下図のように単に同じ動画が二連続で再生される状態になります。今度は二つ目のクリップを右クリックして選択した状態で、左上の「プレイリスト」画面をタブから「プロパティ」画面にします。
下の方に「逆転」ボタンがありますのでクリック。すると「どんな形式で逆再生する?」と聞かれるので、一番軽い「良い」のままで「OK」。逆再生クリップの保存先を聞かれるので、適当な場所に保存します。
すると、二つ目のクリップが前後逆になります。プレビュー画面で再生して、ちゃんと逆転しているか確かめてみましょう。
できた動画は「ファイル▶書き出し▶映像」でmp4として出力することができます。ちなみに、再生ヘッドが最終フレームにある状態で「ファイル▶書き出し▶フレーム」と押すことで、そのフレームを静止画として保存できます。これをFramePackのスタートフレームに指定することで、この「続き」を生成できるわけですね。
7.動画モザイクの掛け方
Motion Trackerフィルタを使うと、被写体が動いてもモザイクが自動で追従してくれます。R-18動画を公開するためには必須のテクニックなので、詳しく説明します。
まず、モザイクをかけたいクリップを選択したら、フィルタパネルで+ボタンを押し、「Motion Tracker」を追加します。すると、このように緑色の四角形が出てくるので、モザイクを掛けたい部分に合わせて拡縮します。
再生ヘッドをクリップの頭に置いたら、モザイクをかけたい部位を広めに四角形で覆い、「解析」ボタンを押します。すると、しばらくして解析完了のメッセージが流れます。(このとき、自動で「トラッカー1」と名前がつきます)
動画を再生してみると、緑色の枠が狙った場所を追尾してくれることが分かります。ターゲットがはみ出してしまう場合は、もう一度一つ前の手順に戻って、四角形の形を調整し、「解析」をやり直しましょう。きちんと覆えたら、「プレビューを表示」をオフにします。(そうしないと、緑のふちが動画に映ってしまいます)
今度は同じクリップに 「マスク:シンプルな図形」 を追加します。「やわらかさ」が20%になっていると、ふちのほうがしっかりモザイクされないので、0%にするのがおすすめです。あとは、「モーショントラッカーからキーフレームを読み込む」ボタンがあるのでクリック。
さきほど作った「トラッカー1」と「サイズと位置」を選び、「開始から」適用します。これで、マスクがさきほどの緑枠に自動で追尾するようになります。
最後にこのマスクにモザイクを上乗せすればOK。+ボタンから「ぼかし:ボックス」 や 「モザイク」といった好みの修正方法を追加し、ふちの処理や濃さを選びましょう。まだこの時点では全体にモザイクが掛かっているので、さらにもう一つ「マスク:適用」を+ボタンから足します。
これで、自動追尾モザイクができました。(緑の枠線をトラッキング結果が分かるように残していますが、実際はオフにしましょう)
・ちょっとだけずれているときは?
ほとんどモザイクできているんだけど、この一瞬だけズレちゃうんだよな…というときは、「マスク:シンプルな図形」を選択した状態で、タイムラインの左下から「キーフレーム」というタブを開きます。するとこのように、クリップの下に黄土色の帯が表示され、そこに白いドットが多数打たれていることがわかります。これが、モーショントラッカーが打ち込んでくれたモザイク範囲を示すキーフレームです。
一つ一つの白い点をクリックし、ずれている瞬間を見つけたら、プレビュー画面上で四角形をドラッグして覆ってあげればOKです。それだけでキーフレームの座標が更新されていきますので、正しい位置にモザイクが掛かります。キーフレームとキーフレームの間でずれてしまうときは、その瞬間に再生ヘッドを置いた状態で、同じように四角形をドラッグすれば、新しいキーフレームがそこに作られます。
・モーショントラッカーで追えないときは?
モーショントラッカーは人の顔などを追尾するのは得意なのですが、局部はあまり上手に追尾できないことがあります。そういうときは完全手動でモザイクを動かす必要があります。よほど激しく動かない場合は、そんなに面倒ではないです。
先ほどと同様に、この三つのフィルタを+ボタンからかけます。下図の順序になっていれば、マスクされた位置にモザイクが掛かっている状態になるはずです。
そうしたら、動画の頭でこのようにマスク:シンプルな図形の四角形をずらします。
うまく覆えたら、フィルタ画面のこの二つのストップウォッチボタンをどちらも押してください。すると、位置とサイズ、回転がキーフレームとして記録されます。
そうしたら、次の起点となる位置まで動画を動かし、同じように四角形をずらします。すると、さきほどのキーフレームから等速直線運動でマスク形状が変化するはずです。途中でずれていたら、そこで同じようにキーフレームを打つ作業を繰り返してください。頑張って!
終わりに
肌色だらけの記事になってしまいましたが、大丈夫でしたでしょうか。連日徹夜で仕上げたので、リリース直後としては相当中身の濃い検証結果ができたと思います。
全体的な印象として、Framepack-eichiのよいところは、スタート・エンドフレームの素材画像を自分で作ることができるユーザーにとっては非常に簡単に期待した通りの結果を出しやすいところです。一方で、スタートフレームだけを指定して「こういう動画を作って」とプロンプト指示する場合は、LoRAが充実している人気モデルwan2.1の方が長じていると感じます。
今回の特集では、ともかく「思った通りのi2vができるようにするにはどうしたらいいか?」「二枚のフレーム画像から意図通りのH動画を作るには?」というところに着目して掘り下げましたが、前回の特集のように、通常のイラストづくりや漫画作りにも叡智の力をお借りできるのは間違いないと思っています。例えば、前回本家FramePackでは難しかった「夜にする」とか、「部屋の別角度を作る」「車やキャラを回転する」といったテクニックも、eichi版であれば可能になるかもしれません。
また、HunyuanLoRAの存在も気になります。今はプロンプトだけでH動画を自在に作ることはできませんが、そうした叡智な動画LoRAが今後充実してくれば、誰でも一枚絵から好きなプレイをさせられるようになるかもしれません。本当に夢が広がりますね。一方、ともかくモザイク技術は大事なポイントと思うので、アップする前に漏れがないかしっかり確認しないといけないなと思っています。
Framepack-eichiは連日連夜精力的なアップデートが続けられていますので、気合を入れて最新状況を追っていきたいですね。それでは今日はこの辺で。
スタジオ真榊でした。