技術 約6分で読めます

Anima で2キャラを1つのLoRAに焼いて絡ませる

いけさん目次

前回(v3→v4)で、けいちゃん LoRA を「ポーズ付き全身を引いて本人の特徴だけ焼く」絞った構成にしたら、standing できれいに直立するようになった。かなちゃんも元から同じく、絞った構成で直立ターンアラウンド主体だ。両方が絞った構成で揃った。 なら2キャラを1つのLoRAに混ぜて焼けるか、やってみた。

横並びは簡単、本命は絡み

2人を横に並べて出すだけなら、LoRA を合体させる必要はそれほど無い。トリガーを2つ書けば別個には出るし、最悪あとから部分修正で並べてもいい。

1つのLoRAに2人を押し込みたいのは、2人を 絡ませたい からだ。 ハグ、抱っこ、おんぶといった、2人の身体が接触する絵。これを別々のLoRA2本でやろうとすると、互いのモデル/トリガーが干渉して腕や顔が混ざり、まず破綻する。だから1枚に2人を接触させたいなら、最初から1つのLoRAに焼くしかない。

つまり、けいちゃんとかなちゃんが 抱き合う 絵を、互いの特徴を混ぜず・別人を保ったまま出せるか。これを確かめたい。

横並びの分離は前提で、通って当然。絡みが出せて初めて、合体LoRAにする意味がある。

世間の多概念LoRAの多くは画風/作品LoRAで、2キャラ別個+接触は難所。しかも自分が見る範囲では大半が Illustrious(SDXL)系で、Anima(Qwen-Image DiT)でマルチキャラ&絡みをやった例は、少なくとも自分は見つけられなかった

方法

項目内容
データけいちゃん v4(43枚)+かなちゃん v2(53枚)=96枚。各画像は自分のトリガーだけを持つ(keichan 画像→keichan、kanachan 画像→kanachan、トリガー汚染 0)
rank32 → 64(本人2人分の容量。混入対策)
レシピlr 2e-5、repeats 2、bf16、Anima-Base v1.0、ep150(偶数 ep でスイープ)
分離の頼み髪と顔だけ。両キャラとも制服(白シャツ+紺プリーツ+ニーハイ+ローファー)でほぼ同一で、違いは keichan=金髪・ぱっつん・インテーク・青リボン・碧眼、kanachan=茶髪・サイドポニー・アホ毛・茶目。衣装で分離できない=混入が出やすい構成をあえて検証する
生成常に Turbo(speed lora・8step)。Anima はフルステップ(25step+)だと逆に描き込みすぎで崩れる傾向があり、Turbo の方がノリが良い。実利用も評価も Turbo で統一

まず単独分離と横並びは通る

単独トリガーでは混入なし

keichan / kanachan を別々に生成すると、互いの特徴の混入が無い。keichan にアホ毛/サイドポニーは混ざらず、kanachan にインテーク/青リボンも混ざらない。小物(赤リボンと赤ネクタイ、白と黒のニーハイ)まで分離する。衣装が同一でもトリガーが髪/顔/小物の差を正しく出し分けている

keikana 単独トリガー(keichan / kanachan)

2girls の横並びも成立する

両トリガー+「左に keichan、右に kanachan」と位置を自然言語で指定すると、2人が別人として並ぶ。マージ無し・入れ替わり無し。ただし前述の通り、これ自体は「前提」で価値の本体ではない。

keikana 2girls(左 keichan / 右 kanachan)

衣装の小物(蝶ネクタイの色、ブレザー等)は素のプロンプトだと属性の混入が出るが、各キャラの衣装を詳細に書き分ければプロンプト側で上書きできる(学習では直らないが、運用で殴れる種類の問題)。

絡みはどこまで成立するか

プロンプトに動作(hugging / carrying / holding hands …)を書いて、2人を接触させる。

絡みはプロンプト駆動で出せる、ただしポーズ依存

keikana 絡み 成功例(ハグ・姫抱っこ・背後ハグ・おんぶ)

  • ハグ・手繋ぎ。前面・対称の接触。安定して成立(別人を保持、接触点だけ軽く融合)。
  • 姫抱っこ・おんぶ・背後ハグ。接触点が最も多い難物。当たり seed なら合格。一方が他方を「抱える・背負う」格好で身体が分離して積み重なるので、別人として描き分けられる。
  • 膝乗せ。座位で2人の脚が前で重なる。脚が融合して崩壊
  • 肩組み。片腕を相手の肩に回す。腕の交差で破綻寄り

絡みの可否を分ける境界線は積層か交差か

検証すると、成否を分ける線が綺麗に出た。手足が分離して積み重なる(積層)なら出る、交差して絡み合うなら破綻する。

絡み構造出来
ハグ・手繋ぎ前面・対称、手足が交差しない○ 安定
おんぶ・姫抱っこ・背後ハグ一方が他方を抱える=分離積層○ 当たり seed
肩組み腕を相手に回す=腕が交差△〜×
膝乗せ座位で脚が交差× 脚が融合

keikana 絡み 破綻例(膝乗せ=脚融合・肩組み=腕破綻)

これは「2体間の手足の重なりを解く」という多キャラ共通の難所が、keikana でも同じ線で出たということ。接触の難易度が上がる(手足が交差する)ほど破綻する。

2つの注意点

  • 頬くっつけ=顔の融合cheek to cheek のように2つの顔を密着させると、接触点で顔が融合しやすい。ただしこれは低解像の滲みが主因で、解像が上がると2つの顔は分離して読めるようになる。
  • 破綻=LoRAの限界とは限らない。例えば膝乗せの失敗は、プロンプト 「kanachan sitting on keichan’s lap」 をモデルが「2人とも座っている」と解釈して座位2体を融合させている面がある。プロンプト解釈の失敗と、おんぶの髪が伸びる 能力のにじみ(背中=相手の長髪ゾーンに髪が重なって長く引っ張られる)は別物で、前者は文面で救える余地がある。

最良 ep は ep100(深く焼きすぎない)

スイープした結果、当たりは ep100〜120

  • ep150 は焼きすぎ。2人を並べると顔が元絵から外れ、残像やノイズが混じる(過学習)。
  • 顔の元絵への近さは ep100〜104 でピーク、それ以降は元絵から離れ、元モデルの絵柄へずれていく。
  • ep120 が実用上限、芯は ep100 付近。

「repeats × ep = 露出量」なので、ep150 の過学習は単に露出過多。深さは ep を足しても頭打ちで、これは容量(rank)と干渉の問題(後述)。

運用則

  • 常に Turbo。フルステップは描き込みすぎで逆に悪化、かつ激重。
  • ネガポジ両面+クオリティタグmasterpiece, best quality, very aesthetic … + 色の明示(crisp pure white shirt)+ 強めのネガティブ(bad hands, fused limbs, grey shirt …)で、シャツの白さや手の破綻が目に見えて改善する。素のプロンプトより明確に良い。
  • 複雑な絡みは seed ガチャ。当たれば合格、外れれば破綻。数枚回して拾う前提。

限界と次手

  • 顔が元絵そのものにはならない。LoRA が焼くのは本人の目印(髪色・リボン・サイドポニー・アホ毛)で、顔そのものは元モデル(Anima)の絵柄に寄る。これは ep30 で早期ロックして以降ずっとで、単体 LoRA(rank32・干渉ゼロ)でも起きる、元モデルへの引き寄せ。keikana では本人2人分が rank64 を取り合う干渉で、これが単体より強く出る。
  • 処方は rank↑。rank96/128 にすれば干渉ぶんを回収して単体並みまで戻る見込み(ただし元モデル由来の「元絵離れ」自体は rank では消えない)。露出(ep/repeats)では直らない領域。
  • 小物の色の混入。かなちゃんのシュシュが顔アップで黄色く見えたのは、フルステップの描き込みすぎによるもので、Turbo では青で出る。共有属性の混入は詳細プロンプトで上書き可能

Qwen-DiT は多被写体に強いが、容量が律速

  • Anima = Qwen-Image DiT + Qwen3 テキストエンコーダ。自然言語の構造理解が強く、「左に A・右に B」だけでなく huggingpiggyback といった動作・位置関係の指示が通る絡みがプロンプト駆動で出せるのは、ここが大きい。SDXL(CLIP)系より Anima の方が多キャラ&絡みは得意な可能性がある。
  • 一方、深さ・顔忠実度の律速は rank64 の容量と、本人2人分の干渉。露出(repeats×ep)を増やしても頭打ちは浅いまま、深掘りには rank を上げて干渉を解くしかない。

参考リンク