Anima-RGBAで透過PNGを直接出せるか試してみた
目次

11月2日に、Hugging FaceへAnima-RGBAというモデルが上がっていた。
画像生成モデルのAnimaで、背景が透明なPNG(RGBA画像)を直接出すためのVAEとLoRAの組み合わせだ。
透過素材を作るには白背景で出力してから背景除去ツールで切り抜くのが普通だが、生成の段階でアルファ(透明度)まで出るなら切り抜きの工程がいらなくなる。
ただ、モデルカードの作例は人物と食べ物の切り抜きだけだった。
ここでいう透過には、背景を抜く「切り抜き透過」と、ガラスや湯気のように素材自体が半透明になる「中間アルファの透過」の2種類がある。
前者の切り抜き素材なら背景除去ツールの代わりになるが、絵の中で透けて見える素材までアルファとして出るのか。
手元のM1 Max 64GBで、要素ごとにプロンプトを変えて出力し、アルファの値を調べた。
Anima-RGBAの基本情報
| 項目 | 内容 |
|---|---|
| 配布 | localai0301/Anima-RGBA |
| 公開日 | 2026年11月2日 |
| ライセンス | Apache-2.0 |
| ベース | circlestone-labs/Anima |
| VAE | vae/anima_rgba_vae.safetensors(508MB) |
| LoRA | loras/anima_rgba_lora.safetensors(184MB) |
| 今回使ったリビジョン | 493fbdecc6f926de89542d444d8a07cdcc31809c |
VAEとLoRAの役割
VAEは、拡散モデルが作った潜在表現(画像を圧縮した中間データ)をピクセルの画像に戻すもので、AnimaはQwen-ImageのVAEを使っている。
元のVAEはRGBの3チャンネルしか出さないが、Anima-RGBAのVAEはこれを4チャンネルに広げてアルファも出すようにしたものだ。
潜在表現の形は元と同じ16チャンネル・1/8サイズなので、Anima本体はそのまま使える。
モデルカードによると、学習では透明な部分を白に合成したRGBとアルファをエンコーダーに入れている。
Animaは transparent background と書くと白背景の絵を描くので、それに近い潜在表現になるようにした、という説明だ。
ただ、素のAnimaが作る潜在表現は、このVAEが想定しているデータと少しずれている。
LoRAはそのずれを補正するためで、RGBA VAEで作った潜在表現を使い、AnimaのDiT部分だけを追加学習させている。
ランクは32で、学習は25,000ステップ回されている。
使い方とモデルカードに書かれている限界
既存のAnimaのComfyUIワークフローで変更する点は3つで、カスタムノードはいらないと書かれている。
| 変更点 | 内容 |
|---|---|
| VAE | Load VAE で anima_rgba_vae.safetensors を選ぶ |
| LoRA | 通常のLoRAローダーで anima_rgba_lora.safetensors を強度1.0で適用する |
| トリガー | プロンプトに transparent background(または isolated on a transparent background)を入れる |
背景が抜けないときは、LoRAの強度ではなくトリガーの重みを (transparent background:1.3) のように上げる、とある。
LoRA強度を1.5にすると、被写体の周りに半透明のゴミが出るそうだ。
モデルカードには、次の限界も書かれている。
| 限界 | 内容 |
|---|---|
| 細かい半透明 | VAEは512pxのクロップで学習している。髪の細い毛束、ガラス、煙などの細かい半透明が一番弱い |
| アルファの値 | 生成されるアルファはほぼ0か1の2値になる。シースルーの服はたいてい不透明になる |
| 顔のアップ | 画面いっぱいのクローズアップでは、白背景が残ることがある。ほかのLoRAを重ねると頻度が上がる |
作者のテストでは、8プロンプト×2シードの16枚がLoRAなしでも背景が透明になっていた。
ただし半透明の画素の割合は、LoRAなしで12.8%、LoRA 1.0で0.9%だった。
半透明の画素が少ないほど、切り抜き用途では白黒がはっきりしたきれいな素材になる。
ファインチューン版のAnimaにTurbo LoRA 0.8と画風LoRAを重ねた12ステップの構成でも、16枚とも透明になり、半透明の画素は3.5%だった。
検証環境
| 項目 | 内容 |
|---|---|
| マシン | M1 Max 64GB(MPS) |
| UI | ComfyUI v0.30.1(--bf16-vae --bf16-unet)、カスタムノードなし |
| 基準モデル | anima-base-v1.0.safetensors |
| テキストエンコーダー | qwen_3_06b_base.safetensors |
| VAE | anima_rgba_vae.safetensors(比較用に元の qwen_image_vae.safetensors) |
| LoRA | anima_rgba_lora.safetensors 1.0 |
| キャラLoRA | keikana-animabase-v2_epoch140.safetensors 1.0(かなちゃん・けいちゃん) |
| Turbo LoRA | anima-turbo-lora-v0.1.safetensors 1.0 |
共通の生成条件は、モデルカードの作例に合わせた。
| 項目 | 値 |
|---|---|
| 解像度 | 1024×1024(キャラLoRAの節だけ832×1216と1216×832) |
| ステップ・CFG | 30ステップ、CFG 4.5(Turboの条件だけ8ステップ、CFG 1.0) |
| サンプラー・スケジューラー | er_sde / simple |
| プロンプトの先頭 | masterpiece, best quality, newest, safe, |
| ネガティブ | worst quality, low quality, score_1, score_2, score_3, blurry, jpeg artifacts |
手元のComfyUI v0.30.1では、Qwen-ImageのVAEは comfy/sd.py の「Wan 2.1 VAE」の分岐で読み込まれる。
この分岐は、画像のチャンネル数をエンコーダーの最初の畳み込み(encoder.conv1)の重みの形から、デコーダーの出力チャンネル数を最後の層(decoder.head.2)の重みの形から判定している。
元のQwen-Image VAEはどちらも3チャンネルで、Anima-RGBAのVAEはどちらも4チャンネルになっていた。
実際に4チャンネルのVAEをそのまま読み込み、VAE Decode から Save Image へつなぐだけで、RGBAのPNGが保存された。
画像と数値の見方
この記事の画像は、出力したPNGを3通りに並べている。
| 並び | 表示内容 |
|---|---|
| 左 | 市松模様の上に重ねた絵。市松が見える部分が透明 |
| 中(一部の節だけ) | 黒の上に重ねた絵。輪郭のにじみや、半透明になった服がわかりやすい |
| 右 | アルファだけを白黒で表示したもの。白が不透明、黒が透明、灰色が半透明 |
数値は、PNGのアルファを0〜1にして画素の割合を数えた。
| 指標 | 計算方法 |
|---|---|
| α<0.5 | 半分以上透けている画素の割合。ほぼ背景が抜けた面積 |
| 不透明 | α≥0.98の画素の割合 |
| 半透明率 | 0.06<α<0.94の画素の割合。モデルカードの「semi-transparent pixels」と同じ範囲 |
モデルカードの作例をそのまま回してみた
最初に、モデルカードの作例のうち騎士(シード202)とショートケーキ(シード101)を同じ条件で出力した。
騎士は、VAEとLoRAの組み合わせを変えた比較にも使ってみた。
元のVAEとRGBA VAEのみの2枚は、同じモデル・同じシードで出した潜在表現を、VAEだけ差し替えてデコードしたものだ。
| 条件 | 出力 | α<0.5 | 半透明率 | 画像で確認したこと |
|---|---|---|---|---|
| 騎士、元のVAE(LoRAなし) | RGB | 0% | 0% | 白背景の不透明な画像。アルファはない |
| 騎士、RGBA VAEのみ(LoRAなし) | RGBA | 76.1% | 7.3% | 白背景は透明になった。人物の周りに白いにじみの輪が残り、黒に重ねると縁が白く光る。外套の内側や鎧のすき間も半透明 |
| 騎士、RGBA VAE+LoRA | RGBA | 67.7% | 0.6% | 縁のにじみがなくなり、アルファはほぼ0か1。脚の間、剣と腕のすき間も透明 |
| 騎士、RGBA VAE+LoRA、トリガーなし | RGBA | 62.4% | 1.0% | transparent background を抜いても背景は抜けた。足元の影が白い不透明な帯として残り、周りに花びらのような小片が散った |
| ショートケーキ、RGBA VAE+LoRA | RGBA | 47.0% | 0.4% | ケーキの外側の輪郭できれいに切り抜かれた |





LoRAなしのにじみは、モデルカードの「LoRAなしではアルファがかすむ」という説明どおりだった。
トリガーを抜いた1枚でも背景は抜けた。
同じシードと条件で出したものの、騎士もショートケーキも、モデルカードに載っている作例とは別の絵になった。
モデルカードの騎士は青い外套だが、手元のM1 Maxでは金の鎧に赤い外套になり、配色や構図が変わっていた。
プロンプト
騎士(シード202)
masterpiece, best quality, newest, safe, 1boy, solo, transparent background, armor, holding sword, cape, full body, fighting stance
騎士、トリガーなし(シード202)
masterpiece, best quality, newest, safe, 1boy, solo, armor, holding sword, cape, full body, fighting stance
ショートケーキ(シード101)
masterpiece, best quality, newest, safe, no humans, transparent background, food, strawberry shortcake, fruit, still life
要素ごとに何が透けるか
透過素材で気になる11の要素を選び、それぞれプロンプトに入れて出力した。
条件はRGBA VAE+LoRA 1.0、トリガーの重み1.0で、シード101と202の2枚ずつ出した。
表の数値は「シード101 → シード202」の順に書いている。
| 要素 | α<0.5 | 不透明 | 半透明率 | 画像で確認したこと |
|---|---|---|---|---|
| 髪の毛先 | 57.3%→66.2% | 41.9%→33.2% | 1.4%→1.1% | 広がった毛束の間は透明に抜けた。細い束まで不透明で、毛先が半透明になる部分はなかった。白いワンピースも不透明 |
| 囲まれたすき間 | 84.1%→82.7% | 15.6%→17.0% | 0.5%→0.5% | 開いた脚の間は2枚とも透明。腕と胴の間は、シード101では透明に抜け、シード202では腕が胴に寄っていてすき間がほとんどない |
| ガラス | 78.5%→80.6% | 21.3%→19.2% | 0.3%→0.3% | 2枚ともワイングラスは出なくて、ボトル1本になった。中身より上の透明なガラス部分も含めて、ボトル全体が不透明 |
| 湯気 | 66.5%→69.9% | 33.3%→29.8% | 0.4%→0.4% | 湯気はくっきりした白い塊として描かれ、不透明。シード101ではソーサーの下の灰色の影も不透明のまま残った |
| 炎・魔法 | 22.1%→39.9% | 77.4%→59.2% | 0.9%→1.5% | 炎は外側の輪郭で切り抜かれ、炎そのものは不透明。炎の切れ目は透明。人物と炎で画面が埋まり、下端は画面の縁で見切れている |
| 透けた布 | 58.2%→67.8% | 41.5%→29.0% | 0.5%→3.1% | ベール越しに髪や脚が見える絵になったが、シード101ではアルファはベールの外側の輪郭まで不透明。シード202だけ、ベールの外側が半透明になった |
| 羽 | 70.9%→69.2% | 28.3%→30.0% | 1.3%→1.3% | 2枚とも蝶のような羽で、羽越しに体が見える描き方だが、アルファは羽全体が不透明。周りのきらめきや小さな蝶は1つずつ切り抜かれた |
| 水しぶき・泡 | 53.9%→65.5% | 44.6%→33.3% | 2.5%→2.0% | しぶきと泡は不透明な粒として1つずつ切り抜かれ、粒の間は透明。水そのものは透けなかった |
| 幽霊 | 59.1%→63.7% | 40.0%→35.6% | 1.5%→1.2% | 体は半透明にならず、不透明な人物として描かれた。周りの青い鬼火は1つずつ切り抜かれた |
| 影 | 81.3%→83.6% | 18.5%→16.1% | 0.4%→0.4% | シード101は人物の右後ろに青緑のドロップシャドウ、シード202は足元に灰色の楕円の影。どちらも不透明なベタ塗りの影になった |
| 顔のアップ | 24.9%→38.1% | 74.9%→61.2% | 0.4%→1.1% | シード101は顔が丸い枠に入り、枠の外だけが透明になった。シード202は髪の輪郭で切り抜かれ、頭のてっぺんと肩が画面の縁で見切れている |
シード101

シード202

シード101

シード202

シード101

シード202

シード101

シード202

シード101

シード202

シード101

シード202

シード101

シード202

シード101

シード202

シード101

シード202

シード101

シード202

シード101

シード202

22枚とも背景は透明になり、白背景が残った出力はなかった。
背景として抜けた毛束の間、脚の間、しぶきの粒の間、炎の切れ目、小物の間は、アルファ0できれいに抜けている。
一方で、絵の中で透けて見えるように描かれたガラス、湯気、羽、幽霊の4要素(8枚)は、いずれも不透明だった。
ガラスのボトルでは、中身より上の透明な部分も白っぽい色で塗られて不透明になっている。
モデルカードの「アルファはほぼ2値で、シースルーの服はたいてい不透明」という説明と同じ結果になった。
影も、ドロップシャドウと足元の楕円のどちらも、不透明なベタ塗りの影として描かれた。
透過PNGを別の背景に重ねると、影は半透明にならず、色の付いた板のようになった。
モデルカードには「アップでは白背景が残ることがある」とあったが、今回の2枚では白背景は残らなかった。
代わりにシード101では、顔を丸いアイコン枠に入れて、枠の外を透明にする絵になった。
炎や顔のアップのように画面いっぱいに描く場合、画面の縁で見切れた絵がそのまま透過される。
手元の出力を見る限り、切り抜き素材にするなら full body などで周りに余白が出る指定にしておくほうが扱いやすそうだ。
プロンプト
すべて masterpiece, best quality, newest, safe, のあとに続けた。
髪の毛先
1girl, solo, transparent background, very long hair, floating hair, wind, white dress, looking at viewer, full body
囲まれたすき間
1girl, solo, transparent background, school uniform, hands on own hips, legs apart, standing, full body
ガラス
no humans, transparent background, wine glass, red wine, glass bottle, still life
湯気
no humans, transparent background, coffee cup, steam, saucer, still life
炎・魔法
1girl, solo, transparent background, witch, casting spell, fire, magic, glowing, upper body
透けた布
1girl, solo, transparent background, see-through dress, sheer fabric, veil, white dress, standing, full body
羽
1girl, solo, transparent background, fairy, fairy wings, insect wings, translucent wings, flying, full body
水しぶき・泡
1girl, solo, transparent background, water splash, bubbles, swimsuit, jumping, full body
幽霊
1girl, solo, transparent background, ghost, transparent body, floating, white kimono, full body
影
1girl, solo, transparent background, standing, shadow, drop shadow, school uniform, full body
顔のアップ
1girl, solo, transparent background, portrait, face focus, close-up, smile, looking at viewer
透けた布(ベール)に出た半透明度
22枚の中で、半透明の画素がまとまって出たのはシード202の透けた布の1枚だけだった。
下の画像は、その出力の画面左側のベール部分を等倍で切り出したもので、左が市松模様に重ねた絵、右がアルファ画像。

| 項目 | 値 |
|---|---|
| 半透明の画素(0.06<α<0.94) | 画像全体の3.1%、1024×1024で約3.2万画素。ほとんどが画面左のベールの範囲にある |
| その画素のアルファ | 中央値204/255、10〜90パーセンタイルで160〜232 |
| 不透明度に直すと | 約6〜9割 |
市松模様に重ねると、ベール越しに市松がかすかに見える。
とはいえ不透明度は6割以上あり、ベールとしてはっきり透けているわけではない。
同じプロンプトのシード101では出なかった。
トリガーの重みを1.3に上げてみた
モデルカードには、背景が残るときはトリガーの重みを上げる、とあった。
今回は背景が残った出力がなかったので、代わりに不透明だった透けた布と炎で、重みを1.3にして出し直してみた。
プロンプトの transparent background を (transparent background:1.3) に変えただけで、ほかはシード101と同じ条件だ。
| 条件 | α<0.5 | 不透明 | 半透明率 | 画像で確認したこと |
|---|---|---|---|---|
| 透けた布、トリガー1.3 | 57.9% | 41.8% | 0.5% | 重み1.0のシード101とほぼ同じ絵。ベールは外側の輪郭まで不透明のまま |
| 炎・魔法、トリガー1.3 | 23.6% | 75.8% | 1.0% | 炎の形は変わったが、炎は不透明のまま。下端は画面の縁で見切れている |


トリガーの重みを上げても、透けて描かれた部分のアルファは下がらなかった。
空のワイングラス
ガラスでは、ワイングラスを出させるためにプロンプトを変更してみた。
最初の wine glass, red wine, glass bottle ではボトルしか出なかったので、empty wine glass と書いて空のワイングラスだけを指定した。
しかし出てきた画像は依然として赤ワインが入ったままで、グラス全体も不透明のままだった。
| 条件 | α<0.5 | 不透明 | 半透明率 | 画像で確認したこと |
|---|---|---|---|---|
| 空のワイングラス(シード101) | 79.1% | 20.7% | 0.3% | empty と書いても赤ワイン入りのグラスになった。グラスの外側の輪郭まで不透明で、ワインより上のガラス部分は白っぽい色で塗られている |

透明なはずのガラスが白っぽく塗られるのは、VAEの学習で透明な部分を白に合成した色を使っているからだと考えられる。
プロンプトやトリガーの重みを変えても、中身が透ける中間アルファは引き出せなかった。
プロンプト
すべて masterpiece, best quality, newest, safe, のあとに続けた。
透けた布、トリガー1.3
1girl, solo, (transparent background:1.3), see-through dress, sheer fabric, veil, white dress, standing, full body
炎・魔法、トリガー1.3
1girl, solo, (transparent background:1.3), witch, casting spell, fire, magic, glowing, upper body
空のワイングラス
no humans, transparent background, empty wine glass, glass, still life
キャラLoRA・Turbo LoRAと重ねてみた
モデルカードには、ほかのLoRAを重ねると白背景が残りやすくなると書かれていた。
そこで、AMIXA - Async’s MIX ANIMAを比較、base寄りで発色が良いAnima派生などで使ってきた、かなちゃん・けいちゃんのキャラLoRAと併用してみた。
プロンプトはその比較記事のものから white background, simple background を transparent background に置き換え、シード42で2キャラの構図は standing side by side, full body に固定した。
| 条件 | α<0.5 | 不透明 | 半透明率 | 出力の状態 |
|---|---|---|---|---|
| かなちゃん、RGBA LoRAあり(832×1216、30ステップ) | 81.0% | 18.7% | 0.5% | サイドポニー、青いシュシュ、アホ毛が出た。切り抜きは2値で、腕と胴のすき間も透明 |
| かなちゃん、RGBA LoRAなし(VAEのみ、30ステップ) | 78.7% | 11.9% | 12.7% | 白いシャツと肌が半透明になり、黒背景に重ねるとシャツが灰色になる。輪郭の外には白いにじみ |
| かなちゃん、RGBA LoRA+Turbo LoRA(8ステップ) | 78.7% | 20.9% | 0.7% | 8ステップでも2値の切り抜きになった。ネクタイがリボンに変わったほかは特徴が出た |
| 2キャラ、RGBA LoRAあり(1216×832、30ステップ) | 81.8% | 17.8% | 0.6% | 2人とも切り抜かれ、2人の間も透明。右はけいちゃんで、左は黒に近い茶色の長髪 |




キャラLoRAとTurbo LoRAを重ねても、4枚とも背景は抜け、白背景が残る出力はなかった。
RGBA LoRAを抜くと、キャラLoRAを適用していても白い服や肌が半透明になり、VAEの差し替えだけでは切り抜き素材にならなかった。
プロンプト
かなちゃん(3条件とも同じ)
masterpiece, best quality, safe, 1girl, solo, kanachan, brown hair, side ponytail, ahoge, brown eyes, school uniform, full body, standing, looking at viewer, transparent background
2キャラ
masterpiece, best quality, safe, 2girls, multiple girls, kanachan, keichan, standing side by side, full body, looking at viewer, smile, school uniform, transparent background
ネガティブ(この節の4枚で共通)
worst quality, low quality, blurry, lowres, jpeg artifacts, bad hands, bad anatomy, fused fingers, fused legs, fused limbs, extra arms, extra legs, conjoined twins, deformed face
暗い背景に重ねたときの輪郭
白背景で出力した画像を背景除去ツールで切り抜くと、暗い背景に置いたときに輪郭へ白いフチが残ることがある。
Anima-RGBAの出力がどうなるか、紺色(RGB 20, 30, 80)の上にアルファで重ね、髪の輪郭を3倍に拡大した。
対象は、要素ごとの節の髪の毛先(シード101)と、前節のかなちゃん(RGBA LoRAあり)だ。


どちらも輪郭に白いフチは出なかった。
幅1〜2画素の細い毛束やアホ毛の先も途切れないで残り、その間には紺の背景がそのまま見えている。
生成時間
手元のM1 Max 64GBで、キューに入れてから画像を受け取るまでの秒数を測った。
| 条件 | 解像度 | ステップ | 秒 |
|---|---|---|---|
| Anima-Base+RGBA LoRA(要素ごとの22枚) | 1024×1024 | 30 | 264〜265 |
| Anima-Base+キャラLoRA+RGBA LoRA | 832×1216 | 30 | 262 |
| Anima-Base+キャラLoRA+RGBA LoRA+Turbo LoRA | 832×1216 | 8 | 41 |
手元のM1 Maxでは30ステップだと1枚あたり4分半ほどかかり試行錯誤には重いが、Turbo LoRAを重ねて8ステップまで落とすと41秒まで縮む。
切り抜き精度を保ったまま生成時間を大幅に削れるので、実用上はTurbo LoRAとの併用が扱いやすそうだ。