Fizgig LoRA Isolationで1人の顔が全員に広がるのを防ぐ

ComfyUI Wikinews

Fizgig v8.4.0はLoRA Isolationを追加しました。DOP、融合トリガートークン、ネガティブペアトレーニングを組み合わせ、Krea 2で見知らぬ人への顔の漏れを48/50から0/50に削減します。

Fizgig v8.4.0はLoRA Isolationを追加しました。これはキャラクターLoRA向けのトレーニングモードで、被写体の顔が画像内の他の全員に広がるのを防ぎます(リリースノート | 技術解説 | デモ動画)。人物の通常のLoRAは、その顔を背景の見知らぬ人、隣に立つ友人、あるいは群衆全体に引き寄せてしまいます。LoRA Isolationを使えば、トレーニング済みの被写体が1枚の画像に一緒に立っていても、あるいはモデルがすでに知っている人物の隣にいても、それぞれの顔は自分のままです。トリガーワードを付けなければ、トレーニング前と同様にベースモデル自身の人物が生成されます。

Fizgig LoRA Isolationのデモ

Fizgig LoRA Isolation、Fizgig作者によるデモ動画。ソース: Fizgig v8.4.0 リリースノート

結果

同じ写真、設定、シード、エポックでKrea 2上に2つのLoRAをトレーニングし、LoRA Isolationの有無だけを変えました。どちらも2人(被写体と、2人目のキャラクターとしての友人)と、ペーパーカット調のスタイルを学習しました。各LoRAは25個のプロンプトを2つのシードでレンダリングし、合計50枚の画像を生成しました。すべての画像は分割フレームで、片側には注意深く記述された別の白人男性、もう片側にはトレーニング済みの被写体(これも白人男性)が配置されています。この組み合わせは漏れにとって意図的に最も難しいケースです。各半分はArcFace(insightface buffalo_l)で、35枚のトレーニング写真から算出した被写体の平均顔と照合してスコア化しました。同じ人物は通常0.45以上、無関係な人物は0.0から0.2のスコアになります。

通常のLoRAFizgig LoRA Isolation
被写体と認識された見知らぬ人50人中48人50人中0人
被写体が本人らしく見える度合い0.770.78

類似度は下がりません。被写体本人の実写真同士は0.81のスコアで、これらのレンダリングは2人目の人物とLoRAを共有しながら0.78に達します。通常、LoRAに2人目がいることは問題ですが、ここでは修正の一部になっています。

仕組み

Fizgig LoRA IsolationをSubjectsカードで選択すると、Fizgigは6つの要素を適用します。

DOP: 差分出力保持(Differential Output Preservation)

すべてのトレーニング画像は、キャプションからトリガーを除いた状態でもトレーニングされ、そのパスではLoRAは同じノイズ入力に対するベースモデル自身の予測に合わせられます。トリガーがなければ、LoRAは何も変えないことを学習するため、被写体はその人物を指定しないプロンプトには現れません。FizgigはDOPをOstrisとAI-Toolkitにクレジットし、その上に独自のレイヤーを構築しています。

マルチ被写体のIDアンカリング

2つ以上のIDを一緒にトレーニングし、それぞれが独自のフォルダーと独自のトリガーを持ちます。2つの顔を並べて学習させることで、顔はクラス全体ではなく1つのトリガーに属することをLoRAに教えます。これが2人目が妨げではなく助けになる理由です。上記のテストでは2人目の被写体に女性を使い、見知らぬ人は全員男性だったため、この効果は性別に固有のものではありません。1人の人物のLoRAであっても、2人目を並行してトレーニングすることを推奨します。

融合トークンによるクラス分離

トリガーとそのクラス単語はすべてのキャプションで1つの単語に統合されるため、gwelt, a manはgweltmanとしてトレーニングされます。素のクラストークン("man")はモデル内の他のすべての男性が共有するものであり、被写体の特徴が他の人に渡る橋渡しです。トリガーに結合されると、クラス単語は別のトークンになり、被写体の見た目が共有トークンに付着することはありません。Fizgigはキャプションを読み込む際に結合を適用し、ディスク上のキャプションファイルは変更しません。トリガーはきれいに結合する必要があります。fyxoにwomanを加えるとf | yx | ow | omanと読めて融合語が壊れるため、SubjectsカードにはCheck a trigger wordボタンがあり、トレーニングモデル自身のトークナイザーで結合をテストします。

1フレーム内でのネガティブペア合成

各人物には16枚の並置画像が用意されます。自分のトレーニング写真の1枚の隣に生成された見知らぬ人が、1つの2:1フレームに収められ、被写体側はランダムに選ばれます。これにより「この人物が被写体で、あの人物は見知らぬ人のまま」ということを1枚の画像内で教えます。これはまさに通常のLoRAが漏れる場所です。キャプションでは見知らぬ人を先に、被写体を2番目に記述します。これらのモデルが使うテキストエンコーダーは因果的で、トリガー以降のすべての単語はトリガーがすでに見られた状態でエンコードされるためです。

見知らぬ人は、8つの民族、20代から50代の男女にわたる32人の生成済み人物の固定セットです。セットの第2バージョンは自然な肌の質感のためにQwen Image 2.1でレンダリングされているため、LoRAを質の低い肌へ引き寄せることはなく、実在の人物の写真は使われていません。セットはFizgigのモデルとともにダウンロードされ、約21 MBです。

学習率スケーリングとバランスサンプリング

並置画像は独自のステップで2倍の学習率でトレーニングされ、DOPは1ステップおきに2倍の重みで実行され、Balance the subjectsは小さいフォルダーを繰り返して、各被写体が最大のフォルダーとほぼ同じ頻度でトレーニングされるようにします。

クラス認識トレーニングパス

各被写体は人物、動物または物、あるいはスタイルまたは見た目として読み取られます。人物は融合トリガーと並置画像を受け取ります。動物または物は融合トリガーのみを受け取ります。スタイルまたは見た目はトリガーを書かれたまま保持し、並置画像は受け取りません。スタイルは画像全体を変えるべきだからです。

数値の背景にあるレシピ

設定値
モデルKrea 2、Standard LoRA
被写体1人(36枚)、2人目(53枚)、ペーパーカットスタイル(8枚)、バランス
ランク / アルファ16 / 16
学習率Adaptive LR、2e-4から4e-4、constantスケジューラー
オプティマイザーAdamW 8-bit、max grad norm 1、バッチ1
EMA0.98
解像度0.25 MP(496 × 496)、バケット化、アップスケールなし
ベース精度INT8
シード42
チェックポイントエポック20
Isolationの追加設定人物ごとに16枚の並置画像を2× LRで、DOPは1ステップおきに重み2で

トレーニングには、同じ設定の通常のLoRAの約1.5倍の時間がかかります。

現時点で分かっていること

  • 最大4人の被写体が問題なくトレーニングできます。1枚の画像にトレーニング済みの2人と、モデルがすでに知っている人物が一緒に写る場合はほぼ毎回成功します。トレーニング済みの3人以上を1枚に収めるのは当たり外れがあります。
  • 同じクラスの2人の被写体(例: 2人の女性)は約1.6倍のエポックが必要です。どちらも同じ「a woman」の保持パスに供給され、そのクラスは約2倍強く保持されるためです。
  • 結合後の単語でプロンプトを書き、例えばgweltman man at a cafeのようにして、画像内の他の人物を記述してください。LoRAは単独でそれらを分離しますが、記述はセーフティネットです。
  • この方法はこれまでKrea 2でのみテストされています。ACE-Stepを除くFizgigのすべてのモデルで動作し、MiniMax H3では被写体は写真からトレーニングされ、クリップと音声ファイルはフォルダーから除外されます。

使い方

このモードはTrainingタブのSubjectsカードにあります。被写体の数を選び、それぞれをフォルダーに向け、何であるかを指定してから、Your subject and other peopleをFizgig LoRA Isolationに設定します。各被写体の下に、カードはトレーニングされる単語、キャプションの1つ、トレーニングで使用される並置画像を表示するため、キャプションの問題は実行後ではなく実行前に分かります。

Fizgig LoRA Isolationのセットアップ

Subjectsカードの設定: Fizgig作者によるウォークスルー動画。ソース: Fizgig v8.4.0 リリースノート

キャプションのガイド: MULTI_PERSON.md。同じリリースで、2から4個の被写体フォルダーを使うマルチコンセプトトレーニングが、H3だけでなくすべてのモデルのStandard LoRAとファインチューンで利用可能になりました。

入手方法

FizgigはKlein 9B、Krea 2、MiniMax H3、Qwen Image 2.1、Anima、Z-Image Turbo、ACE-Step XL向けのオープンソースLoRAおよびファインチューンスタジオです(GitHub)。v8.4.0が現在のリリースです。LoRA Isolationはトレーニング側の機能なので、生成されたLoRAはFizgigでトレーニングした他のLoRAと同様にComfyUIで読み込めます。

コメント

GitHubでサインインしてディスカッションに参加しましょう。

コメントを読み込み中…
Fizgig LoRA Isolationで1人の顔が全員に広がるのを防ぐ | ComfyUI Wiki