Base専用のAnima Ref AdapterをTurbo・Aesthetic・2.9Bで試す
目次

キャラの参照画像を1枚指定すると、髪・目・服はその絵から取り、ポーズ・背景・構図はプロンプトに従わせる、というAnima用のアダプターがGitHubに上がっていた。
ComfyUI-Anima-Ref-Adapterというリポジトリだ。
Animaはアニメ風イラストに特化した画像生成モデルで、公式のBase(基本モデル)のほか、Turbo(高速版)やAesthetic(画風調整版)、層拡張版のAnima-2.9Bなどの派生がある。
このAnimaでは構図を変えるのにずっと困っている。
以前のWAI-Anima v1をRTX 4060 LaptopのComfyUIで動かした記事では、立ち絵をi2iに通して走るシーンを指定しても棒立ちのままで、キャラを保って構図を変えるにはControlNetかLoRAがいると書いた。
参照画像1枚で構図が変わるなら、キャラLoRAを学習していないキャラでも別の場面に出せる。
READMEの推奨設定には「Anima base v1.0、Turbo LoRAなし(アダプターはBaseで学習した)」とある。
手元ではAnima公式のTurbo v1.1・Aesthetic v1.1と、40ブロックに層を増やしたAnima-2.9Bの派生を試していて、Base以外のモデルがそろっている。
ならばBase以外では本当に動かないのか。
M1 Max 64GBのComfyUIで、公式設定の再現から始めて、モデルを替えながら当ててみた。
Anima Ref Adapterの概要
| 項目 | 内容 |
|---|---|
| 作者 | ElectronGirl |
| 公開 | 2026年10月27日(GitHubの初回コミット、Hugging Faceの重みも同日) |
| 中身 | ComfyUIのカスタムノード3個と、rank 32のLoRA(4,590万パラメーター、91,853,888バイト) |
| 学習 | 300キャラ、2,000ステップのパイロット版。Anima Base v1.0で学習 |
| ライセンス | ノードはApache-2.0、重みはCircleStone Non-Commercial License |
| 入手先 | GitHub、Hugging Face |
仕組みはREADMEと技術レポートに書かれている。
参照画像はVAEで潜在表現にして、生成中の画像とは別の2枚目のフレームとしてモデルに入れる。
このフレームはノイズを加えないきれいな状態(timestep 0)のまま送る。
画像内の位置を表す座標(RoPE)は、縦方向に出力画像1枚分ずらしてある。
ずらさないと参照のピクセルと出力のピクセルが同じ位置として扱われ、参照のポーズがそのまま写る。
このフレームを処理する役割をLoRAが学習しており、参照をつないだときだけ有効になる。
付属するカスタムノードは次の3個。
| ノード | 役割 |
|---|---|
| Anima Ref Adapter Loader | AnimaのモデルにアダプターのLoRAを付ける |
| Anima Ref Latent | 参照画像を出力サイズに白帯で収めてVAEで潜在表現にする |
| Anima Ref Guider | テキストの強さ cfg と参照の強さ ref_guidance を別々に効かせてサンプラーに渡す |
READMEの推奨設定。
| 項目 | 推奨 | READMEの補足 |
|---|---|---|
| ベースモデル | Anima base v1.0 | Turbo LoRAなし。アダプターはBaseで学習した |
| 計算精度 | bf16(ModelComputeDtype) | Animaはfp16だとあふれる |
| サンプラー | Euler、28〜30ステップ、simple | |
cfg | 4.5 | テキストの強さ |
ref_guidance | 4.5〜6 | 1は弱いが軽い。上げるとキャラの細部と画風が強く出て、彩度も上がる |
correction | apg | または rescale(phi 0.5) |
| プロンプト | 品質タグ+性別+solo+場面のタグ | キャラ名・絵師タグ・見た目のタグは書かない |
プロンプトにキャラの見た目を書かないのが特徴で、髪や服は参照画像のほうから取る。
検証環境
| 項目 | 内容 |
|---|---|
| マシン | MacBook Pro M1 Max 64GB(MPS) |
| UI | ComfyUI v0.33.3 |
| アダプター | ノードは2026年10月27日のコミット af9a438、重みは anima_ref_adapter_pilot_r32.safetensors |
| 解像度 | 896×1152(公式ワークフローの既定) |
| サンプラー / スケジューラー | euler / simple |
| シード | 20261027(シード比較の節だけ20261028・20261029を追加) |
| 補正 | APG(過剰な効き目を抑える適応型ガイダンス補正) |
| 参照画像 | 作者の作例 ref_girl.jpg、かなちゃんの立ち絵(Turbo v1.1とAesthetic v1.1の比較記事でBase+かな・けいLoRAで出した全身) |
当てたモデルは8条件。
| ラベル | モデル | ステップ / cfg | アダプター |
|---|---|---|---|
| Base | anima-base-v1.0 | 30 / 4.5 | そのまま |
| Aesthetic v1.1 | anima-aesthetic-v1.1 | 30 / 4.5 | そのまま |
| 2.9B(付け替えあり) | Anima-2.9B-preview-v1 | 30 / 4.5 | 40ブロック向けに付け替え |
| 2.9B(付け替えなし) | Anima-2.9B-preview-v1 | 30 / 4.5 | そのまま |
| Turbo v1.1 | anima-turbo-v1.1 | 8 / 1.0 | そのまま |
| Turbo v1.0 | anima-turbo-v1.0 | 8 / 1.0 | そのまま |
| Base+Turbo LoRA | anima-base-v1.0+anima-turbo-lora-v0.1(1.0) | 8 / 1.0 | そのまま(Turbo LoRAはアダプターより前に入れる) |
| 2.9B非公式Turbo | anima29b-p1-turbo1.1(Langzaigg) | 8 / 1.0 | 40ブロック向けに付け替え |
Anima-2.9Bは、元の28ブロックの間に12ブロックを差し込んで40ブロックにしたモデルだ。
アダプターのLoRAは blocks.0〜blocks.27 という名前でブロックに当たるので、2.9Bにそのまま読ませると、名前の一致する先頭28ブロックへずれて適用される。
エラーは出ないが正常に機能しないため、以前のAnima-2.9BにキャラLoRAを当てた記事と同じスクリプトで、挿入位置 [2, 5, 8, 11, 14, 17, 21, 24, 27, 30, 33, 36] を避けるようにブロック番号を振り直したLoRAを作り、付け替えありの条件に使った。
2.9B非公式Turboは、2.9BとTurbo v1.1に共通するブロックを0.8×Turbo v1.1+0.2×2.9Bで混ぜ、2.9Bで増えた12ブロックはそのまま残した非公式のマージモデルで、構造は2.9Bと同じ40ブロックになる。
LoRAローダーを2段重ねにする際は、キャラLoRAを先に、Ref Adapterを後に適用した。ベースモデルの重みにキャラ特徴を乗せた上で参照画像のアダプターを重ねる構成だ。
作者推奨は euler + sgm_uniform だが、今回は条件をそろえるため全条件を euler / simple に統一した。
公式設定のまま動かしてみる
まず作者の作例と同じ参照画像・同じプロンプトをBaseで出した。
作例にはPAG(Perturbed-Attention Guidance、注目機構を乱して品質を整える補正)と補助LoRAが入っているが、素の動作を見るため外した。
1回目はサンプラーで止まった。
Cannot convert a MPS Tensor to float64 dtype as the MPS framework doesn't support float64.
APG補正の計算が .double() で倍精度に変換していて、MacのMPSは倍精度を扱えない。
CUDA環境ならそのまま動くはずだが、Mac環境では導入したノードの2行を単精度に変えて回した。
update = (guided - pos).float() # 元は .double()
unit = F.normalize(pos.float().flatten(1), dim=1).view_as(pos) # 元は pos.double()
2回目は785.8秒で出た。

髪色やメッシュ、衣装の特徴が参照画像から引き継がれている。
カフェでフォークを持ってケーキを食べる構図は、作者の作例 girl_cake.jpg とほぼ同じになった。
プロンプト
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に推奨設定で当ててみる
参照をかなちゃんの立ち絵に替え、30ステップ・cfg 4.5・ref_guidance 4.5で2つの場面を出した。
走る場面は、以前の比較記事で使った動的シーンのプロンプトから場面指定の部分を使った。
| 条件 | 走る場面 | ケーキの場面 |
|---|---|---|
| Base | 後ろ姿で城へ走る。アホ毛、青いシュシュ、白シャツ、グレーのスカート、黒タイツ | 赤いソファ席でケーキ。参照の髪型・服どおり |
| Aesthetic v1.1 | Baseとほぼ同じ構図の後ろ姿 | 参照どおり、場面どおり |
| 2.9B(付け替えあり) | 正面向きで走る全身。サイドポニー、赤ネクタイ、タイツ。人物の輪郭に白い縁取り | 参照どおり、場面どおり |
| 2.9B(付け替えなし) | 画面全体が暗い茶色で、人物はシルエット | 暗い画面に黒髪ボブの別人 |








参照は正面の棒立ちなので、走る場面でもケーキの場面でも構図はプロンプトの指定どおりになっている。
Aesthetic v1.1はBaseから追加学習した版で、アダプターはそのまま動いた。
2.9Bはブロックを付け替えると正常に出て、外すと崩れた。
同じ2.9Bで参照なしの走る場面を2回出すと、2枚は同じ画像になったので、2条件の差はアダプターの適用ブロックの差だけで生じている。
参照なしだと、どのモデルでも別人の少女が草原を走る画像になった。

プロンプト
走る場面
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条件は、Turboの通常設定の8ステップ・cfg 1.0にして、ref_guidanceはREADMEの推奨値4.5のまま出した。
| 条件 | ケーキの場面 |
|---|---|
| Turbo v1.1 | 正面立ち絵の2×2の4コマ。シャツが水色、ネクタイが黒に変わる |
| Turbo v1.0 | 崩壊。オレンジの物体と横顔、漫画のコマと文字 |
| Base+Turbo LoRA | 2×2の4コマ、カップを持つ |
| 2.9B非公式Turbo | 2×2の4コマ |




ケーキの場面だけでなく走る場面でも同様で、指定した場面は反映されなかった。
アホ毛やシュシュ、ネクタイといったキャラの特徴は残っているが、参照の正面立ちのポーズごと出ている。
アダプターが座標をずらして防いでいるはずの参照レイアウトのコピーが、4コマに分割された形で出た。
推奨設定のままでは、READMEにある「Turboは非対応」どおりの結果になった。
設定を入れ替えて原因を切り分ける
重みの影響か設定の影響かを確かめるため、BaseをTurboの設定(cfg 1.0、ref_guidance 4.5)で、Turbo v1.1をBaseの設定(cfg 3.5、ref_guidance 1.6)で出してみた。
場面はケーキで揃えた。
| 条件 | 時間 | 結果 |
|---|---|---|
| Base 8ステップ cfg 1.0 ref_guidance 4.5 | 212.9秒 | 崩壊。白飛びした4コマと文字列 |
| Base 30ステップ cfg 1.0 ref_guidance 4.5 | 769.4秒 | 崩壊。2コマと胸元の拡大コマ、文字列 |
| Turbo v1.1 8ステップ cfg 4.5 ref_guidance 4.5 | 214.9秒 | 場面どおり。画面中央に青い横帯、シャツにグレーのベスト |
| Turbo v1.1 30ステップ cfg 4.5 ref_guidance 4.5 | 769.2秒 | 場面どおり、参照どおり |
| Turbo v1.1 8ステップ cfg 1.0 ref_guidance 1.0 | 174.8秒 | 場面どおり、参照どおり |
| Turbo v1.1 8ステップ cfg 2.5 ref_guidance 2.5 | 208.9秒 | 場面どおり、参照どおり |






Baseでも cfg 1.0と ref_guidance 4.5を併用すると、30ステップでも画像が破綻した。
逆にTurbo v1.1は cfg を上げるか、ref_guidance を下げれば場面どおりに出た。
Turbo系が崩れたのは、重み自体の問題ではなく設定の組み合わせが原因だった。
ノード内の計算式を見ると、1ステップごとに参照ありの正プロンプト(pos)、参照ありのネガティブ(neg)、参照なしのネガティブ(base)の3通りを計算し、次のように合成している。
guided = base + ref_guidance × (neg − base) + cfg × (pos − neg)
neg − base が参照による差、pos − neg がプロンプトによる差だ。
cfg 4.5・ref_guidance 4.5なら、参照の差とプロンプトの差がどちらも4.5倍になる。
cfg 1.0・ref_guidance 4.5だと、プロンプトの差は1倍のまま、参照の差だけが4.5倍に増幅される。
参照の影響だけが強くなり、参照画像のレイアウトに引っ張られたのだと思う。
ref_guidance 1.0のときは pos と neg の両方に参照が含まれるため、base の計算を省いて通常のCFGと同じ挙動になる。
1ステップの推論が3回から2回に減るため生成も速い。
さらに cfg 1.0なら式は guided = pos になり、ネガティブプロンプトは結果に反映されなくなる。
Turbo系をcfg 1.0・ref_guidance 1.0で出し直してみる
Turbo系4条件を8ステップ・cfg 1.0・ref_guidance 1.0で出し直すと、走る場面やケーキの場面、作例の参照のいずれも指定どおりに出た。
ただ、走る場面の頭部を拡大すると、参照では画像右側にあるシュシュ付きのサイドポニーが、条件によって変わっていた。
シード1つでは偶然の変動と区別できないため、走る場面でシードを2つ追加した。
推奨設定で出したBaseと2.9B(付け替えあり)も同じシードで揃えている。
| 条件 | シード 20261027 | シード 20261028 | シード 20261029 |
|---|---|---|---|
| Turbo v1.1 | 画像左側にシュシュが出た | 画像右側にサイドポニー | 画像右側にサイドポニー |
| Turbo v1.0 | シュシュ2個のツインテール | 画像右側にサイドポニー | 画像右側にサイドポニー |
| Base+Turbo LoRA | シュシュ2個のツインテール | 画像右側にサイドポニー | 画像右側にサイドポニー |
| 2.9B非公式Turbo | 画像右側にサイドポニー | 画像右側にサイドポニー | 画像右側にサイドポニー |
| Base(推奨設定) | 後ろ姿 | 後ろ姿。サイドポニーは後ろから見えない | 正面向き、画像右側にサイドポニー |
| 2.9B 付け替えあり(推奨設定) | 画像右側にサイドポニー | 画像右側にサイドポニー | 画像右側にサイドポニー |


















髪型が変わったのはシード20261027だけで、追加した2つのシードでは4条件とも参照どおりのサイドポニーになった。
今回の3つのシードでは、崩れたのは1つだけで、Turboの重みで常に崩れるわけではなかった。
Baseは3シード中2回が後ろ姿で、ほかの条件はすべて正面向きだった。
後ろ姿だとサイドポニーが隠れ、参照どおりか確認できなかった。
cfg 1.0でref_guidanceを振ってみる
READMEには ref_guidance を上げるとキャラの細部が強く出るとある。
Turbo v1.1を cfg 1.0のまま、ref_guidance を1.0から4.5まで少しずつ上げてケーキの場面を出した。
1.0は原因切り分けの節、4.5は前節と同じ画像をもう一度載せている。
| ref_guidance | 時間 | 結果 |
|---|---|---|
| 1.0 | 174.8秒 | 場面どおり、参照どおり |
| 1.5 | 208.9秒 | 場面どおり。頬杖でケーキ、コーヒー2杯。シュシュが青い玉3個の髪飾りに変わる |
| 2.0 | 208.9秒 | 場面どおり、参照どおり |
| 3.0 | 208.9秒 | 2×2の4コマ、窓際で正面立ち。ケーキは出ない |
| 4.5 | 約209〜219秒 | 2×2の4コマ |





cfg 1.0では2.0までは場面どおりに出て、3.0で4コマになった。
1.0と2.0の間で、細部の出方に明確な差は見当たらなかった。
寝そべり・俯瞰構図を試す
走る場面もケーキの場面も、人物が画面の中で縦に立っているか座っているポーズだった。
立ち絵から一番離れたポーズとして、草むらに仰向けで寝そべる構図を真上から出してみた。
| 条件 | 時間 | 結果 |
|---|---|---|
| Turbo v1.1(cfg 1.0・ref_guidance 1.0) | 174.8秒 | 白い花の草地で仰向け、真上から。アホ毛、画像右側のサイドポニー、赤ネクタイ、タイツ。靴は下端で見切れる |
| Turbo v1.1(参照なし) | 38.2秒 | 黒髪ロングの別人。頭が下で、白いワンピース |
| Base(推奨設定) | 773.4秒 | 黄色い花の草地で仰向け、膝を立てる。ローファーまで全身、参照どおり |



正面の立ち絵1枚から、キャラを保ったまま仰向け・俯瞰に変わった。
以前の記事の画像変換(i2i)では、立ち絵の構図から変えられなかった。
こちらは参照のピクセルを下敷きにしないため、構図はプロンプトどおりに出た。
プロンプト
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
生成速度の実測
M1 Max 64GBで、896×1152を1枚出す時間。
参照フレームの分だけモデルに入力する系列長が2倍になり、ref_guidance が1.0以外なら1ステップの推論も3回になる。
| 条件 | ステップ | 1ステップの推論 | 参照あり | 参照なし |
|---|---|---|---|---|
| Base | 30 | 3回 | 約772秒 | 262.7秒 |
| Aesthetic v1.1 | 30 | 3回 | 約771秒 | 259.2秒 |
| 2.9B(付け替えあり・なし) | 30 | 3回 | 約1,085〜1,095秒 | 約370秒 |
| Turbo系3条件、ref_guidance 4.5 | 8 | 3回 | 約209〜219秒 | 約38〜40秒 |
| Turbo系3条件、ref_guidance 1.0 | 8 | 2回 | 174.7〜182.8秒 | 約38〜40秒 |
| 2.9B非公式Turbo、ref_guidance 4.5 | 8 | 3回 | 約293〜301秒 | 54.3秒 |
| 2.9B非公式Turbo、ref_guidance 1.0 | 8 | 2回 | 245.1〜255.1秒 | 54.3秒 |
Turbo系の3条件はTurbo v1.1、Turbo v1.0、Base+Turbo LoRA。
参照なしの列はアダプターを外して同じステップ・cfg で出した時間で、参照ありの列とは1ステップの推論回数も違う。
Turbo系を ref_guidance 1.0で回すと約3分で、READMEどおりのBaseの約13分より4倍以上速かった。
参考リンク
- ComfyUI-Anima-Ref-Adapter(GitHub)
- 技術レポート
- anima-ref-adapter(Hugging Face)
- Anima(Hugging Face)
- Anima-2.9B(Hugging Face)
- anima29b-turbo-unofficial(Hugging Face)
- WAI-Anima v1をRTX 4060 LaptopのComfyUIでAPI経由で動かすまでの記録
- Anima公式のTurbo v1.1とAesthetic v1.1をM1 Maxで試す、Base学習のキャラLoRAは使えるか
- 層拡張で40層になったAnima-2.9Bに既存のキャラLoRAはそのまま乗るのか