メインコンテンツへスキップ
このガイドでは、ベストプラクティス、コード例、および留意すべき制限事項を含む、Claude での画像の操作方法について説明します。

ビジョンの使用方法

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

アップロード前に

基本と制限

1 つのリクエストに複数の画像を含めることができます(claude.ai の場合は最大 20 枚、API リクエストの場合は 100 枚)。Claude は応答を作成する際に、提供されたすべての画像を分析します。これは画像を比較または対比するのに役立ちます。 8000x8000 px を超える画像を送信すると、拒否されます。1 つの API リクエストで 20 枚を超える画像を送信する場合、この制限は 2000x2000 px です。
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 のトークンあたりの価格 $3/100 万入力トークンに基づいて、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 を使用する(1 回アップロード、複数回使用)
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": "Describe this image."
          }
        ]
      }
    ]
  }'

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": "Describe this image."
          }
        ]
      }
    ]
  }'

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 "file=@image.jpg"

# 次に、返された 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": "Describe this image."
          }
        ]
      }
    ]
  }'
詳細については、Messages API の例 を参照してください。
プロンプト内で画像をそれらに関する質問やタスク用の指示より前に配置することが最適です。Claude に 1 つの画像を説明するよう依頼します。
ロールコンテンツ
ユーザー[画像] この画像を説明してください。
以下は Claude Sonnet 3.7 モデルを使用した対応する API 呼び出しです。
  • Base64 を使用
  • URL を使用
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": "Describe this image."
                }
            ],
        }
    ],
)
複数の画像がある場合は、各画像に Image 1:Image 2: などのラベルを付けます。画像間またはプロンプト間に改行は必要ありません。Claude に複数の画像の違いを説明するよう依頼します。
ロールコンテンツ
ユーザーImage 1: [画像 1] Image 2: [画像 2] これらの画像はどのように異なりますか?
以下は Claude Sonnet 3.7 モデルを使用した対応する API 呼び出しです。
  • Base64 を使用
  • URL を使用
Python
message = client.messages.create(
    model="claude-sonnet-4-5",
    max_tokens=1024,
    messages=[
        {
            "role": "user",
            "content": [
                {
                    "type": "text",
                    "text": "Image 1:"
                },
                {
                    "type": "image",
                    "source": {
                        "type": "base64",
                        "media_type": image1_media_type,
                        "data": image1_data,
                    },
                },
                {
                    "type": "text",
                    "text": "Image 2:"
                },
                {
                    "type": "image",
                    "source": {
                        "type": "base64",
                        "media_type": image2_media_type,
                        "data": image2_data,
                    },
                },
                {
                    "type": "text",
                    "text": "How are these images different?"
                }
            ],
        }
    ],
)
複数の画像の違いを説明するよう Claude に依頼しながら、応答方法についてのシステムプロンプトを提供します。
コンテンツ
システムスペイン語でのみ応答してください。
ユーザーImage 1: [画像 1] Image 2: [画像 2] これらの画像はどのように異なりますか?
以下は Claude Sonnet 3.7 モデルを使用した対応する API 呼び出しです。
  • Base64 を使用
  • URL を使用
Python
message = client.messages.create(
    model="claude-sonnet-4-5",
    max_tokens=1024,
    system="Respond only in Spanish.",
    messages=[
        {
            "role": "user",
            "content": [
                {
                    "type": "text",
                    "text": "Image 1:"
                },
                {
                    "type": "image",
                    "source": {
                        "type": "base64",
                        "media_type": image1_media_type,
                        "data": image1_data,
                    },
                },
                {
                    "type": "text",
                    "text": "Image 2:"
                },
                {
                    "type": "image",
                    "source": {
                        "type": "base64",
                        "media_type": image2_media_type,
                        "data": image2_data,
                    },
                },
                {
                    "type": "text",
                    "text": "How are these images different?"
                }
            ],
        }
    ],
)
Claude のビジョン機能は、画像とテキストを混在させるマルチモーダル会話で輝きます。Claude と長時間のやり取りを行い、任意の時点で新しい画像またはフォローアップの質問を追加できます。これにより、画像の反復的な分析、比較、またはビジュアルと他の知識の組み合わせのための強力なワークフローが可能になります。2 つの画像を対比するよう Claude に依頼してから、最初の画像を 2 つの新しい画像と比較するフォローアップの質問をします。
ロールコンテンツ
ユーザーImage 1: [画像 1] Image 2: [画像 2] これらの画像はどのように異なりますか?
アシスタント[Claude の応答]
ユーザーImage 1: [画像 3] Image 2: [画像 4] これらの画像は最初の 2 つと似ていますか?
アシスタント[Claude の応答]
API を使用する場合、新しい画像を標準的な マルチターン会話 構造の一部として user ロール内のメッセージ配列に挿入するだけです。

制限事項

Claude の画像理解機能は最先端ですが、注意すべき制限事項があります:
  • 人物の識別:Claude は 使用できません 画像内の人物を識別(つまり、名前を付ける)するために使用でき、そうすることを拒否します。
  • 精度:Claude は、低品質、回転、または 200 ピクセル未満の非常に小さい画像を解釈する際に、幻覚を見たり間違いを犯したりする可能性があります。
  • 空間推論:Claude の空間推論能力は限定的です。アナログ時計の文字盤を読むやチェスの駒の正確な位置を説明するなど、正確なローカライゼーションまたはレイアウトが必要なタスクで苦労する可能性があります。
  • カウント:Claude は画像内のオブジェクトの概算数を提供できますが、特に多数の小さなオブジェクトの場合、常に正確であるとは限りません。
  • AI 生成画像:Claude は画像が AI 生成かどうかを知らず、尋ねられた場合は間違っている可能性があります。偽造または合成画像を検出するために依存しないでください。
  • 不適切なコンテンツ: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:画像あたり最大 5MB
  • claude.ai:画像あたり最大 10MB
これらの制限を超える画像は拒否され、API を使用する場合はエラーが返されます。
画像の制限は以下の通りです:
  • Messages API:リクエストあたり最大 100 画像
  • claude.ai:ターンあたり最大 20 画像
これらの制限を超えるリクエストは拒否され、エラーが返されます。
いいえ、Claude は渡された画像からメタデータを解析または受け取りません。
いいえ。画像アップロードは一時的であり、API リクエストの期間を超えて保存されません。 アップロードされた画像は処理後に自動的に削除されます。
プライバシーポリシーページを参照して、アップロードされた画像およびその他のデータの処理方法に関する情報を確認してください。 アップロードされた画像をモデルのトレーニングに使用することはありません。
Claude の画像解釈が正しくないように見える場合:
  1. 画像が明確で高品質で、正しく向いていることを確認してください。
  2. プロンプトエンジニアリング技術を試して結果を改善してください。
  3. 問題が解決しない場合は、claude.ai で出力にフラグを付けるか(親指上下)、サポートチームにお問い合わせください。
ご意見をいただくことで、改善に役立ちます。
いいえ、Claude は画像理解モデルのみです。画像を解釈および分析できますが、画像を生成、作成、編集、操作、または作成することはできません。

ビジョンをさらに深く掘り下げる

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