- NSFW Video API
- 비디오 워크플로우에 무검열 텍스트 통합하기
비디오 워크플로우에 무검열 텍스트 통합하기
이 빠른 시작 가이드를 사용하여 NSFW 비디오 파이프라인에 무검열 텍스트 API를 통합하세요. 인증 방법, 스크립트 생성 방법, 표준 OpenAI 호환 클라이언트를 사용한 응답 스트리밍 방법을 배웁니다.
베이스 URL 및 인증
API는 https://api.nsfwvideo.top/v1에서 호스팅됩니다. 인증하려면 계정 대시보드에서 API 키가 필요합니다. Google 또는 이메일로 가입하여 즉시 키를 받을 수 있습니다. 이 키를 Authorization 헤더의 Bearer 토큰으로 전달하세요. 이 설정은 베이스 URL과 API 키를 구성하여 모든 OpenAI 호환 SDK와 함께 작동합니다. 클라이언트가 무검열 모델에 접근하기 위해 특정 엔드포인트로 요청을 보내는지 확인하세요.
비디오 스크립트 생성
모델 ID uncensored로 /v1/chat/completions에 POST 요청을 보내세요. 이 모델은 합법적인 성인 사용에 대한 콘텐츠 거절 없이 답변하도록 조정되어 NSFW 비디오 스크립트에 이상적입니다. 상세한 장면 설명이나 대화를 요청할 수 있습니다. API는 비디오 생성 파이프라인에 직접 피드백할 수 있는 텍스트를 반환하여 일관된 출력을 보장합니다.
curl https://api.nsfwvideo.top/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "Write a blunt product review of a cheap VPN."}]
}'
JSON 모드 프롬프트 엔지니어링
구조화된 데이터의 경우 response_format 매개변수를 {"type": "json_object"}로 설정하세요. 이는 모델이 유효한 JSON을 반환하도록 보장하며, 자동화 워크플로우에서 메타데이터나 구조화된 프롬프트를 파싱하는 데 필수적입니다. scene_description 또는 camera_angles과 같은 특정 키를 강제하기 위해 시스템 프롬프트에 스키마를 정의할 수 있습니다. 이는 사후 처리 오버헤드를 줄이고 파이프라인을 깔끔하게 유지합니다.
from openai import OpenAI
client = OpenAI(base_url="https://api.nsfwvideo.top/v1", api_key="YOUR_KEY")
resp = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Summarise this thread without softening it."}],
)
print(resp.choices[0].message.content)
스트리밍 응답
stream을 true로 설정하여 스트리밍을 활성화하세요. API는 서버 전송 이벤트(SSE)를 통해 청크를 반환합니다. 이를 통해 진행 상황을 표시하거나 실시간으로 토큰을 처리할 수 있습니다. 각 청크에는 부분 텍스트가 포함되며 마지막 청크에는 토큰 사용 통계가 포함됩니다. 스트리밍은 긴 스크립트에 효율적이며 전체 응답을 기다리지 않고 생성되는 콘텐츠에 따라 애플리케이션이 반응할 수 있게 합니다.
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.nsfwvideo.top/v1", apiKey: process.env.API_KEY });
const resp = await client.chat.completions.create({
model: "uncensored",
messages: [{ role: "user", content: "Draft a villain monologue for my game." }],
});
console.log(resp.choices[0].message.content);
컨텍스트 창 처리
컨텍스트 창은 프롬프트와 완료를 모두 포함하여 100,000 토큰입니다. 요청당 최대 출력은 32,000 토큰이며, max_tokens이 설정되지 않은 경우 2,048 토큰입니다. 잘림을 피하기 위해 입력 길이를 적절히 계획하세요. 긴 대화의 경우 오래된 메시지를 잘라내어 기록을 관리하세요. 이는 모델이 관련 컨텍스트를 위해 충분한 공간을 확보하여 비디오 스크립트 생성의 일관성을 유지하도록 보장합니다.
속도 제한 및 토큰
분당 300개 요청 및 키당 8개의 동시 요청으로 제한됩니다. 요청 본문은 8 MB를 초과할 수 없습니다. 401(잘못된 키) 또는 402(크레딧 없음)과 같은 오류는 선불 크레딧을 소모하지 않습니다. 속도 제한(429)도 크레딧을 소모하지 않으므로 페널티 없이 다시 시도할 수 있습니다. 크레딧은 성공적인 토큰 사용에만 청구되므로 대용량 파이프라인의 비용 통제를 보장합니다.
stream = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Tell the story in second person."}],
stream=True,
)
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)API 사양
크레딧을 구매하기 전에 확인할 수 있도록 API의 실제 한도와 기능을 한곳에 정리했습니다.
| 항목 | 내용 |
|---|---|
| 형식 | OpenAI 호환: 어떤 OpenAI SDK든 base URL과 키만 바꾸면 동작 |
| 모델 ID | uncensored |
| 인증 | Authorization: Bearer YOUR_KEY |
| 엔드포인트 | POST /v1/chat/completions · GET /v1/models |
| Base URL | https://api.nsfwvideo.top/v1 |
| 최대 출력 | 100,000 토큰 윈도우의 남은 만큼; max_tokens는 선택 사항(별도 상한 없음) |
| 파라미터 | temperature, top_p, stop, seed, presence_penalty, frequency_penalty |
| 컨텍스트 창 | 100,000 토큰 (입력 + 출력) |
| JSON 모드 | response_format: {"type": "json_object"} |
| 스트리밍 | 지원 — SSE, 마지막 청크에 토큰 사용량 포함 |
| 함수 호출 | 지원 — tools, tool_choice; 응답에 tool_calls (스트리밍 포함), 결과는 role: tool로 전송 |
| 속도 제한 | 키당 분당 300회 |
| 응답 헤더 | X-Request-Id, X-Balance-USD, X-RateLimit-Limit-Requests, X-RateLimit-Limit-Concurrency |
| 동시 요청 | 키당 동시 8개 |
| 요청 크기 | 최대 8 MB |
| 보너스 | $50 이상 +5%, $100 이상 +10% |
| 과금 | 선불 크레딧에서 실제 사용량만큼 차감, 오류·거부는 무료 |
| 가격 | 입력 100만 토큰당 $0.25 · 출력 100만 토큰당 $1.00 |
| 유효기간 | 유료 크레딧은 만료되지 않으며 구독 없음 |
| 무료 체험 | $0.50, 7일, 카드 불필요 · 체험 키: 동시 요청 2건, 분당 60건. 첫 충전 후 전체 한도(8건, 300건) 적용 |
| 충전 | USDT (TRC20) 또는 USDC (Base), $10~$500 사이 원하는 정수 금액 |
| 키 | 계정당 활성 키 1개, 새 키를 만들면 이전 키는 무효 |
| 로그인 | Google 또는 이메일과 비밀번호 |
| 콘텐츠 | 성인 콘텐츠 허용, 미성년자가 관련된 성적 콘텐츠는 거부 |
오류 코드
오류는 고정된 type을 가진 JSON으로 반환되며, 실패하거나 거부된 요청은 과금되지 않습니다.
| 코드 | 유형 | 의미 |
|---|---|---|
400 | bad_request | 잘못된 JSON, 빈 메시지, 잘못된 파라미터 또는 컨텍스트 초과 |
401 | missing_key · invalid_key · key_revoked | 키 없음·잘못됨·새 키로 교체됨 |
402 | no_credit | 잔액 없음 — 충전하면 즉시 재개 |
403 | content_blocked | 미성년자 관련 성적 콘텐츠 — 거부, 과금 없음 |
404 | not_found | 알 수 없는 엔드포인트 |
413 | request_too_large | 본문 8 MB 초과 |
429 | rate_limited · concurrency | 분당 300회 또는 동시 8개 초과 — 잠시 후 재시도 |
503 | upstream_busy | 모델 혼잡 — 몇 초 후 재시도 |
질문과 답변
크레딧이 부족하면 어떻게 되나요?
API 키는 활성화된 상태로 유지되지만, 요청 시 잔액 부족을 나타내는 402 오류가 반환됩니다. 언제든지 암호화폐로 충전하여 사용을 재개할 수 있습니다. 오류와 거절은 무료이므로 실패한 시도에 대해 요금이 부과되지 않습니다.
API는 함수 호출을 지원하나요?
네, API는 <code>tools</code> 및 <code>tool_choice</code> 매개변수를 통해 함수 호출을 지원합니다. 요청에 사용자 정의 함수를 정의하여 모델이 구조화된 데이터를 반환하도록 할 수 있습니다. 이는 비디오 제작 워크플로우의 다른 부분과 통합하는 데 유용합니다.
무료 티어가 있나요?
아니요, 무료 티어는 없습니다. 하지만 모든 신규 계정에는 7일 동안 유효한 $0.50의 무료 체험 크레딧이 제공됩니다. $10부터 암호화폐로 충전할 수 있습니다. 크레딧은 만료되지 않으며 모든 요청 유형에 사용할 수 있습니다.
키는 양식 하나만 작성하면 받을 수 있습니다
계정을 생성하고 키를 복사한 후 베이스 URL을 변경하세요. 설정은 이것뿐입니다.