技術約20分で読めます

Anima Ref Adapter v2とRole-Ref-KVをM1 Maxで比べる、v2はTurboでpilotの約3倍速になり試した4条件では4コマに崩れなかった

いけさん目次

前回のBase専用のAnima Ref AdapterをTurbo・Aesthetic・2.9Bで試した記事を出した日に、Ref Adapterのv2が出た。
参照画像1枚からキャラクターの特徴を保ったまま別の構図を出すためのアダプターで、pilot版ではTurbo系をcfg 1.0・ref_guidance 4.5で回すと4コマに崩れ、Baseで1枚13分かかっていた。
v2は参照画像の処理を1回で済ませる方式に変わり、READMEではpilotの約2倍速とある。

同じ時期に、参照画像1枚でキャラを保つAnima用のアダプターがもう1つ出ている。
AnticPanのAnima Role Ref KVで、こちらも参照画像を1回だけ処理してキャッシュする。
さらに、Ref Adapterとtoyxyzの3DポーズのControlNet-LLLiteを同時に使うためのComfyUI-Anima-CharRef-LLLiteも出た。

CharRef-LLLiteはRef Adapterと組み合わせる前提のノードだ。
参照でキャラを、LLLiteでポーズを決めるという分担なら、参照側はRef AdapterでもRole-Ref-KVでも成り立つように思える。
前回と同じ条件でv2とRole-Ref-KVを当て、CharRef-LLLiteの参照側をRole-Ref-KVに差し替えられるかも、M1 Max 64GBのComfyUIで試した。

各ノードの概要

項目Anima Ref Adapter v2Anima Role Ref KV v1.0ComfyUI-Anima-CharRef-LLLite
作者ElectronGirlAnticPanquinteroac
公開2026年10月29日(v2対応のコミット de90631)2026年10月27日(Hugging Faceの初回リリース)2026年10月29日(GitHubの初回コミット)
中身ノード1個(Anima Ref Adapter)と、rank 64のLoRA(183,605,032バイト)ノード1個(Anima Role Ref KV)と、rank 128のLoRA(528,546,184バイト、fp32)ノード3個。重みはなし
学習15,600枚、2,300キャラ、1,952画風。Anima Base v1.0READMEに記載なし。NSFWは学習データから除外—
ライセンスノードはApache-2.0、重みはCircleStone Non-Commercial LicenseCircleStoneの非商用ライセンスに従う派生物Apache-2.0
入手先GitHub、Hugging FaceHugging FaceGitHub

どちらの参照アダプターも、参照画像をVAEで潜在表現にし、生成中の画像とは別のトークン列としてモデルに通す。
参照側はノイズを加えないきれいな状態(timestep 0)のまま処理し、各ブロックの注目機構のkey/valueを1回だけ計算して、全ステップで使い回す。
pilotは参照を2枚目のフレームとして毎ステップ計算し直していたので、ここが速度の差になる。

違うのは参照側の扱いと、LoRAの当たる範囲だ。

項目Ref Adapter v2Role-Ref-KV
参照の位置(RoPE)出力画像の格子の外側にずらす縦横は出力画像の中央にそろえ、時間方向の座標だけ別にする
参照側のcross-attention(テキスト)通さない正プロンプトを通す
LoRAの対象self_attn・cross_attn・mlp(840キー)self_attnのq/k/v/outとmlpのlayer1/2(504キー)。cross_attnは対象外
参照画像の大きさref_megapixels(既定1.0)に縮小768×768相当以下に縮小
サンプラーComfyUI標準。KSamplerなど何でもよいノードに内蔵(Euler、shift 3)。LATENTを返す
参照の強さref_guidance で調整調整する引数はない

Role-Ref-KVのノードは、パッチ済みのモデル(LoRAやLLLiteを当てたもの)と、28ブロック以外のモデルを受け付けない。
エラーメッセージは Use an unpatched Anima Base v1.0 MODEL と Expected Anima Base v1.0 (28 blocks) で、Base+Turbo LoRAも2.9Bもそのままでは動かない。

READMEの推奨設定。

項目Ref Adapter v2Role-Ref-KV
ベースモデルAnima base v1.0。Turbo LoRAも可Anima Base v1.0
サンプラーer_sdeかEuler、30ステップ、simple28ステップ(内蔵)
cfg4.5(Turbo LoRAなら1)4
参照の強さref_guidance 4.5、補正は apg—
解像度指定なし(作例は832×1216)約1MP(1024×1024、832×1216、1216×832)
プロンプト品質タグ+1girl+solo+場面のタグ。キャラ名・絵師・服のタグは書かない欲しいポーズ・服・場面を書く
対応外Turbo・Aestheticのフルモデルは未検証他のベース、量子化、追加アダプターは未検証

v2のREADMEには、検証したTurbo LoRAは anima-turbo-lora-v0.2 とある。
Role-Ref-KVの作者は、10月29日にTurbo v1.0・v1.1(8ステップ・CFG 1)やAesthetic系に当てるデモをHugging Face Spaceで出しているが、配布されている重みは同じv1.0だ。

検証環境

項目内容
マシンMacBook Pro M1 Max 64GB(MPS)
UIComfyUI v0.33.3
Ref Adapterノードはコミット fb587d2、重みは anima_ref_adapter_v2_r64.safetensors
Role-Ref-KVHugging Faceのコミット 259a0dc のノードと anima-role-ref-kv-v1.0.safetensors
CharRef-LLLiteコミット b3a8cb0。LLLiteは toyxyz/Anima_ControlNet-LLLite の anima_3dpose_6200.safetensors
解像度896×1152(前回と同じ)。LLLiteの節だけ768×1152
サンプラーv2は euler / simple、Role-Ref-KVは内蔵のEuler
シード20261027(シード比較の節だけ20261028・20261029を追加)
参照画像前回と同じ。v2の作例 ref_girl.jpg と、かなちゃんの立ち絵
前回の比較対象Ref Adapter pilot(anima_ref_adapter_pilot_r32)。前回記事の画像と数値を流用し、再生成していない

Ref AdapterのAPG補正は、前回と同じくMacのMPSで動かない .double() の2行を .float() にして回した。
同じシード値でも、v2はComfyUIの、Role-Ref-KVはノード内蔵の乱数で初期ノイズを作るので、2つのアダプターの間では初期ノイズが一致しない。

当てたモデルは前回と同じ8条件。

ラベルモデルv2 ステップ / cfg / ref_guidanceRole-Ref-KV ステップ / cfgRole-Ref-KVのノード
Baseanima-base-v1.030 / 4.5 / 4.528 / 4純正
Aesthetic v1.1anima-aesthetic-v1.130 / 4.5 / 4.528 / 4純正
2.9B(付け替えあり)Anima-2.9B-preview-v130 / 4.5 / 4.528 / 4チェックを外した別名ノード
2.9B(付け替えなし)Anima-2.9B-preview-v130 / 4.5 / 4.5——
Turbo v1.1anima-turbo-v1.18 / 1.0 / 1.08 / 1純正
Turbo v1.0anima-turbo-v1.08 / 1.0 / 1.08 / 1純正
Base+Turbo LoRAanima-base-v1.0+anima-turbo-lora-v0.1(1.0)8 / 1.0 / 1.08 / 1チェックを外した別名ノード
2.9B非公式Turboanima29b-p1-turbo1.18 / 1.0 / 1.08 / 1チェックを外した別名ノード

v2のTurbo系は、前回pilotで4コマ崩れを避けられたref_guidance 1.0を基本にした。
Turbo v1.0・v1.1はフルモデルなので、Role-Ref-KVの純正ノードのチェックを通る。

Role-Ref-KVの対応外の3条件は、純正ノードの拒否チェックだけを外した別名ノードを検証用に足して回した。
純正ノードのコードは変えていない。
Base+Turbo LoRAは、ComfyUIのLoRAローダーで当てたTurbo LoRAが適用された状態で内蔵のforwardが走るので、そのまま反映される。
2.9Bは、前回と同じスクリプトでv2のLoRAを40ブロック向けに付け替えた。
Role-Ref-KVは全ブロック分のLoRAを要求するので、付け替えたうえで、差し込まれた12ブロックには値がゼロのLoRAを足した。

公式設定のまま動かしてみる

まずv2の作者の作例と同じ参照画像・同じプロンプトをBaseで出した。
Role-Ref-KVも同じ参照画像で、推奨の28ステップ・cfg 4にした。

アダプター時間結果
v2479.9秒ブロンドに赤メッシュ、黒と白の服。赤いソファ席でフォークを口に運ぶ。前回のpilot(785.8秒)とほぼ同じ構図
Role-Ref-KV299.3秒同じキャラが赤いソファ席でケーキを食べる
v2
Ref Adapter v2をBaseに当て、作者の作例の参照でケーキの場面を出した結果
Role-Ref-KV
Role-Ref-KVをBaseに当て、作者の作例の参照でケーキの場面を出した結果

どちらも参照画像の髪色・メッシュ・服を引き継いで、場面はプロンプトどおりになった。
同じBaseでv2は約8分、Role-Ref-KVは約5分かかった。

プロンプト
masterpiece, best quality, score_7, newest, highres, absurdres, safe, 1girl, solo, upper body, sitting, eating, cake, cafe, indoors

ネガティブ(全条件共通)

worst quality, low quality, score_1, score_2, score_3, blurry, jpeg artifacts, chromatic aberration, bad anatomy, bad hands, extra arms, extra fingers, missing fingers, text, watermark, signature, artist name, multiple views, split screen, comic, 2koma, 4koma

Base・Aesthetic v1.1・2.9Bに推奨設定で当ててみる

参照をかなちゃんの立ち絵に替えて、走る場面とケーキの場面を出した。

条件v2 走るRole-Ref-KV 走るv2 ケーキRole-Ref-KV ケーキ
Base正面向きで走る全身、人物が画面いっぱい。白い城2つと草原正面寄りで走る。人物は小さめで、巨大な入道雲と丘の上の城赤いソファ席でフォークを口に。参照どおり同じ場面。髪が鮮やかなオレンジに寄る
Aesthetic v1.1Baseとほぼ同じ構図Baseとほぼ同じ構図Baseとほぼ同じ構図店内照明のカフェ。髪はオレンジ寄りの茶
2.9B(付け替えあり)Baseとほぼ同じ構図。葉っぱが舞う入道雲と城、正面で走るBaseとほぼ同じ構図Baseとほぼ同じ構図、髪は鮮やかなオレンジ
2.9B(付け替えなし)崩壊。茶色い煙状の塊と格子状のノイズ—崩壊。暗い半透明の人影と格子状のノイズ—
v2 Base 走る
Ref Adapter v2をBaseに当てた走る場面
Role-Ref-KV Base 走る
Role-Ref-KVをBaseに当てた走る場面
v2 Aesthetic v1.1 走る
Ref Adapter v2をAesthetic v1.1に当てた走る場面
Role-Ref-KV Aesthetic v1.1 走る
Role-Ref-KVをAesthetic v1.1に当てた走る場面
v2 2.9B(付け替えあり)走る
Ref Adapter v2を付け替えて2.9Bに当てた走る場面
Role-Ref-KV 2.9B(付け替えあり)走る
Role-Ref-KVを付け替えて2.9Bに当てた走る場面
v2 2.9B(付け替えなし)走る
Ref Adapter v2を付け替えずに2.9Bに当てた走る場面、崩壊
v2 Base ケーキ
Ref Adapter v2をBaseに当てたケーキの場面
Role-Ref-KV Base ケーキ
Role-Ref-KVをBaseに当てたケーキの場面、髪がオレンジに寄る
v2 Aesthetic v1.1 ケーキ
Ref Adapter v2をAesthetic v1.1に当てたケーキの場面
Role-Ref-KV Aesthetic v1.1 ケーキ
Role-Ref-KVをAesthetic v1.1に当てたケーキの場面
v2 2.9B(付け替えあり)ケーキ
Ref Adapter v2を付け替えて2.9Bに当てたケーキの場面
Role-Ref-KV 2.9B(付け替えあり)ケーキ
Role-Ref-KVを付け替えて2.9Bに当てたケーキの場面
v2 2.9B(付け替えなし)ケーキ
Ref Adapter v2を付け替えずに2.9Bに当てたケーキの場面、崩壊

どちらのアダプターも、アホ毛、画像右側の青いシュシュのサイドポニー、白シャツ、赤ネクタイ、黒タイツ、ローファーを参照から引き継いだ。
前回のpilotはこのシードのBaseで後ろ姿になったが、今回は両方とも正面向きで走った。
v2は人物を画面いっぱいに大きく、Role-Ref-KVは人物を小さくして背景を大きく描いた。

Role-Ref-KVはケーキの場面のBase・Aesthetic・2.9Bで、参照の明るい茶髪がオレンジに寄った。
同じRole-Ref-KVでも走る場面では明るい茶のままだったので、場面によって出たり出なかったりする。
v2はどの条件でも参照の明るい茶髪だった。

2.9Bはv2もRole-Ref-KVもブロックを付け替えれば動いた。
v2を付け替えずに当てると、前回のpilotと同じく正常に出なかった。

プロンプト

走る場面

masterpiece, best quality, score_7, newest, highres, absurdres, safe, 1girl, solo, full body, running, wind, hair blowing, dynamic pose, fantasy landscape, castle in background, sunset sky, dramatic clouds, grass field

ケーキの場面

masterpiece, best quality, score_7, newest, highres, absurdres, safe, 1girl, solo, upper body, sitting, eating, cake, cafe, indoors

Turbo系に当てた結果

Turbo系の4条件は8ステップ・cfg 1.0で、v2はref_guidance 1.0にした。

条件v2 走るRole-Ref-KV 走るv2 ケーキRole-Ref-KV ケーキ
Turbo v1.1正面で走る、城と夕空。参照どおり正面で走る、右手を頭に。参照どおり窓際の赤いソファ席。参照どおり参照どおり。髪はやや赤み
Turbo v1.0Turbo v1.1とほぼ同じ構図丘の上の城、正面で走る左手を頬に。参照どおり参照どおり。髪はやや赤み
Base+Turbo LoRA参照どおり右手を握って上げる。参照どおり参照どおり髪がオレンジ、口を大きく開ける
2.9B非公式Turbo参照どおり参照どおり参照どおり参照どおり。髪はやや赤み
v2 Turbo v1.1 走る
Ref Adapter v2をTurbo v1.1に当てた走る場面
Role-Ref-KV Turbo v1.1 走る
Role-Ref-KVをTurbo v1.1に当てた走る場面
v2 Turbo v1.0 走る
Ref Adapter v2をTurbo v1.0に当てた走る場面
Role-Ref-KV Turbo v1.0 走る
Role-Ref-KVをTurbo v1.0に当てた走る場面
v2 Base+Turbo LoRA 走る
Ref Adapter v2をBase+Turbo LoRAに当てた走る場面
Role-Ref-KV Base+Turbo LoRA 走る
Role-Ref-KVをBase+Turbo LoRAに当てた走る場面
v2 2.9B非公式Turbo 走る
Ref Adapter v2を2.9B非公式Turboに当てた走る場面
Role-Ref-KV 2.9B非公式Turbo 走る
Role-Ref-KVを2.9B非公式Turboに当てた走る場面
v2 Turbo v1.1 ケーキ
Ref Adapter v2をTurbo v1.1に当てたケーキの場面
Role-Ref-KV Turbo v1.1 ケーキ
Role-Ref-KVをTurbo v1.1に当てたケーキの場面
v2 Turbo v1.0 ケーキ
Ref Adapter v2をTurbo v1.0に当てたケーキの場面
Role-Ref-KV Turbo v1.0 ケーキ
Role-Ref-KVをTurbo v1.0に当てたケーキの場面
v2 Base+Turbo LoRA ケーキ
Ref Adapter v2をBase+Turbo LoRAに当てたケーキの場面
Role-Ref-KV Base+Turbo LoRA ケーキ
Role-Ref-KVをBase+Turbo LoRAに当てたケーキの場面、髪がオレンジ
v2 2.9B非公式Turbo ケーキ
Ref Adapter v2を2.9B非公式Turboに当てたケーキの場面
Role-Ref-KV 2.9B非公式Turbo ケーキ
Role-Ref-KVを2.9B非公式Turboに当てたケーキの場面

Turbo系の4条件は、どちらのアダプターも走る場面・ケーキの場面とも指定どおりに出た。
前回のpilotではこのシードの走る場面で、Turbo v1.1はシュシュが左側に、Turbo v1.0とBase+Turbo LoRAはツインテールに変わった。
今回はv2・Role-Ref-KVとも4条件すべて画像右側のサイドポニーだった。

Role-Ref-KVはREADMEに「他のベースは未検証」とあるが、Turboのフルモデル2種でも、別名ノードで回したBase+Turbo LoRAと2.9B非公式Turboでも動いた。
ケーキの場面で髪が赤みを帯びる傾向は、Turbo系でも残った。

ref_guidance 4.5で4コマに崩れるか

前回のpilotは、Turbo系をcfg 1.0・ref_guidance 4.5で回すと4条件とも4コマに分割されるか崩壊した。
v2の同じ設定で、ケーキの場面を出し直した。

条件時間結果
Turbo v1.192.5秒1枚絵。全体に彩度が落ちてくすみ、線が太い
Turbo v1.092.5秒1枚絵。シャツが水色、汗
Base+Turbo LoRA90.5秒1枚絵。シャツの上にベージュのベストのような色が乗る
2.9B非公式Turbo124.6秒1枚絵。シャツが薄い水色
Turbo v1.1
Ref Adapter v2をTurbo v1.1にcfg 1.0、ref_guidance 4.5で当てたケーキの場面
Turbo v1.0
Ref Adapter v2をTurbo v1.0にcfg 1.0、ref_guidance 4.5で当てたケーキの場面
Base+Turbo LoRA
Ref Adapter v2をBase+Turbo LoRAにcfg 1.0、ref_guidance 4.5で当てたケーキの場面
2.9B非公式Turbo
Ref Adapter v2を2.9B非公式Turboにcfg 1.0、ref_guidance 4.5で当てたケーキの場面

4条件とも4コマには分かれず、場面どおりの1枚絵になった。
ただ、色がくすむ、シャツが水色になるといった変化は、前回pilotの4コマの画像にも出ていたものと同じ傾向だ。
v2のノードは、ref_guidanceが1.0以外のときに参照を外したモデル呼び出しを各ステップで1回足し、参照ありとの差をref_guidance−1倍して加える。
cfg 1.0では参照の影響だけが強まる組み合わせなのは、前回のpilotと変わらない。
v2では構図までは崩れず、色に出た。
Turbo系をcfg 1.0で回すなら、前回と同じくref_guidance 1.0のほうが参照の色どおりに出る。

寝そべり・俯瞰構図を試す

前回と同じく、草むらに仰向けで寝そべる構図を真上から出した。

条件時間結果
v2 Turbo v1.158.3秒白い花の草地で仰向け、膝を立てて手前に大きく描く。ローファー
Role-Ref-KV Turbo v1.192.4秒頭が画面の下、脚が上にある仰向け。紫やピンクの花
v2 Base476.4秒仰向けで膝を立てる、v2 Turbo v1.1とほぼ同じ構図。ローファー
Role-Ref-KV Base297.6秒体を斜めにした仰向けで膝を立てる。ローファー。髪はオレンジ寄り
v2 Turbo v1.1
Ref Adapter v2をTurbo v1.1に当て、草地に仰向けで寝そべる構図を真上から出した結果
Role-Ref-KV Turbo v1.1
Role-Ref-KVをTurbo v1.1に当て、頭が下になった仰向けの構図
v2 Base
Ref Adapter v2をBaseに当てた寝そべりの構図
Role-Ref-KV Base
Role-Ref-KVをBaseに当てた寝そべりの構図

4枚とも、正面の立ち絵1枚からキャラを保ったまま仰向け・俯瞰に変わった。
Role-Ref-KVのTurbo v1.1は頭が下の上下逆になったが、前回の記事のTurbo v1.1で参照なしに出したときも頭が下だった。
上下逆でも、アホ毛やシュシュ、ネクタイは参照どおりだった。

プロンプト
masterpiece, best quality, score_7, newest, highres, absurdres, safe, 1girl, solo, full body, lying on back, on grass, from above, looking at viewer, flowers, daytime

シードを変えて走る場面を出す

前回のpilotでは、シード20261027だけでTurbo系の髪型が崩れ、追加した2つのシードでは崩れなかった。
今回も走る場面でシード20261028・20261029を足し、Turbo系4条件と、推奨設定のBase・2.9B(付け替えあり)を出した。

条件v2 s20261028v2 s20261029Role-Ref-KV s20261028Role-Ref-KV s20261029
Turbo v1.1サイドポニーサイドポニーサイドポニー。黒タイツがニーハイに変わる。毛先がオレンジサイドポニー
Turbo v1.0サイドポニーサイドポニーサイドポニーサイドポニー
Base+Turbo LoRAサイドポニーサイドポニーサイドポニー。黒タイツがニーハイに変わるサイドポニー
2.9B非公式Turboサイドポニーサイドポニーサイドポニー。人物が小さい。毛先がオレンジサイドポニー
Baseサイドポニーサイドポニーポニーとシュシュがなく、肩までの髪。人物が小さいポニーとシュシュ、ネクタイがなく、黒いジャンパースカート。髪がオレンジ寄り
2.9B 付け替えありサイドポニーサイドポニーサイドポニー。人物が小さいBaseのs20261029とほぼ同じ。ジャンパースカートでネクタイなし

表の「サイドポニー」は、頭部を拡大して画像右側にシュシュ付きのサイドポニーを確かめたもの。
前回のpilotのBaseで3シード中2回出た後ろ姿は、今回はv2・Role-Ref-KVとも1回も出なかった。

v2 Turbo v1.1 s20261027
Ref Adapter v2をTurbo v1.1に当てた走る場面、seed 20261027
v2 Turbo v1.1 s20261028
Ref Adapter v2をTurbo v1.1に当てた走る場面、seed 20261028
v2 Turbo v1.1 s20261029
Ref Adapter v2をTurbo v1.1に当てた走る場面、seed 20261029
v2 Turbo v1.0 s20261027
Ref Adapter v2をTurbo v1.0に当てた走る場面、seed 20261027
v2 Turbo v1.0 s20261028
Ref Adapter v2をTurbo v1.0に当てた走る場面、seed 20261028
v2 Turbo v1.0 s20261029
Ref Adapter v2をTurbo v1.0に当てた走る場面、seed 20261029
v2 Base+Turbo LoRA s20261027
Ref Adapter v2をBase+Turbo LoRAに当てた走る場面、seed 20261027
v2 Base+Turbo LoRA s20261028
Ref Adapter v2をBase+Turbo LoRAに当てた走る場面、seed 20261028
v2 Base+Turbo LoRA s20261029
Ref Adapter v2をBase+Turbo LoRAに当てた走る場面、seed 20261029
v2 2.9B非公式Turbo s20261027
Ref Adapter v2を2.9B非公式Turboに当てた走る場面、seed 20261027
v2 2.9B非公式Turbo s20261028
Ref Adapter v2を2.9B非公式Turboに当てた走る場面、seed 20261028
v2 2.9B非公式Turbo s20261029
Ref Adapter v2を2.9B非公式Turboに当てた走る場面、seed 20261029
v2 Base s20261027
Ref Adapter v2をBaseに当てた走る場面、seed 20261027
v2 Base s20261028
Ref Adapter v2をBaseに当てた走る場面、seed 20261028
v2 Base s20261029
Ref Adapter v2をBaseに当てた走る場面、seed 20261029
v2 2.9B 付け替えあり s20261027
Ref Adapter v2を2.9B 付け替えありに当てた走る場面、seed 20261027
v2 2.9B 付け替えあり s20261028
Ref Adapter v2を2.9B 付け替えありに当てた走る場面、seed 20261028
v2 2.9B 付け替えあり s20261029
Ref Adapter v2を2.9B 付け替えありに当てた走る場面、seed 20261029
Role-Ref-KV Turbo v1.1 s20261027
Role-Ref-KVをTurbo v1.1に当てた走る場面、seed 20261027
Role-Ref-KV Turbo v1.1 s20261028
Role-Ref-KVをTurbo v1.1に当てた走る場面、seed 20261028
Role-Ref-KV Turbo v1.1 s20261029
Role-Ref-KVをTurbo v1.1に当てた走る場面、seed 20261029
Role-Ref-KV Turbo v1.0 s20261027
Role-Ref-KVをTurbo v1.0に当てた走る場面、seed 20261027
Role-Ref-KV Turbo v1.0 s20261028
Role-Ref-KVをTurbo v1.0に当てた走る場面、seed 20261028
Role-Ref-KV Turbo v1.0 s20261029
Role-Ref-KVをTurbo v1.0に当てた走る場面、seed 20261029
Role-Ref-KV Base+Turbo LoRA s20261027
Role-Ref-KVをBase+Turbo LoRAに当てた走る場面、seed 20261027
Role-Ref-KV Base+Turbo LoRA s20261028
Role-Ref-KVをBase+Turbo LoRAに当てた走る場面、seed 20261028
Role-Ref-KV Base+Turbo LoRA s20261029
Role-Ref-KVをBase+Turbo LoRAに当てた走る場面、seed 20261029
Role-Ref-KV 2.9B非公式Turbo s20261027
Role-Ref-KVを2.9B非公式Turboに当てた走る場面、seed 20261027
Role-Ref-KV 2.9B非公式Turbo s20261028
Role-Ref-KVを2.9B非公式Turboに当てた走る場面、seed 20261028
Role-Ref-KV 2.9B非公式Turbo s20261029
Role-Ref-KVを2.9B非公式Turboに当てた走る場面、seed 20261029
Role-Ref-KV Base s20261027
Role-Ref-KVをBaseに当てた走る場面、seed 20261027
Role-Ref-KV Base s20261028
Role-Ref-KVをBaseに当てた走る場面、seed 20261028
Role-Ref-KV Base s20261029
Role-Ref-KVをBaseに当てた走る場面、seed 20261029
Role-Ref-KV 2.9B 付け替えあり s20261027
Role-Ref-KVを2.9B 付け替えありに当てた走る場面、seed 20261027
Role-Ref-KV 2.9B 付け替えあり s20261028
Role-Ref-KVを2.9B 付け替えありに当てた走る場面、seed 20261028
Role-Ref-KV 2.9B 付け替えあり s20261029
Role-Ref-KVを2.9B 付け替えありに当てた走る場面、seed 20261029

v2は6条件×3シードの18枚すべてで、サイドポニー、白シャツ、赤ネクタイ、黒タイツが参照どおりだった。
v2はシードを変えても、同じシードならモデルが違ってもほぼ同じ構図になり、人物を画面いっぱいに描いた。
Role-Ref-KVは18枚中、Baseの2枚と2.9Bの1枚で髪型が、Baseと2.9Bのs20261029では服まで参照から変わった。
Role-Ref-KVのBaseと2.9Bは、s20261027とs20261029では同じシード同士でほぼ同じ構図になったが、s20261028ではBaseだけポニーがなくなった。
Role-Ref-KVは同じシードでも人物の大きさや背景が条件ごとに変わり、毛先がオレンジになる、タイツがニーハイになるといった細部の変化も出た。

CharRef-LLLiteで参照アダプターを差し替える

CharRef-LLLiteは、toyxyzの3DポーズのLLLite(ControlNetの軽量版)とRef Adapterを同時に使うためのノードだ。
LLLiteは各ブロックの入力に補正を足してポーズに従わせるが、ComfyUI標準のLLLiteのパッチは生成中の画像のトークンしか想定していない。
Ref Adapterの参照が加わると組み合わせられないので、CharRef-LLLiteはLLLiteの補正を生成中の画像の側だけに当てる、とREADMEにある。
v2とpilotの両方に対応している。

ポーズの入力には、toyxyzのリポジトリにあるサンプルの 3dpose_example.png を使った。
黒背景に肌色のマネキンが片膝を立てて座っている768×1152の画像だ。
参照はかなちゃんの立ち絵、Turbo v1.1、8ステップ・cfg 1.0、v2とpilotはref_guidance 1.0、LLLiteの強さは1.0で最初から最後まで当てた。

Role-Ref-KVの純正ノードは、LLLiteを当てたモデルをパッチ済みとして拒否する。
チェックを外した別名ノードに通しても、Role-Ref-KVはComfyUIの標準のforwardを使わずに内蔵のforwardでモデルを回すので、LLLiteのパッチは呼ばれない。
そこで、Role-Ref-KVの内蔵forwardのうち、生成中の画像の側にだけLLLiteの補正を足す接続ノードを検証用に書いた。
補正を足す場所は、CharRef-LLLiteと同じく self_attn の q/k/v、cross_attn の q、mlp の layer1 の入力で、参照のkey/valueを作る側には当てない。

条件時間結果
ポーズだけ(参照なし)36.1秒丸椅子に座り、片膝を上げ、右手を座面に。マネキンのポーズどおり。猫耳で黒髪にピンクのメッシュの別人、裸足
v2の参照だけ(ポーズなし)50.2秒かなちゃん。床に体育座りで両膝を立てる。ローファー
Role-Ref-KVの参照だけ(ポーズなし)80.4秒かなちゃん。体育座りで膝に両手とあご。ローファー
CharRef-LLLite+v286.4秒かなちゃん。片膝を上げ、右手を床に。ポーズどおり。靴がなく黒タイツの足先
CharRef-LLLite+pilot148.6秒かなちゃん。石のブロックに腰掛け、片膝を上げ、右手をブロックに。ポーズどおり。ローファー
Role-Ref-KV純正ノード+LLLiteエラーUse an unpatched Anima Base v1.0 MODEL; this node loads the Anima Role Ref KV adapter itself
別名ノード+LLLite80.2秒体育座りで膝に手とあご。ポーズは反映されず、参照だけとほぼ同じ構図
接続ノード+Role-Ref-KV80.3秒かなちゃん。石のブロックに腰掛け、片膝を上げ、右手をブロックに。ポーズどおり。ローファー
ポーズ画像
toyxyzのサンプルの3Dポーズ画像、黒背景のマネキンが片膝を立てて座る
ポーズだけ
3DポーズのLLLiteだけで出した結果、別人がポーズどおりに座る
v2の参照だけ
Ref Adapter v2の参照だけで出した結果、体育座り
Role-Ref-KVの参照だけ
Role-Ref-KVの参照だけで出した結果、体育座り
CharRef-LLLite+v2
CharRef-LLLiteとRef Adapter v2で出した結果、ポーズどおりで靴がない
CharRef-LLLite+pilot
CharRef-LLLiteとRef Adapter pilotで出した結果、ポーズどおり
別名ノード+LLLite
Role-Ref-KVの別名ノードにLLLiteを当てたモデルを通した結果、ポーズが反映されない
接続ノード+Role-Ref-KV
接続ノードでRole-Ref-KVにLLLiteを差し込んだ結果、ポーズどおり

ポーズだけだと別人、参照だけだとポーズが体育座りになる。
両方を当てた3つの組み合わせでは、かなちゃんがマネキンと同じ姿勢で座った。
Role-Ref-KVでも、LLLiteの補正を生成中の画像の側にだけ足せば、CharRef-LLLiteと同じ分担で動いた。

v2との組み合わせだけ、参照の立ち絵にあるローファーが消えて黒タイツの足先になった。
v2の参照だけではローファーが出ている。

1枚ずつでは偶然と区別できないので、Turbo v1.1の4つの組み合わせでシード20261028・20261029を足した。

条件s20261027s20261028s20261029
CharRef-LLLite+v2床に座る。靴なし白い台に腰掛ける。ローファー緑の座面のベンチに腰掛ける。白いスニーカー
CharRef-LLLite+pilot石のブロックに腰掛ける。ローファー白い台に腰掛ける。ローファー緑の座面のベンチに腰掛ける。ローファー
接続ノード+Role-Ref-KV石のブロックに腰掛ける。ローファー白い台に腰掛ける。ローファー石の台に腰掛ける。ローファー
別名ノード+LLLite体育座り床にぺたんと座る(割座)割座。ハートのマーク
CharRef-LLLite+v2 s20261027
CharRef-LLLiteとRef Adapter v2結果、seed 20261027
CharRef-LLLite+v2 s20261028
CharRef-LLLiteとRef Adapter v2結果、seed 20261028
CharRef-LLLite+v2 s20261029
CharRef-LLLiteとRef Adapter v2結果、seed 20261029
CharRef-LLLite+pilot s20261027
CharRef-LLLiteとRef Adapter pilot結果、seed 20261027
CharRef-LLLite+pilot s20261028
CharRef-LLLiteとRef Adapter pilot結果、seed 20261028
CharRef-LLLite+pilot s20261029
CharRef-LLLiteとRef Adapter pilot結果、seed 20261029
接続ノード+Role-Ref-KV s20261027
接続ノードでRole-Ref-KVにLLLiteを差し込んだ結果、seed 20261027
接続ノード+Role-Ref-KV s20261028
接続ノードでRole-Ref-KVにLLLiteを差し込んだ結果、seed 20261028
接続ノード+Role-Ref-KV s20261029
接続ノードでRole-Ref-KVにLLLiteを差し込んだ結果、seed 20261029
別名ノード+LLLite s20261027
Role-Ref-KVの別名ノードにLLLiteを当てたモデルを通した結果、seed 20261027
別名ノード+LLLite s20261028
Role-Ref-KVの別名ノードにLLLiteを当てたモデルを通した結果、seed 20261028
別名ノード+LLLite s20261029
Role-Ref-KVの別名ノードにLLLiteを当てたモデルを通した結果、seed 20261029

3つの組み合わせは、3シードともマネキンと同じく膝を立てて腰掛け、手を後ろについた。
別名ノードは3シードとも、マネキンと関係のない座り方だった。
v2の靴は、靴なし、ローファー、白いスニーカーと3シードで毎回変わり、ローファーが出たのは1回だった。
pilotとRole-Ref-KVは3シードともローファーだった。

LLLiteの学習元はBaseなので、Baseでも同じポーズを出した。
v2は30ステップ・cfg 4.5・ref_guidance 4.5、Role-Ref-KVは28ステップ・cfg 4にした。

条件時間結果
CharRef-LLLite+v2403.3秒片膝を上げ、右手を床に。ポーズどおり。ここでも靴がなく黒タイツの足先
接続ノード+Role-Ref-KV261.1秒白い台に腰掛け、片膝を上げ、右手を台に。ポーズどおり。ローファー
CharRef-LLLite+v2 Base
BaseでCharRef-LLLiteとRef Adapter v2を使った結果
接続ノード+Role-Ref-KV Base
Baseで接続ノードとRole-Ref-KVを使った結果

Baseでもv2はローファーが消え、Role-Ref-KVは残った。

プロンプト
masterpiece, best quality, score_7, newest, highres, absurdres, safe, 1girl, solo, full body, sitting, looking at viewer, simple background

生成速度の実測

M1 Max 64GBで、896×1152を1枚出す時間。
v2は参照のkey/valueを1回だけ計算し、1ステップのモデル呼び出しは、cfg 1.0・ref_guidance 1.0なら1回、cfg 1.0・ref_guidance 4.5なら2回、cfg 4.5・ref_guidance 4.5なら3回になる。
Role-Ref-KVはcfg 1でも参照なしのネガティブ側を毎ステップ計算するので、常に2回だ。
pilotの列は前回の記事の値で、Turbo系のref_guidance 1.0も1ステップ2回だった。

条件ステップv2Role-Ref-KVpilot(前回)
Basev2 30、Role-Ref-KV 28476.2〜480.0秒297.5〜300.8秒約772秒
Aesthetic v1.1v2 30、Role-Ref-KV 28478.5〜482.1秒297.5秒約771秒
2.9B(付け替えあり)v2 30、Role-Ref-KV 28673.5〜675.5秒422.1〜422.2秒約1,085〜1,095秒
Turbo系3条件、ref_guidance 1.0856.3〜60.3秒92.4〜92.5秒174.7〜182.8秒
Turbo系3条件、ref_guidance 4.5890.5〜92.5秒—約209〜219秒
2.9B非公式Turbo、ref_guidance 1.0880.5〜82.4秒128.7〜130.7秒245.1〜255.1秒
2.9B非公式Turbo、ref_guidance 4.58124.6秒—約293〜301秒

Turbo系の3条件はTurbo v1.1、Turbo v1.0、Base+Turbo LoRA。
Role-Ref-KVにはref_guidanceがないので、Turbo系の行はcfg 1の値を入れた。
前回、参照なしで出した時間はBaseが262.7秒、Turbo系が約38〜40秒だった。

v2はpilotから、Baseで約1.6倍、Turbo系のref_guidance 1.0で約3倍速くなった。
pilotの列は別の日の計測なので、Turbo v1.1・ref_guidance 1.0の走る場面だけ、同じ日にpilot、v2、pilotの順で続けて出し直した。
pilotは184.5秒と178.5秒、v2は56.2秒で、同じ日に並べても約3倍だった。
Turbo v1.1でv2を回すと約1分で、参照なしとの差は約20秒だった。
Role-Ref-KVは推奨設定どうしの比較ではv2より速く、Baseで約5分だった。
Turbo系では、cfg 1でもモデル呼び出しが2回になる分、v2のref_guidance 1.0より遅い。

使い分け

用途選ぶもの
Turbo系で速く出すRef Adapter v2、cfg 1.0・ref_guidance 1.0
Base・Aestheticの推奨設定で出す速さはRole-Ref-KV。髪色や髪型、服が参照から変わるシードがあり、参照どおりに出る率はv2のほうが高かった
ComfyUIの標準サンプラーや他のLoRA・ノードと組み合わせるRef Adapter v2。Role-Ref-KVの純正ノードはパッチ済みのモデルを受け付けない
2.9B系どちらも40ブロック向けの付け替えが要る。Role-Ref-KVはノードのチェックも外す必要がある
3Dポーズと組み合わせるCharRef-LLLite+v2かpilot。v2は靴が参照から変わることがあった。Role-Ref-KVは配布ノードのままでは組み合わせられない

参考リンク