本指南介紹如何在 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:11092x1092 像素
3:4951x1268 像素
2:3896x1344 像素
9:16819x1456 像素
1:2784x1568 像素

計算圖像成本

您在 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 提供圖像:
  1. 作為 image 內容區塊中的 base64 編碼圖像
  2. 作為線上託管圖像的 URL 參考
  3. 使用檔案 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 呼叫中使用
以下是如何在 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 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": "Describe this image."
                }
            ],
        }
    ],
)
在有多個圖像的情況下,用 Image 1:Image 2: 等介紹每個圖像。圖像之間或圖像與提示之間不需要換行。要求 Claude 描述多個圖像之間的差異。
角色內容
使用者圖像 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": "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 描述多個圖像之間的差異,同時給它一個系統提示以了解如何回應。
內容
系統僅用西班牙語回應。
使用者圖像 1:[圖像 1] 圖像 2:[圖像 2] 這些圖像有什麼不同?
以下是使用 Claude Sonnet 3.7 模型的相應 API 呼叫。
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 進行延伸的來回交換,隨時添加新圖像或後續問題。這為迭代圖像分析、比較或將視覺與其他知識結合提供了強大的工作流程。要求 Claude 對比兩個圖像,然後提出後續問題,將第一個圖像與兩個新圖像進行比較。
角色內容
使用者圖像 1:[圖像 1] 圖像 2:[圖像 2] 這些圖像有什麼不同?
助手[Claude 的回應]
使用者圖像 1:[圖像 3] 圖像 2:[圖像 4] 這些圖像與前兩個相似嗎?
助手[Claude 的回應]
使用 API 時,只需將新圖像插入到 user 角色中的訊息陣列中,作為任何標準 多輪對話 結構的一部分。

限制

雖然 Claude 的圖像理解功能是尖端的,但有一些限制需要注意:
  • 人物識別:Claude 無法用於 識別(即命名)圖像中的人物,並將拒絕這樣做。
  • 準確性:Claude 在解釋低品質、旋轉或非常小的圖像(小於 200 像素)時可能會產生幻覺或犯錯誤。
  • 空間推理:Claude 的空間推理能力有限。它可能在需要精確定位或佈局的任務中遇到困難,例如讀取類比時鐘面或描述國際象棋棋子的確切位置。
  • 計數:Claude 可以給出圖像中物體的近似計數,但可能並不總是精確準確,特別是對於大量小物體。
  • AI 生成的圖像:Claude 不知道圖像是否是 AI 生成的,如果被問及可能會不正確。不要依賴它來檢測虛假或合成圖像。
  • 不當內容:Claude 不會處理違反我們 可接受使用政策 的不當或明確圖像。
  • 醫療保健應用:雖然 Claude 可以分析一般醫療圖像,但它不是為解釋複雜的診斷掃描(如 CT 或 MRI)而設計的。Claude 的輸出不應被視為專業醫療建議或診斷的替代品。
始終仔細審查和驗證 Claude 的圖像解釋,特別是對於高風險使用案例。不要在沒有人工監督的情況下使用 Claude 進行需要完美精度或敏感圖像分析的任務。

常見問題

Claude 目前支援 JPEG、PNG、GIF 和 WebP 圖像格式,具體如下:
  • image/jpeg
  • image/png
  • image/gif
  • image/webp
是的,Claude 現在可以透過 API 中的 URL 圖像來源區塊處理來自 URL 的圖像。 只需在 API 請求中使用 “url” 來源類型而不是 “base64”。 範例:
{
  "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 專家的幫助。