FramePackでキーフレームを指定してファスナー脱衣を試す
「Stable Diffusion、性的コンテンツでの利用を禁止に」というニュースでAI界隈がザワついておりますが、SDXL以前の派生モデルを使う分には大丈夫そう(?)なので気にせず投稿していこうと思います。
StabilityAI社の見解では派生モデルにも規約変更が及ぶとか、そんなバカなと思われる話もちらほら聞くのであくまで自己責任で使いましょう。うちの場合は怒られたらブログ閉鎖すればええか、くらい頭ゆるゆるな感じで運営しております。
閑話休題
さて、今回はこちらのマイクロビキニの絵を拝見し、
https://x.com/sarujyanainoyo/status/1942379220606283782
マイクロビキニにジャケット羽織るのええなぁ~、パステルカラーもええなぁ~、そのブラをめくりたい!!!!という欲求が抑えきれなくなったので、動画生成してみた…という話になる予定でした。最初は。
しかし、何度も試すにつれ、アレ?案外コレ難しいぞ………となり、あたらしくFramepackとFramepack eichiまで導入するハメになったので、備忘録として記事に残しておこうと思った次第です。
元絵を用意
■ジップアップパーカーを着た少女
Prompt:
loli,slim,skinny,pink_hair,twintails,lightblue headset,lightblue eyes,light blue hoodies jacket, holding zip, standing,blush,worried, open mouth,cowboy shot,(undressing:0.8), looking looking at viewer,jitome, cute room,bed,plush, pastel colors, masterpiece, best quality, (worst quality,realistic:-1)
最初はhoodies指定だったのですが、ファスナーが付かないので holding zip を付けました。zip up hoodiesでも良かったかもですが、どのみちファスナーに手をかけた状態の絵が欲しかったのでOK。
EasyWanVideoのNsfwFastで生成
まずは先ほどの1枚絵をEasyWanVideoの 00_Kijai_NsfwFast.json ワークフローへほおりこみ、The young girl is undressing her jacket.と指定して動画生成。
わずか3秒ということもあり、RTX4070で1分ちょいでサクっと作れました。
……………コレジャナイ。
シュレディンガーのおっぱい状態なので、どうせデカいおっぱい出てくるだろうなとは思ってました。もちろんflat chestやmicro bikiniとかも指定したんだけど、あんま思った感じにはなりませんでした。
脱ぎ途中の差分画像を作成
最近は静止画の生成でもComfyUIを使っているのですが、部分修正は圧倒的にreForgeのほうが便利なので久しぶりにreForgeを使い、GIMPで軽くレタッチしながら下記の差分画像を作成しました。
久しぶりのinpaint作業で、つい背景の保護を忘れてしまい、わずかに背景が変わっていますがご了承ください。
EasyWanVideoで2パターンの動画を作って合成
要するに、下記の動画を作って繋げるというアプローチです。
- ブラまでめくっている最後の画像をベースに、ブラを戻しておっぱいを隠す動画
- おっぱいは隠れてるけどファスナーは空いてる状態から、ファスナーを閉じる動画
…………うん、まぁ失敗だよね。
半日くらい試行錯誤したんだけど、ガチャの試行回数あげるためには低画質にするしかないし、フレーム繋げるためにその低画質の最終フレーム持ってこないといけないし、アップスケールしたって限界あるよねっていう当たり前の話でございました。
FramePackを導入してみる
以前から名前だけは聞いていました。Forgeを作ったかの天才、lllyasviel氏が作った動画生成ツールで、なんとVRAM 6GBでも安定動作するというスグレモノ。
しかし今のところビデオメモリでは困っていないし、ベースモデルがHunyuanVideo※だし、別に使わなくていいよね、と思ってあまり調べていませんでした。
※以前このブログでもHunyuanVideoとWanVideoを比較してWanVideoのほうが大胆に描かれていない部分を生成するので面白いと感じていた
でもね、WanVideoほどの大きな動きは難しいけど、小さな動きなら破綻なく綺麗に生成してくれるのと、有志が作っている拡張機能を導入すれば中間キーフレームの指定ができるのだとか。
そして導入も簡単そうなので、さっそく入れてみました。
■FramePackの導入手順
- FramePackのページにある「Click Here to Download One-Click Package」というリンクから圧縮ファイル(拡張子7zで1.8GBくらい)をダウンロード
- 適当な(たとえばC:\FramePack)に解凍
- update.batを実行し最新版に更新(たぶん一瞬で終わる)
- run.batを実行して起動
こんだけ。簡単でしょ。ただ、初回実行時に40GBくらいのモデルをDLするので回線速度によってはまぁまぁ時間かかります。FramePack本体と合わせて合計50GB近くの空き容量は必要かな。
EasyWanVideoのほうは250GBくらい食うので軽いっちゃ軽い(…のか?)
また、これは必須ではないけれど、下記ページの package_installer_V3 を導入すると2割くらい生成速度がUPするのでオススメ。
https://github.com/lllyasviel/FramePack/issues/138
まずは素のFramePackで動画生成
正常にインストールされているかの確認も兼ねて、最初に作った1枚の静止画から動画生成してみました。
「The girl is undressing ...」みたいなプロンプト指定をしてしまったのもあり、ファスナーじゃなくて上着を脱ぐ感じになっちゃいましたが、ボタン一発で綺麗な動画出てくるのはちょっと感動ですね。
デフォルトでは動画の長さが5秒に設定されており、この動画(512x768px 30fps)の生成に365秒(約6分ちょい)だったかな。package_installer_V3を導入してxformersなどの高速化を適用するともう2割ほど早くなりました。
逆に服を着せる動画はどうかな、と脱いだ画像に「The little girl zips up and puts on her jacket.」とプロンプト指定してみましたが、なんかうまく着てくれませんでした。まったく描かれていない絵(ジャケット部分)を出すのはHunyuanVideoは苦手なんですよねー。なんもないところから絵を出すWanVideoが異常とも言える。
FramePack eichiを導入する
FramePack eichiはFramePackの別バージョンという意味ではなく、FramePackにセクション設定(中間となるキーフレームを設定する機能)などを追加する拡張機能(mod)です。制作者様はgit-ai-code氏。
拡張機能なので、先ほどインストールしたFramePackに上書きコピーで導入完了。
…解説が雑すぎますかね?
下記ページにFramePack eichiの詳細なセットアップガイドがあるので気になる方はご参照ください。
https://github.com/git-ai-code/FramePack-eichi/blob/main/README/README_setup.md
要点をまとめると、下記ページからzipをダウンロードしてFramePackに上書きし、run_endframe_ichi.bat で起動、というだけなんですけども。
https://github.com/git-ai-code/FramePack-eichi/releases
FramePack eichiで中間キーフレームを設定して生成した結果
生成時間:約7分
よし、キター!!!!
プロンプトは「The little girl unzips down her hood jacket, lifts up the bra of her micro bikini, and spreads her jacket a little.」のみ。
blinking eyesとか、talkingとかも付けて表情も動かしたほうが良かったかもですが、ともあれ、ファスナーを下げる、ジャケットを広げる、ブラを上げておっぱいを見せる、という一連の動作がようやくできました。
これもサクっと出来たわけではなく、いくつか詰まったところがあるのでポイントをメモっておきます。- FramePack左上のFinal Frameに設定するのは最後の画像
- FramePack左下のimage欄に設定するのは最初の画像
- 中間キーフレームは[セクション設定]をクリックして設定するが、その数は動画の秒数と同じになる。つまり、4秒動画なら4個の中間画像を設定可能
- 動画の秒数を4秒にした場合、セクション設定(=中間キーフレーム)が4枠できるが、ここに画像を1枚しか入れないと高確率で無視される。
- わかりやすく画像に番号を付け、1,2,3としたとき、image=1, セクション設定=2,2,2,2, final=3としても一応動作するが、この場合は最初の画像が一瞬表示されるか下手するとまったく表示されず、いきなり中間画像が出てから最終画像になるような動画が生成される。
- つまり、image=1, セクション設定=1,2,2,3, final=3というようにセクション設定内にも開始画像や終了画像を入れることで、動画の動きをなめらかに出来る。
- また、画面右上のオールパディングの値を調整し、0.5以下にすることで、動きが大きくなり、より自然になる。
1秒の動画を生成するのに、RTX4070で約2分30秒かかるため、最初は1秒でテストし、一発でファスナーをおろしてブラを上げる動画が出来たのでキター!と思いました。
よーし、これを長くするぞー、と単純に4秒や6秒を試したところ、中間画像(=ファスナーを下すシーン)がまったく出ず、いきなりガバっと上着を広げる動画しか生成されなかったんですね。
この理由が全然わからず、動画の長さを変えるたびに、セクション設定の枠が増減していることに気が付くまで数時間悩み続けました。
でも考えてみれば当たり前なんですよね。
中間画像(=ファスナーを下すシーン)が動画のどのへんのタイミングなのか、ツール側はわからないわけで、動画編集ソフトみたくタイムラインのようなUIがあれば、キーフレームのポイントを打つだけですが、そういうUIもなかなか作れないのでしょう。
だから、セクション設定の枠数を増やすことで、どのへんまでが最初の画像で、どこから中間画像なのか、というのを指定するという方式みたい。
理由がわかってしまえばあとは簡単で、思ったとおりの動画が作成できました。
たしかにWanVideoに比べると動きは少ないのですが、作りたい動画のイメージが既に頭の中に出来上がっていて、かつ中間画像の生成が苦ではないなら、FramePack eichiによる中間キーフレームを指定した動画生成のほうがより良い動画が作れるなーと感じました。
RTX3060以上のnVidia製GPUを搭載しているパソコンをお持ちの方ならすぐにでも試せると思うので、ぜひFramePackで遊んでみてくださいねー。
謝辞
オープンソースおよび生成モデルの制作者の皆さまに感謝します。
元絵生成:
Stable Diffusion webui reForge
Model:WAI-NSFW-illustrious-SDXL














