HiAPI
블로그

비교 평가

Replicate 대안: hiapi vs Replicate 이미지 및 영상 생성 비교 (2026)

Replicate에서 hiapi로 마이그레이션할 때 예측 호출, webhook, 과금을 각각 어떻게 바꿔야 하는지, 10단계 마이그레이션 체크리스트 포함.

Nov 3, 2026
Replicate 대안: hiapi vs Replicate 이미지 및 영상 생성 비교 (2026)

이미지나 영상 생성을 이미 Replicate에서 운영 중이고 대안을 살펴보고 있다면, 가장 궁금한 것은 아마 이 몇 가지일 것입니다. 어떤 호출을 바꿔야 하는지, webhook 처리 로직은 어떤 영향을 받는지, 과금 단위는 어떻게 대응되는지, 마이그레이션 시 어디서 실수하기 쉬운지. 이 글에서 하나씩 답합니다. Replicate 쪽 정보는 공개 문서와 가격 페이지에서, hiapi 쪽 정보는 실시간 모델 목록, /api/pricing 가격 인터페이스, 공식 문서에서 가져왔으며 모두 2026년 11월에 확인했습니다. 작성 과정에서 hiapi에 실제 요청도 보냈고, 본문의 응답은 모두 이 요청들에서 나온 것입니다.

먼저 분명히 하자면, Replicate는 매우 강력한 플랫폼입니다. 다수의 커뮤니티 모델, 커스텀 파인튜닝에 의존하거나 자체 모델을 배포해야 한다면, Replicate가 할 수 있는 일을 hiapi는 대체하려 하지 않습니다. hiapi가 맞는 것은 다른 유형의 팀입니다. 주로 잘 알려진 상용 이미지 및 영상 모델을 호출하고, 모든 모델이 하나의 비동기 호출 규약을 공유하기를 바라는 팀입니다.

플랫폼 개요

항목 Replicate hiapi
실행 가능한 것 공식 모델, 다수의 커뮤니티 모델, 그리고 자신의 모델과 파인튜닝 엄선된 상용 이미지, 영상, 오디오 모델 (작성 시점 비동기 작업 인터페이스에 98개 모델)
작업 생성 공식 모델은 POST /v1/models/{owner}/{name}/predictions, 또는 version을 포함한 POST /v1/predictions 모든 이미지, 영상, 오디오 모델을 POST /v1/tasks로 통일, model + input 전달
인증 Authorization: Bearer <token> Authorization: Bearer <key>
동기 대기 Prefer: wait=n으로 최대 60초 요청 유지 없음, 전부 비동기 (폴링 또는 콜백)
상태 값 starting, processing, succeeded, failed, canceled, aborted queued, handling, archiving, success, fail
Webhook 이벤트 start, output, logs, completed (필터 가능) 최종 상태에서만 콜백 (when: "final"), success와 fail 모두 트리거
Webhook 서명 id.timestamp.body에 HMAC-SHA256, webhook-* 요청 헤더, whsec_ 키 timestamp.body에 HMAC-SHA256, X-HiAPI-* 요청 헤더, 키는 콘솔에서 설정
제출 멱등성 우리가 확인한 문서에서는 다루지 않음 Idempotency-Key 요청 헤더, 재전송 시 원래 taskId 반환
출력 보존 (API) 기본적으로 1시간 후 입력, 출력, 파일, 로그 삭제 temp 저장소 기본 약 7일, 선택형 persistent 저장소 (크기 기준 과금)
과금 단위 일부 모델은 출력 기준, 대부분 모델은 하드웨어 실행 초 기준 출력 기준: 이미지는 장당, 영상은 초당, 오디오는 곡당 또는 회당

표의 각 칸은 양측의 문서 또는 우리의 실측 요청에서 나온 것입니다. 양측을 동시에 확인할 수 없는 항목은 넣지 않았습니다.

핵심 차이

모델 범위: 폭넓이 vs 엄선된 목록

Replicate의 강점은 폭넓이입니다. 공식 모델 외에도 커뮤니티 모델을 실행하거나, 특정 version 해시를 고정하거나, 자체 모델을 업로드할 수 있습니다. 많은 상용 모델 계열이 양쪽에 모두 있습니다. Replicate에는 FLUX, Nano Banana, Seedance, Kling, Veo, Wan, Seedream의 모델 페이지가 있고, hiapi도 이 계열들의 현재 버전을 제공합니다. 제품이 특정 커뮤니티 checkpoint나 비공개 파인튜닝에 의존한다면, 그 부분은 hiapi로 대체할 수 없습니다.

hiapi의 목록은 더 좁고 프로덕션에 사용 가능한 상용 모델에 집중합니다. Seedance 2.5, Kling 3.0, Veo 3.1, Nano Banana Pro, GPT Image 2 등 현재 버전을 포함합니다. 전체 목록과 각 모델의 입력 파라미터는 hiapi 모델 페이지에서 확인하세요.

비동기 규약: 코드에서 실제로 바꿔야 할 곳

두 플랫폼 모두 비동기가 중심이고, 차이는 폴링 루프와 webhook 처리에서 나타납니다:

  • hiapi에는 동기 지름길이 없습니다. Replicate의 Prefer: wait로 한 번의 요청에 이미지를 받아온다면, hiapi로 옮기면 "제출 후 폴링"이나 콜백을 사용해야 합니다. 이번에 FLUX.1 [schnell] 텍스트-이미지로 실측했을 때, 작업은 archiving에서 success로 진행되었고, 작업의 created와 completed 타임스탬프 차이는 6초였으며, 3초마다 폴링하여 4번째에 결과를 받았습니다. 중국어 프롬프트는 별도 처리 없이 바로 전달하면 됩니다.
  • 최종 상태에서만 콜백. Replicate는 start, 스트리밍 output, logs 이벤트를 푸시할 수 있습니다. hiapi는 작업이 success 또는 fail에 들어갈 때 한 번만 콜백하며, 콜백 body는 GET /v1/tasks/:id가 반환하는 data 객체와 동일합니다. UI가 logs webhook으로 실시간 진행 상황을 보여준다면 hiapi에서는 폴링으로 바꿔야 합니다.
  • 최소 1회 전달. 콜백 전달에 실패하면 hiapi는 즉시 재시도하고, 이후 +1분, +5분, +20분에 다시 시도합니다. 같은 taskId가 한 번 이상 도착할 수 있으므로 이를 기준으로 중복 제거하세요.
  • 상태 이름이 달라집니다. succeeded/failed는 success/fail에 대응하고, canceled/aborted에는 대응 상태가 없습니다. hiapi에서 작업이 실패해도 상세 인터페이스는 HTTP 200을 반환하므로, HTTP 상태 코드만 보지 말고 data.status를 판단해야 합니다.

과금 단위와 가격

Replicate는 대부분 공개 모델을 하드웨어 시간(초 기준, 단가는 GPU에 따라 다름)으로 과금하고, 일부 모델은 입력과 출력 기준으로 과금합니다. 가격 페이지에서 FLUX1.1 [pro]는 장당 $0.04, FLUX.1 [schnell]은 1000장당 $3.00입니다. 예측 시작 후 취소하면 이미 실행된 시간은 그대로 과금됩니다. 시작되기 전에 중단(aborted)된 예측은 과금되지 않습니다.

hiapi는 모든 작업 모델을 출력 기준으로 과금하며, 비용은 모델이 어떤 GPU에서 실행되는지와 무관합니다. 아래 표는 hiapi 실시간 /api/pricing 인터페이스에서 가져왔으며 2026년 11월에 확인했습니다:

hiapi의 모델 model id 기본 표시 가격
FLUX.1 [schnell] flux-schnell/text-to-image $0.005 / 장
FLUX1.1 [pro] flux-1.1-pro $0.05 / 장
FLUX.2 [pro] flux-2/text-to-image $0.05 / 장
Nano Banana Pro nano-banana-pro $0.0285 / 장
GPT Image 2 gpt-image-2/text-to-image $0.03 / 장
Kling 3.0 텍스트-영상 kling-3.0/text-to-video $0.129 / 초
Seedance 2.5 텍스트-영상 seedance-2.5/text-to-video $0.204 / 초
Veo 3.1 Fast 텍스트-영상 veo-3.1-fast/text-to-video $0.25 / 초

일부 모델은 해상도나 길이에 따라 등급이 나뉘고, 높은 등급은 기본 가격보다 높습니다. 최신 수치는 가격 페이지를 기준으로 하세요.

양쪽 모두 장당 가격을 공개한 두 FLUX 모델에서는 Replicate가 더 저렴합니다. FLUX1.1 [pro]는 $0.04 대 $0.05, schnell은 $0.003 대 $0.005입니다. 이 점은 사실대로 인정합니다. 다른 모델의 가격 차이는 어떤 버전, 어떤 해상도를 비교하느냐에 따라 다르므로, 호출량이 가장 많은 세 모델을 하나씩 비교한 뒤 결정하길 권합니다. 또한 hiapi는 실패한 작업에 과금하지 않습니다. 생성 시 선차감한 금액은 작업이 fail로 끝나면 전액 환불됩니다.

마이그레이션 체크리스트 (Replicate → hiapi)

아래 단계는 일반적인 Replicate 통합에서 바꿔야 할 부분을 다룹니다. 3, 4, 6단계는 우리가 실측할 때 실제로 마주친 상황입니다.

  1. 모델 목록 정리. 호출하는 각 Replicate 모델과 버전, 월 호출량을 나열하세요. 커뮤니티 모델과 비공개 파인튜닝은 따로 표시하고, 이 부분은 Replicate에 남기거나 별도로 처리하세요.
  2. 각 모델에 정확한 hiapi model id를 찾으세요. hiapi의 id는 흔히 /text-to-image나 /image-to-video 같은 라우팅 접미사를 가집니다. Replicate의 owner/name에서 유추하지 말고 모델 페이지에서 복사하세요.
  3. id를 잘못 쓰면 400이 반환됩니다. black-forest-labs/flux-schnell과 접미사 없는 flux-schnell을 각각 보냈는데 모두 HTTP 400: {"error_code":"MODEL_UNAVAILABLE","message":"model not available via /v1/tasks"}를 반환했습니다. 올바른 id는 flux-schnell/text-to-image입니다.
  4. JSON을 명시적으로 보내세요. Content-Type 없이 curl -d '{...}'를 하면 curl이 폼 타입 application/x-www-form-urlencoded로 보내고, hiapi는 HTTP 415 UNSUPPORTED_MEDIA_TYPE을 반환합니다. -H "Content-Type: application/json"을 추가하면 됩니다. 사용하는 HTTP 클라이언트가 자동으로 폼 타입으로 설정하지 않는다면 이 헤더를 빼도 됩니다.
  5. 모델별로 input 필드를 다시 매핑하세요. 필드 이름은 플랫폼 간, 모델 간에 다를 수 있습니다 (예: aspect_ratio와 size, 정수와 문자열 타입의 duration). 해당 모델의 hiapi 문서 내 파라미터 설명과 하나씩 대조하세요.
  6. 매 제출마다 Idempotency-Key를 붙이세요. 같은 key로 동일한 요청 body를 두 번 제출했더니, 두 번째는 원래 taskId를 반환하고 응답 헤더에 Idempotent-Replay: true가 붙었으며 두 번째 작업은 생성되지 않았습니다. 이렇게 하면 클라이언트가 네트워크 타임아웃 후 재시도해도 안전합니다.
  7. 응답 처리를 재작성하세요. 생성 응답에서 data.taskId를 읽고, GET /v1/tasks/<taskId>를 폴링하며, data.status가 success일 때 data.output[].url에서 결과를 가져오세요.
  8. webhook 수신부를 재작성하세요. 콜백 주소를 최상위 callback: {"url": "..."} 필드에 넣으세요 (input에 넣지 마세요). 콘솔의 서명 키로 X-HiAPI-Signature를 검증하세요. 이는 timestamp + "." + body의 16진수 HMAC-SHA256이며, taskId 기준으로 중복 제거하세요.
  9. 파일 보존 정책을 다시 확인하세요. Replicate의 API 출력은 1시간 후 삭제되므로, 파일을 받자마자 다른 곳에 저장하는 습관이 이미 있을 것입니다. 이 습관은 hiapi에서도 그대로 유효합니다. 우리 실측에서 temp 출력의 expireAt은 작업 완료 후 7일이었습니다. hiapi가 더 오래 보관해야 한다면 "storage": "persistent"를 설정하세요.
  10. 일주일간 병행 운영하세요. 먼저 소량의 트래픽을 hiapi로 전환하고, 자신의 프롬프트로 성공 출력당 비용과 종단 간 소요 시간을 비교한 뒤 전체 전환하세요.

아래는 우리가 실측에 사용한 최소 요청이며, 키는 플레이스홀더로 바꿨습니다:

# 1. 작업 제출 (같은 Idempotency-Key로 재시도해도 안전)
curl -s https://api.hiapi.ai/v1/tasks \
  -H "Authorization: Bearer $HIAPI_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: order-42-thumbnail" \
  -d '{
    "model": "flux-schnell/text-to-image",
    "input": { "prompt": "미니멀한 등각 일러스트: 두 대의 서버 랙이 빛나는 데이터 케이블로 연결되어 있고, 부드러운 파스텔 색상, 순백 배경" }
  }'
# -> {"code":200,"data":{"taskId":"tk-hiapi-..."},"message":"success"}

# 2. data.status가 "success" 또는 "fail"이 될 때까지 폴링
curl -s https://api.hiapi.ai/v1/tasks/tk-hiapi-... \
  -H "Authorization: Bearer $HIAPI_API_KEY"
# -> data.output[0] = {"type":"image","url":"https://temp.hiapi.ai/...jpg","expireAt":<unix 초>, ...}

전체 규약(상태 열거, 오류 코드, 콜백 서명, 재시도 정책)은 비동기 API 소개 문서를 참고하세요.

어떻게 선택할까

hiapi를 선택하기 좋은 경우:

  • 주로 주류 상용 이미지 및 영상 모델을 호출하고, 모든 모델이 같은 요청 형식을 쓰길 원함.
  • 출력 기준 과금을 원하고, 비용이 GPU 유형이나 실행 시간에 따라 흔들리지 않길 원함.
  • API에 내장된 제출 멱등성과 실패 환불이 필요함.
  • 팀이 텍스트 모델도 필요하거나, 중국어 문서가 필요하거나, 같은 계정에서 함께 쓰길 원함.

Replicate에 남기 좋은 경우:

  • 커뮤니티 모델을 실행하거나, 특정 버전을 고정하거나, 자체 모델과 파인튜닝을 배포함.
  • 스트리밍 output/logs webhook 또는 Prefer: wait 동기 모드를 의존함.
  • 사용하는 모델들이 Replicate에서 더 저렴함. FLUX1.1 [pro]와 FLUX.1 [schnell]은 현재 실제로 그렇습니다.
  • 모델 탐색, 대량의 오픈소스 모델 빠른 시험이 간결한 모델 목록보다 더 중요함.

많은 팀이 결국 양쪽을 모두 사용합니다. Replicate는 실험과 커스텀 모델 실행에, 호출량이 많은 소수의 상용 모델은 프로덕션 공급자에 맡깁니다.

자주 묻는 질문

hiapi는 Replicate의 대안으로 적합한가요? 주로 FLUX, Nano Banana, GPT Image, Kling, Seedance, Veo 같은 상용 이미지 및 영상 모델을 호출하고, 하나의 비동기 API와 출력 기준 과금을 원한다면 적합합니다. 커뮤니티 모델이나 자신의 파인튜닝을 대체할 수는 없습니다.

Replicate와 hiapi 중 어느 쪽이 더 저렴한가요? 모델에 따라 다릅니다. 양쪽 모두 장당 가격을 공개한 두 FLUX 모델에서는 Replicate가 더 저렴합니다. 다른 모델은 양측의 현재 가격으로, 호출량이 많은 모델을 하나씩 비교하세요. 또한 Replicate의 시간 기준 과금 모델은 실행 시간에 따라 비용이 변하지만, hiapi는 출력당 고정 가격입니다.

Replicate에서 hiapi로 어떻게 마이그레이션하나요? 각 모델을 정확한 hiapi model id에 대응시키고, 인터페이스를 POST https://api.hiapi.ai/v1/tasks로 바꾸고, 모델별로 input 필드를 다시 매핑하고, 상태 판단을 success/fail로 바꾸고, hiapi의 최종 상태 서명 콜백에 맞춰 webhook 수신부를 재작성하세요. 위 체크리스트에 전체 10단계가 나와 있습니다.

hiapi에도 Replicate 같은 webhook이 있나요? 있지만 최종 상태에서만 트리거됩니다. 생성 요청의 최상위에 callback.url을 설정하면 작업 성공 또는 실패 시 hiapi가 한 번 푸시하며, 전달 실패 시 최대 총 4회 시도하고 HMAC-SHA256으로 서명할 수 있습니다. start, output, logs 같은 과정 이벤트는 없습니다.

출력 파일은 얼마나 오래 보관되나요? Replicate는 기본적으로 1시간 후 API 예측 데이터를 삭제하며 출력 파일도 포함됩니다. hiapi의 temp 출력은 기본적으로 약 7일 보관되고, persistent 저장소를 사용하면 더 오래 보관됩니다. 어느 쪽을 쓰든 장기 보관이 필요한 파일은 직접 다운로드해 다른 곳에 저장해야 합니다.

결론

모델 폭넓이, 커스텀 모델, 스트리밍 진행 이벤트는 Replicate가 더 적합합니다. 프로덕션 트래픽이 소수의 상용 이미지 및 영상 모델에 집중된다면 hiapi가 더 간편합니다. 하나의 인터페이스, 다섯 가지 상태 값, 출력 기준 가격, 내장 멱등성까지 갖췄습니다. 가장 빠른 판단 방법은 호출량이 가장 많은 모델부터 옮겨보는 것입니다. hiapi 모델 페이지에서 그 id를 찾고, 자신의 프롬프트로 위 curl을 실행한 뒤 현재 비용과 소요 시간을 비교하세요. 직접 시도해 보려면 먼저 무료 HiAPI key를 등록하세요.

더 읽어보기

영구 AI 아티팩트로 빌드 시작하기

API 키를 받아 태스크 기반의 하나의 API로 이미지, 비디오, 오디오 모델을 호출하세요.

API 문서 보기