視覺
本指南介紹如何在 Claude 中使用圖像,包括最佳實踐、程式碼範例和需要注意的限制。
如何使用視覺功能
透過以下方式使用 Claude 的視覺功能:
- claude.ai。上傳圖像就像上傳檔案一樣,或直接將圖像拖放到聊天視窗中。
- Console Workbench。如果您選擇接受圖像的模型(僅限 Claude 3 和 4 模型),每個使用者訊息區塊的右上角會出現新增圖像的按鈕。
- API 請求。請參閱本指南中的範例。
上傳前
基礎知識和限制
您可以在單一請求中包含多個圖像(claude.ai 最多 20 個,API 請求最多 100 個)。Claude 在制定回應時會分析所有提供的圖像。這對於比較或對比圖像很有幫助。
如果您提交的圖像大於 8000x8000 像素,將被拒絕。如果您在一個 API 請求中提交超過 20 個圖像,此限制為 2000x2000 像素。
雖然 API 支援每個請求 100 個圖像,但標準端點的 32MB 請求大小限制。
評估圖像大小
為了獲得最佳效能,我們建議在上傳前調整過大的圖像大小。如果您的圖像長邊超過 1568 像素,或您的圖像超過約 1,600 個 token,它將首先被縮小,保持寬高比,直到符合大小限制。
如果您的輸入圖像過大需要調整大小,這將增加 首個 token 的延遲時間,而不會為您提供任何額外的模型效能。任何邊小於 200 像素的非常小的圖像可能會降低效能。
為了改善 首個 token 的延遲時間,我們建議 將圖像調整為不超過 1.15 百萬像素(且在兩個維度上都在 1568 像素以內)。
以下是我們 API 接受的常見寬高比的最大圖像大小表,這些圖像不會被調整大小。使用 Claude Sonnet 3.7 模型,這些圖像使用約 1,600 個 token,每 1K 個圖像約 $4.80。
| 寬高比 | 圖像大小 |
|---|---|
| 1 | 1092x1092 像素 |
| 3 | 951x1268 像素 |
| 2 | 896x1344 像素 |
| 9 | 819x1456 像素 |
| 1 | 784x1568 像素 |
計算圖像成本
您在 Claude 請求中包含的每個圖像都計入您的 token 使用量。要計算近似成本,請將近似圖像 token 數乘以您使用的 模型的每個 token 價格。
如果您的圖像不需要調整大小,您可以透過此演算法估計使用的 token 數:tokens = (width px * height px)/750
以下是基於 Claude Sonnet 3.7 每個 token $3 百萬輸入 token 價格,在我們 API 大小限制內的不同圖像大小的近似 token 化和成本範例:
| 圖像大小 | Token 數 | 每個圖像成本 | 每 1K 個圖像成本 |
|---|---|---|---|
| 200x200 像素(0.04 百萬像素) | 約 54 | 約 $0.00016 | 約 $0.16 |
| 1000x1000 像素(1 百萬像素) | 約 1334 | 約 $0.004 | 約 $4.00 |
| 1092x1092 像素(1.19 百萬像素) | 約 1590 | 約 $0.0048 | 約 $4.80 |
確保圖像品質
向 Claude 提供圖像時,請記住以下幾點以獲得最佳結果:
- 圖像格式:使用支援的圖像格式:JPEG、PNG、GIF 或 WebP。
- 圖像清晰度:確保圖像清晰,不要太模糊或像素化。
- 文字:如果圖像包含重要文字,請確保其清晰易讀且不要太小。避免只為了放大文字而裁剪掉關鍵的視覺背景。
提示範例
許多 適用於 Claude 文字互動的提示技術 也可以應用於基於圖像的提示。
這些範例展示了涉及圖像的最佳實踐提示結構。
就像文件查詢位置一樣,Claude 在圖像位於文字之前時效果最佳。 放在文字之後或與文字交錯的圖像仍會表現良好,但如果您的使用案例允許, 我們建議採用圖像優先的結構。
關於提示範例
以下範例展示如何使用各種程式設計語言和方法使用 Claude 的視覺功能。您可以透過三種方式向 Claude 提供圖像:
- 作為
image內容區塊中的 base64 編碼圖像 - 作為線上託管圖像的 URL 參考
- 使用檔案 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 呼叫中使用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 的圖像,您可以直接在請求中使用 URLimport 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 的圖像,您可以直接在請求中使用 URLimport 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());
}
}
}以下是如何在 Messages API 請求中使用 base64 編碼圖像和 URL 參考包含圖像的範例:
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."
}
]
}
]
}'檔案 API 圖像範例
對於您將重複使用的圖像或想要避免編碼開銷時,請使用 檔案 API:
# 首先,將您的圖像上傳到檔案 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 進行需要完美精度或敏感圖像分析的任務。
常見問題
深入探索視覺
準備好開始使用 Claude 使用圖像進行構建了嗎?以下是一些有用的資源:
- 多模態食譜:此食譜包含有關 開始使用圖像 和 視覺最佳實踐技術 的提示,以確保圖像的最高品質效能。了解如何有效地使用圖像提示 Claude 以執行任務,例如 解釋和分析圖表 或 從表單中提取內容。
- API 參考:訪問我們的 Messages API 文件,包括涉及圖像的範例 API 呼叫。
如果您有任何其他問題,請隨時聯絡我們的 支援團隊。您也可以加入我們的 開發者社群 與其他創作者聯繫並獲得 Anthropic 專家的幫助。