Visi
Panduan ini menjelaskan cara bekerja dengan gambar di Claude, termasuk praktik terbaik, contoh kode, dan keterbatasan yang perlu diingat.
Cara menggunakan visi
Gunakan kemampuan visi Claude melalui:
- claude.ai. Unggah gambar seperti Anda mengunggah file, atau seret dan lepas gambar langsung ke jendela obrolan.
- Console Workbench. Jika Anda memilih model yang menerima gambar (hanya model Claude 3 dan 4), tombol untuk menambahkan gambar muncul di sudut kanan atas setiap blok pesan Pengguna.
- Permintaan API. Lihat contoh dalam panduan ini.
Sebelum Anda mengunggah
Dasar dan Batas
Anda dapat menyertakan beberapa gambar dalam satu permintaan (hingga 20 untuk claude.ai dan 100 untuk permintaan API). Claude akan menganalisis semua gambar yang disediakan saat merumuskan responsnya. Ini dapat membantu untuk membandingkan atau membedakan gambar.
Jika Anda mengirimkan gambar yang lebih besar dari 8000x8000 px, gambar akan ditolak. Jika Anda mengirimkan lebih dari 20 gambar dalam satu permintaan API, batas ini adalah 2000x2000 px.
Meskipun API mendukung 100 gambar per permintaan, ada batas ukuran permintaan 32MB untuk titik akhir standar.
Evaluasi ukuran gambar
Untuk kinerja optimal, kami merekomendasikan mengubah ukuran gambar sebelum mengunggah jika gambar terlalu besar. Jika tepi panjang gambar Anda lebih dari 1568 piksel, atau gambar Anda lebih dari ~1.600 token, gambar akan terlebih dahulu diskalakan ke bawah, mempertahankan rasio aspek, hingga berada dalam batas ukuran.
Jika gambar input Anda terlalu besar dan perlu diubah ukurannya, hal ini akan meningkatkan latensi time-to-first-token, tanpa memberikan Anda kinerja model tambahan. Gambar yang sangat kecil di bawah 200 piksel di tepi mana pun dapat menurunkan kinerja.
Untuk meningkatkan time-to-first-token, kami merekomendasikan mengubah ukuran gambar menjadi tidak lebih dari 1,15 megapiksel (dan dalam 1568 piksel di kedua dimensi).
Berikut adalah tabel ukuran gambar maksimal yang diterima oleh API kami yang tidak akan diubah ukurannya untuk rasio aspek umum. Dengan model Claude Sonnet 3.7, gambar-gambar ini menggunakan sekitar 1.600 token dan sekitar $4,80/1K gambar.
| Rasio aspek | Ukuran gambar |
|---|---|
| 1 | 1092x1092 px |
| 3 | 951x1268 px |
| 2 | 896x1344 px |
| 9 | 819x1456 px |
| 1 | 784x1568 px |
Hitung biaya gambar
Setiap gambar yang Anda sertakan dalam permintaan ke Claude dihitung terhadap penggunaan token Anda. Untuk menghitung biaya perkiraan, kalikan jumlah token gambar perkiraan dengan harga per-token model yang Anda gunakan.
Jika gambar Anda tidak perlu diubah ukurannya, Anda dapat memperkirakan jumlah token yang digunakan melalui algoritma ini: tokens = (width px * height px)/750
Berikut adalah contoh tokenisasi perkiraan dan biaya untuk ukuran gambar berbeda dalam batasan ukuran API kami berdasarkan harga per-token Claude Sonnet 3.7 sebesar $3 per juta token input:
| Ukuran gambar | Jumlah Token | Biaya / gambar | Biaya / 1K gambar |
|---|---|---|---|
| 200x200 px(0,04 megapiksel) | ~54 | ~$0,00016 | ~$0,16 |
| 1000x1000 px(1 megapiksel) | ~1334 | ~$0,004 | ~$4,00 |
| 1092x1092 px(1,19 megapiksel) | ~1590 | ~$0,0048 | ~$4,80 |
Memastikan kualitas gambar
Saat memberikan gambar ke Claude, pertimbangkan hal berikut untuk hasil terbaik:
- Format gambar: Gunakan format gambar yang didukung: JPEG, PNG, GIF, atau WebP.
- Kejelasan gambar: Pastikan gambar jelas dan tidak terlalu buram atau piksel.
- Teks: Jika gambar berisi teks penting, pastikan teks dapat dibaca dan tidak terlalu kecil. Hindari memotong konteks visual kunci hanya untuk memperbesar teks.
Contoh prompt
Banyak dari teknik prompting yang bekerja dengan baik untuk interaksi berbasis teks dengan Claude juga dapat diterapkan pada prompt berbasis gambar.
Contoh-contoh ini mendemonstrasikan struktur prompt praktik terbaik yang melibatkan gambar.
Sama seperti penempatan dokumen-kueri, Claude bekerja paling baik ketika gambar datang sebelum teks. Gambar yang ditempatkan setelah teks atau diinterpolasi dengan teks masih akan berkinerja baik, tetapi jika kasus penggunaan Anda memungkinkan, kami merekomendasikan struktur gambar-kemudian-teks.
Tentang contoh prompt
Contoh-contoh berikut mendemonstrasikan cara menggunakan kemampuan visi Claude menggunakan berbagai bahasa pemrograman dan pendekatan. Anda dapat memberikan gambar ke Claude dengan tiga cara:
- Sebagai gambar yang dikodekan base64 dalam blok konten
image - Sebagai referensi URL ke gambar yang dihosting online
- Menggunakan Files API (unggah sekali, gunakan berkali-kali)
Prompt contoh base64 menggunakan variabel-variabel ini:
# Untuk gambar berbasis URL, Anda dapat menggunakan URL langsung dalam permintaan JSON Anda
# Untuk gambar yang dikodekan base64, Anda perlu terlebih dahulu mengenkode gambar
# Contoh cara mengenkode gambar ke base64 di bash:
BASE64_IMAGE_DATA=$(curl -s "https://upload.wikimedia.org/wikipedia/commons/a/a7/Camponotus_flavomarginatus_ant.jpg" | base64)
# Data yang dikodekan sekarang dapat digunakan dalam panggilan API Andaimport base64
import httpx
# Untuk gambar yang dikodekan base64
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")
# Untuk gambar berbasis URL, Anda dapat menggunakan URL langsung dalam permintaan Andaimport axios from 'axios';
// Untuk gambar yang dikodekan base64
async function getBase64Image(url: string): Promise<string> {
const response = await axios.get(url, { responseType: 'arraybuffer' });
return Buffer.from(response.data, 'binary').toString('base64');
}
// Penggunaan
async function prepareImages() {
const imageData = await getBase64Image('https://upload.wikimedia.org/wikipedia/commons/a/a7/Camponotus_flavomarginatus_ant.jpg');
// Sekarang Anda dapat menggunakan imageData dalam panggilan API Anda
}
// Untuk gambar berbasis URL, Anda dapat menggunakan URL langsung dalam permintaan Andaimport java.io.IOException;
import java.util.Base64;
import java.io.InputStream;
import java.net.URL;
public class ImageHandlingExample {
public static void main(String[] args) throws IOException, InterruptedException {
// Untuk gambar yang dikodekan base64
String image1Url = "https://upload.wikimedia.org/wikipedia/commons/a/a7/Camponotus_flavomarginatus_ant.jpg";
String image1MediaType = "image/jpeg";
String image1Data = downloadAndEncodeImage(image1Url);
String image2Url = "https://upload.wikimedia.org/wikipedia/commons/b/b5/Iridescent.green.sweat.bee1.jpg";
String image2MediaType = "image/jpeg";
String image2Data = downloadAndEncodeImage(image2Url);
// Untuk gambar berbasis URL, Anda dapat menggunakan URL langsung dalam permintaan Anda
}
private static String downloadAndEncodeImage(String imageUrl) throws IOException {
try (InputStream inputStream = new URL(imageUrl).openStream()) {
return Base64.getEncoder().encodeToString(inputStream.readAllBytes());
}
}
}Di bawah ini adalah contoh cara menyertakan gambar dalam permintaan Messages API menggunakan gambar yang dikodekan base64 dan referensi URL:
Contoh gambar yang dikodekan 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": "Jelaskan gambar ini."
}
]
}
]
}'Contoh gambar berbasis 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": "Jelaskan gambar ini."
}
]
}
]
}'Contoh gambar Files API
Untuk gambar yang akan Anda gunakan berulang kali atau ketika Anda ingin menghindari overhead pengodean, gunakan Files API:
# Pertama, unggah gambar Anda ke Files 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]"
# Kemudian gunakan file_id yang dikembalikan dalam pesan Anda
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": "Jelaskan gambar ini."
}
]
}
]
}'Lihat contoh Messages API untuk lebih banyak contoh kode dan detail parameter.
Keterbatasan
Meskipun kemampuan pemahaman gambar Claude canggih, ada beberapa keterbatasan yang perlu diketahui:
- Identifikasi orang: Claude tidak dapat digunakan untuk mengidentifikasi (yaitu, menyebutkan nama) orang dalam gambar dan akan menolak untuk melakukannya.
- Akurasi: Claude mungkin mengalami halusinasi atau membuat kesalahan saat menafsirkan gambar berkualitas rendah, diputar, atau sangat kecil di bawah 200 piksel.
- Penalaran spasial: Kemampuan penalaran spasial Claude terbatas. Mungkin kesulitan dengan tugas yang memerlukan lokalisasi presisi atau tata letak, seperti membaca wajah jam analog atau menjelaskan posisi pion catur yang tepat.
- Penghitungan: Claude dapat memberikan perkiraan jumlah objek dalam gambar tetapi mungkin tidak selalu akurat, terutama dengan jumlah besar objek kecil.
- Gambar yang dihasilkan AI: Claude tidak tahu apakah gambar dihasilkan AI dan mungkin salah jika ditanya. Jangan mengandalkannya untuk mendeteksi gambar palsu atau sintetis.
- Konten yang tidak pantas: Claude tidak akan memproses gambar yang tidak pantas atau eksplisit yang melanggar Kebijakan Penggunaan yang Dapat Diterima kami.
- Aplikasi kesehatan: Meskipun Claude dapat menganalisis gambar medis umum, Claude tidak dirancang untuk menafsirkan pemindaian diagnostik kompleks seperti CT atau MRI. Output Claude tidak boleh dianggap sebagai pengganti nasihat medis profesional atau diagnosis.
Selalu tinjau dan verifikasi interpretasi gambar Claude dengan hati-hati, terutama untuk kasus penggunaan berisiko tinggi. Jangan gunakan Claude untuk tugas yang memerlukan presisi sempurna atau analisis gambar sensitif tanpa pengawasan manusia.
FAQ
Selami lebih dalam visi
Siap mulai membangun dengan gambar menggunakan Claude? Berikut adalah beberapa sumber daya yang berguna:
- Buku masak multimodal: Buku masak ini memiliki tips tentang memulai dengan gambar dan teknik praktik terbaik untuk memastikan kinerja kualitas tertinggi dengan gambar. Lihat bagaimana Anda dapat secara efektif memberi prompt Claude dengan gambar untuk melakukan tugas seperti menafsirkan dan menganalisis bagan atau mengekstrak konten dari formulir.
- Referensi API: Kunjungi dokumentasi kami untuk Messages API, termasuk contoh panggilan API yang melibatkan gambar.
Jika Anda memiliki pertanyaan lain, jangan ragu untuk menghubungi tim dukungan kami. Anda juga dapat bergabung dengan komunitas pengembang kami untuk terhubung dengan kreator lain dan mendapatkan bantuan dari para ahli Anthropic.