가입하면 프리미엄 플랜 할인할인 받기

블로그/tutorials·2026년 8월 30일·5분·eroq 팀 작성

AI 동영상 렌더가 실패하는 이유: 오류 코드, 환불, 다시 쓰기

AI 동영상 렌더 실패 해결법. content_blocked, generation_failed, 타임아웃의 의미와 자동 환불, 막힌 프롬프트 고치는 법.


어떤 생성기든 가끔은 실패해요. 짜증 나는 오후와 생산적인 오후를 가르는 건, 빨간 표시를 보고 4초 안에 방금 일어난 일이 완전히 다른 네 가지 중 무엇인지 알아채는 거예요. 셋은 고칠 방법이 있고, 하나는 버튼을 다시 누르기만 하면 되거든요. eroq 동영상 스튜디오에서 일어날 수 있는 실패를 전부, 각 상태에 드는 비용, 그리고 몇 번을 돌려도 렌더되지 않는 프롬프트를 고치는 절차까지 정리했어요.

렌더가 죽는 네 가지 방식

인터페이스에서는 비슷해 보여도 전혀 다른 문제예요.

content_blocked — 엔진이 프롬프트를 거절했어요. 기술 문제가 아니라 콘텐츠에 대한 판단이라, 재시도를 누르면 똑같이 재현돼요. 프롬프트를 다시 쓰거나 엔진을 바꾸세요.

generation_failed — 엔진이 작업을 받았지만 클립 없이 돌아왔어요. 주사위 운이에요. 같은 프롬프트가 다음 시도에서 렌더되는 경우가 많아요.

generation_timeout — 작업이 아예 돌아오지 않았어요. 10분 기한을 넘기고도 처리 중인 렌더는 폴링하는 순간 실패로 바뀌고, 그 자리에서 환불돼요.

아무것도 실행되기 전에 일어나는 거절. 403 plan_required는 고른 엔진이 내 플랜보다 상위에 있다는 뜻이에요. 503 model_unavailable은 그 엔진이 아직 열리지 않았다는 뜻이에요. 402 insufficient_credits는 지갑이 비었다는 뜻이고요. 세 가지 모두 작업이 대기열에 들어가기 전에 확인되기 때문에, 청구되는 것도 환불할 것도 없어요.

자동으로 환불되는 것

전부 다요. 실패한 렌더는 자동으로 환불돼요. content_blocked, generation_failed, 폴링할 때 스스로 정리되는 타임아웃까지요. 사전 거절은 애초에 차감되지 않아요. 작업 상태를 확인하는 것도 무료라서, 느린 렌더는 마음이 놓일 때까지 얼마든지 폴링해도 돼요.

실질적인 결과가 두 가지 있어요. 첫째, 운이 나쁜 시도는 크레딧이 아니라 시간만 잡아먹어요. 그러니 재시도는 더 과감하게 해도 돼요. 정답은 “지금보다 더 많이”예요. 둘째, 실패가 섞인 세션이 끝난 뒤의 잔액은 시작 전 잔액에서 실제로 영상이 나온 렌더 비용만 뺀 값과 정확히 같아야 해요. 그렇지 않다면 그 실패는 사실 마음에 들지 않았던 성공이고, 그런 건 청구돼요.

작업 ID는 생성 후 24시간이 지나면 만료되기 때문에, 받아 가지 않은 클립은 다음 날 대기열에서 사라져요. 다만 렌더 자체가 성공했다면 전체 레시피와 함께 라이브러리에 남아 있어요.

content_blocked: 재시도 말고 다시 쓰세요

프리미엄 엔진은 각 제공사가 업스트림에서 검수하기 때문에, Seedance, Kling, Hailuo, Veo는 여기서 eroq의 규칙뿐 아니라 제공사의 규칙도 따라요. Motion One은 eroq 자체의 무검열 동영상 엔진이고, 무료 티어를 포함한 모든 계정에 열려 있어요.

그러니 차단은 셋 중 하나를 뜻해요. 첫째, 정책이 실제로 거부하는 것을 썼을 수 있어요. 어떤 형태로든 미성년자, 실존하는 식별 가능한 인물, 불법적인 모든 것, 괴롭힘이요. 이런 건 어디서든, 언제까지나 거부돼요. 둘째, eroq 정책 안에 있는 장면을 제공사가 받아 주지 않는 엔진에 쓰고 있을 수 있어요. 이 경우 해결책은 표현을 바꾸는 게 아니라 Motion One이에요. 셋째, 가장 흔하고 가장 짜증 나는 경우인데, 아무 문제 없는 내용을 썼는데 단어 하나가 필터에 걸렸을 수 있어요.

세 번째 경우는 대처법을 익혀 둘 만해요. 필터는 의도가 아니라 명사를 읽어요. 트리거와 싸우지 말고 그 주변을 돌아서 다시 쓰세요.

  • 금기가 아니라 샷을 말하세요. “멍든 피부 클로즈업”은 화면을 묘사하지만, 원래 쓴 문장은 사건을 묘사했던 거예요.
  • 실명을 빼세요. 실존하는 식별 가능한 인물은 모두 거부되고, 장면이 무해하더라도 프롬프트에 공인의 이름을 넣는 건 차단으로 가는 가장 빠른 길이에요.
  • 추상적인 표현은 빛과 움직임으로 바꾸세요. 필터는 “베네치안 블라인드 사이로 들어오는 나트륨 가로등 불빛”에 대해 할 말이 거의 없어요.
  • 사람은 옷차림과 행동으로 묘사하세요. “젖은 트렌치코트를 입은 여자”는 렌더되고, 신체 특징을 나열하는 것보다 엔진에게 더 많은 재료를 줘요.

이렇게 다시 쓴 프롬프트예요. 그대로 붙여 넣어 쓸 수 있어요.

젖은 트렌치코트를 입은 여자가 새벽 두 시, 깜빡이는 모텔 간판 아래에 서서 차가운 공기 속으로 숨을 내쉬다가 주차장 쪽으로 몸을 돌린다. 미디엄 샷에서 클로즈업까지 천천히 푸시 인, 머리 위에서 떨어지는 나트륨 조명, 발치 웅덩이에 비친 네온, 긴장감 있고 고요한 분위기.

같은 장면, 같은 분위기인데 키워드 필터가 붙잡을 건 하나도 없어요.

generation_failed: 한 번에 하나씩 바꾸세요

이건 기계적으로 처리하면 돼요. 곧바로 한 번 재시도하세요. 상당수는 두 번째 시도에서 해결되고, 확인하는 데 비용도 들지 않아요. 같은 프롬프트로 두 번 실패하면 그만 돌리고 빼기 시작하세요. 시도할 때마다 정확히 한 가지만, 이 순서대로 바꾸세요.

  1. 프롬프트를 80단어 미만으로 줄이세요. 긴 프롬프트일수록 더 자주 실패해요. 피사체, 움직임, 카메라, 빛, 분위기만 남기고 나머지는 지우세요.
  2. 피사체를 하나로 줄이세요. 두 사람이 두 가지 행동을 하는 장면은 아무것도 돌려받지 못하는 가장 확실한 방법이에요.
  3. 레퍼런스 이미지를 빼세요. 이미지 투 비디오는 엔진에 강한 제약을 걸어요. 프롬프트와 충돌하는 원본 사진은 둘 중 어느 쪽도 살리지 못해요.
  4. 비율을 16:9로 바꾸세요. 특이한 비율은 대부분의 엔진에서 가장 덜 다져진 길이에요.
  5. 시드를 바꾸거나 비우세요. Seedance 엔진은 재현성을 위해 시드를 지원하는데, 이 말은 나쁜 시드도 완벽하게 재현된다는 뜻이에요.
  6. 클립을 줄이세요. 실패하는 10초 샷도 3초나 5초 버전은 렌더되는 경우가 많고, 그러면 프롬프트에는 문제가 없었다는 걸 알 수 있어요.

여섯 가지가 다 실패한다면 문제는 프롬프트가 아니라 엔진이에요.

엔진을 바꿔야 할 때

엔진마다 성격이 있어서, “이건 렌더가 안 돼”의 절반은 엉뚱한 엔진에 샷을 요청한 경우예요.

  • 얼굴과 자연스러운 사람 움직임 — Kling 2.5 Turbo. 1080p이고, 여기서 유일하게 동영상용 네거티브 프롬프트를 기본 지원하는 엔진이라 “손가락 추가 없음, 뒤틀림 없음” 같은 요청에 딱 맞는 도구예요.
  • 물리와 극적인 빛 — Hailuo 02. 떨어지고, 튀고, 빛을 받는 장면.
  • 긴 원테이크 — Seedance 2.5는 4초에서 30초까지 렌더하고 시드와 첫 프레임/마지막 프레임 보간을 지원해서, 특정 지점에서 끝나야 하는 샷에 쓸 장치가 있어요.
  • 제공사가 받아 주지 않는 장면 — eroq 자체의 무검열 엔진인 Motion One. 장면이 eroq 정책 안에 있지만 제공사의 규칙 밖에 있다면 프리미엄 엔진은 계속 거절하고, 어떻게 다시 써도 달라지지 않아요.
  • 저렴한 진단 — Seedance 1.0 Lite는 3초에 72 크레딧이에요. 내 샷의 Lite 버전이 렌더된다면 프롬프트는 멀쩡하고, 엔진과 씨름하고 있는 거예요.

플랜 제한은 차감 전에 확인되기 때문에, 이용 권한이 없는 엔진을 시도해 보는 건 공짜로 얻는 정보예요. 청구되는 대신 플랜 이름이 적힌 403을 받아요. 가격과 플랜별 이용 범위를 담은 전체 라인업은 요금제 페이지에 있어요.

API에서 실패 읽기

API로 렌더를 돌리고 있다면 같은 상태가 구조화된 필드로 와요. 실패한 작업은 코드가 담긴 error 객체와 함께 usage.credits_spent 값 0을 반환하고, 코드가 첨부된 video.generation.failed 웹훅이 발송돼요. GET /v1/videos/generations/{id}를 폴링하거나 웹훅을 받으세요. 둘 다 동영상 문서에 정리돼 있어요. 써 둘 만한 재시도 로직은 짧아요. generation_failed와 generation_timeout은 두 번 재시도하고, content_blocked는 절대 재시도하지 말고, plan_required와 insufficient_credits는 사람이 손봐야 하는 설정 문제로 다루세요.

자주 묻는 질문

렌더가 실패하면 크레딧을 돌려받나요?

네, 자동으로요. 차단된 프롬프트는 청구되지 않고, 실패한 생성은 자동으로 환불되며, 10분 기한을 넘겨 멈춘 작업은 처음 폴링할 때 실패 처리되고 환불돼요.

같은 프롬프트가 어떤 엔진에서는 되고 다른 엔진에서는 안 되는 이유는 뭔가요?

프리미엄 엔진은 업스트림 제공사가 각자의 규칙에 따라 검수해요. Motion One은 eroq 자체의 무검열 엔진이에요. 콘텐츠 외에도 엔진마다 길이, 비율, 해상도 제한이 따로 있어요.

프롬프트가 매번 실패해요. 제 문제인가요, 엔진 문제인가요?

Seedance 1.0 Lite로 3초 버전을 72 크레딧에 렌더해 보세요. 그게 된다면 프롬프트는 괜찮고, 원래 엔진이 문제예요. 그것도 실패한다면 프롬프트를 피사체 하나, 동작 하나로 줄이세요.

동영상 스튜디오를 열고 그 샷을 다시 시도해 보세요. 또 실패해도 드는 건 기다리는 시간뿐이에요.

태그troubleshootingai-videoerror-codescreditstutorial

이 글에 나온 모델로 직접 만들어 보세요 — 무료 크레딧 50개로 시작하거나, 모든 엔진과 가격도 살펴보세요.