각 요청에 대해 Auto, TokenLab Verified 또는 Official를 선택할 수 있으며, 가격은 사전에 표시됩니다.새로운 기능 확인하기

2026년 최고의 AI 이미지 생성 API: 선택 프레임워크

·2026년 9월 19일·약 3분 읽기·업데이트 2026년 9월 26일·2019 조회수
#이미지 생성#AI 이미지 API#모델#멀티모달
2026년 최고의 AI 이미지 생성 API: 선택 프레임워크

이미지당 표면적인 가격은 첫 번째 필터링 기준으로 적합하지 않습니다. 명목 요금이 동일한 두 모델이라도 참조 이미지 허용 여부, 마스크 편집 지원 여부, 출력 크기 선택 방식, 그리고 과금 단위가 요청당인지 토큰당인지에 따라 다를 수 있습니다. 먼저 기능별로 후보를 걸러낸 다음, 자체 프롬프트를 기반으로 채택된 출력물당 비용을 비교하세요.

이 글은 이미지 생성 API를 위한 선택 프레임워크입니다. 여기서는 비디오가 아닌 이미지 생성을 다룹니다. 파이프라인에 두 가지가 모두 필요한 경우 동일한 비동기 및 과금 메커니즘이 적용되지만, 비디오는 이 글의 범위를 벗어납니다.

1단계: 지원되는 작업(Operation) 확인

첫 번째 선별 단계는 작업 방식입니다. 텍스트만으로 생성하는 엔드포인트는 마스크 편집을 수행할 수 없으며, 인페인팅(inpainting)용으로 구축된 모델은 일반적인 프롬프트-이미지 변환 작업에 적합하지 않습니다.

TokenLab에서 생성과 편집은 일반적으로 서로 다른 엔드포인트를 사용합니다:

필요한 작업 엔드포인트 참고
텍스트-이미지 변환 (Text-to-image) POST /v1/images/generations 프롬프트만으로 요청을 시작함
이미지-이미지 변환 (Image-to-image) / 참조 기반 생성 POST /v1/images/generations operation: "image-to-image"와 참조 URL을 허용하는 모델
마스크 또는 멀티파트(multipart) 편집 POST /v1/images/edits 편집 흐름이 문서화된 모델
기존 이미지의 변형(Variation) POST /v1/images/variations 이미 변형(variations) 형태를 사용하는 연동 환경을 위함
작업 상태 확인 GET /v1/tasks/{id} 생성 응답이 task_id, status: "pending" 또는 poll_url을 반환하는 경우

결정 표는 이미지 생성 가이드를 참조하고, 요청 필드는 이미지 생성(Create Image) 및 이미지 편집(Edit Image) 레퍼런스를 참조하세요.

한 가지 라우팅 규칙에서 유독 많은 실패가 발생합니다: Nano Banana 참조 이미지 요청(nano-banana-2, nano-banana-pro)은 /v1/images/edits가 아니라 operation: "image-to-image" 및 image_urls와 함께 /v1/images/generations로 전송해야 합니다. 반대로, gpt-image-2 편집은 /v1/images/edits에 속하며, 여기서는 멀티파트 image 업로드, JSON image_url / image_urls, 그리고 최대 16개의 소스 이미지를 포함하는 images[] 참조를 허용합니다.

현재 TokenLab 카탈로그의 유용한 분류는 다음과 같습니다:

  • 생성 및 편집 모두 지원: flux-2-klein-4b, flux-2-klein-9b, flux-2-pro, flux-2-flex, flux-2-max, flux-kontext-pro, flux-kontext-max, gemini-3-pro-image, gemini-3.1-flash-image, nano-banana-2, nano-banana-2-lite, nano-banana-pro, gpt-image-2, gpt-image-2.5-flare, gpt-image-2.5-sunburst, grok-imagine-image, grok-imagine-image-quality, grok-imagine-image-2.0, qwen-image-2.0, qwen-image-2.0-pro, qwen-image-3.0, seedream-4.0, seedream-4.5, seedream-5.0, seedream-5.0-lite, seedream-5.0-pro, vidu-image-lite, vidu-image-pro.
  • 텍스트-이미지 변환 전용: flux-1-dev, flux-pro-1.1, flux-pro-1.1-ultra, sd3.5-medium, sd3.5-large, sd3.5-large-turbo, sd3.5-flash, stable-image-core, stable-image-ultra, z-image, z-image-turbo, kling-image, kling-omni-image, hy-image-lite.
  • 전문 편집 도구: stability-inpaint, stability-control-sketch, stability-control-structure, stability-style-guide, stability-upscale-fast, stability-upscale-conservative, image-upscaler, image-background-remover, flux-pro-1.0-fill, qwen-image-edit.

모델 제품군 단위가 아닌 개별 모델 단위로 지원 작업을 확인하세요. GET /v1/models?recommended_for=image는 현재 권장되는 모델 세트를 반환하며, 모델 조회(Get a Model) 레퍼런스에서는 특정 ID가 허용하는 작업을 알려주는 supported_operations 필드를 확인할 수 있습니다.

2단계: 모델이 참조 이미지를 받는 방식 확인

참조 이미지 처리는 연동 과정에서 오류가 가장 많이 발생하는 부분입니다. 필드 이름은 서로 호환되지 않습니다:

  • image_url — 단일 참조 이미지.
  • image_urls — JSON 형식의 하나 이상의 참조 이미지.
  • reference_image_urls — 기본 입력과 참조를 분리하는 모델을 위한 추가 참조 이미지.
  • image — 비공개이거나 헤더로 보호되는 소스 이미지를 위한 멀티파트 파일 업로드.
  • image_url 또는 file_id를 포함하는 images[] — 편집 흐름 형태이며, /v1/images/generations에서는 허용되지 않습니다.

API 레퍼런스에 명시된, 설계 시 고려해야 할 제약 조건은 다음과 같습니다:

  • 원격 참조는 자격 증명(credentials)이나 프래그먼트(fragments)가 포함되지 않은 공개 http/https URL이어야 하며, localhost, 사설 또는 예약된 IP 대역으로 확인(resolve)되어서는 안 됩니다. 각 리다이렉트는 다시 검사됩니다.
  • URL로 가져오는 이미지: 이미지당 50 MiB, 요청당 총합 200 MiB(마스크 포함), 가져오기 타임아웃 30s, 최대 3회 리다이렉트. 가져온 페이로드는 실제 PNG, JPEG 또는 WebP여야 합니다.
  • 소스 이미지 개수 제한은 모델마다 다릅니다: gpt-image-2는 최대 16개를 허용합니다. 문서화된 3개 입력 이미지 제한은 grok-imagine-image 및 grok-imagine-image-quality(3개 초과 시 400 too_many_images로 실패함)에 구체적으로 적용되며, grok-imagine-image-2.0에 대해서는 문서화되어 있지 않습니다.
  • mask는 소스 이미지와 동일한 크기(dimensions)를 가진 50 MiB 미만의 PNG여야 합니다.

소스 이미지가 비공개인 경우, 만료되는 서명된 URL(signed URL)을 전달하는 대신 멀티파트 업로드나 /v1/files 참조를 사용하도록 계획하세요. 처리가 시작되기 전에 만료되는 서명된 URL은 생성 실패가 아니라 거부된 입력으로 처리됩니다.

3단계: 단순한 모델 이름이 아닌 출력 제어 옵션 비교

동일한 등급의 두 모델이라도 완전히 다른 크기 및 품질 제어 옵션을 제공할 수 있습니다. 이를 기반으로 UI를 구축하기 전에 선택자(selector) 규약을 먼저 확인하세요.

제어 옵션 확인 사항
size OpenAI 스타일 제품군은 auto 또는 WIDTHxHEIGHT를 허용합니다. gpt-image-2의 경우, 가로세로 크기는 16의 배수여야 하고, 가장 긴 변은 최대 3840px, 장축/단축 비율은 최대 3:1, 총 픽셀 수는 655,360에서 8,294,400 사이여야 합니다
aspect_ratio Google 이미지 제품군과 Grok Imagine은 1:1, 16:9, 9:16, 3:2, 2:3 및 유사한 값을 사용합니다
resolution gemini-3.1-flash-image, gemini-3-pro-image, nano-banana-2, nano-banana-pro는 1k, 2k, 4k를 지원하는 반면, nano-banana-2-lite는 1k만 지원합니다. Grok Imagine은 1k 및 2k를 지원합니다
quality GPT Image 모델은 auto, low, medium, high를 사용합니다. 다른 모델은 다른 값을 사용할 수 있습니다
n 요청당 이미지 수이며, 모델에 따라 다릅니다
response_format url 또는 b64_json. 비동기 작업은 요청된 형식과 관계없이 URL을 반환합니다
background, output_format, output_compression gpt-image-2에 대해 문서화되어 있으며, transparent는 지원되지 않습니다
async gpt-image-2 및 공식 FLUX/BFL 이미지 모델에서 지원됩니다

문서화되지 않은 필드를 전송하는 것은 결코 무해하지 않습니다. 예를 들어, input_fidelity는 현재 gpt-image-2에서 지원되는 필드가 아니며 400 unsupported_parameter를 반환합니다. 다른 모델에서도 지원되지 않는 필드를 전송하면 비슷하게 실패합니다. 전체 필드 목록은 이미지 생성(Create Image) 레퍼런스에 있습니다.

4단계: 비교하기 전에 과금 단위 파악

토큰당 과금 모델을 이미지당 과금 모델과 마치 동일한 단위인 것처럼 비교하면 비용 비교가 잘못될 수 있습니다.

  • gpt-image-2는 토큰 단위로 가격이 책정됩니다. TokenLab은 텍스트 입력, 이미지 입력, 보고된 캐시 입력 및 이미지 출력 토큰에 대한 제작사의 사용량 분류를 따르며, 고정된 이미지당 과금 모델로 청구되지 않습니다.
  • 다른 대부분의 이미지 모델은 요청당, 이미지당 또는 모델 페이지에 표시된 기타 단위로 가격이 책정됩니다.

실질적인 결과: gpt-image-2의 경우 출력 토큰 양이 달라지기 때문에, 동일한 명목 설정에서 동일한 프롬프트를 사용하더라도 해상도, 품질 및 프롬프트 자체에 따라 비용이 달라질 수 있습니다. 라우팅 규칙을 확정하기 전에 먼저 측정하세요.

가격표를 하드코딩하기보다는 요청 시점에 현재 과금 단위와 가격을 읽어오세요:

TokenLab 가격 열의 대시(-) 기호는 해당 모델이 무료라는 뜻이 아니라, 현재 해당 모델에 대해 제공 가능한 TokenLab Verified 오퍼가 없음을 의미합니다. Official 공급이 있는 모델은 여전히 Official 또는 Auto 전달(delivery) 옵션을 통해 이용할 수 있습니다.

5단계: 동기식 흐름과 작업(Task) 기반 흐름 중 결정

고해상도 이미지 요청은 1분 가까이 걸리거나 그 이상 소요될 수 있습니다. 동기식 호출의 경우 HTTP 클라이언트 타임아웃을 최소 120s로 설정하거나, 작업(task) 흐름을 사용하세요.

  • 완성된 이미지 대신 task_id와 poll_url을 받으려면 gpt-image-2 또는 공식 FLUX/BFL 이미지 모델에 async: true를 전송하세요.
  • 모델을 항상 동기식이거나 항상 비동기식인 것으로 하드코딩하지 마세요. 생성 응답을 확인하여 status: "pending", task_id 또는 poll_url이 포함되어 있다면 반환된 poll_url을 따르세요.
  • 상태 값은 pending, processing, completed, failed입니다. 작업이 실패한 경우에도 상태 조회가 성공하면 HTTP 200을 반환하므로 HTTP 코드가 아닌 status 필드를 사용하세요.
  • 비동기 이미지 결과는 URL로 반환됩니다. 원시 b64_json이 필요한 경우 동기식 요청을 사용하세요.
  • 몇 초마다 폴링(polling)하고 종료 상태(terminal status)에 도달하면 중지하세요. 생성된 이미지의 HTTP(S) 결과 URL은 미디어 사본으로 30일 동안 보관될 수 있습니다. 각 항목의 상태와 expires_at은 media_retention.items에서 확인하세요.

자세한 내용은 비동기 작업 및 폴링 가이드와 이미지 상태 조회(Get Image Status) 레퍼런스에 있습니다.

재시도는 단순한 지연 시간(latency) 위험을 넘어 과금 위험을 수반합니다. 타임아웃 후 생성 요청을 재시도하면 두 번째 작업이 생성되고 이중으로 요금이 청구될 수 있습니다. request_id, task_id 및 모든 billing_transaction_id를 저장하고, 재시도하기 전에 작업이 이미 생성되었는지 확인하세요.

6단계: 자체 프롬프트 세트로 평가

이 글에는 공급업체 중립적인 품질 순위가 포함되어 있지 않으며, 마케팅 문구에서 그러한 순위를 가져와서도 안 됩니다. 실제 워크로드에 대한 측정을 통해 선택의 타당성을 입증하세요:

  1. 실제로 입력받는 주제, 스타일, 지시문 형태 등 프로덕션 분포를 반영하는 고정된 프롬프트 세트를 구성하세요. 일반적인 데모 프롬프트로는 모델 간의 차이를 변별할 수 없습니다.
  2. 동일한 설정에서 후보 모델들에 대해 동일한 세트를 실행하고, 재시도를 포함한 요청당 생성 시간을 기록하세요.
  3. 샘플을 눈대중으로만 보지 말고, 자동화된 방식이든 인간 리뷰 패널이든 고정된 평가 기준(rubric)으로 출력물의 점수를 매기세요.
  4. 생성된 이미지당 비용이 아니라 채택된(accepted) 이미지당 비용을 계산하세요. 사용 가능한 출력물 하나를 얻기 위해 두 번의 시도가 필요한 저렴한 모델은 결코 더 저렴한 것이 아닙니다.
  5. 제품이 지연 시간에 민감하다면 평균값이 아닌 백분위수(percentiles)를 기록하세요. 사용자가 체감하는 것은 꼬리 지연 시간(tail latency)이기 때문입니다.
  6. 공급자나 목표 해상도를 변경할 때는 과금 단위와 모델 동작이 모두 달라질 수 있으므로 비교 평가를 다시 실행하세요.

채택된 이미지당 비용은 귀하의 워크로드에서 더 비싼 모델이 그 요금만큼의 가치가 있는지 답해주는 유일한 지표입니다.

요청 예시

다음은 측정된 결과가 아니라 생성 호출 형태를 보여주는 예시입니다. aspect_ratio와 resolution을 제공하는 모델을 사용합니다.

curl https://api.tokenlab.sh/v1/images/generations \
  -H "Authorization: Bearer $TOKENLAB_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemini-3-pro-image",
    "prompt": "A cinematic portrait of a white cat sitting on a rainy windowsill",
    "aspect_ratio": "16:9",
    "resolution": "2k"
  }'

해당 응답이 status: "pending"으로 돌아오면 이를 실패로 처리하지 말고 반환된 poll_url을 폴링하세요.

모델 접근 방식은 API 형식에 따라 일관되지 않습니다. TokenLab은 Chat Completions, Responses, Anthropic Messages 및 Gemini 요청 형태를 허용하며, 특정 모델은 이 중 일부만 지원할 수 있습니다. 기존 클라이언트를 재사용하기 전에 모델의 tokenlab.accepted_request_formats를 확인하세요 — API 형식(API formats)을 참조하세요.

이 글의 한계

  • 이 글에는 어떠한 이미지 모델에 대해서도 독립적인 품질 벤치마크, 지연 시간 측정치 또는 처리량(throughput) 수치가 포함되어 있지 않습니다. 해부학적 표현, 텍스트 렌더링 또는 사실주의(photorealism)에 대한 공급업체의 포지셔닝은 사실로 재현되지 않습니다.
  • 가격은 인용되지 않았습니다. 이미지 모델의 과금 단위는 서로 다르고 변동되므로, 모델 페이지 또는 GET /v1/models/{model}에서 현재 값을 확인하세요.
  • 모델 가용성은 전달(delivery) 옵션 및 워크스페이스에 따라 다릅니다. tokenlab.deliveryAvailability는 구성된 지원 여부를 설명하며, 요청이 실행될 때 확인되는 실시간 가용성을 보장하지는 않습니다.
  • 공개 리전 제한 사항이 적용됩니다.

관련 문서

출처

관련 모델

최근 출시된 모델

이 가이드의 모델로 바로 구축하기

가격을 비교하고 라우트를 테스트한 뒤, 조사 내용을 실제 API 호출로 이어가세요.