Panduan ini menjelaskan cara mengirim gambar ke Claude, batasan dan biaya yang berlaku, serta di mana menemukan panduan untuk alur kerja berbasis koordinat.
Gunakan kemampuan vision Claude melalui:
Pada API, berikan gambar ke Claude sebagai blok konten image menggunakan salah satu dari tiga jenis sumber:
file_id yang dikembalikan oleh Files API (unggah sekali, referensikan berkali-kali)Pada Amazon Bedrock dan Google Cloud, saat ini hanya sumber yang dienkode base64 yang tersedia.
Sama seperti menempatkan dokumen panjang sebelum kueri Anda meningkatkan hasil dalam prompt teks, Claude bekerja paling baik ketika gambar ditempatkan sebelum teks. Gambar yang ditempatkan setelah teks atau disisipkan di antara teks tetap berfungsi dengan baik, tetapi jika kasus penggunaan Anda memungkinkan, lebih baik gunakan struktur gambar-lalu-teks.
image1_data = "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR4nGP4z8AAAAMBAQDJ/pLvAAAAAElFTkSuQmCC"
image1_media_type = "image/png"
client = anthropic.Anthropic()
message = client.messages.create(
model="claude-opus-4-8",
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-8",
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)Untuk gambar yang akan Anda gunakan berulang kali atau ketika Anda ingin menghindari overhead encoding, gunakan Files API. Unggah gambar sekali, lalu referensikan file_id yang dikembalikan dalam pesan berikutnya alih-alih mengirim ulang data base64.
Dalam percakapan multi-giliran dan alur kerja agentic, setiap permintaan
mengirim ulang seluruh riwayat percakapan. Jika gambar dienkode base64,
seluruh byte gambar disertakan dalam payload pada setiap giliran, yang dapat
secara signifikan meningkatkan ukuran permintaan dan latensi seiring
bertambahnya percakapan. Mengunggah gambar ke Files API dan mereferensikannya
dengan file_id menjaga payload permintaan tetap kecil terlepas dari berapa
banyak gambar yang terakumulasi dalam riwayat percakapan.
client = anthropic.Anthropic()
# Unggah file gambar
with open("image.jpg", "rb") as f:
file_upload = client.beta.files.upload(file=("image.jpg", f, "image/jpeg"))
# Gunakan file yang diunggah dalam pesan
message = client.beta.messages.create(
model="claude-opus-4-8",
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)Lihat contoh Messages API untuk lebih banyak contoh kode dan detail parameter.
Anda dapat menyertakan beberapa gambar dalam satu permintaan, dan Claude menganalisisnya secara bersamaan. Ini berguna untuk membandingkan gambar, menanyakan perbedaan, atau bekerja dengan 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 dalam giliran lanjutan.
client = anthropic.Anthropic()
message = client.messages.create(
model="claude-opus-4-8",
max_tokens=1024,
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "Image 1:"},
{
"type": "image",
"source": {
"type": "base64",
"media_type": "image/png",
"data": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR4nGP4z8AAAAMBAQDJ/pLvAAAAAElFTkSuQmCC",
},
},
{"type": "text", "text": "Image 2:"},
{
"type": "image",
"source": {
"type": "base64",
"media_type": "image/png",
"data": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR4nGNgYPgPAAEDAQAIicLsAAAAAElFTkSuQmCC",
},
},
{"type": "text", "text": "How are these images different?"},
],
}
],
)
print(message)Dalam percakapan multi-giliran, tambahkan gambar baru di 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 yang pertama?" berfungsi tanpa menyertakan gambar sebelumnya lagi dalam konten giliran baru.
Jumlah maksimum gambar per pesan atau permintaan adalah:
Dimensi maksimum per gambar adalah 8000x8000 px.
Jika satu permintaan API berisi lebih dari 20 gambar, batas dimensi per gambar yang lebih ketat berlaku. Pada Amazon Bedrock dan Google Cloud, blok dokumen seperti PDF juga dihitung terhadap ambang batas ini. Gambar yang melebihi batas yang lebih ketat ditolak dengan invalid_request_error yang pesannya mereferensikan "many-image requests" dan menyatakan batas saat ini dalam piksel. Untuk tetap di bawah batas pada semua platform, ubah ukuran setiap gambar sehingga tidak ada dimensi yang melebihi 2000 px, atau batasi permintaan hingga 20 atau kurang blok gambar dan dokumen.
Ukuran maksimum per gambar adalah:
Meskipun API mendukung hingga 600 gambar per permintaan, batas ukuran permintaan (32 MB untuk endpoint standar; lebih rendah pada beberapa platform yang dioperasikan mitra, misalnya Amazon Bedrock dan Google Cloud) dapat tercapai terlebih dahulu. Untuk banyak gambar, pertimbangkan untuk mengunggah dengan Files API dan mereferensikan dengan file_id untuk menjaga payload permintaan tetap kecil.
Bahkan saat menggunakan Files API, permintaan dengan banyak gambar besar dapat gagal sebelum mencapai jumlah 600 gambar. Kurangi dimensi gambar atau ukuran file (misalnya, dengan downsampling) sebelum mengunggah (lihat Resolusi dan biaya token).
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.
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 membutuhkan ⌈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 diperkecil sebelum diproses; lihat Cara Claude mengubah ukuran dan menambahkan padding pada gambar untuk aturan persisnya.
| Tingkat resolusi | Model | Sisi panjang maks | Token visual maks |
|---|---|---|---|
| Resolusi tinggi | Claude Fable 5, Claude Mythos 5, Claude Opus 4.8, Claude Opus 4.7, Claude Sonnet 5 | 2576 px | 4784 |
| Standar | Semua model lainnya | 1568 px | 1568 |
Dukungan resolusi tinggi bersifat otomatis pada model yang tercantum dan tidak memerlukan header beta atau opt-in dari sisi klien.
Tabel berikut menunjukkan biaya token visual untuk beberapa ukuran gambar pada setiap tingkat:
| Ukuran gambar | Token tingkat standar | Token tingkat resolusi tinggi |
|---|---|---|
| 200x200 px (0,04 megapiksel) | 64 | 64 |
| 1000x1000 px (1 megapiksel) | 1296 | 1296 |
| 1092x1092 px (1,19 megapiksel) | 1521 | 1521 |
| 1920x1080 px (2,07 megapiksel) | 1560 | 2691 |
| 2000x1500 px (3 megapiksel) | 1564 | 3888 |
| 3840x2160 px (8,29 megapiksel) | 1560 | 4784 |
Untuk memperkirakan biaya, kalikan jumlah token dengan harga per token dari model yang Anda gunakan. Misalnya, pada harga Claude Haiku 4.5 sebesar $1 per juta token input (tingkat standar), gambar 1000×1000 berbiaya sekitar $1,30 per seribu gambar. Pada harga Claude Opus 4.8 sebesar $5 per juta (tingkat resolusi tinggi), gambar yang sama berbiaya sekitar $6,48 per seribu dan gambar 4K sekitar $23,92 per seribu.
Gambar resolusi tinggi dapat menggunakan hingga sekitar tiga kali lebih banyak token visual dibandingkan gambar yang sama pada model tingkat standar. Jika Anda tidak memerlukan fidelitas tambahan yang disediakan resolusi tinggi untuk penggunaan komputer, pemahaman screenshot, dan dokumen padat, lakukan downsample pada gambar sebelum mengirim untuk mengontrol biaya token. Untuk meminimalkan latensi dan menyederhanakan alur kerja berbasis koordinat, lebih baik ubah ukuran gambar sebelum mengunggahnya.
Saat memberikan gambar ke Claude, perhatikan hal-hal berikut untuk hasil terbaik:
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.
Meskipun kemampuan pemahaman gambar Claude sangat canggih, ada beberapa keterbatasan yang perlu diperhatikan:
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.
Dapatkan tips dan teknik praktik terbaik untuk tugas seperti menginterpretasikan grafik dan mengekstrak konten dari formulir.
Lihat dokumentasi Messages API, termasuk contoh panggilan API yang melibatkan gambar.
Was this page helpful?