2026-05-29
Full AI
Claude Opus 4.8 vs Gemini 3.5 Flash vs GPT-5.4 図解生成ベンチマーク ... users
はじめに
元記事では Gemini 3.5 Flash と GPT-5.4 の2モデルで、10題材を TikZ・matplotlib・SVG の3形式ずつ描かせていました。本記事はそこに Claude Opus 4.8 を加えた更新版です。同じお題・同じプロンプト・同じビルド手順で Opus 4.8 にも描かせ、3モデルを左から Claude Opus 4.8 / Gemini 3.5 Flash / GPT-5.4 の順で並べています。
この記事は、題材設計、コード生成、比較、記事化までをAIで進める Full AI 方式で書いています。Opus 4.8 列の source(.tex / .py / .svg)は、この作業セッションで Claude Opus 4.8 が元記事と同じプロンプトから一発生成したものです。
比較条件
- モデル: Claude Opus 4.8 / Gemini 3.5 Flash / GPT-5.4
- 形式: TikZ / matplotlib / SVG
- 題材: 10題材
- 総数: 10題材 × 3形式 × 3モデル = 90個
- 追加分: Claude Opus 4.8 の 10題材 × 3形式 = 30個(今回の更新で追加)
- 確認日: 2026-05-29 JST(元記事の Gemini / GPT 分は 2026-05-22)
題材のうち 5 つはユーザー指定です。残り 5 つは比較差が出やすいように AI で設計しました。Opus 4.8 にも「全部の題材を全部の形式で描かせる」前提で、元記事と同じお題を渡しています。
題材一覧
| 題材 | 出題元 | 見たい点 |
|---|---|---|
| クマのぬいぐるみ | ユーザー指定 | かわいさ、左右対称、部品バランス、質感差 |
| 独居おばあちゃんがリビングでテレビを見ている絵 | ユーザー指定 | 生活空間、人物と家具の関係、構図の自然さ |
| 自分の部屋でVRゴーグルで遊んでいる様子をお母さんに見られる息子 | ユーザー指定 | 2人物の視線、状況説明力、部屋の整理 |
| 油圧ピストンの構造解説 | ユーザー指定 | 断面、部品ラベル、圧力の流れ |
| 7軸ロボットアームとその軸の説明 | ユーザー指定 | 多関節、軸番号、回転方向、空間把握 |
| カルマンフィルターのブロック線図 | AI設計 | フィードバック、数式ラベル、信号線 |
| RAGパイプライン構成図 | AI設計 | 取得と生成の分離、データフロー整理 |
| ゼロトラスト認証とトークン交換 | AI設計 | 境界越え、認証経路、複雑フロー |
| ブロッホ球 | AI設計 | 空間認識、数式、幾何配置 |
| マイケルソン干渉計 | AI設計 | 光路、対称性、部品配置 |
形式
| 形式 | 見たい点 | ビルド方法 |
|---|---|---|
| TikZ | 数式や工学図の厳密さ、構文の安定性 | xelatex -> pdftoppm -> cwebp |
| matplotlib | 手続き的に図を組み立てる力、部品配置の堅さ | python -> png -> cwebp |
| SVG | 生の座標設計とレイアウト感覚 | rsvg-convert -> png -> cwebp |
ベンチマークケースについて
- ユーザー指定ケース: クマのぬいぐるみ, 独居おばあちゃんがリビングでテレビを見ている絵, 自分の部屋でVRゴーグルで遊んでいる様子をお母さんに見られる息子, 油圧ピストンの構造解説, 7軸ロボットアームとその軸の説明
- AI設計ケース: カルマンフィルターのブロック線図, RAGパイプライン構成図, ゼロトラスト認証とトークン交換, ブロッホ球, マイケルソン干渉計
共通チェック項目は scripts/diagram_benchmark_2026/manifest.yml に置いています。お題のプロンプトは scripts/diagram_benchmark_2026/prompts/ にあります(3モデル共通)。
source 欄は単なるパス文字列ではなく、サイト上でそのまま開ける公開 source へのリンクにしています。
実行方法
Claude Opus 4.8 側の source は、この作業セッションで prompts/ の各プロンプト(元記事と同一)から直接生成しました。Gemini 3.5 Flash 側は agy、GPT-5.4 側は元記事の作業セッションで生成したものをそのまま使っています。
# 3モデル分の source を画像へ
scripts/diagram_benchmark_2026/render_all.sh opus48
scripts/diagram_benchmark_2026/render_all.sh gemini35flash
scripts/diagram_benchmark_2026/render_all.sh gpt54
出力一覧
01. クマのぬいぐるみ
お題
- かわいいクマのぬいぐるみを正面向きで描く
- 頭は丸く、耳は左右対称で少し大きめ
- 胴体は柔らかい綿入りの感じが出るように少し横幅を持たせる
- 腕と脚は短めで、ぬいぐるみらしい丸みを付ける
- 目、鼻、口、足裏、胸のワッペンなどで質感差を出す
- 暖色寄りでやさしい配色にする
TikZ
| Claude Opus 4.8 | Gemini 3.5 Flash | GPT-5.4 |
|---|---|---|
bear-plush.tex |
bear-plush.tex |
bear-plush.tex |
![]() |
![]() |
![]() |
matplotlib
| Claude Opus 4.8 | Gemini 3.5 Flash | GPT-5.4 |
|---|---|---|
bear-plush.py |
bear-plush.py |
bear-plush.py |
![]() |
![]() |
![]() |
SVG
| Claude Opus 4.8 | Gemini 3.5 Flash | GPT-5.4 |
|---|---|---|
bear-plush.svg |
bear-plush.svg |
bear-plush.svg |
![]() |
![]() |
![]() |
02. 独居おばあちゃんがリビングでテレビを見ている絵
お題
- リビングでおばあちゃんがテレビを見ている情景を描く
- おばあちゃんは一人で、椅子かソファに座っている
- テレビ、テーブル、照明、カーテンなどで生活空間を出す
- テレビの方へ視線が向いていることが分かるようにする
- 家庭的で温かい雰囲気にする
TikZ
| Claude Opus 4.8 | Gemini 3.5 Flash | GPT-5.4 |
|---|---|---|
elderly-living-room-tv.tex |
elderly-living-room-tv.tex |
elderly-living-room-tv.tex |
![]() |
![]() |
![]() |
matplotlib
| Claude Opus 4.8 | Gemini 3.5 Flash | GPT-5.4 |
|---|---|---|
elderly-living-room-tv.py |
elderly-living-room-tv.py |
elderly-living-room-tv.py |
![]() |
![]() |
![]() |
SVG
| Claude Opus 4.8 | Gemini 3.5 Flash | GPT-5.4 |
|---|---|---|
elderly-living-room-tv.svg |
elderly-living-room-tv.svg |
elderly-living-room-tv.svg |
![]() |
![]() |
![]() |
03. 自分の部屋でVRゴーグルで遊んでいる様子をお母さんに見られる息子
お題
- 子ども部屋で息子がVRゴーグルを装着して遊んでいる場面を描く
- 息子は両手にコントローラーを持ち、楽しそうに動いている
- 部屋の入口側からお母さんがその様子を見ている
- 机、棚、ベッドなどで子ども部屋らしさを出す
- 人物同士の視線関係が分かるようにする
TikZ
| Claude Opus 4.8 | Gemini 3.5 Flash | GPT-5.4 |
|---|---|---|
vr-son-watched-by-mother.tex |
vr-son-watched-by-mother.tex |
vr-son-watched-by-mother.tex |
![]() |
![]() |
![]() |
matplotlib
| Claude Opus 4.8 | Gemini 3.5 Flash | GPT-5.4 |
|---|---|---|
vr-son-watched-by-mother.py |
vr-son-watched-by-mother.py |
vr-son-watched-by-mother.py |
![]() |
![]() |
![]() |
SVG
| Claude Opus 4.8 | Gemini 3.5 Flash | GPT-5.4 |
|---|---|---|
vr-son-watched-by-mother.svg |
vr-son-watched-by-mother.svg |
vr-son-watched-by-mother.svg |
![]() |
![]() |
![]() |
04. 油圧ピストンの構造解説
お題
- 油圧ピストンの断面構造図を描く
- シリンダー、ピストン、ロッド、左右の圧力室を表現する
- 流体の流れを矢印で示す
- 主要部品にラベルを付ける
- 教育用の図として読みやすく整理する
TikZ
| Claude Opus 4.8 | Gemini 3.5 Flash | GPT-5.4 |
|---|---|---|
hydraulic-piston.tex |
hydraulic-piston.tex |
hydraulic-piston.tex |
![]() |
![]() |
![]() |
matplotlib
| Claude Opus 4.8 | Gemini 3.5 Flash | GPT-5.4 |
|---|---|---|
hydraulic-piston.py |
hydraulic-piston.py |
hydraulic-piston.py |
![]() |
![]() |
![]() |
SVG
| Claude Opus 4.8 | Gemini 3.5 Flash | GPT-5.4 |
|---|---|---|
hydraulic-piston.svg |
hydraulic-piston.svg |
hydraulic-piston.svg |
![]() |
![]() |
![]() |
05. 7軸ロボットアームとその軸の説明
お題
- 7軸ロボットアームの全体図を描く
- 各関節を J1 から J7 までラベル付けする
- 各軸の回転方向を小さな矢印で示す
- ベース、リンク、手先の関係が分かるようにする
- やや立体感のある構図で描く
TikZ
| Claude Opus 4.8 | Gemini 3.5 Flash | GPT-5.4 |
|---|---|---|
robot-arm-7axis.tex |
robot-arm-7axis.tex |
robot-arm-7axis.tex |
![]() |
![]() |
![]() |
matplotlib
| Claude Opus 4.8 | Gemini 3.5 Flash | GPT-5.4 |
|---|---|---|
robot-arm-7axis.py |
robot-arm-7axis.py |
robot-arm-7axis.py |
![]() |
![]() |
![]() |
SVG
| Claude Opus 4.8 | Gemini 3.5 Flash | GPT-5.4 |
|---|---|---|
robot-arm-7axis.svg |
robot-arm-7axis.svg |
robot-arm-7axis.svg |
![]() |
![]() |
![]() |
06. カルマンフィルターのブロック線図
お題
- カルマンフィルターのブロック線図を描く
- Prediction, Update, Measurement, State estimate を分ける
- 入力とフィードバックの向きを矢印で示す
- Kalman gain や residual など主要な情報流も入れる
- 制御図として見やすく整理する
TikZ
| Claude Opus 4.8 | Gemini 3.5 Flash | GPT-5.4 |
|---|---|---|
kalman-filter.tex |
kalman-filter.tex |
kalman-filter.tex |
![]() |
![]() |
![]() |
matplotlib
| Claude Opus 4.8 | Gemini 3.5 Flash | GPT-5.4 |
|---|---|---|
kalman-filter.py |
kalman-filter.py |
kalman-filter.py |
![]() |
![]() |
![]() |
SVG
| Claude Opus 4.8 | Gemini 3.5 Flash | GPT-5.4 |
|---|---|---|
kalman-filter.svg |
kalman-filter.svg |
kalman-filter.svg |
![]() |
![]() |
![]() |
07. RAGパイプライン構成図
お題
- RAG のパイプライン構成図を描く
- User Query, Embed/Retrieve, Vector DB, Retrieved Context, LLM, Answer を入れる
- オンライン処理と事前の文書投入を区別する
- データフローを矢印で示す
- 現代的なAIシステム図として整理する
TikZ
| Claude Opus 4.8 | Gemini 3.5 Flash | GPT-5.4 |
|---|---|---|
rag-pipeline.tex |
rag-pipeline.tex |
rag-pipeline.tex |
![]() |
![]() |
![]() |
matplotlib
| Claude Opus 4.8 | Gemini 3.5 Flash | GPT-5.4 |
|---|---|---|
rag-pipeline.py |
rag-pipeline.py |
rag-pipeline.py |
![]() |
![]() |
![]() |
SVG
| Claude Opus 4.8 | Gemini 3.5 Flash | GPT-5.4 |
|---|---|---|
rag-pipeline.svg |
rag-pipeline.svg |
rag-pipeline.svg |
![]() |
![]() |
![]() |
08. ゼロトラスト認証とトークン交換
お題
- ゼロトラスト認証とトークン交換の流れを描く
- User, Browser, IdP, API Gateway, Service A, Service B を入れる
- ID token, access token, service token の流れを区別する
- 信頼境界を領域として表現する
- 複雑でも読めるセキュリティ図にする
TikZ
| Claude Opus 4.8 | Gemini 3.5 Flash | GPT-5.4 |
|---|---|---|
zero-trust-token-exchange.tex |
zero-trust-token-exchange.tex |
zero-trust-token-exchange.tex |
![]() |
![]() |
![]() |
matplotlib
| Claude Opus 4.8 | Gemini 3.5 Flash | GPT-5.4 |
|---|---|---|
zero-trust-token-exchange.py |
zero-trust-token-exchange.py |
zero-trust-token-exchange.py |
![]() |
![]() |
![]() |
SVG
| Claude Opus 4.8 | Gemini 3.5 Flash | GPT-5.4 |
|---|---|---|
zero-trust-token-exchange.svg |
zero-trust-token-exchange.svg |
zero-trust-token-exchange.svg |
![]() |
![]() |
![]() |
09. ブロッホ球
お題
- ブロッホ球を2D投影で描く
- x, y, z 軸を示す
-
量子状態ベクトル psi> を球面上に描く - theta と phi の角度を小さな弧で示す
- 物理の教科書に出てくる図として整える
TikZ
| Claude Opus 4.8 | Gemini 3.5 Flash | GPT-5.4 |
|---|---|---|
bloch-sphere.tex |
bloch-sphere.tex |
bloch-sphere.tex |
![]() |
![]() |
![]() |
matplotlib
| Claude Opus 4.8 | Gemini 3.5 Flash | GPT-5.4 |
|---|---|---|
bloch-sphere.py |
bloch-sphere.py |
bloch-sphere.py |
![]() |
![]() |
![]() |
SVG
| Claude Opus 4.8 | Gemini 3.5 Flash | GPT-5.4 |
|---|---|---|
bloch-sphere.svg |
bloch-sphere.svg |
bloch-sphere.svg |
![]() |
![]() |
![]() |
10. マイケルソン干渉計
お題
- マイケルソン干渉計の模式図を描く
- Laser, Beam Splitter, Mirror A, Mirror B, Screen を入れる
- 光路を直線矢印で示す
- ビームスプリッタで2方向に分岐して戻る流れを見せる
- 対称性を保って配置する
TikZ
| Claude Opus 4.8 | Gemini 3.5 Flash | GPT-5.4 |
|---|---|---|
michelson-interferometer.tex |
michelson-interferometer.tex |
michelson-interferometer.tex |
![]() |
![]() |
![]() |
matplotlib
| Claude Opus 4.8 | Gemini 3.5 Flash | GPT-5.4 |
|---|---|---|
michelson-interferometer.py |
michelson-interferometer.py |
michelson-interferometer.py |
![]() |
![]() |
![]() |
SVG
| Claude Opus 4.8 | Gemini 3.5 Flash | GPT-5.4 |
|---|---|---|
michelson-interferometer.svg |
michelson-interferometer.svg |
michelson-interferometer.svg |
![]() |
![]() |
![]() |
現時点の見どころ
- かわいいイラスト系では、装飾を盛る方向に出るか、破綻を避けて記号寄りに出るかが見やすいです。Opus 4.8 がどちらに寄るかも、左列で並べて見られます
- 機械・制御系では、構造の整列とラベルの読みやすさで差が出ます
- 数学・物理系では、空間把握と数式周辺の配置の上手さが見やすいです
参考
- 元記事(2モデル版): Gemini 3.5 Flash vs GPT-5.4 図解生成ベンチマーク(確認日: 2026-05-22)
- さらに前の比較記事: https://zenn.dev/kazuph/articles/claude-opus-tikz-comparison (確認日: 2026-05-22)
おわりに
元記事の Gemini 3.5 Flash / GPT-5.4 の比較に Claude Opus 4.8 を一番左の列として加え、10題材を3形式ずつ・3モデル総当たりで並べられるようにしました。同じお題でも、モデル差と形式差を1画面で見比べられます。

























































































