Squish - One Hand Only! - Wan2.2 i2v 14b
詳細
ファイルをダウンロード
モデル説明
Squish - 片手のみ! - Wan2.2 i2v 14b
このLoRAを使えば、オブジェクトをカメラに近づけたときだけでなく、遠くからでも押しつぶすことができます!従来のSquishとは異なり、ほぼプロンプトを必要とせずに、片手だけで実現できます!
プロンプト形式と要約
プロンプト:
動画では、[オブジェクト]が提示されている。横から人の長い右腕が現れ、[オブジェクト]まで伸びてそれをつかむ。[オブジェクト]は、人の右手で遠くから保持されている。その後、その人は[オブジェクト]を押しつぶし、sq41shの押しつぶし効果を生じさせる。人物はさらに[オブジェクト]を押し続けて、sq41shの押しつぶし効果をより明確に示す。
私の使用設定はシンプルです:CFG 3.5、シフト 8.0(デフォルト)、dpm++-sdeスケジューラ、25ステップ(13+12)。速度向上やその他のLoRAは使用していません。Kijaiのラッパーで作成しました。
動画品質を少し向上させるために、10番目のブロック(SLG)の無条件スキップを使用しました。ギャラリー生成には他の任何の強化処理は適用されていません。512x512、640p、720pですべて大きく動作します。
詳細については、動画のメタデータ内のワークフロー、またはGitHubでの複製を参照してください。
では、要約します。以下に、このLoRAの作成における私の苦労を述べます。他のLoRAトレーナーや技術的なユーザーにとって役立つ可能性があると思います。
問題点
なぜ私はこのLoRAを作ろうと思ったのでしょうか?
従来のSquish LoRAおよびその合成ディスティレーションには、オブジェクトの両側から指を含む2つの手が完全に包み込むという強いバイアスがあります。さらに、オブジェクトはその空間的位置から引き剥がされてカメラに近づけられ、没入感が損なわれます。私は、オブジェクトを引き寄せるだけでなく、まず腕を伸ばしてオブジェクトに届くというアイデアが素晴らしいと思いました。
ただ1つの手だけを出現させるのは、プロンプトエンジニアリング、LoRAの強度、そしてComfyでの条件付けの算術において悪夢でした——少なくとも私にとってはそうでした——だからこそ、この微調整版を作成することにしました。
方法論
バイアスの影響により、単純なオブジェクトから「修正」データセットを作成することは不可能でした。そこで、開始フレームをオブジェクトのそばに立つ手に変更したところ、成功率が向上しました。しかし、それだけでは終わりませんでした。左腕が頻繁に介入し、オブジェクトをカメラに引き寄せてしまい、これまでの進展をすべて台無しにしてしまいました。何度もプロンプトを書き直し、LoRAの強度を調整し、ComfyUIの係数で条件付けを平均化するという数時間の試行錯誤の末、やっと適切なプリセットを見つけました。
修正用データセットを構築するために、様々な場所で様々な物に触れている手の画像を集めて、最後のフレームを取得し、調整済みのWan2.2の画像2動画とsquish LoRAで継続させました。
連結前には、「リアル」なフレームをWanのVAEに通して可能性を高めました。この解像度では、フレームの右端に細い虹色の縦線が現れ、すべての動画に同じプリセット解像度で適用するために、自作の「vibeコード」プログラムで手動でカットしました。これにより、アスペクト比バケットが多数生成されるのを防ぎました。
データセットは以下の通り構成しました:
- 手作業で作成した10のsquishシーン(2段階動画:まず手がオブジェクトに届く + 手がオブジェクトを押しつぶす)、および2つの合成squish(手がオブジェクトに触れるだけの、ラジーな画像→動画で「届く」プロセスを省略したもの)。
- 正則化:Omni-VFXデータセットから選んだ18の高品質なRemadeAI由来の合成サンプル。
前述したように、成功率は極めて低く、データセットも非常に小規模でした。
1エポックあたりのデータミックスは、手作業データセットを4回繰り返し、正則化データを1回追加という構成でした。
squish LoRAの微調整は、高雑音に対して6エポック、低雑音に対して4エポック実施し、デュアルGPU(5090 + 4090)で1晩かけて、データ並列化でdiffusion-pipeを用いて実行しました。
トレーニングには、最適化に_Prodigy_、損失関数にHuber定数0.5の擬似Huber損失を用いて、この新しい設定を実験しました。
使用設定
使用設定はシンプルです:CFG 3.5、シフト 8.0(デフォルト)、dpm++-sdeスケジューラ、25ステップ(13+12)。速度向上やその他のLoRAは使用していません。
動画品質を少し向上させるため、10番目のブロック(SLG)の無条件スキップを使用しました。ギャラリー生成には他の強化処理は一切適用していません。
トレーニング解像度は最大幅/高さ<512ですが、バイアス除去が成功したため、今ではより長い解像度にも対応可能です。512、640は問題なく動作し、720pでも結果が得られます!(LoRAが過学習しすぎているからです、ハハ!)ギャラリーの例は、見栄えを出すために720pで作成しました :0
トレーニングフレーム数は81(16fpsで約5秒、24fpsで約3秒)ですが、この数が推奨です。65フレームでも動作しますが、それ以外の数値は未検証です。
KijaiのComfyUIラッパーを使用しました。ネイティブワークフローでは若干の調整が必要かもしれません。ワークフローは動画のメタデータに添付されています。取得が困難な場合は、このGitHub Gistリンク(JSON形式)をご覧ください。
ギャラリーの開始画像は、Qwen、SDXL、Flux(EditとKontext含む)で生成しました。
制限事項
バイアスを早く排除するため、右腕を対象にトレーニングを行ったため、左利きの方には不向きな場合があります :)
合成データに依存しているため、フレームの右端に細い虹色の線が現れることがあります。データセット作成時にできる限りカットしましたが、わずかに残ることがあります。(よく見ると、この痕跡はWan2.2の性質上、LoRAなしの生成でも現れることがあります。)この痕跡は高解像度では消えます。
データセット作成時は、上記の工夫をしても高解像度でプロンプトを正確に当てることがほぼ不可能であり、結果として低解像度(最大512未満)でトレーニングを実施しました。そのため、わずかにぼやけが生じる可能性があります。
従来のSquishと同様、ときおり被写体の脚が消えてしまうことがあります。正則化データセットからこのようなケースをできる限り排除しましたが、依然として発生します。なぜかはわかりません。:( 多分Wanのトレーニングの制限かもしれません。(プロンプトで脚と靴を明確に記述してみてください。)
オブジェクトがカメラに近すぎると、標準的な振る舞いが発動し、2つ目の手が出現してしまうため、明確に遠くにあるオブジェクトを使うのが最適です。
最後に
このLoRAは、Squishの2手バイアスを排除し、遠くからオブジェクトを押しつぶすことで、より現実的で衝撃的な効果を生み出すために作成されました。楽しく、役に立つことを願って作成しました。
私への最大の感謝は、ギャラリーにあなたの生成例を共有してもらえることです。どんな評価でも構いません!
もちろん、問題があればコメントをお願いします。
初期のアイデアはRemadeAIに感謝します :3
