Cohere 모델로 이미지 입력 다루기
Cohere 모델로 이미지 입력 다루기
Cohere 대규모 언어 모델이 이미지 입력을 어떻게 다루는지 설명하는 문서예요. API로 이미지를 전달하는 방법, 한계, 베스트 프랙티스를 다룹니다.
출처: 문서
본문
소개(Introduction)
비전(vision) 능력을 가진 모델은 이미지 데이터를 이해하고 해석하며, 텍스트와 시각 입력 사이의 관계를 매핑하고, 이미지와 텍스트가 섞인 다양한 작업을 처리할 수 있어요.
Cohere에는 이미지와 상호작용할 수 있는 모델이 있으며, 다음과 같은 엔터프라이즈 사용 사례에서 뛰어납니다:
- 차트, 그래프, 다이어그램 분석;
- 이미지 내 테이블 추출 및 이해;
- 문서 광학 문자 인식(OCR) 및 질의응답;
- 이미지에서 발견되는 텍스트 번역을 포함한 자연어 이미지 처리.
이것들과 그 밖의 응용에 대한 더 상세한 분류를 보려면 저희 cookbook들을 확인해 보세요.
이 모델들은 다른 모든 Command 모델과 거의 똑같이 보이는 인터페이스와 API 구조를 통해 작동하도록 설계되어, 이미지 처리 기능을 쉽게 시작할 수 있어요. 예를 들어 이 이미지에는 여러 폐기물 관리 회사들의 수익 그래프가 들어 있습니다:

다음과 같이 Command A Vision에 이 이미지를 분석하게 할 수 있어요:
PYTHON
response = co.chat(
model="command-a-vision-07-2025",
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "Please create two markdown tables. One for Revenue. One for CAGR. the company names should be in alphabetical order in both."},
{"type": "image_url", "image_url": {"url": base64_url}},
],
}
],
)
cURL
curl --request POST \
--url https://api.cohere.ai/v2/chat \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--header "Authorization: bearer ***" \
--data '{
"model": "command-a-vision-07-2025",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "Please create two markdown tables. One for Revenue. One for CAGR. the company names should be in alphabetical order in both."
},
{
"type": "image_url",
"image_url": {
"url": "data:image/png;base64,..."
}
}
]
}
]
}'
그러면 이런 결과를 얻게 됩니다:

이 문서의 나머지 부분에서는 Cohere 모델이 이미지 입력과 함께 작동하는 방식을 자세히 설명하며, 한계, 토큰 계산 등에 대한 정보를 포함합니다.
경고(Warning)
Cohere의 비전(Vision) 능력은 현재 North 플랫폼에서 제공되지 않아요.
이미지 디테일(Image Detail)
Chat API는 사용자가 모델로 보내는 이미지 "detail" 수준을 제어할 수 있게 하며, 이는 "low", "high", 또는 "auto"(기본값) 중 하나일 수 있어요.
더 낮은 디테일은 전체 토큰 수(따라서 가격과 지연 시간)를 줄이는 데 도움이 되지만, 성능은 더 나빠질 수 있어요. 두 디테일 수준을 모두 시도해 "low"에서 성능이 충분한지 확인하는 것을 권장합니다.
detail 속성은 이미지마다 지정되며, 다음과 같은 형태입니다:
PYTHON
co.chat(
model="command-a-vision-07-2025",
messages=[
{ "role": "user", "content": [
{"type": "text",
"text": "what's in this image?"
},
{"type": "image_url",
"image_url": {
"url": "https://cohere.com/favicon-32x32.png",
"detail": "high" # Here's where we're setting the detail.
}
},
]
}
]
)
cURL
curl --request POST \
--url https://api.cohere.ai/v2/chat \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--header "Authorization: bearer ***" \
--data '{
"model": "command-a-vision-07-2025",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "what'\''s in this image?"
},
{
"type": "image_url",
"image_url": {
"url": "https://cohere.com/favicon-32x32.png",
"detail": "high"
}
}
]
}
]
}'
detail이 "low"로 설정되면:
- 이미지 영역이 512px \* 512px보다 크면, 종횡비(aspect ratio)를 유지하려 하면서 이 치수에 맞게 크기가 조정됩니다.
- 각 "low" 디테일 이미지는 모델의 컨텍스트 길이에 포함되는 256 토큰을 차지해요.
detail이 "high"로 설정되면:
- 이미지 영역이 1536px \* 2048px보다 크면, 캐시할 수 있도록 종횡비를 유지하려 하면서 이 치수에 맞게 크기가 조정됩니다.
- 내부적으로 API는 이미지를 512x512 픽셀의 타일 하나 이상으로 나누고, 여기에 512x512 픽셀의 미리보기(preview) 타일 하나를 더합니다; 각 타일은 모델의 컨텍스트 길이에 포함되는 256 토큰을 차지해요.
detail이 지정되지 않거나 "auto"로 설정되면:
- 이미지의 어느 한 변이 768px보다 크면
high디테일이 사용되고, 그렇지 않으면low로 설정됩니다.
이미지가 토큰으로 처리되는 방식의 예시 계산은 다음과 같아요:
- 사용자가 10,000px \* 20,000px 이미지를 제공한다고 가정해 보세요.
- 이 이미지는 1024px \* 2048px로 축소됩니다(가장 긴 변이 최대 2048px여야 하므로), 이는 512x512 타일 8개에 들어가요.
- 결국 모델로 보내지는 것은 512px X 512px 미리보기 썸네일 하나와 512px X 512px 타일 8개예요. 썸네일이 256 토큰이고 타일 8개 각각이 256 토큰이므로, 이 이미지는 9 x 256 = 2304 토큰을 차지합니다.
이미지 전달하기(Passing in an Image)
이미지 URL 형식(Image URL Formats)
Cohere는 두 가지 형식의 이미지를 지원해요: base64 data URL과 HTTP image URL입니다.
base64 data URL(예: "data:image/png;base64,...")은 인터넷에 접근할 수 없는 배포에서도 사용할 수 있다는 장점이 있어요. 형태는 다음과 같습니다:
PYTHON
co.chat(
model="command-a-vision-07-2025",
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "what's in this image?"},
{
"type": "image_url",
"image_url": {"url": "data:image..."},
},
],
}
],
)
cURL
curl --request POST \
--url https://api.cohere.ai/v2/chat \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--header "Authorization: bearer ***" \
--data '{
"model": "command-a-vision-07-2025",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "what'\''s in this image?"
},
{
"type": "image_url",
"image_url": {
"url": "data:image/png;base64,..."
}
}
]
}
]
}'
HTTP 이미지 URL(예: "https://cohere.com/favicon-32x32.png")은 더 빠르지만, 이미지를 어딘가에 업로드해야 하며 외부 플랫폼(Azure, Bedrock 등)에서는 사용할 수 없어요. HTTP 이미지 URL은 API를 쉽게 시도해볼 수 있게 하는데, data URL은 길고 다루기 어렵기 때문이에요. 게다가 긴 data URL을 요청에 포함하면 요청 크기와 그에 따른 네트워크 지연 시간이 늘어납니다.
형태는 다음과 같아요:
PYTHON
co.chat(
model="command-a-vision-07-2025",
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "what's in this image?"},
{
"type": "image_url",
"image_url": {
"url": "https://cohere.com/favicon-32x32.png"
},
},
],
}
],
)
cURL
curl --request POST \
--url https://api.cohere.ai/v2/chat \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--header "Authorization: bearer ***" \
--data '{
"model": "command-a-vision-07-2025",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "what'\''s in this image?"
},
{
"type": "image_url",
"image_url": {
"url": "https://cohere.com/favicon-32x32.png"
}
}
]
}
]
}'
챗봇처럼 이미지가 채팅 기록에 누적되는 사용 사례의 경우, HTTP/HTTPS 이미지 URL을 사용하는 것을 권장해요. 요청 크기가 더 작아지고, 서버 측 캐싱과 함께 더 빠른 응답 시간을 얻을 수 있기 때문입니다.
한계(Limitations)
이미지 개수(Image Counts)
Cohere API는 이미지 개수와 관련해 다음과 같은 한계가 있습니다:
- 요청당 최대 20개 이미지, 또는 총 20메가바이트(mb) 데이터 중 먼저 도달하는 쪽까지만 전달할 수 있어요.
파일 형식(File types)
지원되는 파일 형식은 다음과 같아요:
- PNG (
.png) - JPEG (
.jpeg및.jpg) - WEBP (
.webp) - 비애니메이션 GIF (
.gif)
비라틴 알파벳(Non-Latin Alphabets)
일본어나 한국어 문자 같은 비라틴 문자를 포함한 텍스트가 있는 이미지를 처리할 때 성능이 달라질 수 있어요.
텍스트 크기(Text Size)
정확도를 높이려면 중요한 시각 정보를 잃지 않으면서 이미지의 작은 텍스트를 확대하는 것을 고려해 보세요. 이미지에 작은 텍스트가 있을 것으로 예상된다면 detail='high'로 설정하세요.
좋은 경험칙은: '이미지의 텍스트를 읽기 어렵다면, 모델도 마찬가지로 어려워한다'입니다.
속도 제한(Rate Limits)
이미지 입력은 속도 제한 고려 사항을 바꾸지 않아요. 자세한 내용은 전용 속도 제한 문서(rate limit documentation)를 확인하세요.
비용 이해(Understanding Costs)
모델의 비용 계산 방법을 이해하려면 위에서 토큰이 모델에 의해 어떻게 결정되는지에 대한 설명을 확인한 다음, 전용 가격 페이지(pricing page)를 확인해 최종 비용을 계산하면 됩니다.
허용 가능한 사용(Acceptable Use)
사용 정책(usage policy)을 참조해 주세요.
이미지 모델을 위한 프롬프트 엔지니어링
텍스트 생성 모델과 이미지와 함께 작동하는 모델에 대한 프롬프팅은 매우 유사해요. Cohere의 표준 언어 모델 중 하나에서 프롬프트가 잘 작동한다면, 이미지 모델에서도 잘 작동할 거예요.
베스트 프랙티스(Best Practices)
큰 이미지 크기 조정(Resizing Large Images)
모델이 처리할 수 있는 것보다 큰 이미지로 작업한다면 직접 크기를 조정하는 것을 고려해 보세요. 지연 시간, 비용, 성능에 긍정적인 영향을 줄 수 있습니다.
구조화된 출력과 JSON 모드(Structured Outputs and JSON Mode)
OCR 같은 많은 사용 사례는 Cohere의 구조화된 출력 능력과 함께 가장 잘 작동해요. 이에 대해 더 알아보려면 구조화된 출력 가이드(structured output guide)를 확인하세요.
모델에서 최상의 결과 얻기(Getting the best Results out of the Model)
모델 출력을 최적화하기 위한 몇 가지 기법은 다음과 같아요:
- 텍스트 기반 상호작용에서 잘 작동하는 프롬프트 기법을 적용하세요.
- API로 보내기 전에 클라이언트 측에서 큰 이미지를 줄여 네트워크 지연 시간을 줄이세요.
- 이미지의 작은 텍스트를 확대해 가독성과 모델 성능을 개선하세요.