Claude Platform Docs
MessagesGambar dan visi

Vision

Kemampuan vision Claude memungkinkannya memahami dan menganalisis gambar, membuka berbagai kemungkinan menarik untuk interaksi multimodal.

Panduan ini menjelaskan cara mengirim gambar ke Claude, batasan dan biaya yang berlaku, serta tempat menemukan panduan untuk alur kerja berbasis koordinat.


Mengirim gambar ke Claude

Gunakan kemampuan vision Claude melalui:

  • claude.ai. Unggah gambar seperti Anda mengunggah file, atau seret dan lepas gambar langsung ke jendela chat.
  • Playground di Claude Console. Tambahkan gambar langsung ke blok pesan User mana pun.
  • Permintaan API. Lihat contoh-contoh berikut.

Di API, berikan gambar ke Claude sebagai blok konten image menggunakan salah satu dari tiga jenis sumber:

  1. Gambar berenkode base64 yang disematkan dalam body permintaan
  2. Referensi URL ke gambar yang dihosting secara online
  3. file_id yang dikembalikan oleh Files API (unggah sekali, referensikan berkali-kali)

Contoh gambar berenkode base64

image1_data = "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR4nGP4z8AAAAMBAQDJ/pLvAAAAAElFTkSuQmCC"
image1_media_type = "image/png"

client = anthropic.Anthropic()
message = client.messages.create(
    model="claude-opus-5-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."},
            ],
        }
    ],
)
print(message)

Contoh gambar berbasis URL

client = anthropic.Anthropic()
message = client.messages.create(
    model="claude-opus-5-5",
    max_tokens=1024,
    messages=[
        {
            "role": "user",
            "content": [
                {
                    "type": "image",
                    "source": {
                        "type": "url",
                        "url": "https://platform.claude.com/docs/images/vision-example.jpg",
                    },
                },
                {"type": "text", "text": "Describe this image."},
            ],
        }
    ],
)
print(message)

Contoh gambar Files API

Untuk gambar yang akan Anda gunakan berulang kali atau ketika Anda ingin menghindari overhead pengodean, gunakan Files API. Unggah gambar sekali, lalu referensikan file_id yang dikembalikan dalam pesan-pesan berikutnya alih-alih mengirim ulang data base64.

client = anthropic.Anthropic()

# Unggah file gambar
with open("vision-example.jpg", "rb") as f:
    file_upload = client.files.upload(file=("vision-example.jpg", f, "image/jpeg"))

# Gunakan file yang telah diunggah dalam pesan
message = client.messages.create(
    model="claude-opus-5-5",
    max_tokens=1024,
    messages=[
        {
            "role": "user",
            "content": [
                {
                    "type": "image",
                    "source": {"type": "file", "file_id": file_upload.id},
                },
                {"type": "text", "text": "Describe this image."},
            ],
        }
    ],
)

print(message.content)

Lihat contoh Messages API untuk contoh kode dan detail parameter lebih lanjut.

Beberapa gambar

Anda dapat menyertakan beberapa gambar dalam satu permintaan, dan Claude menganalisisnya secara bersama-sama. Ini berguna untuk membandingkan gambar, menanyakan perbedaan, atau bekerja dengan suatu urutan seperti halaman-halaman dokumen. Saat mengirim beberapa gambar, perkenalkan masing-masing dengan label teks singkat (Image 1:, Image 2:, dan seterusnya) sehingga Anda dapat merujuknya berdasarkan nama dalam prompt Anda dan pada giliran lanjutan.

image1_data = "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR4nGP4z8AAAAMBAQDJ/pLvAAAAAElFTkSuQmCC"
image2_data = "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR4nGNgYPgPAAEDAQAIicLsAAAAAElFTkSuQmCC"

client = anthropic.Anthropic()
message = client.messages.create(
    model="claude-opus-5-5",
    max_tokens=1024,
    messages=[
        {
            "role": "user",
            "content": [
                {"type": "text", "text": "Image 1:"},
                {
                    "type": "image",
                    "source": {
                        "type": "base64",
                        "media_type": "image/png",
                        "data": image1_data,
                    },
                },
                {"type": "text", "text": "Image 2:"},
                {
                    "type": "image",
                    "source": {
                        "type": "base64",
                        "media_type": "image/png",
                        "data": image2_data,
                    },
                },
                {"type": "text", "text": "How are these images different?"},
            ],
        }
    ],
)
print(message)

Dalam percakapan multi-giliran, tambahkan gambar baru pada giliran user berikutnya dengan cara yang sama. Claude memiliki akses ke setiap gambar dari giliran sebelumnya, sehingga pertanyaan lanjutan seperti "Apakah ini mirip dengan dua gambar pertama?" berfungsi tanpa perlu menyertakan kembali gambar sebelumnya dalam konten giliran baru.


Batasan dan biaya gambar

Batasan permintaan

Jumlah maksimum gambar per pesan atau permintaan adalah:

  • 20 per pesan di claude.ai.
  • 100 per permintaan di API, untuk model dengan "context window" (jendela konteks) 200k token.
  • 600 per permintaan di API, untuk semua model lainnya.

Dimensi maksimum per gambar adalah 8000x8000 px.

Jika satu permintaan API berisi lebih dari 20 gambar, batas dimensi per gambar yang lebih ketat berlaku untuk setiap gambar dalam permintaan tersebut. Semua blok image dalam permintaan dihitung terhadap ambang ini, termasuk gambar dari giliran percakapan sebelumnya yang Anda kirim ulang dan gambar yang bersarang di dalam konten tool_result (misalnya, tangkapan layar yang dikembalikan ke alat computer use). Di Amazon Bedrock dan Google Cloud, blok dokumen seperti PDF juga dihitung terhadap ambang ini. Gambar yang melebihi batas yang lebih ketat akan ditolak dengan invalid_request_error yang pesannya merujuk pada "many-image requests" dan menyatakan batas saat ini dalam piksel. Agar tetap di bawah batas di semua platform, ubah ukuran setiap gambar sehingga tidak ada dimensi yang melebihi 2000 px, atau batasi permintaan hingga 20 blok gambar dan dokumen atau kurang.

Ukuran maksimum per gambar adalah:

  • 10 MB (berenkode base64) saat menggunakan Claude API secara langsung.
  • 5 MB (berenkode base64) di Amazon Bedrock dan Google Cloud.
  • 10 MB di claude.ai.

Format yang didukung

Claude mendukung gambar JPEG, PNG, GIF, dan WebP (image/jpeg, image/png, image/gif, image/webp). Animasi tidak didukung, dan hanya frame pertama yang digunakan.

Resolusi dan biaya token

Claude melihat gambar dalam bentuk patch, bukan piksel. Setiap patch adalah blok gambar berukuran 28×28 piksel, yang disebut sebagai token visual. Oleh karena itu, sebuah gambar memerlukan ⌈width / 28⌉ × ⌈height / 28⌉ token visual.

Setiap model memiliki resolusi gambar native maksimum, yang dinyatakan sebagai batas sisi panjang dan batas token visual. Gambar yang lebih besar dari salah satu batas tersebut akan diperkecil sebelum diproses; lihat Cara Claude mengubah ukuran dan menambahkan padding pada gambar untuk aturan persisnya. Pengecualiannya adalah tangkapan layar dan gambar zoom yang Anda kembalikan ke toolset computer use dan browser use: API menolak gambar tool_result yang melebihi batas model dengan error validasi alih-alih memperkecilnya, jadi ubah ukuran gambar tersebut di aplikasi Anda sebelum mengembalikannya. Agar gambar berukuran berlebih lainnya ditolak dengan error alih-alih diperkecil, atur field transformations pada blok gambar.

Tingkat resolusiModelSisi panjang maksToken visual maks
Resolusi tinggiClaude 4.7 dan model yang lebih baru2576 px4784
StandarSemua model lainnya1568 px1568

Dukungan resolusi tinggi bersifat otomatis pada model yang tercantum dan tidak memerlukan header beta atau opt-in di sisi klien.

Tabel berikut menunjukkan resolusi setelah diperkecil dan biaya token visual untuk beberapa ukuran gambar pada setiap tingkat:

Ukuran gambarTingkat standar: diperkecil menjadiTingkat standar: tokenTingkat resolusi tinggi: diperkecil menjadiTingkat resolusi tinggi: token
200x200 px (0,04 megapiksel)Tidak diubah ukurannya64Tidak diubah ukurannya64
1000x1000 px (1 megapiksel)Tidak diubah ukurannya1296Tidak diubah ukurannya1296
1092x1092 px (1,19 megapiksel)Tidak diubah ukurannya1521Tidak diubah ukurannya1521
1920x1080 px (2,07 megapiksel)1456x819 px1560Tidak diubah ukurannya2691
2000x1500 px (3 megapiksel)1269x952 px1564Tidak diubah ukurannya3888
3840x2160 px (8,29 megapiksel)1456x819 px15602576x1449 px4784

Ketika sebuah gambar diperkecil, Claude menskalakannya ke ukuran terbesar yang sesuai dengan batas tingkat tersebut sambil mempertahankan rasio aspeknya. Ini membatasi biaya token. Untuk aturan persis dan implementasi referensi, lihat Cara Claude mengubah ukuran dan menambahkan padding pada gambar.

Untuk memperkirakan biaya, kalikan jumlah token dengan harga per token model yang Anda gunakan. Misalnya, dengan harga Claude Haiku 4.5 sebesar $1 USD per juta token input (tingkat standar), gambar 1000×1000 berbiaya sekitar $1,30 USD per seribu gambar. Dengan harga Claude Opus 5 sebesar $5 USD per juta (tingkat resolusi tinggi), gambar yang sama berbiaya sekitar $6,48 USD per seribu dan gambar 4K sekitar $23,92 USD per seribu.

Gambar resolusi tinggi dapat menggunakan hingga kira-kira tiga kali lebih banyak token visual dibandingkan gambar yang sama pada model tingkat standar. Jika Anda tidak memerlukan fidelitas tambahan yang diberikan resolusi tinggi untuk computer use, pemahaman tangkapan layar, dan dokumen padat, lakukan downsampling pada gambar sebelum mengirim untuk mengendalikan biaya token. Untuk meminimalkan latensi dan menyederhanakan alur kerja berbasis koordinat, utamakan mengubah ukuran gambar sebelum mengunggahnya.

Panduan kualitas gambar

Saat memberikan gambar ke Claude, perhatikan hal-hal berikut untuk hasil terbaik:

  • Kejernihan gambar: Pastikan gambar jernih dan tidak terlalu buram atau pecah (pixelated).
  • Teks: Jika gambar berisi teks penting, pastikan teks tersebut terbaca dan tidak terlalu kecil. Hindari memotong konteks visual penting hanya untuk memperbesar teks.
  • Pengubahan ukuran: Perhatikan bahwa gambar Anda mungkin diubah ukurannya jika terlalu besar (lihat Resolusi dan biaya token); hal ini, misalnya, dapat membuat teks kurang terbaca. Pertimbangkan untuk mengubah ukuran gambar Anda terlebih dahulu, memotongnya, atau keduanya. Agar gambar berukuran berlebih ditolak dengan error alih-alih diubah ukurannya (penting untuk alur kerja koordinat), tandai blok gambar dengan "oversized_image": "error".
  • Kompresi gambar: Mengompresi gambar sebelum mengirimnya, menggunakan format lossy seperti JPEG atau WebP (mode lossy), dapat mengurangi latensi dengan memperkecil ukuran permintaan. Namun, hal ini dapat menimbulkan artefak yang merugikan kinerja model, terutama ketika beberapa tahap kompresi diterapkan. Misalnya, kompresi JPEG yang berat dapat membuat teks sulit dibaca. Pastikan pengaturan kompresi Anda sesuai untuk tugas tersebut dengan memeriksa gambar aktual yang dikirim ke API.

Koordinat dan bounding box

Untuk bounding box, titik, dan koordinat piksel, lihat Koordinat dan bounding box. Claude mengembalikan koordinat piksel absolut relatif terhadap gambar yang dilihatnya setelah pengubahan ukuran; panduan tersebut membahas cara Claude mengubah ukuran dan menambahkan padding pada gambar serta cara mengubah ukuran terlebih dahulu atau menskalakan ulang agar koordinat selaras dengan gambar asli Anda.


Keterbatasan

Meskipun kemampuan pemahaman gambar Claude sangat mutakhir, ada beberapa keterbatasan yang perlu diperhatikan:

  • Identifikasi orang: Claude tidak dapat digunakan untuk menyebutkan nama orang dalam gambar dan akan menolak melakukannya.
  • Akurasi: Claude mungkin berhalusinasi atau membuat kesalahan saat menafsirkan gambar berkualitas rendah, diputar, atau sangat kecil di bawah 200 piksel.
  • Penalaran spasial: Output koordinat dan lokalisasi Claude bersifat perkiraan. Ikuti panduan di Koordinat dan bounding box dan verifikasi output sebelum mengandalkannya.
  • Penghitungan: Claude dapat memberikan perkiraan jumlah objek dalam gambar tetapi mungkin tidak selalu akurat secara tepat, terutama dengan objek kecil dalam jumlah besar.
  • Gambar buatan AI: Claude tidak dapat menentukan apakah sebuah gambar dibuat oleh AI dan mungkin salah jika ditanya. Jangan mengandalkannya untuk mendeteksi gambar palsu atau sintetis.
  • Konten tidak pantas: Claude tidak memproses gambar tidak pantas atau eksplisit yang melanggar Kebijakan Penggunaan yang Dapat Diterima.
  • Aplikasi kesehatan: Meskipun Claude dapat menganalisis gambar medis umum, Claude tidak dirancang untuk menafsirkan pindaian diagnostik kompleks seperti CT atau MRI. Output Claude tidak boleh dianggap sebagai pengganti saran atau diagnosis medis profesional.

Selalu tinjau dan verifikasi interpretasi gambar Claude dengan cermat, terutama untuk kasus penggunaan berisiko tinggi. Jangan gunakan Claude untuk tugas yang memerlukan presisi sempurna atau analisis gambar sensitif tanpa pengawasan manusia.


FAQ


Langkah selanjutnya

Dapatkan tips dan teknik praktik terbaik untuk tugas seperti menafsirkan grafik dan mengekstrak konten dari formulir.

Lihat dokumentasi Messages API, termasuk contoh panggilan API yang melibatkan gambar.

Was this page helpful?