AnimaのプロンプトをQwen Max・Claude・Codexに書かせて60枚比較、Qwen同士の相性仮説は外れた
目次

Anima(Anima-Base)はQwen-DiT系で、テキストエンコーダもQwen3。だったら生成前の「日本語の指示を英語プロンプトに整える」工程もQwenのLLMにやらせれば、同系統ならではの語彙相性が出るんじゃないか。ChatGPTと雑談していてこの仮説が出てきて、ちょうど3キャラ合体LoRA(trio_v2)が手元にあるので、これで確かめることにした。
比較したのはQwen3.7 Max・Claude・Codexの3系統。同じ日本語のシーン指示を渡してAnima向けの英語プロンプトを書かせ、同一シード・同一設定で生成して、どれだけ指示通りの絵が出るかを採点する。体感で語らず、10シーン×3LLM×ブリーフ2種の60枚で比べた。
検証環境
| 区分 | 内容 |
|---|---|
| 生成マシン | M1 Max 64GB ローカルComfyUI |
| ベースモデル | Anima-Base v1.0 |
| キャラLoRA | anima-trio-v2 ep143(3キャラ合体、weight 1.0) |
| 生成の共通条件 | Turbo LoRA 8-step / er_sde / simple / cfg1.0 / 1024×1024 |
| シード | シーンごとに固定(同一シーンなら3LLM・全ブリーフで同じシード) |
| 変換LLM | Qwen3.7 Max(ModelScope経由のOpenAI互換API)/ Claude(claude -p)/ Codex(codex exec) |
| シーン数 | 10(単体2・2人4・3人4) |
| ブリーフ | 2種(フリーフォーム / 厳格フォーマッタ式、後述) |
生成側はtrio LoRA記事で確定させた実用ラインをそのまま使う。変えるのは変換LLMとブリーフだけで、生成側の設定は一切いじらない。
実験の組み方
流れは単純で、同じ日本語指示+同じブリーフを3つのLLMに渡し、{"positive": "...", "negative": "..."} のJSONだけを返させる。それをComfyUIに流して、出た絵をシーン指示と突き合わせる。
flowchart TD
A[日本語シーン指示 10本] --> B[共通ブリーフに埋め込み]
B --> C1[Qwen3.7 Max<br/>OpenAI互換API]
B --> C2[Claude<br/>claude -p]
B --> C3[Codex<br/>codex exec]
C1 --> D[JSON形式の<br/>positive / negative]
C2 --> D
C3 --> D
D --> E[ComfyUIで生成<br/>共通設定・シーン固定シード]
E --> F[学習データの本物参照と<br/>要素ごとに照合して採点]
条件を揃えるために気をつけたことがいくつかある。
- Claudeは
claude -pの非対話モードを、プロジェクト外のニュートラルなディレクトリで実行する。作業中の会話やCLAUDE.mdに書いてあるtrio LoRAの知見が混入すると、Claudeだけカンニングになる - Codexは
codex execにstdinパイプでプロンプトを渡す - ネガティブもLLM自身に書かせる。ネガティブ設計込みでの「プロンプトを整える力」の比較にする
最初のブリーフ(フリーフォーム)はこれ。モデルの基本情報とキャラの正式な見た目だけ教えて、プロンプトの構造や言い回しは各LLMの裁量に任せる。
あなたはアニメ画像生成モデル用のプロンプトエンジニアです。
以下の日本語のシーン指示を、画像生成モデルに渡す英語プロンプトに変換してください。
モデル情報:
- モデルは Anima (Anima-Base v1.0)。Qwen-DiT系のアニメ特化モデルで、テキストエンコーダはQwen3
- danbooruタグと自然文の両方を解釈する
- キャラクターLoRA (anima-trio-v2) を併用する。以下の3キャラの見た目はトリガー語に学習済み
- kanachan: 茶髪のサイドポニーテール、アホ毛、青いシュシュ、茶色い目、小柄
- keichan: 長い金髪、ぱっつん前髪、ヘアインテーク、青いリボン、青い目、長身
- koharu: 黒髪ショート、赤い目、中背
- クオリティタグ (masterpiece, best quality など) を先頭に付ける慣習がある
シーン指示に書かれた内容(人数・誰がいるか・位置・服装・持ち物・ポーズ・背景)を過不足なく反映してください。
出力形式: 次のJSONだけを出力する。説明文やコードフェンスは不要。
{"positive": "...", "negative": "..."}
シーンは採点軸(人数・左右・役割・排他所持・前後配置・身長差)を割り振って10本作った。
| ID | 指示の要旨 | 難度の軸 |
|---|---|---|
| s01 | かな単体、教室で頬杖、窓の外に視線、セーラー服 | 視線 |
| s02 | けい左・こはる右、手繋ぎ、私服ワンピース | 左右・接触 |
| s03 | 3人ベンチ、中央のかなだけ両手にソフトクリーム | 排他所持 |
| s04 | かな×けいハグ、身長差でかなが見上げる | 接触・身長差 |
| s05 | こはる掃除中、かなが後ろから忍び寄る | 役割・前後配置 |
| s06 | 3人夏祭り浴衣、こはるだけ金魚袋 | 排他所持 |
| s07 | けい単体、雨、青い傘、振り返り | 小道具 |
| s08 | かな右・こはる左、背中合わせ腕組み | 左右・接触 |
| s09 | 3人ジャンプ、制服、全員笑顔 | 3人同一動作 |
| s10 | かな・こはる対戦、けいだけ後ろで手ぶら観戦 | 役割・排他 |
採点は出てきた画像を学習データの本物参照と要素ごとに突き合わせる方式で、プロンプトの文面がどれだけ正しくても、絵に出ていなければ不一致として数える。
簡単なシーンでは差が出ない
先に差が出なかった側から。単体と「左右指定+接触」までは、3系統ともほぼ指示通りに出せた。
s07(けい単体・雨・青い傘・振り返り)は3系統ほぼ同じ絵になる。左からQwen・Claude・Codex。
s08(かな右・こはる左・背中合わせ腕組み)も、左右・腕組み・不満顔・白背景まで3系統とも通った。「背中合わせ」だけはどの系統も横並びで肩を寄せる程度に弱まる。
s02(けい左・こはる右・手繋ぎ・私服ワンピース)も3系統とも人数・左右・手繋ぎ・身長差まで指示通り。差が出たのは指示にない部分の埋め方で、Qwenは街並み背景を足し、Claudeは白背景のまま、Codexはワンピースに色を付けた。
s01(かな単体・頬杖・窓の外に視線)で最初の差が出た。「窓の外を見ている」を絵にできたのはClaudeだけで、プロンプトに profile, looking away を足していた。QwenとCodexは looking out the window と書いただけで、絵は正面向きになった。視線のような構図情報は、状況の説明文のままでは0.6Bのエンコーダに届かず、profile のような構図タグまで翻訳されて初めて絵に出た。
難シーンの崩れ方はLLMごとに癖が出る
2人の接触+身長差になると差が開き始める。s04(かな×けいハグ)で、Qwen版だけけいが茶髪化して「かなが2人ハグしている」絵になった。
プロンプトを比べると原因がはっきりする。Qwenは 2girls, kanachan, keichan, hugging, ... とトリガーを並べただけでポーズ句を厚く書き、キャラの見た目記述がゼロ。Claudeは kanachan is a petite girl with brown hair, side ponytail, ...; keichan is a tall girl with long blonde hair, ... とセミコロン区切りで1人ずつ記述していた。これはtrio記事で確立した2〜3人向けの書き方と同じ構造で、Claudeはブリーフに書いていないのに自力でこの形に辿り着いている。Codexも記述は薄いがけいは保った。
s05(こはる掃除中・かなが後ろから忍び寄る)は役割の割り当てで差が出た。掃除道具をこはるだけに持たせられたのはClaude版だけで、Qwen版はこはるがデッキブラシ・かなが竹箒の2人持ち、Codex版は役割が逆転してかなが箒を持った。ただしそのClaude版も、こはるが持っているのは箒ではなく泡のついたデッキブラシで、小道具の中身までは合っていない。「後ろから忍び寄る」はどの版も出せず、3系統とも横並びになる。
3人になるとキャラ消失が始まる。s09(3人ジャンプ・全員同一動作)では、金髪のけいが残ったのはQwen版だけで、ClaudeとCodexの版はけいが消えて黒髪ショートのこはるが2人になった。ただし残ったQwen版のけいも、髪が短くなりリボンが赤化して、かなのアホ毛まで移った不完全な出力で、保持と呼べる状態ではない。プロンプトは3系統ともトリガーのみのほぼ同型なので、ここはプロンプトの中身の差では説明がつかず、運の要素が大きい。
s03(中央のかなだけ両手にソフトクリーム)ではClaude版だけかな本人が崩壊して黒髪化し、けいにアホ毛が移った。QwenとCodexの版は3人とも本人のまま。同じLLMでもシーンによってうまく出たり壊れたりで、フリーフォームだと安定しない。
s10(かな・こはるが対戦、けいだけ後ろで手ぶら観戦)は3人+役割分担の最難関で、フリーフォームで役割を守れたのはCodex版だけ。かな・こはるが対戦してけいが手ぶらで観戦、という割り当ては正しいが、そのけいは頭がフレーム外に切れていて、画像として完全ではない。Claude版はこはるが複製されて4人になり、3人がコントローラーを持った。
厳格フォーマッタ式ブリーフで人数ロックを強制する
フリーフォームの崩れを受けて、2周目は「LLMを創作者ではなくフォーマッタに落とす」ブリーフで同じ10シーンを回した。禁止事項を列挙し、人数ロックと不在キャラのネガ入れを強制する。
あなたは画像生成プロンプトの作家ではなく、指定条件の検査付きフォーマッタです。
創作、改善、要約、言い換え、補完は禁止です。
(モデル情報はフリーフォーム版と同一)
禁止事項。1つでも破ったらその出力は失敗です:
- シーン指示にないキャラクターを追加してはいけない
- 指定された人数を増減してはいけない
- 指定された左右・前後の位置を変更・省略してはいけない
- 指定された服装・持ち物・背景を変更・省略してはいけない
- シーン指示に書かれた要素を要約・短縮・省略してはいけない
- 「自然にする」「より良くする」ための要素の追加・補完をしてはいけない
- シーンに登場しないキャラのトリガー語を positive に書いてはいけない
positive には必ず含めること:
- 人数ロック (例: exactly two girls, only kanachan and keichan, no other people)
- シーン指示に書かれた全要素(誰が・位置・服装・持ち物・ポーズ・表情・背景)
negative には必ず含めること:
- 人数違い・余計な人物の禁止 (extra characters, wrong number of girls など)
- 文字・吹き出し・効果音の禁止 (text, speech bubble, sound effects など)
- 登場しないキャラのトリガー語
フリーフォームで崩壊していたs03のClaude版は、この厳格版では同じシードでかなが本人に戻った。
最難関だったs10は3系統とも大幅に改善して、かな・こはるがプレイヤー、けいがソファの後ろ、という構造まで全系統が再現した。フリーフォームで4人に増えたClaude版も3人に戻っている。
副作用も2種類あった。
1つ目は工夫が消えること。フリーフォームでClaudeが出せていたs01の「窓の外に視線」は、厳格版では3系統とも出なくなった。禁止事項で縛ると profile のような気の利いた構図タグへの翻訳がなくなり、要素を字義通りに並べるだけになるため。
2つ目は字義通り化で、s05では「掃除」からQwen版とCodex版がメイド服(エプロン+ヘッドドレス)を連想して、指定していない服に変わった。
s09のけいは厳格版でも安定しない。Claude版は金髪・青目・青リボンの娘が戻ったが、頭にはかなのアホ毛が乗って髪も短く、けいというより金髪のかなに近い。Qwen版はフリーフォームで残っていた金髪が今度は消え、Codex版は消えたまま。結局s09は6通り(3LLM×2ブリーフ)のどれも完全なけいを出せておらず、トリガーのみで3人が同一動作をする構図でのキャラ保持は、ブリーフでもLLMでも制御できず運任せのままだった。
どう書いても直らない崩れがある
60枚を通して、プロンプト側では一度も直らなかった崩れが2種類あった。LLMを替えてもブリーフを替えても結果が変わらなかったので、Anima+trio LoRA側の限界と判断している。
1つ目は排他所持。「1人だけが持つ」「1人だけ持たない」が一度も成立せず、s03のソフトクリームもs06の金魚袋もs10のコントローラーも、全員に配られる。s06では指名したこはるではなくかなに袋が移る持ち主の入れ替わりも起きた。
s10の厳格版も、役割構造まで直った後の「けいだけ手ぶら」だけは3系統とも守れず、観戦のけいまでコントローラーを握った。フリーフォームのs06も3系統とも全員が袋持ちで、これはtrio記事の掃除シーンで「個別アクションの割り当ては3人同時だとまだ弱い」と書いた挙動そのもの。
2つ目は前後配置で、s05の「後ろから忍び寄る」は6通り(3LLM×2ブリーフ)すべて横並びになった。s08の背中合わせも同様に弱い。trio記事で確かめた「密着で成立するのは分離して積み重なる絡みまで」の線と一致していて、排他所持と前後配置はプロンプトの書き直しでは直らず、ControlNetかインペイント側の課題として残った。
Qwen同士の相性は出なかった
20シーン分の比較で、Qwen3.7 Maxのプロンプトだけが通ってClaudeやCodexでは通らない、という語彙相性らしき現象は一度も起きなかった。差が出た箇所はすべて「キャラごとの見た目記述を書いたか」「構図タグに翻訳したか」「人数ロックを入れたか」というプロンプト構造の問題で、これはどのLLMでも書ける。
受け手のテキストエンコーダがQwen3 0.6Bと小さいことが理由だと考えている。変換側がどれだけQwenらしい言い回しを選んでも、0.6Bのエンコーダにはその違いを受け取るだけの容量がなく、結局は「短く・具体的なタグと記述で・構造を揃えて」書けたかどうかだけが絵に反映される。
3系統の癖をまとめるとこうなった。
| 系統 | 癖 |
|---|---|
| Qwen3.7 Max | 最も簡素なタグ列を書く。絵は安定して綺麗だが、キャラ記述や視線・役割の細部を落としやすい |
| Claude | 難しい指示を絵に反映できた回数が最多(視線の構図タグ翻訳、役割の保持)。一方でs03のような崩壊もあり、出力が二重JSONになる事故も1回。厳格ブリーフとの改善幅が最も大きい |
| Codex | キャラ同一性が最も安定。s10の役割分担を唯一フリーフォームで守った。突出もしないが大崩れもしない |