参照画像 1 枚で同じキャラを描く —— Anima の参照アダプタ 2 つと、LoRA との重ねがけ
前回「Anima には IP-Adapter が無いので LoRA が現実解」と書いた。その後、Anima 用の参照アダプタが 2 つ出た。Anima Ref Adapter v2 と SnapRef を、前回の LoRA と同じ条件で並べ、角度とポーズを変え、LoRA とも重ねた。正面の立ち絵 1 枚で、学習なしに同じキャラが描ける。LoRA を持っているキャラは、LoRA+SnapRef で服のロゴまで戻った。
← 前の記事: はじめての LoRA 学習 — Anima で漫画キャラを焼く
左端の立ち絵 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 v2 | SnapRef v1a | |
|---|---|---|
| 作者 | ElectronGirl | 0ppxnhximxr |
| 重み | 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-Adapter | ArcAnima/SnapRef の comfyui_nodes/snapref/ |
| 推奨のベース | Anima base v1.0 | Anima 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 Adapter | model・vae・参照画像(LoadImage) | ref_guidance 4.5、correction apg、strength 1.0 |
| SnapRef | model・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 から見た目のタグを抜いて、場面だけにした物
ノリ

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

服の作りが複雑なキャラでも写った。褐色の肌、銀髪のボブ、金色の目、白とオレンジのスーツ、お腹の回路の線、肩と膝の当て物、胸のマーク、靴まで。プロンプト B の「参照なし」は、紫の部屋に小さな黒い人影が立つだけだ。
4. 角度とポーズを変える
マンガのコマでは「上から」「真横」「後ろ姿」が混ざる。参照画像は正面の立ち絵 1 枚のまま、6 通りの角度とポーズで、前回の LoRA と並べた。
- プロンプトは場面とポーズだけ。LoRA は学習のときの合図の語(
noricloco_noriなど)だけを先頭に入れた - seed はポーズごとに 1 つに固定し、3 つの方法で同じにした
ノリ

クロコ

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

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

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


| 胸の「ML」 | 「NO TRADE」が読める | 黒い枠・黒い背景 | |
|---|---|---|---|
| LoRA だけ | 9 枚中 3 枚 | 9 枚中 1 枚 | 9 枚中 2 枚 |
| LoRA+SnapRef | 9 枚とも | 正面寄り(下から・走る)の 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 枚ごとに癖は出る(髪の色、体型、服の色)。量産では、コマごとに目で確かめる手間は残る。
参考
- Anima(Hugging Face)
- Anima Ref Adapter(重み)/ComfyUI-Anima-Ref-Adapter(ノード)
- SnapRef v1a(重み)/SnapRef(ノード)
- はじめての LoRA 学習 — Anima で漫画キャラを焼く(前回)