메인 콘텐츠로 건너뛰기
APIYI의 대부분의 주요 대화형 모델은 이미지를 “볼” 수 있습니다. 텍스트 추출(OCR), 객체 수 세기, 장면 묘사, 여러 이미지 비교 등의 작업이 가능합니다. 이 페이지에서는 2026-10-11 (UTC+8) 테스트 기준 지원 목록, 이미지 1장당 소모되는 token 수, 네 가지 요청 형식별로 지원되는 모델, 그리고 가장 흔히 발생하는 오류를 안내합니다.
먼저 다음 세 가지 사항을 확인하십시오:
  1. 범용 형식은 OpenAI 호환 image_url입니다: 테스트한 22개 비전 모델 전체에서 {"type": "image_url", "image_url": {"url": "data:image/png;base64,..."}} 방식으로 정상 작동했습니다. Responses 및 Anthropic 형식은 일부 모델만 지원하므로, “각 형식이 지원하는 모델” 항목을 참조하십시오.
  2. deepseek-v4-pro 및 glm-5.3과 같은 텍스트 전용 모델은 이미지를 지원하지 않습니다: 요청 시 200이 반환되지만 이미지는 무시되며, 모델은 이미지를 볼 수 없다고 응답합니다. 이미지가 모델에 전달되었는지 확인하려면 응답의 usage.prompt_tokens를 확인하십시오.
  3. base64 사용을 권장합니다: 공개 URL을 사용하는 경우 제공업체 측에서 이미지를 다운로드해야 하므로, 호스트 서버가 느리거나 핫링크 방지가 적용되어 있거나 Content-Length 헤더가 누락된 경우 실패할 수 있습니다(Qwen의 경우 400 오류를 반환합니다).

이미지 인식 · APIYI 온라인 도구

코드를 작성하고 싶지 않으신가요? 브라우저에서 이미지를 업로드(다중 이미지 분석 지원)하고, 일반 인식, 상품명, 핵심 특징(5가지 포인트) 설명, 속성 분석, OCR용 기본 제공 템플릿을 활용하여 모델별 결과를 비교해 보십시오. APIYI 키만 붙여넣으면 바로 사용할 수 있습니다.

동영상 이해 API

동영상을 분석해야 하나요? 동영상 지원 목록과 형식을 확인하십시오.

AI 에이전트로 연동 진행하기

이 프롬프트를 복사하여 Codex / Claude Code / Cursor에 붙여넣으십시오

이 프롬프트는 먼저 이 페이지의 일반 텍스트 버전을 가져온 다음(문서 URL 뒤에 .md 추가), 프로젝트 자체 스택에 맞추어 코드를 작성합니다. 범용 image_url 형식 사용, 대용량 이미지 사전 축소, 그리고 이미지가 모델에 실제로 전달되었는지 확인하기 위한 prompt_tokens 검증이 요구사항에 이미 반영되어 있습니다.

이 프로젝트에서 비전 이해 연동/문제 해결을 진행하십시오: OCR, 객체 수 세기, 장면 설명 또는 다중 이미지 비교를 위해 멀티모달 모델에 이미지를 전송합니다.

코드를 수정하기 전에 문서를 읽으십시오: 이 페이지의 일반 텍스트 버전을 확인하려면 https://docs.apiyi.com/en/api-capabilities/vision-understanding.md 를 가져오십시오.

  1. 엔드포인트 및 형식: 기본적으로 OpenAI 호환 POST https://api.apiyi.com/v1/chat/completions을(를) 사용하고 각 이미지를 … 형태로 전달하십시오.

총 9개의 요구사항이 있습니다. 아래 버튼을 사용하여 전체 프롬프트를 복사하십시오.

지원 모델

본 결과는 2026-10-11 (UTC+8)에 진행된 테스트를 기반으로 합니다. 모든 모델은 동일한 1200×760 크기의 중영문 혼합 주문서 이미지(표 포함)를 한 글자도 빠짐없이 텍스트로 변환하고, 도형의 개수를 세며, 두 이미지 간의 차이점을 찾아내고, 공개 이미지 URL을 읽는 작업을 수행했습니다. 이미지를 보지 않고 임의로 생성한 답변을 배제하기 위해 공백 이미지를 대조군으로 사용했습니다. gemini-3.1-flash-lite 및 gpt-5.4-mini 또한 이미지를 읽을 수 있고 OCR도 완벽하게 수행했으나, 객체 개수를 잘못 계산하므로(각각 3회 중 0회, 3회 중 1회만 정답) 개수 측정 작업에는 사용하지 않는 것이 좋습니다. qwen-vl-ocr은 전용 OCR 모델로 표만 출력하고 표 외부의 모든 텍스트는 건너뛰며, 다중 이미지 요청 시 첫 번째 이미지만 읽으므로 순수 표나 신분증/서류 인식 시나리오에만 사용하십시오.
모델 가격은 공식 사이트 기준에 맞춰져 있으며 변동될 수 있습니다. 위 표는 참고용일 뿐이며, 상단 내비게이션의 모델 가격 탭이 기준이 됩니다: 모델 가격.

이미지를 지원하지 않는 모델

다른 모델의 경우 모델 상세 페이지의 “입력 양식(Input modalities)” 행을 확인하십시오. 단일 API에서 텍스트 + 이미지 처리를 참조하시기 바랍니다.

각 형식이 지원하는 모델

신규 프로젝트에는 OpenAI 호환 chat 형식을 사용하는 것을 권장합니다 — 모델 전환은 모델 이름을 변경하기만 하면 됩니다. Responses는 이미 OpenAI Responses SDK를 사용 중인 프로젝트에 적합하며, Anthropic 형식은 Claude 생태계(Claude Code, Anthropic SDK)에 적합하고, Gemini 네이티브는 이미 google-genai SDK를 사용 중인 프로젝트에 적합합니다.

빠른 시작: 범용 형식 (image_url)

로컬 이미지 (Base64, 권장)

공개 이미지 URL

여러 이미지 비교하기

이미지당 하나의 image_url 블록을 순서대로 추가하고, prompt에서 이를 “이미지 1” 및 “이미지 2”로 참조하십시오:

curl

Base64를 권장하는 이유: 이미지 URL을 사용할 경우 제공업체가 이미지를 실시간으로 다운로드하므로, 호스트가 느리거나 핫링크 방지 기능을 사용하거나 접근을 제한하면 실패할 수 있습니다. 또한 Qwen 모델은 호스트가 Content-Length 헤더를 전송해야 합니다(일부 CDN은 이 헤더 없이 청크 전송을 사용하여 테스트 시 Missing Content-Length of multimodal url을 반환했습니다). Base64는 외부 다운로드 없이 이미지를 요청 본문에 직접 포함합니다. Base64는 원본 크기의 약 1.33배이므로 인코딩 전에 큰 이미지를 축소하십시오. “큰 이미지 먼저 축소하기”를 참조하십시오.

기타 형식

OpenAI Responses (input_image)

이미 OpenAI Responses SDK를 사용 중인 프로젝트에 적합합니다. GPT, Grok, Qwen3.8, Kimi, MiniMax 및 DeepSeek Vision에만 지원되며 — Gemini / Claude / Seed는 400을 반환합니다.

Anthropic Messages (image)

Claude 생태계(Anthropic SDK, Claude Code 등)의 경우 엔드포인트는 https://api.apiyi.com입니다. base64 소스는 Claude, Gemini, GPT, Qwen, Kimi 및 MiniMax를 지원하며, url 소스는 Claude에서만 작동합니다(Gemini는 이미지를 알림 없이 무시합니다).

Gemini 네이티브 형식 (inline_data)

프로젝트에서 이미 Google의 공식 google-genai SDK를 사용하고 있다면, base_url가 https://api.apiyi.com를 가리키도록 설정하기만 하면 됩니다:
REST 형식: 헤더 x-goog-api-key: YOUR_API_KEY와 함께 POST https://api.apiyi.com/v1beta/models/gemini-3.8-flash:generateContent를 호출하고, 이미지는 contents[].parts[] 내부에 {"inline_data": {"mime_type": "image/png", "data": "<BASE64>"}}로 전달합니다. 더 자세한 네이티브 사용법은 Gemini 네이티브 형식을 참고하십시오.

대용량 이미지는 먼저 다운스케일링하십시오

제공업체마다 대용량 이미지를 처리하는 방식이 크게 다릅니다. 약 10 MB 크기의 9000×6000 JPEG 이미지 1장에 대한 결과는 다음과 같습니다:
업로드 전에 긴 변을 약 2048 px로 조정하십시오: 동일한 이미지를 2048×1365로 다운스케일링한 후 표에 있는 8개 모델 모두 이미지당 약 700–3,700 tokens로 완벽하게 정확한 OCR 결과를 보이며 통과했고, gpt-6-sol은 63,658에서 3,320으로 감소했습니다. Claude가 429를 반환하는 경우 먼저 오류 본문을 확인하십시오. image exceeds는 이미지가 너무 크다는 의미이므로 재시도해도 해결되지 않습니다.

자주 발생하는 오류

이미지 URL 다운로드 시간 초과

이미지 URL을 전달할 때 다음과 같은 오류가 발생하는 경우:
이는 제공업체 측에서 해당 이미지 URL을 다운로드하는 동안 시간 초과가 발생했음을 의미하며, 모델, 키 또는 잔액과는 전혀 관련이 없습니다. 일반적인 원인은 호스트 서버가 느리거나 특정 지역에서의 접근성이 떨어지는 경우, 이미지 용량이 너무 큰 경우, 또는 URL에 핫링크 방지나 로그인 보호가 걸려 있는 경우 등입니다. 해결 방법: base64로 전환(권장 — 다운로드 단계가 완전히 생략됨), 더 빠르고 공개적으로 접근 가능한 URL 사용, 또는 이미지를 압축한 후 다시 시도하십시오.

멀티모달 URL의 Content-Length 누락 (Qwen)

Qwen 모델은 이미지 호스트가 Content-Length 응답 헤더를 전송하도록 요구합니다. 일부 CDN(예: Cloudflare)은 해당 헤더 없이 청크 전송 방식으로 이미지를 제공하여 이 오류를 발생시킵니다. 동일한 이미지를 오브젝트 스토리지에서 제공하거나 base64로 대신 전송하십시오.

invalid base64 data (Base64 필드에 URL이 입력된 경우)

다음과 같은 400 오류가 발생하는 경우(핵심 문구는 invalid base64 data이며, 문구는 모델에 따라 약간 다를 수 있습니다):
이는 대개 data URI의 base64 데이터 부분에 이미지 URL이 붙여넣어졌음을 의미합니다:
data:image/...;base64, 접두사 뒤에 오는 내용은 반드시 이미지 파일 자체의 base64 인코딩 결과여야 합니다. URL 형식과 base64 형식은 상호 배타적이며 함께 혼용할 수 없습니다:
자체 확인: 전송하기 전에 이미지 소스를 확인하십시오. 문자열이 http(으)로 시작하면 URL 형식을 사용하고, 그렇지 않으면 base64로 인코딩하여 data URI를 생성하십시오. 유효한 base64에는 :// 또는 ?와 같은 문자가 포함되지 않으므로, base64, 뒤에 이러한 문자가 보인다면 거의 확실히 링크가 붙여넣어진 것입니다.

선언된 이미지 형식이 실제 형식과 일치하지 않음 (미디어 타입 불일치)

다음과 같은 400 오류가 발생하는 경우(핵심 문구는 The image was specified using the image/png media type, but the image appears to be a image/jpeg image입니다):
이는 data URI가 이미지를 PNG(data:image/png;base64,...)로 선언했으나, 제공업체가 이를 디코딩하고 파일 헤더를 확인한 결과 실제 콘텐츠가 JPEG임을 발견하여 요청을 거부했음을 의미합니다. 일반적인 원인은 변경된 파일 확장자로부터 형식을 추론했거나 코드에 image/png(을)를 하드코딩한 경우입니다.
이 검사 여부는 모델이 사용하는 업스트림 채널에 따라 다릅니다. 당사의 2026-10-11 (UTC+8) 테스트에서는 PNG로 선언된 JPEG를 전송했을 때 22개 비전 모델 모두에서 정상 작동했으나, Bedrock 채널을 통해 제공되는 Claude 모델에서는 위의 오류가 반환되었습니다. “선언된 형식은 실제 콘텐츠와 일치해야 한다”는 규칙을 기준으로 코드를 작성하면 모든 채널에서 안전하게 사용할 수 있습니다.
해결 방법: data URI를 생성하기 전에 파일 헤더에서 실제 형식을 감지하거나, “대용량 이미지 먼저 축소하기” 아래의 함수처럼 PIL을 사용하여 모두 JPEG로 변환하십시오:
file xxx.png(macOS / Linux 명령줄)을 사용하면 파일의 실제 형식을 바로 확인할 수 있으며, Python에서는 Image.open(path).format(으)로 동일한 결과를 얻을 수 있습니다.

고급 팁

이미지가 모델에 실제로 전달되었는지 확인

응답에서 usage.prompt_tokens을(를) 확인하십시오. 대부분의 제공자에서 1200×760 이미지는 대략 900–1,300 tokens를 소모합니다(DeepSeek Vision에서는 약 570 tokens). 텍스트 전용 요청과 비교하여 수가 거의 증가하지 않거나 전혀 증가하지 않는다면 이미지가 누락된 것입니다. 이는 텍스트 전용 모델(deepseek-v4-pro, glm-5.3), Anthropic 엔드포인트를 통한 Grok, Anthropic URL 소스를 통한 Gemini에서 발생합니다.
이미지를 수신하지 못한 모델은 답변을 지어낼 수 있습니다. 테스트에서 이미지를 첨부하지 않고 “이미지의 모든 텍스트를 전사해 주세요”라고 요청했을 때, 다른 모든 모델은 이미지를 볼 수 없다고 답변한 반면 gemini-3.8-flash은(는) 6회 중 1회에서 존재하지 않는 표 전체를 지어냈습니다. 따라서 배치 파이프라인에서는 답변에만 의존하지 마시고, 먼저 prompt_tokens(으)로 전달 여부를 확인하십시오.

detail 매개변수

image_url 내부의 detail: "low"은(는) 일부 모델에서만 적용됩니다. gpt-5.4-mini(1,147 → 233 tokens이지만 작은 텍스트를 잘못 읽기 시작함) 및 Seed(1,340 → 602 tokens, OCR은 여전히 완전히 정확함)에서 지원되며, GPT-6 / 5.6, Gemini, Claude 및 Qwen은 이를 무시합니다. tokens를 절약하는 보다 범용적인 방법은 이미지를 직접 축소하는 것입니다.

매개변수

chat 엔드포인트에서 max_tokens 및 temperature은(는) GPT(GPT-6 포함), Claude 및 Gemini에서 정상적으로 작동합니다(테스트 시 이들 모두에서 temperature=0.3이(가) 통과되었습니다). MiniMax-M3는 <think>...</think> 추론을 content에 넣으므로 직접 제거해야 합니다.

일반적인 작업을 위한 prompt 아이디어

동일한 이미지라도 prompt만 변경하면 코드를 수정할 필요 없이 완전히 다른 작업을 수행할 수 있습니다.
  • OCR: “이미지의 모든 텍스트를 한 글자도 빠짐없이 전사하고, 표는 Markdown 표로 출력해 주세요”
  • 개수 세기 / 구조화된 출력: “각 객체가 몇 개씩 있는지 세고 JSON으로만 출력해 주세요: {"object": count}”
  • 제품 분석: “제품 유형과 브랜드를 식별하고, 주요 셀링 포인트와 타깃 고객을 나열해 주세요”
  • 다중 이미지 비교: “아래는 이미지 1과 이미지 2입니다. 모든 차이점을 나열해 주세요”
  • 차트 판독: “축, 데이터 추세, 최댓값 및 최솟값을 판독해 주세요”
의료 영상, 신분증 또는 안전 관련 사항에 대한 결과는 참고용일 뿐입니다. 중요한 결정은 사람이 직접 검토해야 하며, 민감한 개인정보가 포함된 이미지는 업로드하지 마십시오.

자주 묻는 질문

이 페이지에서 테스트된 22개 비전 모델 모두 지원합니다: Gemini, GPT, Claude, Grok, Seed, Qwen, Kimi, MiniMax 및 DeepSeek Vision. deepseek-v4-pro 및 glm-5.3와 같은 텍스트 전용 모델은 지원하지 않습니다. 기타 모델의 경우 모델 상세 페이지의 “Input modalities” 행을 확인하십시오.
먼저 응답에서 usage.prompt_tokens를 확인하십시오. 수십 개의 tokens에 불과하다면 이미지가 모델에 전혀 도달하지 못했음을 의미합니다. 주요 원인: ① 텍스트 전용 모델을 선택한 경우; ② Anthropic 엔드포인트를 통해 Grok을 호출했거나 Anthropic URL 소스를 통해 Gemini를 호출한 경우(두 경우 모두 이미지가 자동으로 누락됩니다); ③ 공급자가 공개 URL을 다운로드할 수 없는 경우. Base64와 함께 chat image_url 형식으로 전환하면 이러한 문제 대부분을 해결할 수 있습니다.
일부 모델만 지원하는 Responses 또는 Anthropic 형식을 사용하고 있을 가능성이 가장 높습니다(“각 형식이 지원하는 모델” 참조). OpenAI와 호환되는 chat image_url 형식으로 전환하면 모든 공급자에서 정상적으로 작동합니다.
먼저 오류 본문을 확인하십시오. image exceeds 10 MB maximum 메시지가 표시된다면 이미지가 너무 크다는 의미입니다(Base64 인코딩 후 크기 기준). 재시도해도 해결되지 않으므로 긴 쪽의 크기를 약 2048 px로 조정한 후 다시 전송하십시오.
이미지의 픽셀 수가 너무 많을 가능성이 거의 확실합니다(수천만 픽셀에 달하는 원본 이미지). 피크 시간대에는 공급자가 몇 분 동안 대기열에 넣은 후 거부하거나 즉시 patches ... exceeding the limit를 반환합니다. 재시도해도 해결되지 않으므로 긴 쪽을 2048 px로 축소하여 다시 전송하십시오. 테스트 결과 및 진단 방법: 이미지 이해 요청에서 시간 초과가 계속 발생함 — 이미지가 너무 큽니까?.
GPT 모델은 이미지 타일 단위로 과금하므로 원본 이미지가 클수록 더 많은 tokens가 소모됩니다. 테스트 결과, 9000×6000 크기의 이미지 한 장에 대해 gpt-6-sol에서 63,658개의 입력 tokens가 과금되었습니다. 긴 쪽을 약 2048 px로 조정한 후 동일한 이미지는 gpt-6-sol에서 3,320 tokens로 줄어들었으며, 공급자 전반에서 약 700~3,700 tokens 수준으로 감소했습니다.
JPEG, PNG, GIF, WebP와 같은 주요 형식은 모두 지원됩니다. 스마트폰 카메라에서 생성된 MPO 파일(확장자는 .jpg)도 테스트에서 정상 인식되었습니다. 가장 안전한 방법은 전송 전에 PIL을 사용하여 모든 이미지를 JPEG로 변환하는 것입니다.

관련 리소스

모델 요금

모든 모델 및 최신 요금

동영상 이해 API

동영상 콘텐츠 인식, 장면 설명 및 타임스탬프

Gemini 네이티브 형식

네이티브 형식의 스트리밍, 추론 예산 등

하나의 API로 처리하는 텍스트 + 이미지

모델이 지원하는 입력 모달리티를 확인하는 방법