본문으로 건너뛰기

NSFW AI 이미지 API 재시도: 같은 사진에 두 번 비용 내지 않기

NSFW 이미지가 느리거나 거절되거나 기획과 다를 때의 대응을 알아보세요. 대기, 원래 제출 복구, 새 시도를 실제 가격과 과금 규칙으로 구분합니다.

작성자
Lydia
발행
읽는 시간
약 15분
수정
성인 제작자가 옷을 완전히 입은 캐릭터의 중복 인물 사진 두 장을 비교하고 있습니다.

성인 캐릭터 앱은 새 이미지 한 장을 약속합니다. 고객이 생성을 누르면 로딩 표시가 한참 돌다가 연결 시간이 초과됐다고 나옵니다. 다시 누릅니다. 1분 뒤 사진 두 장이 나타나고 잔액도 두 번 줄었습니다.

두 번째 사진이 아름다울 수도 있습니다. 그래도 연결 시간 초과가 생성 실패는 아니라는 것을 비싼 방법으로 알아낸 셈입니다.

NSFW 이미지 API에서 사람들이 재시도라고 부르는 것은 세 가지입니다. 기존 작업 확인, 원래 제출의 재전송, 새로운 창작 시도의 구매입니다. 이 행동을 구분하세요. 작업 ID가 있으면 그 작업을 확인하세요. 생성 응답이 사라졌으면 원래 멱등성 키로 변경하지 않은 요청을 다시 보내세요. 작업은 완료됐지만 이미지가 기획과 다르면 또 다른 생성은 새 구매입니다.

마지막 구분은 성인향 캐릭터 이미지에서 특히 중요합니다. 모델은 요청 장면을 완화하거나 의상을 바꾸거나 다른 얼굴을 만들면서도 성공적으로 완료할 수 있습니다. 작업 성공은 결과가 전달됐다는 뜻이며 사용하고 싶을 결과를 약속하지 않습니다.

무슨 일이 일어났고 어떤 버튼을 제공해야 할까요?

고객이 보는 상황실제로 아는 것다음 행동
ID를 받기 전에 요청 시간 초과수락 여부가 불확실함같은 키로 같은 생성 요청을 다시 보냅니다.
ID가 있고 작업이 queued 또는 running생성이 이미 존재함상태를 확인하고 새 작업을 만들지 않습니다.
작업이 failed 또는 expired시도가 최종 상태에 도달함새 시도 전에 이유와 정산 비용을 읽습니다.
모델이 NSFW 요청을 거절함이 요청이 거절됨정확한 모델/작업의 콘텐츠 동작과 과금 설명을 검토합니다.
이미지는 왔지만 캐릭터나 장면이 틀림생성은 성공했지만 창작 의도는 달성하지 못함추가 비용의 편집이나 새 변형이 가치 있는지 판단합니다.
이미지를 다운로드할 수 없음전달 문제나 링크 만료자산이 남아 있는 동안 기존 자산을 복구합니다.
작업 확인, 같은 제출 복구, 새 변형 구매를 구분하는 세 복구 경로.

대기, 제출 복구와 새 변형은 서로 다른 행동입니다.

유용한 성인 제작자 인터페이스는 기존 이미지 확인, 제출 복구, 다른 변형 생성, 다시 다운로드로 표시할 수 있습니다. 모두 “재시도”라고 쓰면 무료 상태 확인과 새로운 생성 지출 승인 사이의 차이를 숨깁니다.

작업 ID가 있으면 원래 작업을 유지하세요

SpicyAPI 비동기 이미지 작업은 요청을 받고 작업 ID를 반환한 뒤 나중에 이미지를 제공합니다. 수락된 생성 응답은 완성 사진이 아닙니다. 작업은 queued, running, succeeded 같은 상태를 거치며 failed, canceled, expired도 최종 상태입니다.

서버가 작업 ID를 받는 즉시 브라우저를 업데이트하기 전에 저장하세요. 고객이 새로고침하거나 다시 로그인하거나 다른 기기에서 프로젝트를 열면 프롬프트를 다시 제출하지 말고 저장한 작업을 가져와야 합니다.

예를 들어 제작자가 가상 성인 캐릭터의 새 저녁 사진을 요청합니다. 서버는 ID를 받았지만 브라우저가 대기 카드를 표시하기 전에 연결이 끊깁니다. 돌아오면 카드는 그 작업 연결을 이어야 합니다. 고객이 페이지를 새로고침했다는 이유로 두 번째 사진을 요청한 것은 아닙니다.

작업 ID와 GET /api/v1/jobs/recordInfo로 현재 상태를 복구하세요. 작업 문서는 요청과 응답을 설명합니다. 완료 알림에 웹훅을 쓸 수 있지만 지연된 웹훅이 기존 작업을 실패로 만들지는 않습니다. 폴링은 복구 경로로 남습니다.

로컬 대기 한도를 과금 결정으로 바꾸지 마세요. 브라우저는 30초 뒤 대기를 멈추고 서버의 외부 HTTP 요청은 60초 뒤 종료돼도 원격 작업은 실행 중일 수 있습니다. 반환 작업 기록에는 실행 기한인 deadlineAt이 있습니다. 페이지의 연결 유지 시간이 아니라 원격 실행을 설명합니다. 결과 다운로드 링크의 만료는 또 다른 시간입니다.

대기 화면에는 “이미지를 처리 중입니다. 페이지를 떠났다가 같은 작업으로 돌아올 수 있습니다”처럼 쓰세요. 특정 모델과 작업량의 측정이 없다면 정확한 완료 시간을 주장하지 마세요. 경쟁사가 일반 제품 이미지에서 측정한 지연은 NSFW 프롬프트의 시간 보장이 아닙니다.

생성 응답을 잃었으면 같은 제출을 복구하세요

어려운 경우는 서버가 요청을 보낸 뒤 확인 응답을 받기 전에 연결이 끊기는 상황입니다. 연결 오류만으로 플랫폼이 작업을 수락했는지 알 수 없습니다.

SpicyAPI에는 실제 서버 측 보호 장치인 선택적 Idempotency-Key 헤더가 있습니다. 같은 계정과 같은 API 키에서 24시간 안에 같은 키, 같은 정규화 모델과 입력, 같은 콜백 URL을 반복하면 자금을 다시 보류하지 않고 원래 작업을 반환합니다. 바뀐 요청은 그 키와 충돌합니다. 같은 계정의 다른 API 키도 매핑을 재전송할 수 없습니다. 원래 작업 ID를 공개하지 않고 충돌을 받습니다.

HTTP 시도마다가 아니라 고객이 요청한 이미지에 안정적인 키를 만드세요. 앱이 만든 project-8-image-12-v1 같은 값이 예시입니다. 개인정보와 원시 프롬프트를 넣지 마세요. 첫 생성 요청 전에 만들고 저장하세요. 네트워크 재시도는 같은 키를 쓰고 진짜 새 사진에는 새 버전이나 작업 식별자를 부여하세요.

최소 복구 순서는 다음과 같습니다.

  1. 의도한 이미지 작업, 원래 요청 본문과 키를 앱에 저장합니다.
  2. Idempotency-Key를 포함해 요청을 제출합니다.
  3. 확인 응답을 잃으면 로컬 작업을 확인 대기로 표시합니다.
  4. 같은 API 자격 증명으로 변경하지 않은 본문과 키를 재전송합니다.
  5. 반환 작업 ID를 저장하고 상태 확인으로 전환합니다.

복구하는 동안 제출한 요청을 그대로 유지하세요. 고객이 변경했을 수 있는 컨트롤에서 UI가 본문을 다시 만들게 하지 마세요. 근접 인물 사진을 넓은 구도로 바꾸거나 해상도를 올리거나 프롬프트 또는 콜백 URL을 바꾸면 원래 제출이 아닙니다.

보호에는 한계가 있습니다. 24시간은 앱의 중복 방지를 위한 무기한 보관이 아닙니다. 기간이 지났으면 오래된 키로 옛 작업을 복구할 것으로 기대하지 마세요. 이후 방문은 자체의 지속적인 작업 매핑으로 처리해야 합니다. 수락 여부가 불확실하고 원래 작업을 식별할 수 없으면 자동 대체 생성을 하기 전에 계정 작업 기록을 대조하거나 지원을 요청하세요.

생성 버튼 비활성화는 유용하지만 충분하지 않습니다

로딩 중 버튼을 비활성화하면 흔한 두 번 탭을 막습니다. 브라우저 탭 두 개, 재연결하는 모바일 클라이언트, 백그라운드 작업자나 서버 재시작의 중복 제출은 막지 못합니다.

앱은 이런 이벤트를 하나의 논리적 이미지 작업에 연결해야 합니다. 자체 데이터베이스의 고유성 규칙은 두 작업자가 같은 작업을 따로 맡는 것을 막습니다. 플랫폼 멱등성 키는 원격 생성 경계를 보호합니다. 서로 다른 보호이며 제출 경로가 둘 이상이라면 둘 다 필요합니다.

대화 뒤 선택적으로 새 캐릭터 사진을 만드는 동반자 제품을 생각해 봅시다. 자동 요청 확인 전 사용자가 수동 사진 버튼도 누릅니다. 둘이 같은 사진 요청을 충족하려는 행동이면 한 작업에 연결하세요. 수동 버튼이 명시적으로 두 번째 변형을 요청하면 추가 유료 생성임을 보여 주세요. 의도적인 두 구매를 몰래 합치거나 한 약속에 두 번 과금하지 마세요.

키 자체가 이런 제품 의미를 결정하지는 않습니다. 같은 요청의 기준은 앱이 정합니다. 로컬 데이터베이스가 중복을 제거해도 외부 클라이언트가 복구마다 새 원격 키를 보내면 소용없습니다. 값이 전체 경로에서 유지되어야 합니다.

거절, 기술 실패와 원하지 않는 이미지의 비용은 다릅니다

성인향 요청은 여러 형태로 끝날 수 있습니다. 실패한 NSFW 생성은 항상 무료라는 포괄적인 약속과 모든 오류가 과금된다는 반대 주장 모두 피하세요.

대기 중 보류, 보통 해제되는 실패 작업의 보류, 기획과 다르지만 성공해 과금되는 결과를 구분한 도식.

작업 상태와 창작 만족도는 다릅니다. 정산 기록과 모델별 과금 예외를 확인하세요.

SpicyAPI는 작업 수락 때 예상 금액을 보류합니다. settled가 false이면 작업의 cost는 보류한 예상액입니다. 정산되면 최종 과금액입니다. 성공 작업은 보류액 한도에서 과금되며 쓰지 않은 금액은 해제됩니다.

실패나 만료 작업은 보통 보류액을 해제합니다. 환불 정책의 예외에는 거절 또는 실패 요청에 과금한다고 페이지에 쓰인 모델, 중단 전 이미 전달된 사용량 등이 있습니다. 모델이 거절한 이미지 작업은 해당 모델의 과금 설명과 최종 정산 기록을 확인하세요. HTTP 오류 하나만으로 계정 잔액을 설명하지 마세요.

성공했지만 완화된 이미지는 다릅니다. 특정 성인향 에디토리얼 장면의 자신감 있는 가상 성인 캐릭터를 요청했지만 일반 인물 사진을 받았다고 합시다. 작업이 성공하고 결과를 전달했다면 장면이 마음에 들지 않는 것이 환불 가능한 기술 실패는 아닙니다. 틀린 머리 스타일, 원하지 않는 액세서리, 마음에 안 드는 표정도 같습니다.

유용한 재시도 정책에는 네트워크 재시도 횟수뿐 아니라 창작 지출 한도가 필요한 이유입니다. 앱이 싫어하는 모든 이미지를 재시도하는 작업자는 기술 실패를 해결한 뒤에도 성공 출력을 계속 구매할 수 있습니다.

사용하는 정확한 모델 작업 페이지를 읽으세요. 허용 범위가 넓은 텍스트 이미지 경로가 편집 경로도 똑같이 동작한다는 증거는 아니며 모델 계열 이름만으로 모든 NSFW 요청을 예측할 수 없습니다. 성인 캐릭터와 제출 권리가 있는 자료만 쓰세요. 재시도는 금지 요청을 허용 요청으로 바꾸는 방법이 아닙니다.

최종 실패를 재시도하면 새 작업이 만들어집니다

API에는 원본 작업 ID를 받아 적격한 최종 실패에서 새 작업을 만드는 POST /api/v1/jobs/retry도 있습니다. 옛 작업을 실행 중으로 되돌리지 않습니다. 현재 모델 입력, 권한, 가용성, 잔액과 가격을 다시 평가합니다. 원본에는 보존된 입력과 완료된 과금 정산이 필요하며 활성 또는 성공 작업은 이 재시도의 대상이 아닙니다.

원본을 만든 같은 API 키를 사용하세요. 재시도에 멱등성 키를 적용하면 그 키는 이번 새 시도를 보호하고 원본 작업에 범위가 한정됩니다. 재시도 행동을 반복하면 새로 만든 작업을 복구할 수 있습니다. 첫 생성 요청을 반복해 원래 작업을 복구하는 것과 다릅니다.

제작자 앱은 가격을 표시한 새 생성 시도로 보여 주세요. 프롬프트가 바뀌어야 한다면 원본 작업 재시도가 편집할 것을 기대하지 말고 수정 입력으로 새 요청을 만드세요. 만료된 참조 때문에 실패했다면 다음 시도 전에 유효한 참조가 필요합니다. 원래 과금액의 해제와 새 시도의 보류는 별도 항목입니다.

반복 시도의 실제 비용

세 이미지 엔드포인트의 현재 시작 구성을 보겠습니다. 가격은 생성 비용이며 모든 결과가 NSFW 기획을 충족한다는 보장은 아닙니다.

가상 Qwen 1k 예산에서 의도한 창작 시도 $7.20과 우발적인 중복 $2.40을 분리한 도식.

가상 계획 예시: 우발적인 중복 작업이 의도한 창작 시도 $7.20에 $2.40을 추가합니다.

엔드포인트와 명시한 구성이미지당 가격과금 시도 3회과금 시도 10회
Z-Image Turbo 텍스트 이미지 생성, 프롬프트 확장 끔$0.010$0.030$0.100
Qwen Image 2.1 텍스트 이미지 생성, 1K$0.024$0.072$0.240
Seedream 5.0 Pro 텍스트 이미지 생성, 1K 선택$0.036$0.108$0.360

세부 설정이 중요합니다. Z-Image Turbo는 프롬프트 확장을 켜면 이미지당 $0.010이 아니라 $0.016입니다. Seedream 5.0 Pro 기본값은 2K로 1K $0.036이 아니라 $0.072입니다. 등급을 명시해야 계산이 작업과 맞습니다.

Qwen Image 2.1의 1K 최종 인물 사진 100장을 계획한다고 합시다. 최종 장마다 평균 과금 창작 시도 3회가 필요하면 생성 지출은 100 × 3 × $0.024 = $7.20입니다. 확인 응답 버그가 최종 장마다 한 제출을 복제하면 100 × $0.024 = $2.40이 추가돼 $9.60이 됩니다. 계획 예시이며 측정된 성공률이 아닙니다.

HTTP 시간 제한을 바꿔 세 번의 창작 과정을 한 번으로 만들 수는 없습니다. 우발적인 네 번째 시도를 없앨 수는 있습니다. 의도한 변형과 우발 중복을 별도로 합산해 무엇에 돈을 쓰는지 확인하세요.

작은 제작 작업은 생성 전에 한도를 정하세요. 예를 들어 이 자리의 첫 사진 하나와 수정 시도 두 번입니다. 앱 예산 제안이며 플랫폼 한도가 아닙니다. 세 번 모두 같은 요구를 놓치면 비슷한 요청 구매를 멈추고 접근을 바꾸세요.

완료된 NSFW 이미지가 기획과 다르면 중요한 한 가지를 바꾸세요

얼굴은 맞지만 방이나 의상이 틀리면 완전히 새로운 텍스트 이미지 시도보다 집중된 편집이 더 좋은 다음 구매일 수 있습니다. 유용한 결과를 보존하고 변경을 설명하며 적절한 편집 작업이 있는 모델을 고르세요. 편집도 돈이 들며 원래 생성에 포함된 무료 수정이 아닙니다.

같은 요청이 계속 완화된 장면을 만들면 콘텐츠 거절인지, 허용 요청을 보수적으로 해석한 것인지, 너무 복잡한 프롬프트인지 먼저 구분하세요. 같은 프롬프트 재전송만으로는 알 수 없습니다. NSFW 키워드를 만능 스위치로 보지 말고 실제 이미지와 있다면 안정된 오류 코드를 확인하세요.

직접적이지 않은 기획 예시는 가상 성인 캐릭터 하나, 짙은 새틴 재킷, 앉은 자세, 따뜻한 측면 조명과 정돈된 방일 수 있습니다. 모든 결과의 방이 복잡하면 부수적 배경 디테일을 빼고 캐릭터와 조명 지시를 유지하세요. 잘못된 얼굴이 나오면 텍스트 전용 프롬프트에 형용사를 더 붙이기보다 적절한 참조 기반 작업으로 옮기세요.

진짜 새 변형이 필요하면 새 작업과 키를 사용하세요. 처음 수락된 요청의 원래 키를 반복하면 첫 작업을 복구하며 더 좋은 두 번째 사진을 상상하라고 요청하는 것이 아닙니다. 새 변형을 위해 시드를 바꾸면 새 창작 시도로 기록하세요. 시드는 요청 식별에 도움이 되지만 다른 모델 간 동일 캐릭터를 보장하지 않습니다.

처음 몇 번 뒤에는 표시된 시작 가격만이 아니라 최종 사용 이미지 비용을 비교하세요. $0.010 생성 네 번은 $0.040, $0.024 생성 한 번은 $0.024입니다. 두 번째 모델이 더 안정적이라는 증거는 아니며 자신의 캐릭터 기획에서 무엇을 측정해야 할지 알려 주는 계산입니다.

기존 이미지 다운로드가 실패할 때

다운로드 오류 때문에 성공 이미지를 재생성하지 마세요. 임시 접근 링크가 안 되더라도 파일은 남아 있을 수 있고 앱이 복사하다 실패했을 수 있습니다.

완료 작업과 출력 자산의 식별 정보를 유지하세요. 출력이 보존되는 동안 현재 유효한 다운로드 경로를 복구한 뒤 그 자산의 전송을 재시도하세요. 별도의 서명 미디어 URL에 API 키를 붙이지 마세요. 고객 라이브러리에 저장됐다고 표시하기 전에 목적지에 실제 바이트가 있는지 확인하세요.

미디어 전달 가이드는 결과를 직접 제어하는 저장소로 복사하는 방법을 다룹니다. 성인 제작자에게는 프라이버시 경계이기도 합니다. 복사가 성공했다고 생성 이미지나 참조가 공개 갤러리 자산이 되는 것은 아닙니다. 복구는 의도한 비공개 접근을 유지해야 합니다.

작업의 적용 보존 정책으로 원래 출력이 이미 삭제됐다면 작업 ID로 없어진 바이트를 복원할 수 없습니다. 대체는 새 생성이며 다르게 보일 수 있습니다. 새로 과금한 사진으로 몰래 바꾸지 말고 고객에게 차이를 설명하세요.

고객의 다음 행동을 과금과 맞추세요

기존 작업 상태와 정산 비용을 함께 보여 주세요. 아직 해결되지 않았다면 프로젝트 안에 자리를 남기고 새 유료 재시도만 유일한 해결책으로 보여 주지 마세요. 실패하면 이유와 보류액 해제 여부를 표시하세요. 성공하면 다시 다운로드와 다른 변형 생성을 분리하세요.

지원에 유용한 증거는 작업 ID, 가능한 경우 요청 ID, 시간, 금액, 문제의 짧은 설명입니다. 두 다른 작업 ID가 생긴 것은 한 작업이 두 번 과금된 것과 다릅니다. 환불 정책은 중복 과금, 보류액을 넘는 과금, 전달되지 않은 성공 출력, 24시간 안에 반환되지 않은 실패 작업 보류를 신고하도록 요청합니다. 일반 로그나 지원 스크린샷에 API 키, 서명 미디어 링크나 민감한 창작 프롬프트를 넣지 마세요.

제작자는 보이지 않는 HTTP 시도 목록 대신 “사진 한 장 요청, 제출 한 번 복구, 결과 하나 전달”로 이력을 이해할 수 있어야 합니다. 목표는 네트워크 복구가 원래 구매를 보존하고 추가 창작 시도는 보이는 가격으로 의도적으로 결정하게 하는 것입니다.

다른 언어 English · 日本語 · Deutsch · Français · Español · Português (Brasil) · Русский · Italiano · Polski

직접 해 보기

실행한 만큼만 결제하세요. 요금제도, 구독도 없습니다.

사용 모델: MiniMax H3 · ByteDance Seedance 2.0 Fast