Claude 3 系列模型帶來了新的視覺能力,讓 Claude 能夠理解和分析圖像,為多模態互動開啟了令人興奮的可能性。現在,您可以同時提供文字和圖像輸入給 Claude,豐富您的對話並實現強大的新使用案例。

支援視覺的模型

您不需要使用特殊版本的 Claude 3 模型來使用 Claude 的視覺能力。所有 Claude 3 模型都能夠理解和分析圖像。

本指南將引導您了解如何在 Claude 中使用圖像,包括最佳實踐、代碼示例以及需要注意的限制。

立即在 claude.ai 嘗試使用圖像聊天!


入門指南

目前,您可以通過三種方式使用 Claude 的視覺能力:

  • 直接在 claude.ai 的聊天窗口中。像上傳文件一樣上傳圖像,或直接將圖像拖放到窗口中!
  • 通過我們的 Console Workbench。如果您選擇接受圖像的模型(僅限 Claude 3 模型),每個 User 消息塊的右上角將出現添加圖像的按鈕。
  • 通過 API 請求 - 請參閱下面的說明。

在本指南中,我們將使用 Anthropic Python SDK,以及以下示例變量。我們將使用 httpx 庫從維基百科獲取示例圖像,但您可以使用任何適合您的圖像源。

Python
import anthropic
import base64
import httpx

client = anthropic.Anthropic()

image1_url = "https://upload.wikimedia.org/wikipedia/commons/a/a7/Camponotus_flavomarginatus_ant.jpg"
image1_media_type = "image/jpeg"
image1_data = base64.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.b64encode(httpx.get(image2_url).content).decode("utf-8")

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

Python

message = client.messages.create(
    model="claude-3-opus-20240229",
    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)

支持的圖像格式包括 JPEG、PNG、GIF 和 WebP。有關更多示例代碼和參數詳細信息,請參閱 Messages API 示例


圖像大小

為了獲得最佳性能,如果您的圖像可能超過大小或 token 限制,我們建議在上傳之前調整圖像大小。如果圖像的長邊超過 1568 像素,或圖像超過約 1600 個 token,它將首先被縮小,保持長寬比,直到在大小限制內。如果您的輸入圖像太大並需要調整大小,它將增加 time-to-first-token 的延遲,而不會提高模型性能。任何邊小於 200 像素的非常小的圖像可能會導致性能下降。

如果您想改善 time-to-first-token,我們建議將圖像調整為不超過 1.15 百萬像素(並且在兩個維度上都不超過 1568 像素)。

以下是我們 API 接受的最大圖像大小表,這些圖像不會被調整大小,適用於常見的長寬比。所有這些圖像大約有 1600 個 token,假設使用 Claude 3 Sonnet,每 1000 張圖像的成本約為 $4.80:

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

圖像最佳實踐

在向 Claude 提供圖像時,請記住以下準則以獲得最佳結果:

  • 圖像清晰度: 確保您的圖像清晰,不要太模糊或像素化。Claude 可能難以準確解釋不清晰或低質量的圖像。
  • 圖像放置: 就像 文檔查詢放置 一樣,當圖像放在文本之前時,Claude 的效果最好。放在文本之後或與文本交錯的圖像仍然會表現良好,但如果您的使用案例允許,我們建議使用圖像-文本結構。有關更多詳細信息,請參閱 視覺提示技巧
  • 文字: 如果您的圖像包含重要文字,請確保它清晰可讀且不要太小。但是,僅為了放大文字而裁剪掉關鍵的視覺上下文。
  • 多張圖像: 您可以在單個請求中包含多張圖像(claude.ai 最多 5 張,API 請求最多 20 張)。Claude 在制定回應時會分析所有提供的圖像。這對於比較或對比圖像很有幫助。

有關更多詳細信息和準則,請參閱 限制


提示技巧

許多適用於與 Claude 進行基於文本交互的 提示技術 也可以應用於基於圖像的提示。請參閱我們的 多模態 cookbook,了解圖像處理技術和使用案例的演練,並提供相應的提示技術和策略。

以下是一些涉及圖像的最佳實踐提示結構示例。通常,最好將圖像放在提示中的問題或使用它們的任務說明之前,並且在有多張圖像的情況下,用 Image 1:Image 2: 等介紹每張圖像。您不需要在圖像之間或圖像和提示之間使用換行符。

1. 示例:單張圖像

以下是提示結構:

角色內容
User[Image] 描述這張圖像。

以下是相應的 API 調用:

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

2. 示例:多張圖像

以下是提示結構:

角色內容
UserImage 1: [Image 1] Image 2: [Image 2] 這些圖像有什麼不同?

以下是相應的 API 調用:

Python
message = client.messages.create(
    model="claude-3-opus-20240229",
    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": "這些圖像有什麼不同?"
                }
            ],
        }
    ],
)

3. 示例:帶有系統提示的多張圖像

以下是提示結構:

內容
System只用西班牙語回答。
UserImage 1: [Image 1] Image 2: [Image 2] 這些圖像有什麼不同?

以下是相應的 API 調用:

Python
message = client.messages.create(
    model="claude-3-opus-20240229",
    max_tokens=1024,
    system="只用西班牙語回答。",
    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": "這些圖像有什麼不同?"
                }
            ],
        }
    ],
)

4. 示例:兩個對話輪次中的四張圖像

在混合圖像和文本的多模態對話中,Claude 的視覺能力真正大放異彩。您可以與 Claude 進行長時間的來回交流,隨時添加新圖像或後續問題。這為圖像分析、比較或將視覺與其他知識結合的迭代工作流程提供了強大的支持。

以下是一個示例提示結構:

角色內容
UserImage 1: [Image 1] Image 2: [Image 2] 這些圖像有什麼不同?
Assistant[Claude 的回應]
UserImage 1: [Image 3] Image 2: [Image 4] 這些圖像與前兩張相似嗎?
Assistant[Claude 的回應]

使用 API 時,只需將新圖像插入 user 角色中的 Messages 數組,作為任何標準 多輪對話 結構的一部分。


圖像成本

您在向 Claude 發出請求時包含的每張圖像都會計入您的 token 使用量。要計算大致成本,請將圖像 token 的大致數量乘以您使用的模型的每 token 價格。您可以在我們的 定價頁面 上找到模型定價詳情。

假設您的圖像不需要調整大小,您可以通過這個簡單的算法估算使用的 token 數量:

tokens = (width px * height px)/750

以下是我們 API 大小限制 內不同圖像大小的大致 token 數量和成本示例,假設使用 Claude 3 Sonnet,每百萬輸入 token 的價格為 $3:

圖像大小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 的圖像理解能力處於領先地位,但仍有一些限制需要注意:

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

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


常見問題

Claude 支持哪些圖像文件類型?

Claude 目前支持 JPEG、PNG、GIF 和 WebP 圖像格式,具體為 image/jpegimage/pngimage/gifimage/webp

Claude 可以讀取圖像 URL 嗎?

Claude 無法在任何界面上讀取圖像 URL,包括 claude.ai。我們的 API 目前不支持在 textimage 塊中添加 URL。在 text 塊中添加圖像 URL(或任何類型的 URL)可能會導致 Claude 產生幻覺,因為 Claude 目前無法從該 URL 檢索信息。

我可以上傳的圖像文件大小有限制嗎?

是的,每張圖像的最大允許文件大小為 5MB(在 claude.ai 上每張圖像最大為 10MB)。大於 5MB 的圖像在使用我們的 API 時將被拒絕並返回錯誤。

我可以在一個請求中包含多少張圖像?

通過 Messages API,您可以在單個請求中包含最多 20 張圖像。在 claude.ai 上,每個輪次最多可以包含 5 張圖像。超過該限制的圖像數量在使用我們的 API 時將被拒絕並返回錯誤。

Claude 會讀取圖像元數據嗎?

不會,Claude 不會解析或接收傳遞給它的圖像中的任何元數據。

我可以刪除上傳的圖像嗎?

不可以。此外,圖像上傳是臨時的,不會在 API 請求持續時間之外存儲。上傳的圖像在處理完畢後會自動刪除。

在哪裡可以找到有關圖像上傳數據隱私和安全的更多詳細信息?

請參閱我們的 隱私政策 頁面,了解我們如何處理上傳的圖像和其他數據的信息。我們不會使用上傳的圖像來訓練我們的模型。

如果 Claude 的圖像解釋似乎有誤,我該怎麼辦?

如果您從 Claude 那裡得到的圖像解釋似乎不正確,首先要仔細檢查圖像是否清晰、高質量且方向正確。如果問題仍然存在,請嘗試使用 提示工程 技術來改善結果。如果無法解決問題,請通過 claude.ai 中的點贊/點踩界面直接標記令人擔憂的輸出,或聯繫我們的 支持團隊 讓我們知道。您的反饋有助於我們改進!

Claude 可以生成、製作、編輯、操縱或創建圖像嗎?

不可以,Claude 只是一個圖像理解模型。它可以解釋和分析圖像,但不能生成、製作、編輯、操縱或創建圖像。


深入探索視覺

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

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

我們很高興看到您使用 Claude 強大的新視覺功能創造出什麼!