論文イラストレーション Image2 は何をしますか?
各レビュアースロットの前に、選択可能なレビュアーに従ってください: 呼び出しを解決 →
.aris/reviewer.json→ Claude Code デフォルト (Codex MCP) をreviewer_route.pyで正規のヘルパーリゾルバーを通して行い、このスロットの ティア、新しいコンテキスト、ソース/画像入力、決定論的ゲートを保持します。 以下の Codex の例/pin はbackend=codexにのみ適用されます。他のルートは独自の 最初の呼び出し/応答契約を使用します。ルートと実際に返された ID を保存してください。 利用できない選択はREVIEW_UNAVAILABLEです。実際のファミリー/完了/スコープから受入を分類します。 呼び出し元のレビュアー/モデル/努力のオーバーライドをレビュアーを保持する子に転送します。 生成ワーカーは変更されません。
Claude をプランナー/レビュアーとして、ローカルの Codex アプリサーバー MCP ブリッジをラスターレンダラーとして使用して、査読品質の論文図を生成します。
中核設計思想
┌──────────────────────────────────────────────────────────────────────────┐
│ マルチステージ反復ワークフロー │
├──────────────────────────────────────────────────────────────────────────┤
│ │
│ ユーザーリクエスト │
│ │ │
│ ▼ │
│ ┌─────────────┐ │
│ │ Claude │ ◄─── ステップ 1: リクエストを解析し、初期プロンプトを作成 │
│ │ (プランナー)│ - コンポーネント、ラベル、データフローを抽出 │
│ │ │ - 論文対応の図の概要を記述 │
│ └──────┬──────┘ │
│ │ │
│ ▼ │
│ ┌─────────────┐ │
│ │Claude/Codex │ ◄─── ステップ 2: レイアウト記述を最適化 │
│ │ レイアウト │ - コンポーネントの配置を洗練 │
│ │ レビュー │ - スペーシングとグループ化を最適化 │
│ └──────┬──────┘ │
│ │ │
│ ▼ │
│ ┌─────────────┐ │
│ │Claude/Codex │ ◄─── ステップ 3: CVPR/NeurIPS スタイル検証 │
│ │ スタイル │ - パレット、矢印、ラベル基準を確認 │
│ │ チェック │ - レンダリング前にプロンプトを調整 │
│ └──────┬──────┘ │
│ │ │
│ ▼ │
│ ┌─────────────┐ │
│ │ codex-image2│ ◄─── ステップ 4: ブリッジを介したネイティブ画像生成 │
│ │ MCP ブリッジ │ - generate_start / generate_status を呼び出す │
│ │ + アプリサーバー│ - ネイティブの imageGeneration 出力のみを受け入れる │
│ └──────┬──────┘ │
│ │ │
│ ▼ │
│ ┌─────────────┐ │
│ │ Claude │ ◄─── ステップ 5: 厳格な視覚レビュー + スコア (1-10) │
│ │ (レビュアー) │ - 論理、ラベル、矢印、美学を検証 │
│ │ 厳格! │ - 不明瞭または論文準備ができていない図を却下 │
│ └──────┬──────┘ │
│ │ │
│ ▼ │
│ スコア ≥ 9? ──YES──► 承認&出力 │
│ │ │
│ NO │
│ │ │
│ ▼ │
│ 具体的な改善フィードバックを生成 ──► ステップ 2 にループバック │
│ │
└──────────────────────────────────────────────────────────────────────────┘
定数
-
RENDERER =
codex-image2— ローカルの Codex アプリサーバーを介して公開されるネイティブ画像生成ブリッジ -
OPTIONAL_TEXT_CRITIC =
mcp__codex__codex— レイアウト/スタイルチェック用のオプションのテキストのみのセカンドオピニオン -
MAX_ITERATIONS = 5 — 最大改善ラウンド数
-
TARGET_SCORE = 9 — 最小許容スコア (1-10)
-
OUTPUT_DIR =
figures/ai_generated/— 出力ディレクトリ -
TEXT_LANGUAGE =
English— ユーザーが別途要求しない限り、デフォルトの図テキスト言語 -
NATIVE_IMAGE_REQUIREMENT =
strict— ネイティブのimageGeneration出力のみを受け入れ、シェル/Python フォールバックを拒否 -
IMAGE2_HELPER — 正規名
paper_illustration_image2.py、shared-references/integration-contract.md§2 (ポリシー A — スキルローカルゲート) に従って解決されます。フェーズ 3.2 (アーキテクチャ C) により、正規の実装はskills/paper-illustration-image2/scripts/に移動しました。tools/paper_illustration_image2.pyはos.execvシムとして残り、レガシーリゾルバーレイヤーが再インストールなしで動作し続けられるようにします。以下で解決します:# レイヤー 0: 自己完結型 (CC 1.0+ は $CLAUDE_SKILL_DIR を公開します)。 IMAGE2_HELPER="" if [ -n "${CLAUDE_SKILL_DIR:-}" ] && [ -f "$CLAUDE_SKILL_DIR/scripts/paper_illustration_image2.py" ]; then IMAGE2_HELPER="$CLAUDE_SKILL_DIR/scripts/paper_illustration_image2.py" fi # レイヤー 1-4: tools/paper_illustration_image2.py のシムを介した共有ランタイムチェーン。 if [ -z "$IMAGE2_HELPER" ]; then cd "$(git rev-parse --show-toplevel 2>/dev/null || pwd)" || exit 1 if [ -z "${ARIS_REPO:-}" ] && [ -f .aris/installed-skills.txt ]; then ARIS_REPO=$(awk -F'\t' '$1=="repo_root"{print $2; exit}' .aris/installed-skills.txt 2>/dev/null) || true fi if [ -z "${ARIS_REPO:-}" ] && [ -f "$HOME/.aris/repo" ]; then ARIS_REPO=$(cat "$HOME/.aris/repo" 2>/dev/null) || true fi IMAGE2_HELPER=".aris/tools/paper_illustration_image2.py" [ -f "$IMAGE2_HELPER" ] || IMAGE2_HELPER="tools/paper_illustration_image2.py" [ -f "$IMAGE2_HELPER" ] || { [ -n "${ARIS_REPO:-}" ] && IMAGE2_HELPER="$ARIS_REPO/tools/paper_illustration_image2.py"; } [ -f "$IMAGE2_HELPER" ] || IMAGE2_HELPER="" fi [ -z "$IMAGE2_HELPER" ] && { echo "エラー: paper_illustration_image2.py を解決できませんでした (レイヤー 0: \$CLAUDE_SKILL_DIR/scripts/; レイヤー 1-4: .aris/tools/, tools/, \$ARIS_REPO/tools/, \$ARIS_REPO/tools/ (via ~/.aris/repo))." >&2 echo " /paper-illustration-image2 は続行できません。修正: bash tools/install_aris.sh または smart_update.sh を再実行するか (~/.aris/repo を更新)、正規のスクリプトを \$ARIS_REPO/skills/paper-illustration-image2/scripts/ からコピーしてください。" >&2 exit 1 }以下のすべての呼び出しでは
python3 "$IMAGE2_HELPER" <サブコマンド>を使用します。
CVPR/ICLR/NeurIPS トップ会議スタイルガイド
「CVPR スタイル」の実際の意味:
視覚基準
- クリーンな白背景 — 非常に控えめでない限り、装飾的なパターンやグラデーションは避ける
- サンセリフフォント — Arial、Helvetica、または同様にクリーンな論文向けタイポグラフィ
- 控えめなカラーパレット — 虹色ではなく、調整された 3~5 色を使用
- 印刷対応 — グレースケールでも理解可能であること
- プロフェッショナルな境界線 — 細めから中程度、クリーンで一貫性があること
レイアウト基準
- 水平フロー — パイプラインのデフォルトは左から右
- 明確なグループ化 — 関連モジュールにはスペースまたは控えめなグループ化ボックスを使用
- 一貫したサイジング — 類似コンポーネントは類似サイズにする
- バランスの取れたホワイトスペース — 窮屈すぎず、まばらすぎもしないレイアウトを避ける
矢印基準 (最も重要)
- 太いストローク — 論文を拡大縮小した後も矢印が視認できること
- 明確な矢先 — 大きく、間違いようのない矢先
- 暗い色 — 黒または濃い灰色の矢印を推奨
- ラベル付き — 重要な矢印には、何が流れているかを示すこと
- 交差なし — 可能な限り交差を避けるために図を再構成すること
- 正しい方向 — 矢印は正しいターゲットを指すこと
視覚的魅力 (アカデミックプロフェッショナルスタイル)
目標:保守的でも派手でもなく、バランスを見つけること
✅ あるべきもの
- 控えめなグラデーション — 優しい同系色のグラデーションは許容
- 角丸 — モダンだが控えめな角丸ブロック
- 明確な階層 — メインモジュールは大きく、セカンダリモジュールは小さく
- 一貫した色分け — モジュールタイプと色の安定したマッピング
- プロフェッショナルなタイポグラフィ — 読み取り可能なサイズ階層を持つクリーンなラベル
❌ 避けるべきもの
- ❌ 虹色グラデーション
- ❌ 強いドロップシャドウ
- ❌ 3D 遠近効果
- ❌ 発光効果
- ❌ 装飾的なクリップアートアイコン
- ❌ 派手で論文準備ができていないスライドデッキスタイル
✓ 理想的な効果
- 意図的で、プロフェッショナルで、すぐに読み取れるように見える
- 装飾的になることなく、適度な視覚的魅力を持つ
- トップ会議の論文図にふさわしいと感じられる
- PDF の拡大縮小やグレースケール印刷に耐える
避けるべきもの (重要)
- ❌ 細く、髪の毛のような矢印
- ❌ ラベルのない、または曖昧な接続
- ❌ 小さく読み取れないテキスト
- ❌ 階層のない、平らで退屈なボックススープ
- ❌ シャドウ/グロー/アイコンで過度に装飾された図
- ❌ 間違った矢印の方向
スコープ
| 図のタイプ | 品質 | 例 |
|---|---|---|
| アーキテクチャ図 | 優秀 | モデルアーキテクチャ、パイプライン、エンコーダ-デコーダ |
| メソッド図 | 優秀 | 概念図、アルゴリズムフローチャート |
| 概念図 | 良好 | 比較図、分類ツリー |
対象外: 統計プロット (/paper-figure を使用)、決定論的ベクトルトポロジ図 (/figure-spec を推奨)、フォトリアリスティックシーン
ワークフロー: すべてのステップを実行すること
ステップ 0: 事前フライトチェック
開始前にこのチェックリストを明示的にレンダリングします:
📋 paper-illustration-image2 統合チェックリスト:
[ ] 1. python3 "$IMAGE2_HELPER" preflight --workspace <cwd> --json-out figures/ai_generated/preflight.json
[ ] 2. レンダリング前に事前フライト JSON が ok=true であることを確認
[ ] 3. mcp__codex-image2__generate_start + generate_status でレンダリング
[ ] 4. python3 "$IMAGE2_HELPER" finalize --workspace <cwd> --best-image <best_png> でファイナライズ
[ ] 5. python3 "$IMAGE2_HELPER" verify --workspace <cwd> --json-out figures/ai_generated/verify.json でアーティファクトを検証
figures/ai_generated/が存在しない場合は作成します。- リクエストがラスターイラストに適していることを確認します:
- アーキテクチャ図
- 概念メソッド図
- ワークフロー図
- ユーザーが別途要求しない限り、英語の図テキストを推奨します。
- 以下を実行します:
python3 "$IMAGE2_HELPER" preflight \
--workspace <cwd> \
--json-out figures/ai_generated/preflight.json
- 事前フライトが
ok=trueでない場合は、停止し、その旨を明確に伝えます。
ステップ 1: Claude が図を計画
ユーザーリクエストを完全に指定された画像プロンプトに変換します。以下を含めます:
- 図のタイプ
- 正確なモジュール/ステージ
- フロー方向
- 表示するラベル
- データフロー矢印
- スタイル制約
- 避けるべきもの
入力がメモや論文セクションである場合、最終的な画像プロンプトを書く前に、まずそれをクリーンな図の概要に要約します。
ステップ 2: レイアウト最適化
このステップは必須です。レンダリング前に、プロンプトを具体的なレイアウト計画に洗練します:
- 正確なモジュール順序
- スペーシングとグループ化
- 相対的なモジュールの重要度
- 矢印のルーティングと衝突の可能性のあるポイント
選択されたテキストレビュールートが利用可能な場合、ここで短いセカンドオピニオンレイアウト批評を依頼しても構いませんが、エグゼキュータは外部批評家なしでこのステップを完了する必要があります。
レイアウト批評には Codex を使用します:
- 欠落しているコンポーネント
- 混乱を招くレイアウト
- 弱いフロー階層
- 矢印方向の曖昧さや乱雑さの可能性
ステップ 3: スタイル検証
このステップも必須です。レンダリング前に、意図された論文スタイルに対してプロンプトをチェックします:
- パレットは控えめでアカデミックか
- 矢印は太く、暗く、読み取り可能か
- ラベルは簡潔で、特に要求がない限り英語か
- 図はグレースケール/印刷で明確に読めるか
- 発光、虹色グラデーション、スライドデッキの装飾が含まれていないか
選択されたテキストレビュールートが利用可能な場合、短いテキストのみのスタイル監査を依頼しても構いませんが、それをブロッカーにしないでください。
ステップ 4: ブリッジを介して生成
mcp__codex-image2__generate_start を呼び出します:
prompt: 最終的な画像プロンプトcwd: 現在のプロジェクトルートまたは論文ワークスペースoutputPath:figures/ai_generated/figure_v1.pngsystem:Academic paper figure. Prefer crisp English labels.のような短い指示timeoutSeconds:180などのバインドされたレンダリングタイムアウト
次に、mcp__codex-image2__generate_status をバインドされた待機で呼び出し、以下になるまで続けます:
done=trueかつstatus=completed、またはdone=trueかつstatus=failed
生成が失敗した場合は、隠さずにブリッジエラーを直接報告します。
ステップ 5: 出力をレビュー
生成された画像を厳格なチェックリストでレビューします:
- すべての主要コンポーネントが存在するか?
- 論理フローは明白か?
- ラベルは読み取り可能か?
- 矢印は正しい方向を向いているか?
- 図はスライドというよりも論文準備ができているように見えるか?
1~10 のスコアを付けます。
ステップ 6: 必要に応じて改善
スコアが 9 未満の場合、ターゲットを絞った改善プロンプトを作成します:
- 何が間違っていたかを正確に述べる
- 具体的で実行可能な指示を与える
- スタイルガイドへの参照を含める
outputPathをfigures/ai_generated/figure_v2.pngにインクリメントする- レイアウト最適化(ステップ 2)からループバックする
ステップ 7: ファイナライズして検証
ベストイメージでファイナライズします:
python3 "$IMAGE2_HELPER" finalize --workspace <cwd> --best-image figures/ai_generated/figure_v<N>.png
次に検証します:
python3 "$IMAGE2_HELPER" verify --workspace <cwd> --json-out figures/ai_generated/verify.json
verify.json の内容を報告します。
コード例
例 1: 新しいアーキテクチャ図
ユーザー: 「私の新しい ViT ベースのセグメンテーションヘッドのアーキテクチャ図を描いてください。入力は画像パッチ、ViT エンコーダー、その後ろに 2 つのトランスフォーマーデコーダー、そして最終的なセグメンテーションマスク出力があります。」
Claude: (図の概要を生成し、事前フライトを実行し、すべてのステップを実行する)
例 2: 既存の図を改善
ユーザー: 「figures/method_v1.png を改善して、よりプロフェッショナルな CVPR スタイルにしてください。矢印が細すぎて、テキストが小さすぎます。」
Claude: (スコア 5 を割り当て、細い矢印と小さいテキストを具体的に指摘し、ターゲットを絞ったプロンプトで改善するためにループバックする)
一般的な問題のトラブルシューティング
| 問題 | 原因 | 修正 |
|---|---|---|
| ネイティブ画像生成の失敗 | Codex アプリサーバーが実行されていない | ブリッジエラーを報告し、明確に停止する |
| スコアが一貫して低い | プロンプトに具体性が不足している | より厳密なレイアウトとスタイル検証ステップを実行する |
| 矢印の方向が間違っている | データフロー記述が曖昧 | プロンプトで矢印の方向を明示的に指定する |
| ラベルが読み取れない | フォントサイズが小さすぎる | プロンプトに最小フォントサイズ制約を追加する |