本指南描述如何在Claude中處理圖像,包括最佳實踐、程式碼範例以及需要注意的限制。


如何使用視覺能力

您可以通過以下方式使用Claude的視覺能力:

  • claude.ai。像上傳檔案一樣上傳圖像,或直接將圖像拖放到聊天視窗中。
  • Console Workbench。如果您選擇了支援圖像的模型(僅限Claude 3模型),每個使用者訊息區塊的右上角都會出現添加圖像的按鈕。
  • API請求。請參閱本指南中的範例。

上傳前須知

評估圖像大小

您可以在單個請求中包含多個圖像(claude.ai最多5張,API請求最多100張)。Claude在制定回應時會分析所有提供的圖像。這對於比較或對比圖像很有幫助。

為獲得最佳效能,如果圖像超過大小或token限制,我們建議在上傳前調整圖像大小。如果您的圖像長邊超過1568像素,或圖像超過約1,600個token,系統會先按比例縮小圖像,直到符合大小限制。

如果您的輸入圖像太大需要調整大小,這會增加首字輸出時間的延遲,而不會給您帶來任何額外的模型效能。任何邊緣小於200像素的非常小的圖像可能會降低效能。

為了改善首字輸出時間,我們建議將圖像調整為不超過1.15百萬像素(且兩個維度都在1568像素以內)。

以下是我們的API接受的不同長寬比的最大圖像尺寸表,這些圖像不會被調整大小。使用Claude 3.5 Sonnet模型時,這些圖像使用約1,600個token,每1000張圖像約需$4.80。

長寬比圖像大小
1:11092x1092 px
3:4951x1268 px
2:3896x1344 px
9:16819x1456 px
1:2784x1568 px

計算圖像成本

您在請求中包含的每張圖像都會計入您的token使用量。要計算大約成本,將估計的圖像token數乘以您使用的模型的每token價格

如果您的圖像不需要調整大小,您可以通過以下算法估算使用的token數:tokens = (寬度px * 高度px)/750

以下是基於Claude 3.5 Sonnet每百萬輸入token $3的價格,在我們API大小限制內不同圖像大小的大約token化和成本示例:

圖像大小token數量每張圖像成本每1000張圖像成本
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的效果最好。圖像放在文字之後或與文字交錯仍然表現良好,但如果您的使用場景允許,我們建議採用圖像在前文字在後的結構。

關於提示詞範例

這些提示詞範例使用Anthropic Python SDK,並使用httpx庫從維基百科獲取圖像。您可以使用任何圖像來源。

這些範例提示詞使用以下變數。

Python
import base64
import httpx

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")

在進行API請求時,您可以將圖像作為base64編碼的圖像在image內容區塊中提供給Claude。以下是一個簡單的Python範例,展示如何在Messages API請求中包含base64編碼的圖像:

Python
import anthropic

client = anthropic.Anthropic()
message = client.messages.create(
    model="claude-3-5-sonnet-20241022",
    max_tokens=1024,
    messages=[
        {
            "role": "user",
            "content": [
                {
                    "type": "image",
                    "source": {
                        "type": "base64",
                        "media_type": image1_media_type,
                        "data": image1_data,
                    },
                },
                {
                    "type": "text",
                    "text": "描述這張圖像。"
                }
            ],
        }
    ],
)
print(message)

查看Messages API範例以獲取更多程式碼範例和參數詳情。


限制

雖然Claude的圖像理解能力處於前沿水平,但仍有一些需要注意的限制:

  • 人物識別:Claude不能用於識別(即命名)圖像中的人物,並且會拒絕這樣做。
  • 準確性:在解釋低品質、旋轉或小於200像素的非常小的圖像時,Claude可能會產生幻覺或出錯。
  • 空間推理:Claude的空間推理能力有限。它可能在需要精確定位或佈局的任務中遇到困難,比如讀取類比時鐘面或描述棋子的確切位置。
  • 計數:Claude可以給出圖像中物體的大致數量,但可能不總是精確,尤其是在有大量小物體時。
  • AI生成的圖像:Claude不知道圖像是否是AI生成的,如果被問到可能會回答錯誤。不要依賴它來檢測假圖或合成圖像。
  • 不當內容:Claude不會處理違反我們可接受使用政策的不當或露骨圖像。
  • 醫療應用:雖然Claude可以分析一般醫療圖像,但它並不是為解釋複雜的診斷掃描(如CT或MRI)而設計的。Claude的輸出不應被視為專業醫療建議或診斷的替代品。

對於高風險用例,請始終仔細審查和驗證Claude的圖像解釋。在沒有人工監督的情況下,不要將Claude用於需要完美精確度或敏感圖像分析的任務。


常見問題


深入了解視覺能力

準備好開始使用Claude構建圖像應用了嗎?以下是一些有用的資源:

如果您有任何其他問題,請隨時聯繫我們的支援團隊。您也可以加入我們的開發者社群,與其他創作者聯繫並獲得Anthropic專家的幫助。