Yyatmita

参照画像 1 枚で同じキャラを描く —— Anima の参照アダプタ 2 つと、LoRA との重ねがけ

前回「Anima には IP-Adapter が無いので LoRA が現実解」と書いた。その後、Anima 用の参照アダプタが 2 つ出た。Anima Ref Adapter v2 と SnapRef を、前回の LoRA と同じ条件で並べ、角度とポーズを変え、LoRA とも重ねた。正面の立ち絵 1 枚で、学習なしに同じキャラが描ける。LoRA を持っているキャラは、LoRA+SnapRef で服のロゴまで戻った。

AIマンガ制作ワークフロー#ai-manga#comfyui#anima#lora#reference-adapter#character-consistency
← 前の記事: はじめての LoRA 学習 — Anima で漫画キャラを焼く

参照画像 1 枚から、上から・後ろ姿・下から・真横を描いた例。プロンプトには見た目のことを一言も書いていない

左端の立ち絵 1 枚を渡して、ほかの 4 枚を描かせた。プロンプトには場面とポーズしか書いていない。髪型も眼鏡もパーカーも書いていない。学習もしていない。

前回の記事では、Anima でキャラを一定に保つ方法として LoRA を学習した。そのとき「Cosmos 系には IP-Adapter が無いので、LoRA が現実解」と書いた。その後、Anima 用に 参照画像でキャラを写すアダプタ が 2 つ公開された。前回と同じ条件で並べ、角度とポーズを変え、前回の LoRA とも重ねてみた。

結論を先に書く。

  • 正面の立ち絵 1 枚で、学習なしに同じキャラが描ける。 上から・真横・後ろ姿・下から・顔のアップ・走る、のどれでも崩れにくい
  • LoRA を持っているキャラは、LoRA+SnapRef が効く。 LoRA の絵柄と構図はそのままで、服の細部が参照に戻る。前回 LoRA では救えなかった胸の「NO TRADE」が読めた
  • 使い分けは、主役は LoRA+SnapRef、絵の少ないキャラ(新キャラ・ゲスト・モブ)はアダプタだけ

1. 2 つの参照アダプタ

Anima Ref Adapter v2SnapRef v1a
作者ElectronGirl0ppxnhximxr
重みElectronGirl/anima-ref-adapter の anima_ref_adapter_v2_r64.safetensors(約 0.18GB)0ppxnhximxr/snapref-v1a の snapref_v1a.safetensors(約 0.38GB)
ComfyUI のノードArcAnima/ComfyUI-Anima-Ref-AdapterArcAnima/SnapRef の comfyui_nodes/snapref/
推奨のベースAnima base v1.0Anima base v1.0

どちらも IP-Adapter とは違う作りだ。参照画像を最初に 1 回だけ読み込み、その結果を毎ステップ使い回す。重みは LoRA の形のファイルで、専用のノードがモデルに組み込む。

ライセンス: ノードのコードは 2 つとも Apache-2.0。重みは Anima 本体と同じライセンスで、生成した画像は商用にも使える(くわしくは「7. ライセンス」)。


2. 入れ方

ComfyUI 0.42.5、RTX 3090(24GB)で動かした。Anima 本体(anima-base-v1.0、text encoder qwen_3_06b_base、VAE qwen_image_vae)は前回の記事のとおり入っている前提。

ノード

  • Ref Adapter: リポジトリをそのまま ComfyUI/custom_nodes/ に入れる
  • SnapRef: リポジトリには学習のコードも入っている。ComfyUI に入れるのは comfyui_nodes/snapref/ だけで、ComfyUI/custom_nodes/snapref/ に写す
cd ComfyUI/custom_nodes
git clone https://github.com/ArcAnima/ComfyUI-Anima-Ref-Adapter
git clone https://github.com/ArcAnima/SnapRef /tmp/SnapRef
cp -r /tmp/SnapRef/comfyui_nodes/snapref ./snapref

重み は 2 つとも ComfyUI/models/loras/ の直下に置く。Ref Adapter は、ファイルが無ければ初回に配布元から自動で落とす(落とすのはこの 1 か所だけ。ほかに外と通信する処理は無かった)。

入れたら ComfyUI を再起動する。

つなぎ方 は 2 つとも同じで、モデルを読むノードとサンプラーのあいだに 1 つ挟むだけ。

UNETLoader → (LoRA があればここ) → [アダプタ] → ModelSamplingAuraFlow → KSampler
ノード入れる物今回の設定
Anima Ref Adaptermodel・vae・参照画像(LoadImage)ref_guidance 4.5、correction apg、strength 1.0
SnapRefmodel・clip・vae・参照画像(ファイル名で選ぶ)mode「Character & Style」、strength 1.0、fidelity 1.0

プロンプトには場面とポーズだけを書く。 2 つの作者とも「キャラの名前や服のタグは要らない」と書いている。見た目は参照画像から来る。


3. 前回と同じ条件で比べる

前回の比較画像に埋め込まれていた設定を読み出して、そのままそろえた。seed(ノリ 4242、クロコ 5555)、35 steps、CFG 5.0、er_sde、832×1216、参照画像は前回と同じ全身の立ち絵。

プロンプトは 2 通り。

  • A: 前回と同じ(髪・眼鏡・服などの見た目のタグ入り)。前回の「参照なし」「LoRA」とそのまま並べられる
  • B: A から見た目のタグを抜いて、場面だけにした物

ノリ

ノリ。上段がプロンプト A、下段がプロンプト B。左から参照画像、参照なし、LoRA(前回)、Ref Adapter v2、SnapRef v1a

  • 2 つとも、学習なしでノリになった。ぼさぼさの髪とポニーテール、丸眼鏡、ベージュのパーカー、黒のショートパンツ。胸の丸いワッペンと袖のプリントまで写った
  • 下段の「参照なし」は別人。B のアダプタ 2 枚の見た目は、プロンプトではなく参照画像から来ている
  • Ref Adapter は線の太さと塗りまで参照に寄る。SnapRef は人物が小さめになった

クロコ

クロコ。並びはノリと同じ

服の作りが複雑なキャラでも写った。褐色の肌、銀髪のボブ、金色の目、白とオレンジのスーツ、お腹の回路の線、肩と膝の当て物、胸のマーク、靴まで。プロンプト B の「参照なし」は、紫の部屋に小さな黒い人影が立つだけだ。


4. 角度とポーズを変える

マンガのコマでは「上から」「真横」「後ろ姿」が混ざる。参照画像は正面の立ち絵 1 枚のまま、6 通りの角度とポーズで、前回の LoRA と並べた。

  • プロンプトは場面とポーズだけ。LoRA は学習のときの合図の語(noricloco_nori など)だけを先頭に入れた
  • seed はポーズごとに 1 つに固定し、3 つの方法で同じにした

ノリ

ノリの 6 通り。上段 LoRA、中段 Ref Adapter v2、下段 SnapRef v1a。左から上から・真横・後ろ姿・下から・顔のアップ・走る

クロコ

クロコの 6 通り。並びはノリと同じ

正面の立ち絵 1 枚から、6 通りとも描けた。 後ろ姿では、参照に無い背中側をそれらしく描き足した。LoRA も 6 通りとも崩れなかった。絵柄は、LoRA は学習に使ったコマの絵柄に、アダプタは参照画像の絵柄に寄る。

ただし、それぞれ癖がある。

癖の出た絵の拡大。左から クロコ真横・Ref Adapter(奥の脚が黒い)、クロコ真横・SnapRef(白い所がオレンジに)、ノリ顔のアップ・SnapRef(服が黒い)、ノリ上から・Ref Adapter(髪が暗い緑)、クロコ上から・Ref Adapter(体型が参照より豊満)

  • Ref Adapter: 細部(袖のプリント、スーツの回路の線)は一番よく写る。一方で、ノリの黒髪がどの角度でも暗い緑がかり、クロコは体型が参照より豊満に寄りがち
  • SnapRef: 色は参照から外れにくい。ただ、顔のアップではノリの服がパーカーにならなかった。「走る」では背景が白黒のマンガ調になったが、これは LoRA だけでも起きる(「5. LoRA と重ねる」の seed の確かめ)
  • 量産するなら、どちらも 1 コマずつ目で確かめる前提

5. LoRA と重ねる

前回作った LoRA は、絵柄がそろって安定している。ただ、服のロゴは出なかった。そこで LoRA で絵柄、アダプタで服の細部 を狙って、LoRA の後ろにアダプタを挟んだ。

  • SnapRef は mode を 「Character」 にした。キャラだけを写し、絵柄はモデル側(=LoRA)に任せる設定だ
  • Ref Adapter は、今回使った簡単版のノード(Anima Ref Adapter)のまま挟んだ。簡単版にはこの切り替えが無い。上級版のノード(Anima Ref Latent + Anima Ref Guider)には、キャラと絵柄を別々に入れる口があるが、今回は試していない
  • プロンプトと seed は「4. 角度とポーズ」と同じ

ノリ

ノリ。上段 LoRA だけ、中段 LoRA+Ref Adapter、下段 LoRA+SnapRef(mode Character)

クロコ

クロコ。並びはノリと同じ

LoRA+SnapRef が狙いどおりに働いた。 構図・絵柄・背景は LoRA だけの絵とほぼ同じまま、服の細部が参照に寄る。

胸の文字の拡大。上段が LoRA だけ、下段が LoRA+SnapRef。左が真横、右が下から

  • LoRA だけでは無地だったパーカーに、胸の「ML」と「NO TRADE」、丸いワッペン、袖のプリントが載った。「NO TRADE」は、正面寄りの「下から」ではそのまま読める。真横は斜めから見るぶん少し崩れる。袖の小さな文字は崩れたまま
  • 走る絵で黒いレギンスになっていたのがショートパンツに戻り、顔のアップの黒い枠も消えた
  • クロコは、もともと LoRA だけで近いので、変化は小さい
  • 時間はほとんど増えない(1 枚 約 36 秒。LoRA だけは約 38 秒)

seed を変えても出るか

1 つの seed でたまたま出ただけかもしれないので、ノリの「真横」「下から」「走る」を、別の seed 3 つ(2001〜2003)で描き直した。LoRA だけと LoRA+SnapRef で 9 枚ずつ。

seed を変えた 18 枚。行が seed、列は 真横・下から・走る を LoRA だけ/LoRA+SnapRef の順に並べた

「下から」の胸のあたりを、seed 3 つで拡大。上段が LoRA だけ、下段が LoRA+SnapRef

胸の「ML」「NO TRADE」が読める黒い枠・黒い背景
LoRA だけ9 枚中 3 枚9 枚中 1 枚9 枚中 2 枚
LoRA+SnapRef9 枚とも正面寄り(下から・走る)の 6 枚とも。真横は角度で一部だけ見える0 枚

seed を変えても、重ねがけの効き目は変わらなかった。袖の小さな文字は、どちらでも崩れる。

なお「走る」は、LoRA だけでも絵ごと白黒のマンガ調になることがあった(3 枚中 2 枚)。白黒は、アダプタの癖ではなかった。

LoRA+Ref Adapter(簡単版のノード)は、Ref Adapter が LoRA の絵柄を上書きする。 線の太さ・色・構図が Ref Adapter 寄りに変わり、背景が無地になることがあった。クロコの顔のアップは、人物が出ずに白い板だけの絵になった。今回の組み方では、LoRA と組むなら SnapRef の方がいい。


6. 使い分け

キャラ使う物理由
主役(学習に使える絵がたまっている)LoRA+SnapRef(mode Character)LoRA の絵柄と安定のまま、服のロゴや小物が参照から戻る。時間もほぼ増えない
絵の少ないキャラ(新キャラ・ゲスト・モブ)アダプタだけ正面の立ち絵 1 枚で、角度を変えても同じキャラになる。学習が要らない
細部を一番写したい 1 枚Ref Adapter細部は一番よく写る。簡単版のノードを LoRA と重ねると、LoRA の絵柄が消える

1 枚あたりの時間(RTX 3090、35 steps、832×1216):

方法時間
参照なし約 30 秒
LoRA約 38 秒
SnapRef / LoRA+SnapRef約 36 秒
Ref Adapter / LoRA+Ref Adapter約 55〜62 秒

LoRA の学習には、画像 76 枚の準備と 3 時間がかかった。アダプタは参照画像 1 枚で済む。


7. ライセンス

ライセンス
Anima 本体CircleStone Labs Non-Commercial License v1.2
Ref Adapter・SnapRef の重み同じ CircleStone Labs Non-Commercial License v1.2(各リポジトリに本文がある)
2 つのノードのコードApache-2.0
  • 非商用の縛りがかかるのは モデル(重み) の方。重みそのものを商用に使うことはできない
  • 生成した画像 は、ライセンスで禁じられた使い方を除けば、商用を含めて使ってよい。3 つの本文とも同じ文が入っている("You may use Outputs for any purpose (including for commercial purposes), except as expressly prohibited herein.")
  • 何が「禁じられた使い方」に当たるかは、使う前に本文を読んで確かめてほしい(Anima/Ref Adapter/SnapRef v1a)

8. まとめ

前回の「LoRA が現実解」は、半分だけ書き換わった。

  • 新しいキャラは、正面の立ち絵 1 枚で描ける。LoRA の学習を待たなくていい
  • すでに LoRA があるキャラは、LoRA を捨てる必要はない。SnapRef を後ろに足すと、LoRA で消えていた服の細部が戻る

どちらのアダプタも、1 枚ごとに癖は出る(髪の色、体型、服の色)。量産では、コマごとに目で確かめる手間は残る。


参考