Xtts 파이프라인 시작하기
이 시작 가이드를 사용하여 음성 복제 파이프라인에 무검열 텍스트 API를 통합하세요. 표준 OpenAI 호환 엔드포인트를 사용하여 스크립트, 자막 및 원본 텍스트 응답을 생성하는 방법을 배웁니다.
인증 및 Base URL
API 키 가져오기 페이지로 이동하여 Google 또는 이메일 비밀번호로 로그인하세요. 즉시 고유한 API 키를 받게 됩니다. 모든 요청에는 Base URL https://api.xtts.cc/v1을 사용하세요. 이 URL은 공식 OpenAI SDK 및 OpenAI chat-completions 형식을 지원하는 모든 클라이언트와 호환됩니다.
Authorization 헤더에 키를 Bearer 토큰으로 포함하세요. 전송해야 하는 모델 식별자는 uncensored입니다. 이 오픈 웨이트 모델은 당사 서버에서 호스팅되며 합법적인 성인 사용에 대한 콘텐츠 거절 없이 답변하도록 조정되어 음성 파이프라인이 필요한 원본 텍스트를 받을 수 있도록 보장합니다.
무검열 텍스트 생성
시스템 프롬프트와 사용자 프롬프트를 사용하여 /v1/chat/completions로 POST 요청을 보내세요. API는 생성된 텍스트가 포함된 구조화된 JSON을 반환합니다. 이 엔드포인트는 음성 복제 워크플로우의 프롬프트 작성, 스크립트 생성 및 사후 처리 작업용으로 설계되었습니다.
요청 본문에는 모델 이름, 메시지 기록 및 temperature 또는 top_p와 같은 선택적 매개변수가 포함됩니다. max_tokens 매개변수를 사용하여 출력 길이를 제어할 수 있습니다. max_tokens을 설정하지 않으면 응답이 컨텍스트 창의 끝까지 이어질 수 있습니다.
curl https://api.xtts.cc/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."}]
}'
Python SDK 통합
공식 OpenAI Python SDK를 사용하여 API와 상호 작용하세요. base_url을 엔드포인트로 설정하고 API 키를 제공하세요. 이 방법은 기존 코드 구조를 활용하면서도 무검열 모델의 동작에서 혜택을 받을 수 있게 합니다.
베이스 URL을 사용하여 클라이언트 인스턴스를 생성한 후 chat.completions.create를 호출합니다. uncensored 모델 ID와 메시지를 전달합니다. 응답 객체에는 content에 생성된 텍스트가 포함됩니다. 이 방법은 배치 처리 스크립트나 텍스트 생성을 더 큰 Python 애플리케이션에 통합하는 데 이상적입니다.
from openai import OpenAI
client = OpenAI(base_url="https://api.xtts.cc/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)
Node SDK 통합
JavaScript 환경에서는 OpenAI Node SDK를 사용하십시오. 클라이언트를 베이스 URL과 API 키로 구성합니다. 이 설정을 통해 웹 또는 서버 측 애플리케이션에서 직접 텍스트를 생성할 수 있습니다.
uncensored 모델로 채팅 완성 엔드포인트를 호출합니다. 응답은 생성된 텍스트를 제공하며, 이를 음성 합성 엔진에 전달할 수 있습니다. 이 통합은 웹 앱이나 음성 복제를 위한 스크립트를 준비하는 백엔드 서비스의 실시간 텍스트 생성에 적합합니다.
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.xtts.cc/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);
스트리밍 응답
요청에서 stream을 true로 설정하여 스트리밍을 활성화하세요. API는 생성된 각 토큰에 대해 서버 전송 이벤트(SSE)를 반환합니다. 이 기능은 실시간 텍스트 표시 또는 점진적인 음성 합성 준비에 유용합니다.
각 이벤트 청크에는 부분 텍스트가 포함됩니다. 마지막 청크에는 토큰 수와 같은 사용량 통계가 포함됩니다. 스트리밍을 사용하면 애플리케이션이 텍스트가 생성되는 대로 처리할 수 있어 사용자의 지각된 지연 시간을 줄일 수 있습니다. 스트림 이벤트를 처리하여 전체 응답을 누적하십시오.
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 키는 분당 300개의 요청과 8개의 동시 요청으로 제한됩니다. 요청 본문은 8 MB를 초과할 수 없습니다. 유효하지 않은 키를 보내면 401 오류가 발생합니다. 선불 크레딧이 고갈되면 402 오류가 발생합니다. 속도 제한을 초과하면 429 오류가 발생합니다.
컨텍스트 창은 프롬프트와 생성 텍스트를 모두 포함하여 총 100,000개의 토큰을 지원합니다. 별도의 출력 제한이 없으며, 더 짧은 응답을 원할 경우 max_tokens을 더 낮은 값으로 지정할 수 있습니다. 오류와 거부 요청은 선불 크레딧을 소모하지 않습니다. 구조화된 데이터 추출을 위해 함수 호출 및 JSON 모드를 지원합니다.
API 사양
크레딧을 구매하기 전에 확인할 수 있도록 API의 실제 한도와 기능을 한곳에 정리했습니다.
| 항목 | 내용 |
|---|---|
| 형식 | OpenAI 호환: 어떤 OpenAI SDK든 base URL과 키만 바꾸면 동작 |
| 엔드포인트 | POST /v1/chat/completions · GET /v1/models |
| 인증 | Authorization: Bearer YOUR_KEY |
| 모델 ID | uncensored |
| Base URL | https://api.xtts.cc/v1 |
| 함수 호출 | 지원 — tools, tool_choice; 응답에 tool_calls (스트리밍 포함), 결과는 role: tool로 전송 |
| 최대 출력 | 100,000 토큰 윈도우의 남은 만큼; max_tokens는 선택 사항(별도 상한 없음) |
| 파라미터 | temperature, top_p, stop, seed, presence_penalty, frequency_penalty |
| JSON 모드 | response_format: {"type": "json_object"} |
| 컨텍스트 창 | 100,000 토큰 (입력 + 출력) |
| 스트리밍 | 지원 — SSE, 마지막 청크에 토큰 사용량 포함 |
| 요청 크기 | 최대 8 MB |
| 동시 요청 | 키당 동시 8개 |
| 응답 헤더 | X-Request-Id, X-Balance-USD, X-RateLimit-Limit-Requests, X-RateLimit-Limit-Concurrency |
| 속도 제한 | 키당 분당 300회 |
| 무료 체험 | $0.50, 7일, 카드 불필요 · 체험 키: 동시 요청 2건, 분당 60건. 첫 충전 후 전체 한도(8건, 300건) 적용 |
| 가격 | 입력 100만 토큰당 $0.15 · 출력 100만 토큰당 $0.50 |
| 과금 | 선불 크레딧에서 실제 사용량만큼 차감, 오류·거부는 무료 |
| 충전 | USDT (TRC20) 또는 USDC (Base), $20~$500 사이 원하는 정수 금액 |
| 보너스 | $50 이상 +5%, $100 이상 +10%, $200 이상 +15% |
| 유효기간 | 유료 크레딧은 만료되지 않으며 구독 없음 |
| 로그인 | Google 또는 이메일과 비밀번호 |
| 키 | 계정당 활성 키 1개, 새 키를 만들면 이전 키는 무효 |
| 콘텐츠 | 성인 콘텐츠 허용, 미성년자가 관련된 성적 콘텐츠는 거부 |
오류 코드
오류는 고정된 type을 가진 JSON으로 반환되며, 실패하거나 거부된 요청은 과금되지 않습니다.
| HTTP | 유형 | 의미 |
|---|---|---|
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 | 모델 혼잡 — 몇 초 후 재시도 |
질문과 답변
선불 크레딧을 어떻게 충전하나요?
USDT(TRC20) 또는 USDC(Base)로 암호화폐 충전이 가능합니다. 허용된 금액은 $20에서 $500 사이입니다. $50 이상의 충전 시 5%, $100 이상의 충전 시 10% 보너스를 제공합니다. 크레딧은 만료되지 않습니다.
API가 오디오나 비디오를 생성하나요?
아니요, 이 API는 텍스트 생성 전용입니다. 자체 음성 합성 또는 비디오 파이프라인에 입력할 수 있는 무검열 텍스트 응답을 제공합니다. 오디오, 이미지 또는 비디오 파일을 직접 생성하지 않습니다.
체험 혜택은 무엇인가요?
신규 사용자는 사람당 하나씩 7일 동안 유효한 $0.50의 체험 크레딧을 받습니다. API 키 페이지에서 한 번의 클릭으로 이 크레딧을 청구하세요. 가입 시 신용카드가 필요하지 않습니다. 이를 통해 선불 크레딧 구매 전에 API를 테스트할 수 있습니다.
키는 양식 하나만 작성하면 받을 수 있습니다
계정을 생성하고 키를 복사한 후 기본 URL을 변경하십시오. 이것이 전체 설정입니다.