- 범용 형식은 OpenAI 호환
image_url입니다: 테스트한 22개 비전 모델 전체에서{"type": "image_url", "image_url": {"url": "data:image/png;base64,..."}}방식으로 정상 작동했습니다. Responses 및 Anthropic 형식은 일부 모델만 지원하므로, “각 형식이 지원하는 모델” 항목을 참조하십시오. deepseek-v4-pro및glm-5.3과 같은 텍스트 전용 모델은 이미지를 지원하지 않습니다: 요청 시 200이 반환되지만 이미지는 무시되며, 모델은 이미지를 볼 수 없다고 응답합니다. 이미지가 모델에 전달되었는지 확인하려면 응답의usage.prompt_tokens를 확인하십시오.- base64 사용을 권장합니다: 공개 URL을 사용하는 경우 제공업체 측에서 이미지를 다운로드해야 하므로, 호스트 서버가 느리거나 핫링크 방지가 적용되어 있거나
Content-Length헤더가 누락된 경우 실패할 수 있습니다(Qwen의 경우 400 오류를 반환합니다).
이미지 인식 · APIYI 온라인 도구
동영상 이해 API
AI 에이전트로 연동 진행하기
이 프롬프트를 복사하여 Codex / Claude Code / Cursor에 붙여넣으십시오
이 프롬프트는 먼저 이 페이지의 일반 텍스트 버전을 가져온 다음(문서 URL 뒤에 .md 추가), 프로젝트 자체 스택에 맞추어 코드를 작성합니다. 범용 image_url 형식 사용, 대용량 이미지 사전 축소, 그리고 이미지가 모델에 실제로 전달되었는지 확인하기 위한 prompt_tokens 검증이 요구사항에 이미 반영되어 있습니다.
이 프로젝트에서 비전 이해 연동/문제 해결을 진행하십시오: OCR, 객체 수 세기, 장면 설명 또는 다중 이미지 비교를 위해 멀티모달 모델에 이미지를 전송합니다.
코드를 수정하기 전에 문서를 읽으십시오: 이 페이지의 일반 텍스트 버전을 확인하려면 https://docs.apiyi.com/en/api-capabilities/vision-understanding.md 를 가져오십시오.
- 엔드포인트 및 형식: 기본적으로 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 모델로 표만 출력하고 표 외부의 모든 텍스트는 건너뛰며, 다중 이미지 요청 시 첫 번째 이미지만 읽으므로 순수 표나 신분증/서류 인식 시나리오에만 사용하십시오.
이미지를 지원하지 않는 모델
각 형식이 지원하는 모델
빠른 시작: 범용 형식 (image_url)
로컬 이미지 (Base64, 권장)
공개 이미지 URL
여러 이미지 비교하기
이미지당 하나의image_url 블록을 순서대로 추가하고, prompt에서 이를 “이미지 1” 및 “이미지 2”로 참조하십시오:
curl
기타 형식
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를 가리키도록 설정하기만 하면 됩니다:
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장에 대한 결과는 다음과 같습니다:자주 발생하는 오류
이미지 URL 다운로드 시간 초과
이미지 URL을 전달할 때 다음과 같은 오류가 발생하는 경우:멀티모달 URL의 Content-Length 누락 (Qwen)
Qwen 모델은 이미지 호스트가Content-Length 응답 헤더를 전송하도록 요구합니다. 일부 CDN(예: Cloudflare)은 해당 헤더 없이 청크 전송 방식으로 이미지를 제공하여 이 오류를 발생시킵니다. 동일한 이미지를 오브젝트 스토리지에서 제공하거나 base64로 대신 전송하십시오.
invalid base64 data (Base64 필드에 URL이 입력된 경우)
다음과 같은 400 오류가 발생하는 경우(핵심 문구는invalid base64 data이며, 문구는 모델에 따라 약간 다를 수 있습니다):
data:image/...;base64, 접두사 뒤에 오는 내용은 반드시 이미지 파일 자체의 base64 인코딩 결과여야 합니다. URL 형식과 base64 형식은 상호 배타적이며 함께 혼용할 수 없습니다:
선언된 이미지 형식이 실제 형식과 일치하지 않음 (미디어 타입 불일치)
다음과 같은 400 오류가 발생하는 경우(핵심 문구는The image was specified using the image/png media type, but the image appears to be a image/jpeg image입니다):
data:image/png;base64,...)로 선언했으나, 제공업체가 이를 디코딩하고 파일 헤더를 확인한 결과 실제 콘텐츠가 JPEG임을 발견하여 요청을 거부했음을 의미합니다. 일반적인 원인은 변경된 파일 확장자로부터 형식을 추론했거나 코드에 image/png(을)를 하드코딩한 경우입니다.
고급 팁
이미지가 모델에 실제로 전달되었는지 확인
응답에서usage.prompt_tokens을(를) 확인하십시오. 대부분의 제공자에서 1200×760 이미지는 대략 900–1,300 tokens를 소모합니다(DeepSeek Vision에서는 약 570 tokens). 텍스트 전용 요청과 비교하여 수가 거의 증가하지 않거나 전혀 증가하지 않는다면 이미지가 누락된 것입니다. 이는 텍스트 전용 모델(deepseek-v4-pro, glm-5.3), Anthropic 엔드포인트를 통한 Grok, Anthropic URL 소스를 통한 Gemini에서 발생합니다.
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입니다. 모든 차이점을 나열해 주세요”
- 차트 판독: “축, 데이터 추세, 최댓값 및 최솟값을 판독해 주세요”
자주 묻는 질문
어떤 모델이 이미지를 인식할 수 있습니까?
어떤 모델이 이미지를 인식할 수 있습니까?
deepseek-v4-pro 및 glm-5.3와 같은 텍스트 전용 모델은 지원하지 않습니다. 기타 모델의 경우 모델 상세 페이지의 “Input modalities” 행을 확인하십시오.이미지를 전송했지만 모델이 이미지를 볼 수 없다고 합니다.
이미지를 전송했지만 모델이 이미지를 볼 수 없다고 합니다.
usage.prompt_tokens를 확인하십시오. 수십 개의 tokens에 불과하다면 이미지가 모델에 전혀 도달하지 못했음을 의미합니다. 주요 원인: ① 텍스트 전용 모델을 선택한 경우; ② Anthropic 엔드포인트를 통해 Grok을 호출했거나 Anthropic URL 소스를 통해 Gemini를 호출한 경우(두 경우 모두 이미지가 자동으로 누락됩니다); ③ 공급자가 공개 URL을 다운로드할 수 없는 경우. Base64와 함께 chat image_url 형식으로 전환하면 이러한 문제 대부분을 해결할 수 있습니다.모델을 변경하자마자 동일한 코드에서 400이 반환됩니까?
모델을 변경하자마자 동일한 코드에서 400이 반환됩니까?
image_url 형식으로 전환하면 모든 공급자에서 정상적으로 작동합니다.Claude에서 429가 반환되었습니다 — 요청 제한에 걸린 것입니까?
Claude에서 429가 반환되었습니다 — 요청 제한에 걸린 것입니까?
image exceeds 10 MB maximum 메시지가 표시된다면 이미지가 너무 크다는 의미입니다(Base64 인코딩 후 크기 기준). 재시도해도 해결되지 않으므로 긴 쪽의 크기를 약 2048 px로 조정한 후 다시 전송하십시오.GPT vision에서 계속 시간 초과가 발생하거나 429 / 400 패치 한도 초과 오류가 반환됩니까?
GPT vision에서 계속 시간 초과가 발생하거나 429 / 400 패치 한도 초과 오류가 반환됩니까?
patches ... exceeding the limit를 반환합니다. 재시도해도 해결되지 않으므로 긴 쪽을 2048 px로 축소하여 다시 전송하십시오. 테스트 결과 및 진단 방법: 이미지 이해 요청에서 시간 초과가 계속 발생함 — 이미지가 너무 큽니까?.이미지 한 장에 왜 수만 개의 tokens가 과금되었습니까?
이미지 한 장에 왜 수만 개의 tokens가 과금되었습니까?
gpt-6-sol에서 63,658개의 입력 tokens가 과금되었습니다. 긴 쪽을 약 2048 px로 조정한 후 동일한 이미지는 gpt-6-sol에서 3,320 tokens로 줄어들었으며, 공급자 전반에서 약 700~3,700 tokens 수준으로 감소했습니다.어떤 이미지 형식이 지원됩니까?
어떤 이미지 형식이 지원됩니까?