技術約11分で読めます

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
キャラLoRAanima-trio-v2 ep143(3キャラ合体、weight 1.0)
生成の共通条件Turbo LoRA 8-step / er_sde / simple / cfg1.0 / 1024×1024
シードシーンごとに固定(同一シーンなら3LLM・全ブリーフで同じシード)
変換LLMQwen3.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けい左・こはる右、手繋ぎ、私服ワンピース左右・接触
s033人ベンチ、中央のかなだけ両手にソフトクリーム排他所持
s04かな×けいハグ、身長差でかなが見上げる接触・身長差
s05こはる掃除中、かなが後ろから忍び寄る役割・前後配置
s063人夏祭り浴衣、こはるだけ金魚袋排他所持
s07けい単体、雨、青い傘、振り返り小道具
s08かな右・こはる左、背中合わせ腕組み左右・接触
s093人ジャンプ、制服、全員笑顔3人同一動作
s10かな・こはる対戦、けいだけ後ろで手ぶら観戦役割・排他

採点は出てきた画像を学習データの本物参照と要素ごとに突き合わせる方式で、プロンプトの文面がどれだけ正しくても、絵に出ていなければ不一致として数える。

簡単なシーンでは差が出ない

先に差が出なかった側から。単体と「左右指定+接触」までは、3系統ともほぼ指示通りに出せた。

s07(けい単体・雨・青い傘・振り返り)は3系統ほぼ同じ絵になる。左からQwen・Claude・Codex。

s07 Qwen版。けいが雨の路地で青い傘をさして振り返る。金髪・青リボン・制服 s07 Claude版。ほぼ同じ構図で青い傘と振り返り s07 Codex版。同じく青い傘・雨・振り返りが揃う

s08(かな右・こはる左・背中合わせ腕組み)も、左右・腕組み・不満顔・白背景まで3系統とも通った。「背中合わせ」だけはどの系統も横並びで肩を寄せる程度に弱まる。

s08 Qwen版。左こはる・右かなが腕組みで不満顔。白背景。左右指定通り s08 Claude版。同じ配置と表情 s08 Codex版。同じ配置。3系統とも背中合わせだけは横並びに弱まる

s02(けい左・こはる右・手繋ぎ・私服ワンピース)も3系統とも人数・左右・手繋ぎ・身長差まで指示通り。差が出たのは指示にない部分の埋め方で、Qwenは街並み背景を足し、Claudeは白背景のまま、Codexはワンピースに色を付けた。

s02 Qwen版。けい左・こはる右で手を繋いで歩く。指示にない街並み背景を補完 s02 Claude版。同じ配置で白背景のまま s02 Codex版。同じ配置でワンピースが水色とピンクになる

s01(かな単体・頬杖・窓の外に視線)で最初の差が出た。「窓の外を見ている」を絵にできたのはClaudeだけで、プロンプトに profile, looking away を足していた。QwenとCodexは looking out the window と書いただけで、絵は正面向きになった。視線のような構図情報は、状況の説明文のままでは0.6Bのエンコーダに届かず、profile のような構図タグまで翻訳されて初めて絵に出た。

s01 Claude版。横顔で窓の外に視線が向いている。profileタグを足したのが決め手 s01 Qwen版。頬杖と教室は正しいが視線が正面のまま

難シーンの崩れ方はLLMごとに癖が出る

2人の接触+身長差になると差が開き始める。s04(かな×けいハグ)で、Qwen版だけけいが茶髪化して「かなが2人ハグしている」絵になった。

s04 Qwen版。2人とも茶髪でけいが消えている。長身側がサイドポニーになり身長関係も逆転 s04 Claude版。金髪のけいが屈んでかなを抱きしめ、かなが見上げる。指示通り

プロンプトを比べると原因がはっきりする。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も記述は薄いがけいは保った。

s04 Codex版。けい保持でハグと身長差は出るが、見上げは弱い

s05(こはる掃除中・かなが後ろから忍び寄る)は役割の割り当てで差が出た。掃除道具をこはるだけに持たせられたのはClaude版だけで、Qwen版はこはるがデッキブラシ・かなが竹箒の2人持ち、Codex版は役割が逆転してかなが箒を持った。ただしそのClaude版も、こはるが持っているのは箒ではなく泡のついたデッキブラシで、小道具の中身までは合っていない。「後ろから忍び寄る」はどの版も出せず、3系統とも横並びになる。

s05 Claude版。掃除道具はこはるだけが持つが、箒ではなくデッキブラシ。かなは両手上げで、忍び寄りではなく横並び s05 Qwen版。こはるがデッキブラシ・かなが竹箒の2人持ちで並んで掃除。役割が消えた s05 Codex版。かなが箒・こはるが手上げで役割が逆転

3人になるとキャラ消失が始まる。s09(3人ジャンプ・全員同一動作)では、金髪のけいが残ったのはQwen版だけで、ClaudeとCodexの版はけいが消えて黒髪ショートのこはるが2人になった。ただし残ったQwen版のけいも、髪が短くなりリボンが赤化して、かなのアホ毛まで移った不完全な出力で、保持と呼べる状態ではない。プロンプトは3系統ともトリガーのみのほぼ同型なので、ここはプロンプトの中身の差では説明がつかず、運の要素が大きい。

s09 Qwen版。3人ジャンプで金髪のけいらしき娘は残るが、髪が短くリボンは赤化し、かなのアホ毛まで移っている s09 Codex版。左右が両方黒髪ショートになりけいが消えている

s03(中央のかなだけ両手にソフトクリーム)ではClaude版だけかな本人が崩壊して黒髪化し、けいにアホ毛が移った。QwenとCodexの版は3人とも本人のまま。同じLLMでもシーンによってうまく出たり壊れたりで、フリーフォームだと安定しない。

s03 Claude版フリーフォーム。中央のかなが黒髪化し、左のけいの髪色もオレンジがかってアホ毛が移っている

s10(かな・こはるが対戦、けいだけ後ろで手ぶら観戦)は3人+役割分担の最難関で、フリーフォームで役割を守れたのはCodex版だけ。かな・こはるが対戦してけいが手ぶらで観戦、という割り当ては正しいが、そのけいは頭がフレーム外に切れていて、画像として完全ではない。Claude版はこはるが複製されて4人になり、3人がコントローラーを持った。

s10 Claude版フリーフォーム。こはるが左右に複製されて4人になり、3人がコントローラーを持つ s10 Codex版フリーフォーム。かな・こはるが対戦しけいが後ろで手ぶら観戦。役割は完璧だがけいの頭がフレーム外

厳格フォーマッタ式ブリーフで人数ロックを強制する

フリーフォームの崩れを受けて、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版は、この厳格版では同じシードでかなが本人に戻った。

s03 Claude版フリーフォーム(再掲)。かなが黒髪化 s03 Claude版厳格ブリーフ。同一シードでかなが茶髪サイドポニーに戻り、3人とも本人で困り顔と両手のコーンも出る

最難関だったs10は3系統とも大幅に改善して、かな・こはるがプレイヤー、けいがソファの後ろ、という構造まで全系統が再現した。フリーフォームで4人に増えたClaude版も3人に戻っている。

s10 Claude版厳格ブリーフ。かな・こはるが前でコントローラー、けいが後ろ。3人とも本人 s10 Codex版厳格ブリーフ。同じ役割構造が再現され、けいの頭も今回はフレーム内

副作用も2種類あった。

1つ目は工夫が消えること。フリーフォームでClaudeが出せていたs01の「窓の外に視線」は、厳格版では3系統とも出なくなった。禁止事項で縛ると profile のような気の利いた構図タグへの翻訳がなくなり、要素を字義通りに並べるだけになるため。

2つ目は字義通り化で、s05では「掃除」からQwen版とCodex版がメイド服(エプロン+ヘッドドレス)を連想して、指定していない服に変わった。

s05 Qwen版厳格ブリーフ。2人がメイド服姿になり箒も2本のまま。掃除からの連想で服が変わった

s09のけいは厳格版でも安定しない。Claude版は金髪・青目・青リボンの娘が戻ったが、頭にはかなのアホ毛が乗って髪も短く、けいというより金髪のかなに近い。Qwen版はフリーフォームで残っていた金髪が今度は消え、Codex版は消えたまま。結局s09は6通り(3LLM×2ブリーフ)のどれも完全なけいを出せておらず、トリガーのみで3人が同一動作をする構図でのキャラ保持は、ブリーフでもLLMでも制御できず運任せのままだった。

s09 Claude版厳格ブリーフ。金髪・青目・青リボンの娘は戻るが、かなのアホ毛が移り髪も短く、完全なけいではない s09 Qwen版厳格ブリーフ。フリーフォームでは残っていた金髪が今度は消え、かなが2人になる

どう書いても直らない崩れがある

60枚を通して、プロンプト側では一度も直らなかった崩れが2種類あった。LLMを替えてもブリーフを替えても結果が変わらなかったので、Anima+trio LoRA側の限界と判断している。

1つ目は排他所持。「1人だけが持つ」「1人だけ持たない」が一度も成立せず、s03のソフトクリームもs06の金魚袋もs10のコントローラーも、全員に配られる。s06では指名したこはるではなくかなに袋が移る持ち主の入れ替わりも起きた。

s06 Claude版厳格ブリーフ。こはるだけのはずの金魚袋を3人全員が持っている s06 Qwen版厳格ブリーフ。袋の持ち主がかなに移り、けいはポイ持ちで目の色も緑化

s10の厳格版も、役割構造まで直った後の「けいだけ手ぶら」だけは3系統とも守れず、観戦のけいまでコントローラーを握った。フリーフォームのs06も3系統とも全員が袋持ちで、これはtrio記事の掃除シーンで「個別アクションの割り当ては3人同時だとまだ弱い」と書いた挙動そのもの。

s06 Qwen版フリーフォーム。けい・かなが袋持ちでこはるがポイ持ち。持ち主が逆転 s06 Claude版フリーフォーム。3人全員が袋持ち s06 Codex版フリーフォーム。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の役割分担を唯一フリーフォームで守った。突出もしないが大崩れもしない

参考リンク