技術 約52分で読めます

Animaでヘアインテーク前髪を出すレシピ、別キャラの特徴を借りて汎用キャラに移植できた結果とその検証過程

いけさん目次

別記事のAnimaのネガティブプロンプト整理で、検証用に「ネガティブで特定の前髪パーツを引き出せるか」を試そうとしたら、その手前で詰まった。
そもそも汎用プロンプトに intakes と書いてもAnimaはインテーク前髪を出してくれない。
本記事はその切り分けと、最終的に名雪由来の大インテークを汎用キャラに移植するレシピが取れるまでのログ。

詰まった経緯

狙ったのはインテーク前髪。
古いアニメ・ギャルゲーでよく見る、前髪の両脇から前方に湾曲して跳ねる左右一対の毛束。
Danbooru Wikiの hair intakes はこう定義する。

A hair style that creates twin forward-facing scoops between other hair strands. Might become hair ears when intensified.

When the forward-facing scoops originate from the scalp near hairline and not between other hair strands, use curtained hair instead of hair_intakes.

「他の毛束との間に出現する、左右一対の前方向きスクープ」。
Wikiはさらに2つの代替タグを示している。
強調された場合は hair ears、スクープが生え際から直接生えていて他の毛束との間ではなく頭皮側から始まる場合は curtained hair
タグの境界はこの3つで切られていて、Animaの訓練データもそれに沿って分類されている可能性が高い。

Key『Kanon』の水瀬名雪が hair intakes の典型例で、前髪正面ぱっつんに加えて両脇に独立した湾曲毛束が乗る。

条件A: 「手元の開始値」をそのまま回す

ポジティブはこれ。

masterpiece, best quality, score_7, safe,
A girl with long, straight blonde hair and blue eyes. She appears to be in her late teens to early twenties; she is slender but has a slightly larger bust. The back of her hair is pulled up into a half-up braid tied with a blue ribbon. Her hair is long bangs sidelocks and intakes and blunt bangs.

ネガティブは 元記事の「手元の開始値」 をそのまま。
use_speed_lora: true でAnima Turbo LoRA経由、4枚生成。

条件Aの1枚目。完全な側面プロファイル、ハーフアップブレイド+青リボン+ぱっつん前髪+金髪 条件Aの2枚目。背景に薄い青いヘイロー風光輪が出ている 条件Aの3枚目。同じく側面プロファイル、紺ベスト 条件Aの4枚目。同じく側面プロファイル、白シャツ

4枚とも完全な側面プロファイルに振れた。
ハーフアップブレイド・青リボン・ぱっつん前髪・金髪は全部出ている。
ただしこの組み合わせはブルアカ系キャラの定型ビジュアルそのもので、2枚目には背景に薄い青いヘイロー風光輪まで出ている。
そして顔が完全に横向きなので、そもそもインテークが見える角度になっていない。

横顔に振れた理由は推測できる。
プロンプトに「後ろ髪はハーフアップブレイド + 青リボン」という背中側の情報が入っているので、Animaが前面要素と背面要素を両方画面に入れようとして構図を回転させた可能性がある。

条件A2: 3/4 view を強制

正面を見せればインテークの有無を判定できる、という発想で、構図を3/4 viewに固定する。
ポジティブの先頭に three quarters view, upper body, を追加するだけ。残りはAと同じ。

条件A2の1枚目。3/4 viewになり、青リボンと顔が両方画面に入る 条件A2の2枚目。同じく3/4 view、背景に薄いヘイロー風光輪 条件A2の3枚目。3/4 view、紺ブレザー風衣装 条件A2の4枚目。3/4 view、白シャツ

カメラ角度は3/4寄りに振れて、後ろのリボンと顔の両方が画面に入るようになった。
青リボン・ぱっつん前髪・金髪も維持されている。
ただし前髪の左右から下りる髪束は、Wikiの定義する「前方湾曲のスクープ」ではなく、ストレートに肩まで落ちるただのサイドロックになっている。
プロンプトに intakes と書いた効果が画面要素として発火していない。

ここで一度立ち止まる。
そもそもAnimaは hair intakes という概念を学習しているのか。
学習していないなら、ネガで他の前髪を潰しても出てくる芽がない。
学習はしているがプロンプト書式の問題で発火していないなら、書式を変えれば出る。
切り分けが要る。

キャラタグ参照: 水瀬名雪

Danbooruに hair intakes タグが存在する以上、それで学習された画像も訓練データに混ざっているはず。
インテークで知られる古典キャラを最小プロンプトで呼んで、知識として存在するかを確認する。

masterpiece, best quality, score_7, safe,
1girl, solo, minase nayuki, kanon (game),
upper body, looking at viewer, simple background

名雪テストの1枚目。前髪両脇に明確な前方向きスクープが2本立ち上がっている 名雪テストの2枚目。校章付きセーラー、インテーク構造は同様 名雪テストの3枚目。胸元に手を当てたポーズ、インテーク健在 名雪テストの4枚目。赤リボンタイの制服、インテークあり

4/4でインテーク発現。
ぱっつん前髪の上に、両側のこめかみから前へ湾曲する独立した毛束が一対ずつ乗っている。
Wikiの「twin forward-facing scoops between other hair strands」の定義そのまま。
衣装は seed ごとに学校制服や私服で揺れているが、髪型の構造特徴は4枚すべてで一致している。

Animaは hair intakes を訓練データレベルで認識している、という結論はこれで取れた。
ただしその知識は、minase nayuki のような キャラタグ経由のアイデンティティ として焼き付いていて、汎用プロンプトの自然言語列挙からは引き出せていない。

代替タグ hair ears / curtained hair をNL書式で再確認

ここで分岐がもうひとつある。
intakes という語が悪い」のか、「自然言語文中にDanbooruタグ語を埋め込む書式そのものが悪い」のか。
Wikiが示した代替タグ hair earscurtained hair を、A2と同じ自然言語文の intakes の位置に差し替えて回す。
タグ語だけが軸なら、別のタグ語で出るはず。

ポジティブの末尾を差し替える。

  • 条件E: ... long bangs sidelocks and hair ears and blunt bangs.
  • 条件F: ... long bangs sidelocks and curtained hair and blunt bangs.

それ以外(3/4 view固定、ネガティブ、生成枚数)はA2と同じ。

条件Eの1枚目。頭頂部に獣耳的なearsが2本立ち上がっている 条件Eの2枚目。A2と同じくただのサイドロック、earsなし 条件Eの3枚目。同じくサイドロック、変化なし 条件Eの4枚目。同じくサイドロック

hair ears は1枚目だけ、頭頂部に獣耳的な2本のearsが立ち上がった。
Wikiの note にあった「intensified intakes」の方向ではなく、文字どおり「毛で形成された動物耳」として解釈されている。
残り3枚はA2と区別できないただのサイドロック。

条件Fの1枚目。A2と同じくただのサイドロック 条件Fの2枚目。同じくサイドロック、白フリル付き衣装 条件Fの3枚目。同じくサイドロック、白シャツ 条件Fの4枚目。同じくサイドロック、白フリル衣装

curtained hair は4/4で活性化なし、A2と完全に同じ傾向。
Wikiが「スクープが生え際から直接生える場合」の代替として curtained hair を示していても、Animaの自然言語経路ではその境界が反映されない。

3条件をまとめる。

条件タグ書式結果
A2intakesNL文中に列挙サイドロックに丸まる、インテーク不発
Ehair earsNL文中に列挙1/4で獣耳earsに化けるがインテークではない
Fcurtained hairNL文中に列挙完全に不発、A2と区別不能

Wikiが示すタグ階層(hair intakes / hair ears / curtained hair の段階差・起点差)は、Animaの自然言語経路では再現されない。
タグ語を変えれば出るという方向ではなく、書式そのものを変える方向に切り替える。

条件G: Danbooruタグ列 + 自然言語の併用

過去のキャプション書き直し記事でも触れたように、Animaは「Danbooruタグ + 自然言語キャプション + 両者の組み合わせ」で学習されている。
公式モデルカードも combinations of tags and captions を訓練データに含むと書いている。
A2・E・FではNL文中にタグ語を埋め込むだけで、独立タグ列としては配置していなかった。
今回は、ポジティブの頭にDanbooruタグ列をきちんと並べてから、A2と同じ自然言語文を続ける。
target の hair intakes に加えて、Wiki note の代替タグ hair earscurtained hair も全部タグ列に入れる。

masterpiece, best quality, score_7, safe,
three quarters view, upper body, looking at viewer,
1girl, solo, blonde hair, long hair, blue eyes, blunt bangs,
hair intakes, hair ears, curtained hair, sidelocks, half updo, braid, blue ribbon,
A girl with long, straight blonde hair and blue eyes. ... Her hair is long bangs sidelocks and hair intakes and hair ears and curtained hair and blunt bangs.

条件Gの1枚目。こめかみから前髪両脇にわずかに前へ膨らむ毛束が出ている 条件Gの2枚目。同じくわずかな立ち上がり、青リボンタイ付き白トップス 条件Gの3枚目。背景にぼかし窓、わずかな立ち上がり 条件Gの4枚目。青リボンタイ、わずかな立ち上がり

A2/E/Fと比較して、こめかみから前髪両脇にわずかに前へ膨らむ毛束が出ている。
完全なストレートのサイドロックではなく、Wikiの forward-facing scoop の 弱い版 が立ち上がってきている。
ただし名雪のような明確な大スクープではない。
特徴は発火している、サイズが小さい、という状態。

大きさの仮説: 訓練データの時代分布

ここで一旦、仮説を整理しておく。
インテーク前髪は時代と共にスタイルが変わっていて、現代のキャラクター(特に2020年代以降のソーシャルゲームやアニメ)では大きく前方へ突き出すインテークを持つキャラ自体が少ない。
代表的な大インテークキャラは、KanonやFateのような00年代前半〜中盤の作品に集中する。
Animaの訓練データが新しいキャラ寄りに偏っているなら、hair intakes タグから引き出される平均的な形状は 小さくサイドロックに近いインテーク になるはず。

条件Aで出てきたブルアカ系の定型ビジュアル(ハーフアップブレイド + 青リボン + ぱっつん前髪 + 金髪)は、まさに「インテークを持たない、または極めて小さいインテークしか持たない」現代キャラ群の出力中心。
条件Gで弱いインテークが出ているのは、訓練データの平均的なインテーク表現 が再現されていると見ると整合する。
そして名雪が大インテークを連れてくるのは、minase nayuki キャラタグが「古い大インテーク表現」と密結合しているから。

この仮説が正しければ、hair intakes 単独で大インテークを出すには weight強調 が要る。
タグ列に (hair intakes:1.5) のように重みを乗せて、訓練データの分布の中で大インテークのサンプル方向へ引き寄せる発想。

条件I: weight強調 (hair intakes:1.5)

G のプロンプトをベースに、hair intakes だけ weight 1.5 を乗せる。
タグ列の中と、自然言語文中の対応箇所、両方に。

... 1girl, solo, blonde hair, long hair, blue eyes, blunt bangs,
(hair intakes:1.5), hair ears, curtained hair, sidelocks, half updo, braid, blue ribbon,
A girl with long, straight blonde hair and blue eyes. ...
Her hair is long bangs sidelocks and (hair intakes:1.5) and hair ears and curtained hair and blunt bangs.

条件Iの1枚目。weight 1.5、こめかみの膨らみがG比でわずかに増している 条件Iの2枚目。weight 1.5、白シャツ、わずかに前へのカーブ強め 条件Iの3枚目。weight 1.5、ノースリーブ白トップス 条件Iの4枚目。weight 1.5、白ブラウスに青リボンタイ

G と比べて、こめかみから前に膨らむ毛束が わずかに増す
ただし名雪レベルの明確な大スクープには届かない。
weightで押せるが頭打ち感がある。

これは訓練データ仮説と整合する。
タグ自体は学習されているが、hair intakes ラベルが指す画像群の平均的なインテークサイズが小さければ、重みを上げても分布の平均値が引き寄せられるだけで、大インテークの方向には飛ばない。
大インテークを呼ぶには、分布のテール(古いキャラ群)に直接アクセスする経路、つまりキャラタグ参照に行き着く。

weight 2.0 以上を試す手もあるが、その場合プロンプト全体の他要素(ぱっつん前髪・ハーフアップブレイドなど)が崩れるリスクが高い。
別の打ち手として、自然言語で「名雪のような髪型」と直球指定して、ネガティブで名雪固有のキャラ要素を消す方向が残っている。

条件H: NL直球「like minase nayuki」+ ネガでキャラ要素剥がし

タグ列とweight強調では限界が見えたので、別ルートを試す。
自然言語でインテーク形状をキャラ参照で直接記述し、連れてくる名雪固有の要素はネガティブで削る。

ポジティブの末尾を、A2/G のあいまいなインテーク列挙ではなく、キャラ参照に切り替える。

Her front hair has prominent forward-facing intake locks like minase nayuki from kanon (game).

ネガティブには、名雪のアイデンティティを連れてくる固有要素を追加する。

... nsfw, explicit, nipples, pubic hair,
minase nayuki, blue hair, dark blue hair, navy hair, school uniform, sailor collar

minase nayuki のキャラタグそのものをネガに入れてアイデンティティの本体を打ち消しつつ、彼女を特徴づける青系髪色とセーラー制服も剥がす。
残るのはインテーク形状だけ、という設計。

条件Hの1枚目。こめかみから前髪両脇に三角に尖って前へ突き出すスクープが形成されている 条件Hの2枚目。同様の尖ったスクープ、白タートルネック 条件Hの3枚目。側面寄りだがスクープ形成あり、白Tシャツ 条件Hの4枚目。3/4 viewで尖ったスクープ、白ブラウスに青リボンタイ

G/Iと比べて、こめかみ前髪に 三角に尖って前へ突き出すスクープ が明確に形成されている。
weight強調より直接的に出ている。
金髪・青リボン・ぱっつん前髪は保持されたまま、青系髪色とセーラー制服はネガで消えた。
インテークのサイズは名雪本人ほどではないが、定義の「twin forward-facing scoops between other hair strands」を満たしている。

このアプローチが筋として通る理由は、minase nayuki キャラタグが訓練側で hair intakes 形状と密結合しているなら、NL文中でキャラ名を参照すれば「インテーク形状を連れてくるトリガー」として機能するから。
そして本体のキャラアイデンティティ(顔・髪色・服)は、ネガに minase nayuki を入れて打ち消しつつ、髪色や制服を明示的に剥がすことで「形状だけ拝借」できる。

条件J: H + weight 1.5 の重ね掛け

H が weight 強調なしで効いたのを受けて、さらに (hair intakes:1.5) を乗せる。
タグ列の hair intakes を weight 1.5 にし、NL側のキャラ参照記述はそのまま残す。

... blunt bangs, (hair intakes:1.5), sidelocks, half updo, braid, blue ribbon, ...
Her front hair has prominent forward-facing intake locks like minase nayuki from kanon (game).

ネガティブは H と同じ。

条件Jの1枚目。こめかみから鋭い三角のスクープが前方に大きく突き出している 条件Jの2枚目。両こめかみに翼状のインテークが明確に形成、これまでで最大サイズ 条件Jの3枚目。前方向きの三角peak、白Tシャツ 条件Jの4枚目。3/4 view、こめかみのスクープは健在

これまでで最大サイズのインテークが出た。
J-01・J-02 は名雪本人にかなり近い、こめかみから翼状に前へ広がるスクープが両側に立ち上がっている。
他の要素(金髪・ぱっつん前髪・ハーフアップブレイド・青リボン)も維持されている。

整理すると、Animaで「名雪由来の大インテークを汎用キャラに移植する」には3段重ねが要る。

手段プロンプト位置
1NL直球のキャラ参照で形状の元ネタを明示ポジティブのNL文末尾に Her front hair has prominent forward-facing intake locks like minase nayuki from kanon (game).
2ネガでアイデンティティ剥がし、キャラ本体は排除ネガに minase nayuki, blue hair, school uniform, sailor collar
3weight強調で分布の中でインテークサンプル方向に押し込むタグ列の (hair intakes:1.5)

どれか1つだけでは弱い。組み合わせて初めて、訓練データの中でインテークと紐づいた「古い大インテークキャラ」の特徴空間に近づく。

条件K: WAI-Illustrious v17 で同じプロンプトを回す

Illustrious系の方が hair intakes を引き出しやすいという話があったので、J のプロンプトをそのまま WAI-Illustrious v17(SDXL)で回して、Anima との差を見る。
Animaの speed LoRA は外し、デフォルトの30step/cfg 5.5で生成。

条件Kの1枚目。WAI-IL v17、こめかみは 普通のサイドロック 寄り、インテークのスクープは控えめ 条件Kの2枚目。暗い背景、丁寧な描写だがインテークは subtle 条件Kの3枚目。3/4 view、ストライプ背景、インテークはほぼ見えない 条件Kの4枚目。リボンが左側に来た鏡像、白ブラウスに青ストライプ、インテーク微弱

同じプロンプト+同じweightでも、IL側のインテークサイズは Anima J より 小さい
描写は painterly 寄りで衣装の細部や背景の作り込みが丁寧になるが、髪型の構造特徴としてのインテークは控えめ。
3/4 view への構図従順度は IL の方が高くて、Animaのような側面プロファイルへの振れは起きにくい。

「ILは強めに叩くと出る」という話が他のプロンプト構造で成立する可能性はあるが、J と完全同条件比較では Anima > IL になった。
モデル横断の結論はもう少しサンプル数と weight 領域を変えてから書ける。

K-04 を注意して見ると、白ブラウスに青ストライプ、リボン位置が左側、名雪本人の制服寄りの構成がやや残っている。
ネガに minase nayuki を入れてもアイデンティティ剥がしが Anima ほど機能していない、という観察も付随する。
IL のほうがキャラタグの拘束力が強い、と読める。

条件L: Jベースに当初のネガ「競合髪型潰し」を載せる

ここで元記事の最初の段取りに戻る。
当初は「straight bangs, center-parted bangs, side-swept bangs, parted bangs, hair over one eye, neat hair, smooth hair, flat bangs をネガに足して、インテーク以外の前髪を潰してインテークを浮き上がらせる」段取りだった。
今はインテークを発火させる手段(J)が手に入ったので、その上にこのネガを乗せる。
当初の段取りが、ポジティブが動いた状態で本当に出るかを確認する。

ポジティブは J のまま。
ネガティブに上記の競合髪型タグを追加。

条件Lの1枚目。blunt bangsは維持、インテークはJ比でやや控えめ 条件Lの2枚目。3/4 view、ぱっつん前髪+小さめのインテーク 条件Lの3枚目。こめかみに三角インテークあり、blunt bangs維持 条件Lの4枚目。3/4 view、わずかなインテークあり、青リボン健在

blunt bangs(ポジティブ)は4枚すべてで維持されている。
straight bangs をネガに入れても、概念が近い blunt bangs を吹き飛ばすほどの干渉は起きていない。
インテークは J 比で同等かやや控えめ。
当初想定した「競合髪型をネガで潰すことでインテークが鋭くなる」変化は、観察上は明確に出ていない。

これは元の段取りの前提が部分的に外れていることを示す。
インテークが出ない状態でネガで他を潰しても、出てこない特徴は浮き上がらない。
J の時点でポジティブ側で十分発火しているので、追加のネガは余剰になる。
ネガティブの「競合除去」が機能するのは、ポジティブの発火と拮抗する別経路が存在するときだけ。
今回のインテークはポジティブ側で完全に勝負がついていて、ネガでさらに削るものが残っていない。

逆に、blunt bangs のような明確に出てほしい要素が、概念の近い straight bangs ネガで壊れないことも確認できた。
両者の境界はAnima内部で十分に分離されている。

条件M: 背面要素を削って正面インテークを確認する

これまでの条件は3/4 view固定で、Anima側が「背面のハーフアップブレイドと顔を両方画面に入れたい」ため横向きに振れていた可能性があった。
背面要素のスペックそのものを抜けば、構図を正面に持ってこれるか確認する。

ポジティブから half updo, braid, blue ribbon のタグ列と「The back of her hair is pulled up into a half-up braid tied with a blue ribbon.」の自然言語文を削除。
構図指定を three quarters view から front view, facing viewer, upper body, looking at viewer に切り替え。
ネガティブにも profile, from side を追加して横顔を抑止。

条件Mの1枚目。正面向き、blunt bangs、白タートルネック、インテークは控えめ 条件Mの2枚目。正面向き、白タートルネック、わずかなインテーク 条件Mの3枚目。正面向き、白トップス+黒ストラップ風 条件Mの4枚目。正面向き、白タートルネック、こめかみに小さなインテークpeak

4枚すべて 正面向き に成功。
ただしインテークサイズはJ比でかなり弱まった。
背面要素を抜くことで、Animaが頼っていた「名雪/古いギャルゲー寄りキャラ群の特徴空間」へのバイアスも消えて、デフォルトの「金髪ロング正面」表現に近づいた可能性がある。
構図とインテーク強度がトレードオフになる。

それと、もう一段の損失がある。
J まではポジティブで half updo, braid, blue ribbon と書いていたので、3/4 viewからも左右どちらかにハーフアップブレイドの編み込みが画面端に見えていた。
Mではタグ列と自然言語の両方から背面要素を抜いたので、結果は ただの金髪ロング になっている。
正面向きを獲得したが、本来出したい髪型(編み込みが見える)の方を捨てている。
プロンプト指定が変わったから当然の結果ではあるが、目標としていた「ハーフアップブレイド + 正面向きでインテーク見える」状態は取れていない。

副産物として、金髪+青目+ぱっつん前髪の正面構図が、SAO『Alicization』のアリス(アリス(アリス Schuberg))の素顔に寄った。
背面の特徴を抜くと、訓練データ中で「金髪ロング+正面+ぱっつん前髪」のクラスタに引き寄せられて、その代表がアリスの素顔に近づく。
ただし、4枚に共通する 白タートルネック はアリス本人の特徴ではない。アリスの本来の衣装は Integrity Knight の金色装甲+青マント+ヘアバンドで、タートルネックはどこにも出てこない。
タートルネック多発は別の要因で起きていて、アリスらしさは「顔・髪・前髪」のレイヤーで判定するのが正確。

M〜P2 で白タートルネックが多発した理由

ここまで M / O / P / P2 を並べると、衣装で 白タートルネック が高頻度で出てきている。J でも一部出ていた。
プロンプトには衣装指定を入れていないのに、Anima が勝手にタートルネックを選んでくる。

考えられる原因:

  • safe レーティングタグが保守的な衣装選択にバイアスをかける
  • NL文中の she is slender but has a slightly larger bust が、胸元を覆う衣装(タートルネック・タイトトップス)の生成源になっている
  • 訓練データ中で「金髪ロング+正面+ぱっつん前髪+SFW」のクラスタの最頻衣装が、たまたまタートルネック寄りに分布している
  • Anima Turbo LoRA 側にも衣装の癖があり得る

衣装をコントロールしたいなら、ポジティブ側で明示的にトップスのタグを入れる(sailor uniform, blouse, t-shirt 等)か、ネガティブに turtleneck を入れる方向で抑止する。
今回の検証はインテーク前髪と構図に焦点を当てていたので、衣装は副次変数として深追いしない。

条件N: アリス(SAO)を参照キャラで確認

Mで「金髪ロング+正面+ぱっつん前髪」のクラスタからアリスっぽさが出てきたので、参照テストとして最小プロンプトでアリス本人を呼ぶ。
名雪でやったのと同じ手順。

masterpiece, best quality, score_7, safe,
1girl, solo, alice schuberg, sword art online,
upper body, looking at viewer, simple background

アリス参照1枚目。Integrity Knight装甲+ヘアバンド、インテークは出ていない アリス参照2枚目。装甲+ハート背景、インテークなし アリス参照3枚目。装甲、ぱっつん前髪+サイドロック、インテークなし アリス参照4枚目。装甲+赤ハート吹き出し、インテークなし

4/4でアリス本人が確実に出る(金髪ロング+青緑目+Integrity Knight装甲+青マント+ヘアバンド)。
しかしインテークは 出ない。4枚とも普通のぱっつん前髪+サイドロックのみ。
Animaの訓練データ上、アリスはインテークを持たないキャラとして学習されている。

筆者の元の認識では「アリスもインテーク持ち」だったが、出力を見るとインテークではない可能性が高い。
記憶の根拠を確認するため SAO Wiki も見てみた。
Wikiによると、アリスの頭にあるのは 白い布製のヘアバンド(金属の鉢金ではない)で、機能は「メインの髪と両サイドの結われた毛束を分けるため」。
子供時代(Rulid Village)から着用していて、Integrity Knight になってもこのヘアバンドは継続して着用されている。
アリスの髪型は「金髪ロング+後ろを三つ編み+両サイドに結われた毛束+白ヘアバンド」という構造で、 両サイドの結われた毛束 が Danbooru の hair intakes のように「他の毛束との間の forward-facing scoop」を満たすかは別問題。
ヘアバンドで持ち上げて整理された sidelocks であって、scoop形状ではないと読むのが正確。
筆者がアリスをインテーク持ちと思い込んでいたのは、この 両サイドの結われた毛束 を Danbooru タグの定義に当てはめずに「インテークっぽいもの」と認識していたから。
Animaも訓練データ上で同じ判定をしていて、alice schuberg タグからは intakes ではなく sidelocks + ヘアバンド の構造が出てくる。

これは2つのことを意味する。

  1. 名雪とアリスは「Animaがどちらも認識している金髪ロングキャラ」だが、インテーク特徴の有無は別軸。J/H で like minase nayuki と書いたのが効いたのは、名雪固有のインテーク特徴を呼び出していたから。
  2. 「金髪・ロング・青目」という外形特徴が似ているキャラだからインテークも似ている、とは限らない。Animaは外形のクラスタとインテークの有無を独立に持っている。

つまりインテークを移植するなら、インテークを持つ特定キャラ を参照することになり、外形が似ているだけのキャラでは代用にならない。
そして「自分の記憶ではインテーク持ち」だと思っていたキャラが実際はそうじゃない可能性も、Anima側の出力で逆算的に確認できる。

条件O: 正面向き + ハーフブレイド指定を維持

Mでブレイド指定を全部削ったのは過剰だった。
本来のハーフアップブレイドは、正面から見てもこめかみ〜頭頂あたりに編み込みやリボンが見えるはずで、Mのように完全に「ただのロング」になるのは指定不足。
Jプロンプトのハーフブレイド指定(タグ列 half updo, braid, blue ribbon + NL文)を残したまま、構図だけ正面強制する。
NL文の「The back of her hair」という背面限定の書き方を「half-up braid tied with a blue ribbon, the braided section visible across the temples and top of the head」に書き換えて、正面側にも見える描写に寄せる。
ネガティブに profile, from side を追加。

条件Oの1枚目。正面向き、両こめかみに青リボンが計2個、ブレイド本体は目立たない 条件Oの2枚目。正面向き、青リボン2個、白ボタン付きシャツ 条件Oの3枚目。正面向き、青リボン2個、白タートルネック 条件Oの4枚目。正面向き、青リボン2個、赤ジップアップ

4/4で正面向き取得。
そして両こめかみに 青リボンが1個ずつ計2個 出現した。
ブレイド本体(編み込み)はあまり出ていない。
Animaは half updo, braid, blue ribbon という3要素の列をハーフアップ + ブレイド + 青リボンと統合的に解釈せず、「左右ツインリボン」のような形に分解して落とし込んだように見える。

インテークはJ比でやや控えめ、Mとほぼ同程度。
ハーフアップブレイドを意図したかった髪型は、まだ正しく再現できていない。

SDXL/NovelAI 系では以下のような正式書式があると別途確認した。

  • half updo: こめかみ辺りの髪をまとめて後ろで束ねるヘアスタイル
  • half up braid: ハーフアップのバリエーション、束ねた髪が三つ編み(1語タグとして書く
  • hair bow: 髪を束ねるリボン

half updo, braid, blue ribbon という分解列ではなく、half up braid, hair bow のように 複合語として並べる のが Danbooru / NovelAI 系の正規書式。

条件P: half up braid 1語書式に差し替え

Oのタグを正規書式に置き換える。

... 1girl, solo, blonde hair, long hair, blue eyes, blunt bangs,
(hair intakes:1.5), sidelocks, half up braid, hair bow, blue hair bow, ...
Her hair is styled as a half up braid tied with a blue hair bow, the braid visible across the temples.
Her front hair has prominent forward-facing intake locks like minase nayuki from kanon (game).

ネガとviewはO と同じ(front view強制、profile, from side ネガ)。

条件Pの1枚目。正面向き、両側に青リボン、こめかみに小さなインテークpeak 条件Pの2枚目。正面向き、青リボン2個、白Tシャツ、わずかなインテーク 条件Pの3枚目。正面向き、青リボン2個、白ボタン付きシャツ、わずかなインテーク 条件Pの4枚目。正面向き、青リボン2個、白タートルネック、わずかなインテーク

書式を正規化しても、Animaの解釈は変わらなかった。
4枚すべてで「左右ツインリボン+正面ロング+ぱっつん前髪+弱インテーク」のクラスタに収束する。
half up braid を1語タグで指定しても、back-tied half-up braid の構造を生成せず、左右シンメトリの hair bow に分解する。
これは Anima 訓練データ上「half up braid で学習されている画像群」の平均的な視覚解釈が、正面viewでは「左右リボン」になっている、と読める。

インテークは J 比で大幅に控えめだが、Mと違って 正面向きで小さなインテークpeakは4枚すべてに確認できる
当初の目標「正面向きでインテークが見える」は満たしているが、サイズは妥協する形になる。
J の名雪寄りクラスタ(3/4 view + 大インテーク)と、M/O/P の現代キャラ寄りクラスタ(正面 + 小インテーク)のあいだのトレードオフが残る。

それと、リボンのサイズが J 時代に比べて明らかに 大きく なっている。
これは構図の問題ではなくタグの問題で、J までは blue ribbon を使っていたのが、O/P では SDXL/NovelAI 正規書式に寄せて hair bow / blue hair bow に書き換えたため。
Danbooru タグでは ribbon / blue ribbon は細長い帯状リボンで髪を縛るだけの細い装飾、hair bow蝶結びに整えた飾り で立体的かつ大きめに描かれる別タグ。
書式の正規化のつもりで意匠まで変えていた、ということになる。
J の小さめリボンを意図するなら blue ribbon に戻すのが正しく、hair bow を選ぶなら大きいリボンが付随することを許容する。
タグ書式の細部までDanbooruの語彙と一致させる、という当然の話だが、こうした変更は確認のたびに視覚的なインパクトとして返ってくる。

条件P2: Pのリボンを blue ribbon に戻す

P の hair bow, blue hair bow を、J で使っていた blue ribbon に戻す。
構図・インテーク設定は P と同じで、リボンの意匠だけ J 時代の小さい帯リボンに戻す検証。

条件P2の1枚目。正面向き、右側に小さな青リボン1個、自然なサイズ 条件P2の2枚目。正面向き、両側に小さな青リボン2個、Pより明らかに小さい 条件P2の3枚目。正面向き、両側に小さな青リボン2個、白タートルネック 条件P2の4枚目。正面向き、右側に小さな青リボン1個、白ボタン付きシャツ

リボンサイズは J 時代と同等の小さい帯状リボンに戻った。
4枚のうち2枚で 片側1個のみ (左右非対称)、残り2枚で 両側2個 の出力。
意匠は補正できたが、配置の左右対称性は依然不安定。
インテークはPと同等で小さいまま。

タグ書式の選択は意匠(hair bow vs blue ribbon)と配置パターンの両方に影響していて、サイズ・対称性・装飾形状を別々に制御するには Anima のタグ語彙をもう一段細かく使い分けることになる。

Animaは正面viewではハーフブレイドが見えないと思っている

M / O / P / P2 を並べて見直すと、共通する違和感がひとつ出てくる。
どの条件でも front view, facing viewer, looking at viewer を指定しているのに、出力された顔は 完全な正対ではなく、10〜20度ほど斜めにずれている
P / P2 でリボンが片側だけに出たり、左右非対称になったりするのも、この 微妙な回転 の副産物として読める。

これがランダムな揺れではなく、Anima側の 苦肉の策 だとすると説明がつく。

  • ポジに front viewhalf up braid の両方が入っている
  • Animaの訓練データ上、ハーフアップブレイドの三つ編みは「後ろ姿 or 横顔 or 3/4 view」で写った画像群と紐づいている
  • 完全な正面viewでハーフブレイドの編み込みが見える学習例がほぼ存在しない(学習データの偏り)
  • ポジ側の2つの指定が矛盾するので、Animaは「ブレイドを画面に入れるため顔を少しだけ回す」という妥協を選ぶ
  • 結果、リボンが片側だけ覗いたり、視線が完全に正対しなかったりする

つまりAnima内部の常識として「正面viewではハーフブレイドの三つ編みは見えない」が学習されている。
これは条件Aで全部側面プロファイルに振れた原因とも繋がる挙動で、「背面要素を画面に入れたい」という構図バイアスが、ポジ指定の優先順位より強く働く場面がある。

回避策の候補:

  • 背面要素を諦めて完全正面を取る(条件M。ブレイドが消える代わりに正対する)
  • ブレイド要素を維持して3/4 view を許容する(条件J。インテークと両立する)
  • 構図を from above のような上からのアングルにして、頭頂の編み込みが見える別の解を模索する
  • ハーフブレイドではなく low ponytailhime cut など、正面viewと整合する別のヘアスタイル指定に切り替える

「Animaが何を front view で見せるべき要素として学習しているか」を逆算する作業になる。
タグ単体ではなく、タグ同士の組み合わせとAnimaの訓練データ分布の整合性をプロンプト設計に組み込む段階に入る。

条件J2: weight 1.5 → 2.0 でインテークの上限を見る

J の構図(3/4 view + 名雪参照 + ネガでアイデンティティ剥がし)はそのままに、(hair intakes:1.5)(hair intakes:2.0) に上げる。
インテークサイズの天井を確認する目的。

条件J2の1枚目。3/4 view、こめかみに明確なインテーク、Jと同等以上 条件J2の2枚目。3/4 view、インテーク健在、白タートルネック 条件J2の3枚目。3/4 view、インテークあり、白ブラウス+赤スカート+青タイ 条件J2の4枚目。3/4 view、インテーク健在、白ブラウスに青リボンタイ

インテークはJ並で、weight 1.5 → 2.0 でも 劇的な大型化は起きていない
ただし4枚すべてでインテークが一貫して見える点は J より安定している。
他要素(blunt bangs、ハーフブレイド+リボン、金髪)も破綻していない。

「weightで押せるが頭打ち」という前の仮説と整合する。
weight 2.0 はサイズの上限近くで、活性化の 安定性 は上がるがインテークのサイズ自体はJ天井に張り付いている。
これも、Animaの訓練データ中に「インテークラベル + 大スクープ」のサンプルがそもそも少ないなら、weightで分布を引き寄せても平均値がJ程度に収束する、という説明と一致する。

実用的な天井ラインは、3/4 view + キャラ参照 + weight 1.5〜2.0 で、これ以上のインテーク強度は キャラタグ自体を強めに使う か、LoRAで補強する か、別経路を取らない限り上げにくい。

それと、J2を見ているとJ比で 顔立ちや雰囲気が名雪本人に寄っている ことに気づく。
ネガには minase nayuki を入れてアイデンティティを剥がしているはずなのに、weight 2.0 にした途端名雪率が上がる。

これも筋が通る挙動で、ネガとポジの押し合いになっている。

  • ポジ側で (hair intakes:2.0) と強く押すと、Animaが「インテーク空間」へ引き寄せられる
  • インテーク空間で最強密度の代表サンプル群が名雪に紐づいている(訓練データの偏り)
  • インテーク方向に強く押せば押すほど、名雪アイデンティティも一緒に連れてくる
  • ネガの minase nayuki, blue hair, ... で剥がそうとしても、ポジ側weight 2.0 の押し込みが勝つ

weight 1.5 までは ネガ側が勝ってアイデンティティ剥がしが成立していたが、2.0 になるとポジ側が上回る。
インテークサイズは頭打ちなのに副作用だけ増える領域に入った、という見え方。
実用的にはJ(weight 1.5)が最適バランスで、それを超えるとアイデンティティ漏れの代償でインテーク強度がほぼ変わらないトレードになる。

条件Q: 自然言語文を全削除してDanbooruタグ列だけにする

J のプロンプトから自然言語段落を完全に削って、Danbooruタグ列のみで構成する。
NL文中の like minase nayuki from kanon (game) 参照も消える。
タグ列の (hair intakes:1.5) だけでJ強度のインテークが出るかを見る。

masterpiece, best quality, score_7, safe,
three quarters view, upper body, looking at viewer,
1girl, solo, blonde hair, long hair, blue eyes, blunt bangs,
(hair intakes:1.5), sidelocks, half updo, braid, blue ribbon,
slender, large breasts

ネガティブはHと同じ(minase nayuki, blue hair, ... 等で名雪アイデンティティを剥がす設計)。

条件Qの1枚目。3/4 view、背景に明確な青ヘイロー風光輪、ぱっつん前髪、こめかみに小インテーク 条件Qの2枚目。3/4 view、背景青ヘイロー、白ブラウス+紺スカート、小インテーク 条件Qの3枚目。3/4 view、白ブラウス+青リボンタイ、ぱっつん前髪+アホ毛、小インテーク 条件Qの4枚目。3/4 view、白ブラウス+紺ベスト+青リボン、小インテーク

NL段落を消した瞬間、背景に明確な青ヘイロー風光輪が復活した。
条件Aで見た「ブルアカ系の定型ビジュアル」が、Q-01/Q-02 でほぼ同じ強度で戻ってきている。
衣装も白ブラウス + 紺ベスト + 青リボンの「ブルアカ制服っぽい」構成。

インテークサイズはJ比でかなり控えめ、G/I並の小サイズに後退。
つまり J の NL文中の like minase nayuki 参照は2つの役割を担っていた。

  1. インテーク形状を呼び出すトリガー
  2. ブルアカ系(トキ と思われる現代キャラクラスタ、後述)への引き寄せを相殺する重し

NLを全削除するとどちらも消えるので、インテークが弱まり、かつ訓練データ中の最頻クラスタに引き寄せられる。

条件R: minase nayuki キャラタグを weight 0.4 で薄く混ぜる

Hと同じ効果をキャラタグ経由で出せるか試す。
NL文での参照ではなく、タグ列に (minase nayuki:0.4) を低weightで混ぜる方法。
ネガティブにも minase nayuki をそのまま入れてアイデンティティ剥がしは維持。

... blunt bangs, (hair intakes:1.5), sidelocks, half updo, braid, blue ribbon,
(minase nayuki:0.4), slender, large breasts

条件Rの1枚目。3/4 view、白タートルネック+紺ベスト、小インテーク 条件Rの2枚目。3/4 view、青背景、青リボン、小インテーク 条件Rの3枚目。3/4 view、胸に手、青リボン、小インテーク 条件Rの4枚目。3/4 view、白ブラウス+紺コルセット、小インテーク

インテークはJ比で弱まり、G/Iと同程度。
キャラタグを weight 0.4 で混ぜる方法は、Hの NL参照経路ほどインテーク形状を強く呼ばない。
ポジのネガの両方で minase nayuki を打ち合わせる構造になっているが、低weightで入れたタグはネガ側で容易に潰されて、形状トリガーとして機能していないように見える。

NL文中での参照(H)と、低weightキャラタグ(R)は 同じ「名雪を匂わせて intake を呼ぶ」発想でも、効きが大きく違う

  • H: NL文中の語は「形状の参考」として強く効くが、キャラのアイデンティティ全体は弱く乗る
  • R: タグはアイデンティティ全体を等比に薄めるので、形作られた特徴が出てきにくい

Anima のテキストエンコーダ(Qwen3 ベース)が、NLでの「like X」記述を 形状参照 として処理しているのに対し、タグ列の低weightキャラタグは アイデンティティの薄い混入 として扱っているように見える。

条件トキ: 元プロンプトは飛鳥馬トキの仕様だった

条件A/Q/R で繰り返し出てきた「青ヘイロー + 金髪 + ぱっつん前髪 + ハーフアップ + 青リボン + 大きめ胸」のクラスタは、訓練データ中の特定キャラ、 飛鳥馬トキ(Asuma トキ, ブルーアーカイブ) の仕様と一致する。
自分の元のプロンプトが、実は無意識のうちにトキを呼ぶ仕様書になっていた、という疑い。
最小プロンプトでトキ本人を呼んで、実機の出力と条件A/Q/Rのビジュアルが一致するかを確認する。

masterpiece, best quality, score_7, safe,
1girl, solo, asuma toki (blue archive), blue archive,
upper body, looking at viewer, simple background

トキ参照1枚目。明確な青ヘイローが頭上、ハニーブロンド+青目、ぱっつん前髪、右側ハーフアップ+青ボウタイ、紺ジャケット+白ブラウス トキ参照2枚目。同様の青ヘイロー、紺ジャケット+大きめ青ボウタイ トキ参照3枚目。青ヘイロー、ガッツポーズ、青ボウタイ+黒ベルト トキ参照4枚目。青ヘイロー、上記と同様の制服+青ボウタイ

4/4で 明確にトキ本人
青ヘイロー、ハニーブロンド(純金より黄色寄り)、青目、ぱっつん前髪、右側のハーフアップ+大きめ青ボウタイ、紺ジャケット+白ブラウス。
これは条件A/Q/Rで「不気味に何度も出てきていた」キャラの正体だった。

照合すると整合する点が多い。

  • 条件A の背景に出ていた青ヘイロー風光輪 → トキ本人のヘイローとサイズも位置もほぼ一致
  • P/P2 で「片側1個だけリボン」「左右非対称」が出ていた現象 → トキのリボンは右側1個(左右対称ではない)
  • 「条件Aの金髪は想定より黄色寄り」と感じていた件 → トキはハニーブロンド寄り、純金髪ではない
  • 何度も出てきた紺ジャケット+白ブラウス+青リボンの制服系衣装 → トキの制服そのもの
  • 「slender + large breasts」というプロンプト末尾の身体描写もトキの特徴に合致

つまり、自分が書いたつもりの汎用プロンプト「金髪+青目+ぱっつん前髪+ハーフアップブレイド+青リボン+slender+slightly larger bust」が、Animaの訓練データ中ではトキの特徴量とほぼ一致しており、Animaは「これはトキだろう」と判断していた。
条件Aで全部側面プロファイルに振れたのも、トキの公式絵に多い構図にも引かれていた可能性がある。

これでインテーク実験で起きていた挙動の大半が説明できる。

  • J/H で like minase nayuki を入れたときだけ 名雪 寄りのインテークが出たのは、ポジ側で「トキ → 名雪」と引き寄せ先を上書きしていたから
  • 条件Q/R でブルアカ系ヘイローが復活したのは、上書きを外した瞬間に元のトキ寄りの傾向が戻ったから
  • 衣装にタートルネックではなく白ブラウス+紺ベストが頻繁に出ていたのも、トキ制服クラスタの一部

このセクションは検証の メタ的な発見 で、当初想定した「hair intakes タグの発火問題」とは別軸の問題が裏で動いていた、という話になる。
プロンプトの汎用記述が訓練データの特定キャラと衝突するケースは、たぶん他の組み合わせでも起きる。「汎用キャラを書いたつもりが特定キャラのコピー仕様になっていた」というケースは、 Anima のような訓練データの偏ったモデルで普通に起きる。

条件V: J recipe を ネロ・クラウディウス で再現

Jレシピが 名雪 専用なのか、別キャラでも同じ経路が動くのかを切り分ける。
J プロンプトの like minase nayuki from kanon (game)like nero claudius from fate (series) に置き換え、ネガティブのアイデンティティ剥がしも ネロ 寄りに調整する(nero claudius, green eyes, red dress, red military uniform, gold trim, epaulettes, hair bun, ahoge)。

条件Vの1枚目。3/4 view、緑目+お団子が残った、こめかみに小〜中のインテーク 条件Vの2枚目。3/4 view、白ドレス+お団子+リボン、緑目漏れ 条件Vの3枚目。3/4 view、白ドレス、緑目+お団子+アホ毛漏れ 条件Vの4枚目。3/4 view、白ドレス+青リボン、緑目+お団子漏れ

別キャラ参照でも インテーク移植は動く。4枚すべてでこめかみ前髪にインテークが立ち上がる。
ただし J(名雪版)と比べてサイズは控えめ、名雪 の方が Anima 訓練データでのインテーク特徴量が強い。

一方でアイデンティティ剥がしは 名雪 より 効きが弱い

  • 緑目が4枚すべてに漏れる(ネガに green eyes を入れていなかった、ネロ 由来の固有色)
  • アホ毛が4枚すべてに残る(ネガに ahoge を入れたが通っていない)
  • 後頭部のお団子(hair bun)もネガに入れたが残った

ネロ のアイデンティティは 名雪 よりも Anima 内部で密に焼き付いていて、同じ強度のネガでは取りきれない。
別キャラ参照を使うときは、そのキャラの特徴量に合わせてアイデンティティ要素をネガに細かく書き出す。ネロ なら green eyes を入れて、お団子・アホ毛を強めのネガ weight で削る、といった具合になる。

「インテーク移植は、キャラごとの強度と剥がしやすさの組み合わせで決まる」。名雪が現状で一番素直に動く参照で、他キャラに置き換えるならネガをそのキャラ用に書き直す前提になる。

条件U: 上から構図 from above で頭頂のブレイドを見せる

Mで「正面取れたがブレイドが消失」した問題への別アプローチ。
カメラを上に置いて被写体を見下ろす構図にすれば、頭頂のハーフブレイドが画面に入る、という発想。
構図指定を front view から from above, looking up に切り替え、NL文も「the braid visible across the crown of her head」(頭頂を横切るブレイド)に書き換える。

条件Uの1枚目。上から見下ろし、顔が見上げる、頭頂に編み込みかすかに、白Tシャツ 条件Uの2枚目。上から、白ブラウス+紺ベスト、編み込みわずか 条件Uの3枚目。上から、白ブラウス+青リボン+赤スカート、編み込みわずか 条件Uの4枚目。上から、グレータートルネック、頭頂にわずかな編み込み

4/4で上から見下ろし構図になり、被写体が見上げる形に。
頭頂のブレイドは画面に入るが わずかにしか映らない。被写体側の頭部が画面下に縮こまって、ブレイドの形が小さく潰れる。
インテークは小〜中で、ハーフブレイドの確認用としては Mより少し改善した程度。
副作用として顔が幼く描かれる(looking up の効果)、想定年齢から少し下に振れる。

from above 単独で looking up を外せば顔の幼さは抑えられるが、その場合カメラ位置と被写体視線がずれて構図が不自然になる。一長一短。

条件W: 22.5度寄り(slightly turned to the side

3/4 viewと正面の中間地点を取りに行く。
ポジティブの構図指定を slightly turned to the side, almost front view に書き換え、ネガティブに three quarters view を追加して逆方向への過剰回転を抑止。

条件Wの1枚目。ほぼ正面、頭頂左側に明確な編み込み、青リボン健在、中インテーク 条件Wの2枚目。ほぼ正面、頭頂編み込みあり、白タートルネック+紺ベスト 条件Wの3枚目。ほぼ正面、編み込み+青リボンが頭部右側に見える、白タートルネック 条件Wの4枚目。ほぼ正面、頭頂の編み込み明確、青リボン健在

これがちょうど良い所。
ほぼ正面を保ちつつ、頭頂部に ハーフブレイドの編み込みが明確に出現 し、青リボンも背面側で見える。
インテークも中サイズで、Jの3/4 viewより小さいが M/O/P の正面viewより大きい。
M で失われた「編み込みが画面に入る」要素と、J で取れていた「インテークが明確に見える」要素が、22.5度寄り構図で両立した。

Anima側の「正面viewではハーフブレイドが見えない」という常識を、22.5度の妥協点で回避した形。
完全正面ではなくほぼ正面、というプロンプトで Anima のクラスタ判断を「正面限定クラスタ」から外している。

条件X: ハーフブレイドを low ponytail に差し替えて正面整合スタイル

ハーフブレイドが正面viewと衝突するなら、正面viewと衝突しないヘアスタイルに差し替える、という方向。
低い位置で結ぶ low ponytail は後ろに垂らすスタイルで、正面viewから見ても束ねた部分が首の後ろに行くだけなので構図と干渉しないはず。

条件Xの1枚目。正面、白タートルネック、ポニーテール側面にちらり、こめかみに小インテーク 条件Xの2枚目。正面、白ノースリーブ+黒トリム、ポニーテール側面 条件Xの3枚目。正面、グレーシャツ、束髪が肩前に 条件Xの4枚目。正面、白Tシャツ、青リボンが側面に

4/4で正面取得。
ただし low ponytail は正面viewでは認識しづらく、束ねた毛束が肩から前へ垂れる形で画面端に出る程度。
ポニーテール構造として明確に画面に見えるかは曖昧。
インテークは小、M/O/Pと同程度。

ヘアスタイル差し替えで正面viewと衝突する要素は消せたが、引き換えに正面でも見える要素が減るので、「画面で確認できるヘアアクセント」が少なくなる。
ポニーテールは後ろで束ねるスタイル全般の共通性質で、 Anima の判断とは無関係に物理的に正面からは映りにくい。
画面で確認したいなら、ハーフブレイドを Wの22.5度構図で見せる方が実用的。

条件Y: タートルネック多発の原因切り分け

M〜P2 と J/J2 で白タートルネックが頻発した原因を切り分ける。
仮説候補は以下:

  • safe レーティングタグが保守的衣装に引く
  • NL文中の she is slender but has a slightly larger bust が胸元を覆う衣装を発火させる
  • 訓練データの最頻クラスタが偶然タートルネック寄り

Y では NL文から slender but has a slightly larger bust の bust 記述を削除し、ネガティブに turtleneck を追加する。
これでタートルネックが消えるなら、bust 記述と訓練データクラスタの組み合わせが主因。

条件Yの1枚目。3/4 view、白ブラウス+赤ベスト+青リボン、タートルネックなし 条件Yの2枚目。3/4 view、白ブラウス+赤ベスト、タートルネックなし 条件Yの3枚目。3/4 view、白ブラウス+赤ベスト、タートルネックなし 条件Yの4枚目。3/4 view、黒トップス+青リボン、ただし黒のタートルネック寄りでネガが効ききっていない

3/4で タートルネック消失、残り1枚(Y-04)は黒のタートルネック寄りで、ネガに turtleneck を入れても完全には抑え込めていない。
タートルネックが消えた3枚では、代わりに白ブラウス + 赤ベスト + 大きめ青リボンタイの構成が出てきた。
最初これをトキ制服クラスタの一種と読んでいたが、よく見るとトキの制服(紺ジャケット + 白ブラウス + 青ボウタイ + ヘイロー)とは違う。
赤ベスト + 青リボンタイで、ヘイローも出ていない。これは Kanon の制服寄り。
ポジティブの NL文中に like minase nayuki from kanon (game) を入れたままだったので、bust 記述を抜いた瞬間に「名雪の制服」が NL参照経由でこちら側のクラスタとして滲み出してきた。

切り分け結果:

  • タートルネック多発の主因は slightly larger bust の NL記述 + ネガに turtleneck がない、の組み合わせ。bust 記述を抜くだけでタートルネックは消える
  • タートルネックを消した後の衣装は、NL文中の like minase nayuki 参照に引かれて Kanon の制服寄りになる
  • 衣装を完全に自由にしたいなら、bust 記述を抜く + NL のキャラ参照も抜く(ただしインテークも消える) + 衣装を明示指定(t-shirt, dress 等)の併用、まで踏み込む

衣装の引き寄せ先はプロンプトの構成で動く。「金髪 + 青目 + ぱっつん前髪 + リボン + slightly larger bust」 → トキ寄り、「金髪 + 青目 + ぱっつん前髪 + like minase nayuki + bust 記述なし」 → 名雪の制服寄り、と引き寄せ元のキャラが入れ替わる。

条件Z: from above だけにして looking up を抜く

Uでは from above, looking up の組み合わせで顔が幼く見える副作用が出ていた。
looking up を抜いて from above 単独にすれば、カメラだけが上にあって被写体は普通に正面を見る、という構図になるはず。

ポジティブの構図指定は from above, upper body, looking at viewer に変更。
ネガティブに looking up も入れて、視線の上向きを抑止。

条件Zの1枚目。やや見下ろし、頭頂のブレイドが見える、白タートルネック、こめかみ前髪に小インテーク 条件Zの2枚目。やや見下ろし、頭頂ブレイド明確、白Tシャツ 条件Zの3枚目。やや見下ろし、頭頂ブレイドあり、青タンクトップ 条件Zの4枚目。やや見下ろし、頭頂ブレイドあり、白タートルネック+赤襟

4/4でUより自然な俯瞰構図、顔の幼さも抑えられた。
頭頂のハーフブレイドは Uより大きく映る、Wと並ぶ確認しやすさ。
インテークは小〜中、Wと同程度。
構図候補としてはZ(from above 単独)とW(22.5度寄り)が並ぶ。Zは頭頂のブレイドを見せる目的、Wは顔の正面を見せたい目的、と用途で選ぶ。

条件AA: hime cut で正面整合スタイル

Xで low ponytail を試したが、ポニーテール構造は正面viewから物理的に映りにくいという制約があった。
姫カット(hime cut)なら前髪ぱっつん + 鋏で切り揃えた両サイド短め + 後ろ長髪の構造で、正面viewからもヘアスタイルとして識別しやすい、はず。

ポジティブのヘアスタイル指定を hime cut に変更。
NL文も「Her hair is styled in a hime cut, with straight bangs, long sidelocks framing the face, and the rest of the hair flowing down her back.」と書き換え。

条件AAの1枚目。正面、白Tシャツ、姫カット感薄い 条件AAの2枚目。正面、白Tシャツ、笑顔、姫カット明確に出ていない 条件AAの3枚目。正面、グレータートルネック、サイドの切り揃え感弱め 条件AAの4枚目。正面、白Tシャツ、姫カット感あいまい

4枚すべてで正面viewは取れたが、姫カットの特徴(前髪 + 短めの両サイド + 後ろ長髪の3パート構造)は明確に出ていない。
普通のロングストレート + ぱっつん前髪寄りに丸まる。
姫カットなのかぱっつん前髪なのかが画面から判別しにくい状態で、両方ともはっきり出ていない方向に倒れている。
Anima の訓練データに姫カットのクラスタが薄いか、hime cut というタグでの学習サンプルが少ない可能性。

インテークも微小。like minase nayuki NL参照は入れているが、姫カット記述に押されて十分に発火していない。

ヘアスタイル差し替えで正面整合を狙うアプローチは、Anima ではタグごとの学習サンプル量に左右される。hime cut は Xの low ponytail 同様、見せたい要素として制御しにくい。

条件AB: 衣装クラスタを名雪/トキから外す

Y で「bust 記述を抜くと名雪の制服クラスタに引かれる」と分かった。
ベースプロンプトの「金髪 + 青目 + ぱっつん前髪 + 青リボン」の組み合わせがそもそも名雪/トキ的だったので、ここを根本から変えて両方のクラスタから抜け出せるかを試す。

ポジティブを以下に変更:

  • blonde hairbrown hair
  • blue eyesgreen eyes
  • blunt bangswavy bangs
  • blue ribbonred ribbon
  • slender but has a slightly larger bustslender(bust記述を削除)

NL文の like minase nayuki from kanon (game) 参照はそのまま残す(インテーク呼び出しの主軸)。
ネガティブにも minase nayuki, asuma toki (blue archive), blonde hair, blue eyes, blunt bangs, halo, large breasts を追加して両キャラを抑止。

条件ABの1枚目。茶髪+緑目+ウェーブ前髪+赤リボン、ヘイローなし、インテーク微弱 条件ABの2枚目。茶髪+緑目+ウェーブ前髪+赤リボン、グレートップス 条件ABの3枚目。茶髪+緑目+ウェーブ前髪+赤リボン、白Tシャツ 条件ABの4枚目。茶髪+緑目+ウェーブ前髪+赤リボンタイ、白ブラウス+赤リボンタイで名雪制服寄り

4/4でトキクラスタ脱出に成功。ヘイローは消え、青リボン要素も赤リボンに置き換わった。
ただし出てきたキャラは Kanon の複数キャラの要素を 混ぜたブレンド に見える。

  • 髪色(茶髪・ベージュ寄り)+ ハーフアップ → 倉田佐祐理(Kanonのハーフアップキャラ、ベージュ髪+大きなリボン)の特徴に近い
  • 緑目 + ウェーブ前髪 → 美坂香里(Kanon の脇キャラ、茶髪+緑目+ウェーブ前髪)寄り
  • 赤リボンタイ + Kanon 学校制服 → 香里寄りの衣装

つまり香里と佐祐理を 両方ちょっとずつ持ってきた合成 に着地している、と読むのが近い。
(プロンプトに half updo, braid, red ribbon を直接指定したのも、ハーフアップ要素を強化した)

これはトキ発覚の二の舞のバリエーションで、トキの仕様を外したつもりが、like minase nayuki from kanon (game) の NL参照が Kanon ワールドにアンカーしているせいで、Kanon の他のキャラの特徴が滲み出てきた。

インテークは 出ている
4枚すべてでこめかみに前方向きのscoopが立ち上がっていて、J/W/Z より気持ち小さいかな、という程度。
香里・佐祐理どちらもインテーク持ちキャラなので、Kanon ワールド内のキャラ要素を寄せ集めるブレンドの中でも、インテーク特徴自体は連れてこられている。
そもそも Kanon の女性キャラはほぼ全員インテーク持ちで揃っているので、 Kanon感 が出る方向にプロンプトを引いた時点でインテークがおまけで付いてくる構造になっている。
個別キャラに着地しなくても、 Kanon ワールドにアンカーが残っていればインテークは出る、ということ。

ここで一つ仮説が立つ。
like minase nayuki from kanon (game) の NL参照は、 名雪 という個別キャラだけを呼ぶトリガーではなく、 Kanon という作品の女性キャラ集団全体へのアンカー になっている。
そして Kanon は女性キャラがほぼインテーク持ちで揃っている作品で、 Kanon感 が出ること自体がインテーク特徴と密結合している。

  • ベースキャラの外形が名雪(金髪+青目+ぱっつん前髪)と一致 → Kanon 内で名雪に綺麗に着地 → 名雪固有の大インテークが出る(J/H/W/Z)
  • ベースキャラの外形が Kanon 内の複数キャラの特徴を部分的に持つ(AB の茶髪+緑目+ウェーブ前髪+ハーフアップ → 香里 + 佐祐理 のブレンド) → 特定キャラに着地せず Kanon ワールド内の合成になるが、構成キャラ群がインテーク持ちで揃っているのでインテークは出る、サイズは J よりやや小さい程度(AB)
  • ベースキャラの外形が Kanon 集団から完全に外れる場合(仮想的に Kanon ワールドのインテーク持ちキャラ全員と類似度が低い構成) → 引き寄せ自体が弱まってインテークも消えるはず

つまり NL参照は「個別キャラの特徴を引っ張る」というより、「参照キャラを通じてその作品全体の特徴量集合へアクセスする」フックになっている。
Kanon 集団のように、 特定の特徴(インテーク)が集団全体のprior として焼き付いているなら、 NL参照1つでその特徴を引き出せる。
逆に、特徴が集団に均一でない作品(例えば FGO のように多様な髪型のキャラ集団)を参照しても、集団priorとしての引き寄せは弱くなる。

これは条件Aでの「自分の仕様が偶然トキ」だった発見の Kanon 版で、Anima のクラスタ判定が「単独キャラタグ」だけでなく「作品ワールド + 集団prior + 外形マッチング」の3層で動いている。
逆に言えば、汎用キャラに移植したい特徴があるなら、その特徴を集団priorとして持っている作品から参照キャラを選ぶ方が安定する。Kanon は女性キャラ集団のインテーク prior が強いので、 NL参照のフック先として素直に機能する。

キャラ知名度とアイデンティティ拘束の関係

条件Vで「Nero のアイデンティティは Nayuki よりも剥がしにくい」という結果が出ていた。
ここで仮説として、訓練データ中の知名度・サンプル数が拘束の強度を決めているという見方がある。

  • 名雪(Kanon、2000年代初頭の美少女ゲー)は古いキャラで、ネット民の認知はあっても一般的知名度は今のアニメ・ゲームより低い。Danbooru などの二次創作画像も少なめ
  • ネロ・クラウディウス(Fate/Extra、Fate/Grand Order)は2010年代以降のキャラで、FGO の主要キャラとして二次創作が大量にある

訓練データ中の画像枚数が多いほど、alice schuberg nero claudius のようなキャラタグから引っ張られる identity の解像度が上がり、ネガで剥がそうとしても残りやすい、と考えると整合する。

これは実験で直接測ったわけではなく、出力を眺めて立てた仮説。
正確に測るなら、別キャラ複数で同じJ recipeを回して「intake引き出しやすさ」と「アイデンティティ剥がし難度」をクロスして比べる、というステップが要る。

条件AC: W + Z 組み合わせの斜め上から構図

W(22.5度寄り)とZ(from above 単独)の構図を組み合わせて、3点を同時に取りに行く。

  • 頭頂のハーフブレイドが画面に入る(Zで取れていた)
  • 顔がほぼ正面(Wで取れていた)
  • インテークが中サイズ以上で見える

ポジティブの構図指定を from above, slightly turned to the side, almost front view, upper body, looking at viewer に。
ネガティブに looking up も入れて被写体が見上げる構図を抑止、three quarters view も入れて過剰回転を抑止。

条件ACの1枚目。斜め上から、ほぼ正面、頭頂に編み込み+青リボン、こめかみに中インテーク、白ブラウス+グレーベスト 条件ACの2枚目。斜め上から、ほぼ正面、頭頂編み込みあり、白タートルネック 条件ACの3枚目。斜め上から、ほぼ正面、頭頂編み込みあり、白Tシャツ 条件ACの4枚目。斜め上から、ほぼ正面、頭頂編み込み+青リボン、白ブラウス+グレーベスト

4/4で3点同時達成。
頭頂のハーフブレイドの編み込みと青リボンが画面に入り、顔は looking up なしの自然な角度で映り、こめかみのインテークも中サイズで確認できる。
副作用も少なく、Uで出ていた顔の幼さも抑えられている。
Animaで「インテーク + 構図 + 髪型細部」を同時に満たす実用最適点として、AC(斜め上から + ほぼ正面 + J recipe)を採用するのが現状の落としどころ。

ちなみに本記事のヒーロー画像も、結果的にこの AC相当の斜め上から構図に近い。インテークありの実用キャラ絵をAnimaで出す現実的な落とし所が、自然とここに収束した形になる。

キャラタグ吸収という同じパターン

この挙動は、自分のキャラLoRA訓練で見ていたパターンの推論側を見ている形になる。

WAI-Anima向けキャラLoRAの学習キャプションを自然言語+髪型タグで書き直した記録で、kanachan トリガーに髪型を吸収させたら、推論時に kanachan, twin tails のように髪型を変えようとしても元のサイドポニーに引っ張られて変えられなかった。
解決策は、髪型を side ponytail という独立Danbooruタグとして学習データに明示し、キャラタグ側にはキャラ核心(顔・髪色・目色)だけを吸収させること。
独立タグなら推論で切り替えが効くが、キャラタグに焼き付いた特徴はキャラと一緒に固定される、という境界だった。

今回のインテークは、その「キャラタグ吸収」が Anima ベースモデルのレベルで起きているのを、推論側から見ている形になる。
minase nayuki というキャラタグがインテーク形状をアイデンティティごと持ってきていて、独立したタグ hair intakes や自然言語の intakes では同等に活性化しない。

タグ列とNL書式で発火経路が違うこと自体はキャラLoRAを12,000ステップまで延ばした検証でも見ていた。
今回の hair intakes は、タグ書式とNL書式で発火するかしないかの境界に乗る特徴になっている。

参考