ビジョン
このガイドでは、ベストプラクティス、コード例、および留意すべき制限事項を含む、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 | 1092x1092 px |
| 3 | 951x1268 px |
| 2 | 896x1344 px |
| 9 | 819x1456 px |
| 1 | 784x1568 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 つあります:
imageコンテンツブロック内の base64 エンコードされた画像として- オンラインでホストされている画像への URL 参照として
- 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 呼び出しで使用できるようになりましたimport base64
import httpx
# base64 エンコードされた画像の場合
image1_url = "https://upload.wikimedia.org/wikipedia/commons/a/a7/Camponotus_flavomarginatus_ant.jpg"
image1_media_type = "image/jpeg"
image1_data = base64.standard_b64encode(httpx.get(image1_url).content).decode("utf-8")
image2_url = "https://upload.wikimedia.org/wikipedia/commons/b/b5/Iridescent.green.sweat.bee1.jpg"
image2_media_type = "image/jpeg"
image2_data = base64.standard_b64encode(httpx.get(image2_url).content).decode("utf-8")
# URL ベースの画像の場合、リクエストで URL を直接使用できますimport axios from 'axios';
// base64 エンコードされた画像の場合
async function getBase64Image(url: string): Promise<string> {
const response = await axios.get(url, { responseType: 'arraybuffer' });
return Buffer.from(response.data, 'binary').toString('base64');
}
// 使用方法
async function prepareImages() {
const imageData = await getBase64Image('https://upload.wikimedia.org/wikipedia/commons/a/a7/Camponotus_flavomarginatus_ant.jpg');
// これで API 呼び出しで imageData を使用できます
}
// URL ベースの画像の場合、リクエストで URL を直接使用できますimport java.io.IOException;
import java.util.Base64;
import java.io.InputStream;
import java.net.URL;
public class ImageHandlingExample {
public static void main(String[] args) throws IOException, InterruptedException {
// base64 エンコードされた画像の場合
String image1Url = "https://upload.wikimedia.org/wikipedia/commons/a/a7/Camponotus_flavomarginatus_ant.jpg";
String image1MediaType = "image/jpeg";
String image1Data = downloadAndEncodeImage(image1Url);
String image2Url = "https://upload.wikimedia.org/wikipedia/commons/b/b5/Iridescent.green.sweat.bee1.jpg";
String image2MediaType = "image/jpeg";
String image2Data = downloadAndEncodeImage(image2Url);
// URL ベースの画像の場合、リクエストで URL を直接使用できます
}
private static String downloadAndEncodeImage(String imageUrl) throws IOException {
try (InputStream inputStream = new URL(imageUrl).openStream()) {
return Base64.getEncoder().encodeToString(inputStream.readAllBytes());
}
}
}以下は、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 "[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": "Describe this image."
}
]
}
]
}'詳細については、Messages API の例 を参照してください。
制限事項
Claude の画像理解機能は最先端ですが、注意すべき制限事項があります:
- 人物の識別:Claude は 使用できません 画像内の人物を識別(つまり、名前を付ける)するために使用でき、そうすることを拒否します。
- 精度:Claude は、低品質、回転、または 200 ピクセル未満の非常に小さい画像を解釈する際に、幻覚を見たり間違いを犯したりする可能性があります。
- 空間推論:Claude の空間推論能力は限定的です。アナログ時計の文字盤を読むやチェスの駒の正確な位置を説明するなど、正確なローカライゼーションまたはレイアウトが必要なタスクで苦労する可能性があります。
- カウント:Claude は画像内のオブジェクトの概算数を提供できますが、特に多数の小さなオブジェクトの場合、常に正確であるとは限りません。
- AI 生成画像:Claude は画像が AI 生成かどうかを知らず、尋ねられた場合は間違っている可能性があります。偽造または合成画像を検出するために依存しないでください。
- 不適切なコンテンツ:Claude は、当社の 利用可能ポリシー に違反する不適切または明示的な画像を処理しません。
- ヘルスケアアプリケーション:Claude は一般的な医療画像を分析できますが、CT または MRI などの複雑な診断スキャンを解釈するように設計されていません。Claude の出力は、専門的な医学的アドバイスまたは診断の代わりとは見なされるべきではありません。
特に高リスクのユースケースでは、Claude の画像解釈を常に慎重に確認および検証してください。完全な精度が必要なタスクや人間の監視なしで機密の画像分析に Claude を使用しないでください。
FAQ
ビジョンをさらに深く掘り下げる
Claude を使用して画像でビルドを開始する準備はできていますか?以下は役立つリソースです:
- マルチモーダルクックブック:このクックブックには、画像の開始方法 と ビジョンのベストプラクティス技術 に関するヒントがあり、画像を使用した最高品質のパフォーマンスを確保します。Claude を使用して チャートを解釈および分析する または フォームからコンテンツを抽出する などのタスクを効果的にプロンプトする方法を確認してください。
- API リファレンス:Messages API のドキュメントにアクセスして、画像を含む API 呼び出し の例を含めてください。
ご質問がある場合は、お気軽に サポートチーム にお問い合わせください。また、開発者コミュニティ に参加して、他のクリエイターとつながり、Anthropic の専門家からサポートを受けることができます。