本指南介紹如何在 Claude 中使用圖像,包括最佳實踐、程式碼範例和需要記住的限制。
透過以下方式使用 Claude 的視覺功能:
您可以在單個請求中包含多個圖像:claude.ai 最多 20 個,API 請求最多 600 個(對於具有 200k 令牌上下文視窗的模型為 100 個)。Claude 在制定回應時會分析所有提供的圖像。這對於比較或對比圖像很有幫助。
如果您提交的圖像大於 8000x8000 px,將被拒絕。如果您在一個 API 請求中提交超過 20 個圖像,此限制為 2000x2000 px。
為了在不犧牲輸出品質的情況下最小化延遲,如果圖像過大,請在上傳前調整其大小。在 Claude Opus 4.6、Claude Sonnet 4.6 和更早的模型上,如果您的圖像長邊超過 1568 像素,或您的圖像超過約 1,600 個令牌,它會首先按比例縮小,保持寬高比,直到它在大小限制內。
如果您的輸入圖像過大且需要調整大小,它會增加首令牌時間的延遲,對輸出品質沒有任何好處。任何邊小於 200 像素的非常小的圖像可能會降低輸出品質。
對於 Claude Opus 4.7 之前的模型,為了改進首令牌時間,請考慮 將圖像調整為不超過 1.15 百萬像素(且在兩個維度上都在 1568 像素內)。對於 Claude Opus 4.7,請參閱下面的Claude Opus 4.7 上的高解析度圖像支援。
Claude Opus 4.7 是第一個具有高解析度圖像支援的 Claude 模型。最大圖像解析度為長邊 2576 像素(比之前模型的 1568 px 提高)。這為視覺密集型工作負載帶來了效能提升,對於電腦使用、螢幕截圖理解和文件分析特別有價值。
高解析度支援在 Claude Opus 4.7 上是自動的,不需要測試版標頭或客戶端選擇加入。
令牌成本: Claude Opus 4.7 上的全解析度圖像可以使用比之前模型多約 3 倍的圖像令牌(每個圖像最多 4784 個令牌,相比之前的約 1,600 個令牌上限)。如果您不需要額外的保真度,請在發送前對圖像進行下採樣以控制令牌成本。
座標數學: 在 Claude Opus 4.7 上,模型返回的指向和邊界框座標與實際圖像像素的比例為 1
,因此不需要進行比例因子轉換。這簡化了電腦使用、註釋和本地化工作流程。以下是 API 接受的最大圖像大小表,這些大小不會針對常見寬高比進行調整。使用 Claude Sonnet 4.6,這些圖像使用約 1,600 個令牌,每 1k 個圖像約 $4.80。
| 寬高比 | 圖像大小 |
|---|---|
| 1:1 | 1092x1092 px |
| 3:4 | 951x1268 px |
| 2:3 | 896x1344 px |
| 9:16 | 819x1456 px |
| 1:2 | 784x1568 px |
您在請求中包含的每個圖像都計入您的令牌使用量。要計算近似成本,請將近似圖像令牌數乘以您使用的模型的每令牌價格。
如果您的圖像不需要調整大小,您可以透過此演算法估計使用的令牌數:tokens = (width px * height px)/750
以下是基於 Claude Sonnet 4.6 每令牌價格 $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 提供圖像時,請記住以下事項以獲得最佳結果:
許多適用於與 Claude 進行基於文字互動的提示技術也可以應用於基於圖像的提示。
這些範例演示了涉及圖像的最佳實踐提示結構。
就像將長文件放在查詢之前改進文字提示的結果一樣,Claude 在圖像位於文字之前時效果最佳。圖像放在文字之後或與文字交錯仍然表現良好,但如果您的使用案例允許,請優先使用圖像優先的結構。
以下範例演示如何使用各種程式語言和方法使用 Claude 的視覺功能。您可以透過三種方式向 Claude 提供圖像:
image 內容區塊中的 base64 編碼圖像base64 範例提示使用這些變數:
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以下是使用 base64 編碼圖像和 URL 參考在 Messages API 請求中包含圖像的範例:
image1_data = "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR4nGP4z8AAAAMBAQDJ/pLvAAAAAElFTkSuQmCC"
image1_media_type = "image/png"
client = anthropic.Anthropic()
message = client.messages.create(
model="claude-opus-4-7",
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."},
],
}
],
)
print(message)client = anthropic.Anthropic()
message = client.messages.create(
model="claude-opus-4-7",
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."},
],
}
],
)
print(message)對於您會重複使用的圖像,或當您想避免編碼開銷時,請使用 Files API。上傳圖像一次,然後在後續訊息中參考返回的 file_id,而不是重新發送 base64 資料。
在多輪對話和代理工作流中,每個請求都會重新發送完整的對話歷史記錄。如果圖像是 base64 編碼的,完整的圖像位元組會包含在每一輪的有效負載中,這可能會隨著對話的增長而顯著增加請求大小和延遲。將圖像上傳到 Files API 並通過 file_id 參考它們,無論對話歷史記錄中累積了多少圖像,都能保持請求有效負載較小。
client = anthropic.Anthropic()
# 上傳圖像檔案
with open("image.jpg", "rb") as f:
file_upload = client.beta.files.upload(file=("image.jpg", f, "image/jpeg"))
# 在訊息中使用上傳的檔案
message = client.beta.messages.create(
model="claude-opus-4-7",
max_tokens=1024,
betas=["files-api-2025-04-14"],
messages=[
{
"role": "user",
"content": [
{
"type": "image",
"source": {"type": "file", "file_id": file_upload.id},
},
{"type": "text", "text": "Describe this image."},
],
}
],
)
print(message.content)請參閱 Messages API 示例 以獲取更多示例代碼和參數詳細資訊。
雖然 Claude 的圖像理解能力是最先進的,但需要注意一些限制:
始終仔細審查和驗證 Claude 的圖像解釋,特別是對於高風險用例。不要在沒有人工監督的情況下使用 Claude 進行需要完美精度或敏感圖像分析的任務。
準備好開始使用 Claude 構建圖像了嗎?以下是一些有用的資源:
如果您有任何其他問題,請聯繫 支持團隊。您也可以加入 開發者社區 與其他創作者聯繫並獲得 Anthropic 專家的幫助。
Was this page helpful?