このガイドでは、ベストプラクティス、コード例、留意すべき制限事項を含め、Claudeで画像を扱う方法について説明します。

ビジョンの使用方法

Claudeのビジョン機能は以下の方法で使用できます:
  • claude.ai。ファイルをアップロードするように画像をアップロードするか、画像を直接チャットウィンドウにドラッグ&ドロップします。
  • Console Workbench。画像を受け入れるモデル(Claude 3および4モデルのみ)を選択すると、すべてのUserメッセージブロックの右上に画像を追加するボタンが表示されます。
  • APIリクエスト。このガイドの例を参照してください。

アップロード前に

基本事項と制限

1つのリクエストに複数の画像を含めることができます(claude.aiでは最大20枚、APIリクエストでは最大100枚)。Claudeは応答を作成する際に、提供されたすべての画像を分析します。これは画像の比較や対比に役立ちます。 8000x8000ピクセルを超える画像を送信すると、拒否されます。1つのAPIリクエストで20枚を超える画像を送信する場合、この制限は2000x2000ピクセルになります。
APIは1リクエストあたり100枚の画像をサポートしていますが、標準エンドポイントには32MBのリクエストサイズ制限があります。

画像サイズの評価

最適なパフォーマンスのために、画像が大きすぎる場合はアップロード前にリサイズすることをお勧めします。画像の長辺が1568ピクセルを超える場合、または画像が約1,600トークンを超える場合、サイズ制限内に収まるまで、アスペクト比を保持してスケールダウンされます。 入力画像が大きすぎてリサイズが必要な場合、追加のモデルパフォーマンスを得ることなく、time-to-first-tokenの遅延が増加します。任意の辺が200ピクセル未満の非常に小さな画像は、パフォーマンスを低下させる可能性があります。
time-to-first-tokenを改善するために、画像を1.15メガピクセル以下(かつ両次元で1568ピクセル以内)にリサイズすることをお勧めします。
以下は、一般的なアスペクト比でAPIが受け入れる最大画像サイズの表で、リサイズされません。Claude Sonnet 3.7モデルでは、これらの画像は約1,600トークンを使用し、1K画像あたり約$4.80です。
アスペクト比画像サイズ
1:11092x1092 px
3:4951x1268 px
2:3896x1344 px
9:16819x1456 px
1:2784x1568 px

画像コストの計算

Claudeへのリクエストに含める各画像は、トークン使用量にカウントされます。おおよそのコストを計算するには、おおよその画像トークン数に使用しているモデルのトークン単価を掛けます。 画像をリサイズする必要がない場合、このアルゴリズムで使用されるトークン数を推定できます:tokens = (width px * height px)/750 以下は、Claude Sonnet 3.7のトークン単価(入力トークン100万あたり$3)に基づく、APIのサイズ制約内の異なる画像サイズでのおおよそのトークン化とコストの例です:
画像サイズトークン数画像あたりのコスト1K画像あたりのコスト
200x200 px(0.04メガピクセル)〜54〜$0.00016〜$0.16
1000x1000 px(1メガピクセル)〜1334〜$0.004〜$4.00
1092x1092 px(1.19メガピクセル)〜1590〜$0.0048〜$4.80

画像品質の確保

Claudeに画像を提供する際は、最良の結果を得るために以下の点に留意してください:
  • 画像形式:サポートされている画像形式を使用してください:JPEG、PNG、GIF、またはWebP。
  • 画像の鮮明さ:画像が鮮明で、ぼやけすぎたりピクセル化されすぎたりしていないことを確認してください。
  • テキスト:画像に重要なテキストが含まれている場合は、読みやすく、小さすぎないことを確認してください。テキストを拡大するためだけに重要な視覚的コンテキストを切り取ることは避けてください。

プロンプトの例

Claudeとのテキストベースのインタラクションでうまく機能する多くのプロンプト技法は、画像ベースのプロンプトにも適用できます。 これらの例は、画像を含むベストプラクティスのプロンプト構造を示しています。
ドキュメント-クエリの配置と同様に、Claudeは画像がテキストより前にある場合に最もよく機能します。テキストの後に配置された画像やテキストと混在した画像でも良好に機能しますが、使用ケースで可能であれば、画像-テキストの構造をお勧めします。

プロンプト例について

以下の例は、さまざまなプログラミング言語とアプローチを使用してClaudeのビジョン機能を使用する方法を示しています。Claudeに画像を提供する方法は3つあります:
  1. imageコンテンツブロック内のbase64エンコードされた画像として
  2. オンラインでホストされている画像へのURL参照として
  3. Files APIを使用して(一度アップロードして複数回使用)
base64の例のプロンプトでは、これらの変数を使用します:
    # URLベースの画像の場合、JSONリクエストでURLを直接使用できます
    
    # base64エンコードされた画像の場合、まず画像をエンコードする必要があります
    # bashで画像をbase64にエンコードする方法の例:
    BASE64_IMAGE_DATA=$(curl -s "https://upload.wikimedia.org/wikipedia/commons/a/a7/Camponotus_flavomarginatus_ant.jpg" | base64)
    
    # エンコードされたデータをAPIコールで使用できます
以下は、base64エンコードされた画像とURL参照を使用してMessages APIリクエストに画像を含める方法の例です:

Base64エンコードされた画像の例

curl https://api.anthropic.com/v1/messages \
  -H "x-api-key: $ANTHROPIC_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{
    "model": "claude-sonnet-4-5",
    "max_tokens": 1024,
    "messages": [
      {
        "role": "user",
        "content": [
          {
            "type": "image",
            "source": {
              "type": "base64",
              "media_type": "image/jpeg",
              "data": "'"$BASE64_IMAGE_DATA"'"
            }
          },
          {
            "type": "text",
            "text": "この画像を説明してください。"
          }
        ]
      }
    ]
  }'

URLベースの画像の例

curl https://api.anthropic.com/v1/messages \
  -H "x-api-key: $ANTHROPIC_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{
    "model": "claude-sonnet-4-5",
    "max_tokens": 1024,
    "messages": [
      {
        "role": "user",
        "content": [
          {
            "type": "image",
            "source": {
              "type": "url",
              "url": "https://upload.wikimedia.org/wikipedia/commons/a/a7/Camponotus_flavomarginatus_ant.jpg"
            }
          },
          {
            "type": "text",
            "text": "この画像を説明してください。"
          }
        ]
      }
    ]
  }'

Files API画像の例

繰り返し使用する画像や、エンコードのオーバーヘッドを避けたい場合は、Files APIを使用してください:
# まず、画像をFiles APIにアップロードします
curl -X POST https://api.anthropic.com/v1/files \
  -H "x-api-key: $ANTHROPIC_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "anthropic-beta: files-api-2025-04-14" \
  -F "[email protected]"

# 次に、返されたfile_idをメッセージで使用します
curl https://api.anthropic.com/v1/messages \
  -H "x-api-key: $ANTHROPIC_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "anthropic-beta: files-api-2025-04-14" \
  -H "content-type: application/json" \
  -d '{
    "model": "claude-sonnet-4-5",
    "max_tokens": 1024,
    "messages": [
      {
        "role": "user",
        "content": [
          {
            "type": "image",
            "source": {
              "type": "file",
              "file_id": "file_abc123"
            }
          },
          {
            "type": "text",
            "text": "この画像を説明してください。"
          }
        ]
      }
    ]
  }'
より多くのサンプルコードとパラメータの詳細については、Messages APIの例を参照してください。
画像についての質問や、画像を使用するタスクの指示よりも、プロンプトの早い段階で画像を配置するのが最適です。Claudeに1つの画像を説明してもらいます。
役割内容
User[画像] この画像を説明してください。
以下は、Claude Sonnet 3.7モデルを使用した対応するAPIコールです。
Python
message = client.messages.create(
    model="claude-sonnet-4-5",
    max_tokens=1024,
    messages=[
        {
            "role": "user",
            "content": [
                {
                    "type": "image",
                    "source": {
                        "type": "base64",
                        "media_type": image1_media_type,
                        "data": image1_data,
                    },
                },
                {
                    "type": "text",
                    "text": "この画像を説明してください。"
                }
            ],
        }
    ],
)
複数の画像がある状況では、各画像を画像1:画像2:などで紹介します。画像間や画像とプロンプト間に改行は必要ありません。Claudeに複数の画像の違いを説明してもらいます。
役割内容
User画像1: [画像1] 画像2: [画像2] これらの画像はどのように異なりますか?
以下は、Claude Sonnet 3.7モデルを使用した対応するAPIコールです。
Python
message = client.messages.create(
    model="claude-sonnet-4-5",
    max_tokens=1024,
    messages=[
        {
            "role": "user",
            "content": [
                {
                    "type": "text",
                    "text": "画像1:"
                },
                {
                    "type": "image",
                    "source": {
                        "type": "base64",
                        "media_type": image1_media_type,
                        "data": image1_data,
                    },
                },
                {
                    "type": "text",
                    "text": "画像2:"
                },
                {
                    "type": "image",
                    "source": {
                        "type": "base64",
                        "media_type": image2_media_type,
                        "data": image2_data,
                    },
                },
                {
                    "type": "text",
                    "text": "これらの画像はどのように異なりますか?"
                }
            ],
        }
    ],
)
Claudeに複数の画像の違いを説明してもらいながら、応答方法についてシステムプロンプトを与えます。
内容
Systemスペイン語でのみ応答してください。
User画像1: [画像1] 画像2: [画像2] これらの画像はどのように異なりますか?
以下は、Claude Sonnet 3.7モデルを使用した対応するAPIコールです。
Python
message = client.messages.create(
    model="claude-sonnet-4-5",
    max_tokens=1024,
    system="スペイン語でのみ応答してください。",
    messages=[
        {
            "role": "user",
            "content": [
                {
                    "type": "text",
                    "text": "画像1:"
                },
                {
                    "type": "image",
                    "source": {
                        "type": "base64",
                        "media_type": image1_media_type,
                        "data": image1_data,
                    },
                },
                {
                    "type": "text",
                    "text": "画像2:"
                },
                {
                    "type": "image",
                    "source": {
                        "type": "base64",
                        "media_type": image2_media_type,
                        "data": image2_data,
                    },
                },
                {
                    "type": "text",
                    "text": "これらの画像はどのように異なりますか?"
                }
            ],
        }
    ],
)
Claudeのビジョン機能は、画像とテキストを混在させるマルチモーダル会話で輝きます。Claudeと拡張された双方向のやり取りを行い、任意の時点で新しい画像やフォローアップの質問を追加できます。これにより、反復的な画像分析、比較、または視覚的要素と他の知識を組み合わせる強力なワークフローが可能になります。Claudeに2つの画像を対比してもらい、その後最初の画像と2つの新しい画像を比較するフォローアップの質問をします。
役割内容
User画像1: [画像1] 画像2: [画像2] これらの画像はどのように異なりますか?
Assistant[Claudeの応答]
User画像1: [画像3] 画像2: [画像4] これらの画像は最初の2つと似ていますか?
Assistant[Claudeの応答]
APIを使用する場合は、標準的なマルチターン会話構造の一部として、user役割のMessagesの配列に新しい画像を挿入するだけです。

制限事項

Claudeの画像理解機能は最先端ですが、認識しておくべきいくつかの制限があります:
  • 人物識別:Claudeは画像内の人物を識別(つまり、名前を特定)するために使用することはできませんし、そうすることを拒否します。
  • 精度:Claudeは、低品質、回転した、または200ピクセル未満の非常に小さな画像を解釈する際に、幻覚を起こしたり間違いを犯したりする可能性があります。
  • 空間推論:Claudeの空間推論能力は限定的です。アナログ時計の文字盤を読んだり、チェスの駒の正確な位置を説明したりするような、正確な位置特定やレイアウトを必要とするタスクで苦労する可能性があります。
  • カウント:Claudeは画像内のオブジェクトのおおよその数を提供できますが、特に多数の小さなオブジェクトの場合、常に正確とは限りません。
  • AI生成画像:Claudeは画像がAI生成かどうかを知らず、尋ねられた場合に間違っている可能性があります。偽造や合成画像を検出するためにClaudeに依存しないでください。
  • 不適切なコンテンツ:Claudeは、利用規約に違反する不適切または露骨な画像を処理しません。
  • 医療アプリケーション:Claudeは一般的な医療画像を分析できますが、CTやMRIなどの複雑な診断スキャンを解釈するように設計されていません。Claudeの出力は、専門的な医療アドバイスや診断の代替と見なすべきではありません。
特に重要な使用ケースでは、Claudeの画像解釈を常に慎重にレビューし、検証してください。人間の監督なしに完璧な精度や機密性の高い画像分析を必要とするタスクにClaudeを使用しないでください。

FAQ

Claudeは現在、JPEG、PNG、GIF、WebP画像形式をサポートしています。具体的には:
  • image/jpeg
  • image/png
  • image/gif
  • image/webp
はい、ClaudeはAPIのURL画像ソースブロックを使用してURLから画像を処理できるようになりました。 APIリクエストで”base64”の代わりに”url”ソースタイプを使用するだけです。 例:
{
  "type": "image",
  "source": {
    "type": "url",
    "url": "https://upload.wikimedia.org/wikipedia/commons/a/a7/Camponotus_flavomarginatus_ant.jpg"
  }
}
はい、制限があります:
  • API:画像1枚あたり最大5MB
  • claude.ai:画像1枚あたり最大10MB
これらの制限を超える画像は拒否され、APIを使用する際にエラーが返されます。
画像の制限は:
  • Messages API:リクエストあたり最大100枚の画像
  • claude.ai:ターンあたり最大20枚の画像
これらの制限を超えるリクエストは拒否され、エラーが返されます。
いいえ、Claudeは渡された画像からメタデータを解析したり受信したりしません。
いいえ。画像のアップロードは一時的で、APIリクエストの期間を超えて保存されません。アップロードされた画像は処理後に自動的に削除されます。
アップロードされた画像やその他のデータの取り扱いについては、プライバシーポリシーページを参照してください。アップロードされた画像をモデルの訓練に使用することはありません。
Claudeの画像解釈が正しくないように見える場合:
  1. 画像が鮮明で高品質で、正しく向いていることを確認してください。
  2. プロンプトエンジニアリング技法を試して結果を改善してください。
  3. 問題が続く場合は、claude.aiで出力にフラグを立てる(親指の上下)か、サポートチームにお問い合わせください。
あなたのフィードバックは改善に役立ちます!
いいえ、Claudeは画像理解モデルのみです。画像を解釈・分析することはできますが、画像を生成、作成、編集、操作、または作成することはできません。

ビジョンをさらに深く探る

Claudeを使用して画像でビルドを始める準備はできましたか?以下にいくつかの役立つリソースがあります: 他にご質問がございましたら、お気軽にサポートチームまでお問い合わせください。また、開発者コミュニティに参加して、他のクリエイターとつながり、Anthropicの専門家からサポートを受けることもできます。