이 가이드는 Claude에서 이미지를 사용하는 방법, 모범 사례, 주의해야 할 제한 사항을 설명합니다.
다음을 통해 Claude의 비전 기능을 사용할 수 있습니다:
단일 요청에 여러 이미지를 포함할 수 있습니다: claude.ai의 경우 최대 20개, API 요청의 경우 최대 600개(200k 토큰 컨텍스트 윈도우가 있는 모델의 경우 100개). Claude는 응답을 작성할 때 제공된 모든 이미지를 분석합니다. 이는 이미지를 비교하거나 대조하는 데 도움이 될 수 있습니다.
8000x8000 px보다 큰 이미지를 제출하면 거부됩니다. 한 번의 API 요청에서 20개 이상의 이미지를 제출하면 이 제한은 2000x2000 px입니다.
지연 시간을 최소화하면서 출력 품질을 유지하려면 이미지가 너무 크면 업로드하기 전에 크기를 조정하세요. Claude Opus 4.6, Claude Sonnet 4.6 및 이전 모델에서 이미지의 긴 쪽이 1568픽셀보다 크거나 이미지가 약 1,600토큰보다 크면 먼저 종횡비를 유지하면서 크기 제한 내에 들어올 때까지 축소됩니다.
입력 이미지가 너무 크고 크기를 조정해야 하면 첫 토큰까지의 시간의 지연 시간이 증가하며 출력 품질에는 이점이 없습니다. 어느 쪽 가장자리도 200픽셀 미만인 매우 작은 이미지는 출력 품질을 저하시킬 수 있습니다.
Claude Opus 4.7 이전 모델의 경우 첫 토큰까지의 시간을 개선하려면 이미지를 최대 1.15메가픽셀(그리고 두 차원 모두 1568픽셀 이내)로 크기를 조정하는 것을 고려하세요. Claude Opus 4.7의 경우 아래의 Claude Opus 4.7의 고해상도 이미지 지원을 참조하세요.
Claude Opus 4.7은 고해상도 이미지 지원을 갖춘 첫 번째 Claude 모델입니다. 최대 이미지 해상도는 긴 쪽에 2576픽셀(이전 모델의 1568 px에서 증가)입니다. 이는 비전 집약적 워크로드에서 성능 향상을 제공하며 컴퓨터 사용, 스크린샷 이해 및 문서 분석에 특히 유용합니다.
고해상도 지원은 Claude Opus 4.7에서 자동이며 베타 헤더나 클라이언트 측 옵트인이 필요하지 않습니다.
토큰 비용: Claude Opus 4.7의 전체 해상도 이미지는 이전 모델보다 최대 약 3배 더 많은 이미지 토큰을 사용할 수 있습니다(이미지당 최대 4784토큰, 이전 상한인 약 1,600토큰과 비교). 추가 충실도가 필요하지 않으면 전송하기 전에 이미지를 다운샘플링하여 토큰 비용을 제어하세요.
좌표 수학: Claude Opus 4.7에서 모델이 반환하는 포인팅 및 경계 상자 좌표는 실제 이미지 픽셀과 1
스케일 팩터 변환이 필요하지 않습니다. 이는 컴퓨터 사용, 주석 및 지역화 워크플로우를 단순화합니다.다음은 일반적인 종횡비에 대해 크기 조정되지 않을 API가 수용하는 최대 이미지 크기 표입니다. Claude Sonnet 4.6을 사용하면 이러한 이미지는 약 1,600토큰을 사용하고 약 $4.80/1k 이미지입니다.
| 종횡비 | 이미지 크기 |
|---|---|
| 1:1 | 1092x1092 px |
| 3:4 | 951x1268 px |
| 2:3 | 896x1344 px |
| 9:16 | 819x1456 px |
| 1:2 | 784x1568 px |
Claude에 대한 요청에 포함하는 각 이미지는 토큰 사용량에 포함됩니다. 대략적인 비용을 계산하려면 대략적인 이미지 토큰 수에 사용 중인 모델의 토큰당 가격을 곱하세요.
이미지를 크기 조정할 필요가 없으면 이 알고리즘을 통해 사용된 토큰 수를 추정할 수 있습니다: tokens = (width px * height px)/750
다음은 Claude Sonnet 4.6 토큰당 가격 $3/백만 입력 토큰을 기반으로 API의 크기 제약 내의 다양한 이미지 크기에 대한 대략적인 토큰화 및 비용의 예입니다:
| 이미지 크기 | 토큰 수 | 이미지당 비용 | 1k 이미지당 비용 |
|---|---|---|---|
| 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는 이미지가 텍스트 앞에 올 때 가장 잘 작동합니다. 텍스트 뒤에 배치되거나 텍스트와 함께 삽입된 이미지도 잘 작동하지만, 사용 사례가 허용하면 이미지-텍스트 구조를 선호하세요.
다음 예제는 다양한 프로그래밍 언어와 접근 방식을 사용하여 Claude의 비전 기능을 사용하는 방법을 보여줍니다. Claude에 이미지를 제공하는 방법은 세 가지입니다:
image 콘텐츠 블록의 base64 인코딩 이미지base64 예제 프롬프트는 다음 변수를 사용합니다:
import base64
import httpx
# 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")
# URL 기반 이미지의 경우 요청에서 URL을 직접 사용할 수 있습니다다음은 base64 인코딩 이미지 및 URL 참조를 사용하여 Messages API 요청에 이미지를 포함하는 방법의 예입니다:
image1_data = "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR4nGP4z8AAAAMBAQDJ/pLvAAAAAElFTkSuQmCC"
image1_media_type = "image/png"
client = anthropic.Anthropic()
message = client.messages.create(
model="claude-opus-4-7",
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-7",
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)반복적으로 사용할 이미지나 인코딩 오버헤드를 피하고 싶을 때는 Files API를 사용하세요. 이미지를 한 번 업로드한 후, 반환된 file_id를 후속 메시지에서 참조하면 base64 데이터를 다시 전송할 필요가 없습니다.
다중 턴 대화와 에이전트 워크플로우에서는 각 요청이 전체 대화 기록을 다시 전송합니다. 이미지가 base64로 인코딩되어 있으면 전체 이미지 바이트가 매 턴마다 페이로드에 포함되어 대화가 증가함에 따라 요청 크기와 지연 시간이 크게 증가할 수 있습니다. 이미지를 Files API에 업로드하고 file_id로 참조하면 대화 기록에 이미지가 얼마나 많이 쌓여도 요청 페이로드를 작게 유지할 수 있습니다.
client = anthropic.Anthropic()
# 이미지 파일을 업로드합니다
with open("image.jpg", "rb") as f:
file_upload = client.beta.files.upload(file=("image.jpg", f, "image/jpeg"))
# 업로드된 파일을 메시지에서 사용합니다
message = client.beta.messages.create(
model="claude-opus-4-7",
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)더 많은 예제 코드와 매개변수 세부 정보는 Messages API 예제를 참조하세요.
Claude의 이미지 이해 기능은 최첨단이지만 주의해야 할 몇 가지 제한 사항이 있습니다:
특히 높은 위험도의 사용 사례에서는 항상 Claude의 이미지 해석을 신중하게 검토하고 확인하세요. 완벽한 정확도가 필요하거나 민감한 이미지 분석이 필요한 작업에는 인간의 감독 없이 Claude를 사용하지 마세요.
Claude를 사용하여 이미지로 구축을 시작할 준비가 되셨습니까? 다음은 몇 가지 유용한 리소스입니다:
다른 질문이 있으시면 지원 팀에 문의하세요. 개발자 커뮤니티에 참여하여 다른 제작자와 연결하고 Anthropic 전문가로부터 도움을 받을 수도 있습니다.
Was this page helpful?