Smooth 被写体ロックオン with Wan2.1 VACE outpainting
nomadoor.icon
セグメンテーションに直接paddingを追加する方法を取ったので、マスクの形の少しの変化にフレーム全体が影響してしまいブルブル震える動画になっていた
個人的には被写体ロックオンにoutpaintingを組み合わせられれば満足だったのだけど、思ったより厳しい批評を受けたのでしっかり改良する
変更点
クロップ領域の変更
https://gyazo.com/6b94251b4fade9e6f828741d31cd1ef7
マスクの周囲にpaddingを追加すると被写体の大きさに影響を受けてズームイン・アウトが発生してしまう
これをやめてマスクの中心座標を基準にすればりズームイン・アウト方向の脈動は回避できる
ただし座標はマスクの位置と形状に影響を受けるため、依然として上下左右方向の脈動が残る
そこで座標に対してカルマンフィルターをかけることで、異常値を除去し座標値の遷移を平滑化する
https://gyazo.com/621d9066b79eac18db2338310bae4c7d
strengthの0.1と2.0にそんな違いはないのだけど、ともかく滑らかになっている
https://gyazo.com/a242f8a1e5065fbea79e83a7e6696be1https://gyazo.com/8a785ef3fd567e3aa8d257ac0e2126b0
カルマンフィルタなし / カルマンフィルタあり(strength 0.5)
今後の改善案
他にもハン窓とか使える信号処理あるから勉強してみてね!と言われた カルマンフィルターもClaudeさんに教えてもらったけど、(生成AIに比べたら)クラシカルな処理もめちゃめちゃ役に立つなと思ったので勉強したいnomadoor.icon
そのままカスタムノードも作ってみたい
被写体ロックオンじゃなくて普通の手ぶれ補正にも使える?
はみ出た部分をVACEで埋めるだけなので出来るnomadoor.icon
vidstabみたいな OSSの手ぶれ補正があるのであとはカスタムノードにするだけ 誰か!
統合版
https://gyazo.com/1a9fc75ae80e45942944b15bee986a8a
分割版
/ Lock-On Stabilization using Florence2 and SAM2
https://gyazo.com/49fa9c6a70094b7635387d486de46218
🟥画像をリサイズ
🟪上下左右に緑色のpaddingを追加
後にこの緑部分をマスクに変換する
🟩Florence-2で物体検出・SAM2でセグメンテーション
🟦マスクの位置と大きさを取得し、マスクが画面の中心に来るようにクロップする
バッチとしてSEGSの処理をすると思い通りにならなかったので一度リストに変換してからバッチに戻す処理をしている
🟨X(Y)軸の座標をリストで受け取ってカルマンフィルターで平滑化処理をする
/ Wan2.1 VACE Outpainting
https://gyazo.com/52c7df17f52b64fdcca4564deb32a810
🟦VACEでoutpaintingする場所は灰色である必要があるため、先程のマスクを使って緑色の部分を灰色にする
あとは基本のWan2.1 VACE
出力例
https://gyazo.com/922599215a03fa0701138cdff4fea9f0https://gyazo.com/8a785ef3fd567e3aa8d257ac0e2126b0https://gyazo.com/71314cbd73f9ea9928877cb9a6a3eb4a
https://gyazo.com/cedb7b87c330e721d1abb33f02b9803bhttps://gyazo.com/f0e413671adfb5bfd5703ee16c3617abhttps://gyazo.com/f31c89da653bfcc6ef30528f45b2719e
https://gyazo.com/57ce22f4d16b30fedabd90958d0f15e1https://gyazo.com/5ab9a47b65ccbf3c524fa4fd7148aff4https://gyazo.com/0a27bf9c2aa8db8cee6a7386da239a69