소개
LTX 2.3 Spicy 이미지→영상은 무검열 시작 프레임을 움직입니다. 움직임 지시는 선택 사항이며 오디오 필드는 없습니다.
LTX 2.3 Spicy는 Lightricks의 LTX 2.3을 바탕으로 무검열로 조정한 LoRA 빌드로, 이미지→영상과 video-extend 엔드포인트로 공개됩니다. 이 페이지는 이미지→영상을 다룹니다. 내용은 직접 준비한 시작 프레임이 담고 프롬프트는 선택이며, 요청 한 번에 480p, 720p, 1080p의 3~20초가 돌아옵니다.
핵심 기능 및 하이라이트
20초면 루프가 아니라 장면이다
무검열 영상 엔드포인트 대부분은 5~6초 정도가 한계라서 모든 것을 루프로 만들 수밖에 없습니다. 한 번의 생성으로 20초면 시작, 전환, 끝이 있는 한 순간을 담기에 충분하고, 숨겨야 할 이음새가 아니라 테이크 안에서 연속성이 유지됩니다. 20초를 넘겨 이어 가려면 영상 연장 엔드포인트로 클립을 연장하세요.
스틸이 내용을 정한다
텍스트만으로 시작하는 입구는 없으며 그것이 핵심입니다. 의상, 몸, 포즈, 구도처럼 프레임에 있는 것이 그대로 움직이므로 소재도 텍스트 인코더가 다시 해석하지 않고 보낸 그대로 도착합니다. 먼저 저렴한 패스로 이미지를 확정하면 영상 요청은 움직임의 문제만 남습니다.
이미지만 보내도 된다
프롬프트는 선택입니다. 프레임만으로도 그럴듯한 작은 움직임이 생기며, 루프에는 대개 그것으로 충분하고 기존 사진 세트를 한꺼번에 처리하기도 쉽습니다. 특정 순간이 중요할 때만 텍스트를 더하고, 그림을 다시 설명하지 말고 바뀌는 것만 쓰십시오.
요청 파라미터
| 파라미터 | 필수 | 설명 |
|---|---|---|
preset | 아니요 | Tuned는 계속 손보고 있는 범용 조합입니다. Original은 거의 손대지 않으니, 프리셋이 원하는 화면과 부딪힐 때 고르세요. |
image_url | 예 | 필수입니다. 움직일 스틸이며 내용과 출력 형태를 정합니다. |
prompt | 아니요 | 선택입니다. 동작과 카메라, 호흡을 적으세요. |
duration_seconds | 아니요 | 정수 초로 3에서 20까지입니다. 20초는 이어 붙인 시퀀스가 아니라 한 번의 생성입니다. |
resolution | 아니요 | 480p, 720p, 1080p 중에서 선택합니다. 기본값이 480p이니 납품용이라면 올려 주세요. |
seed | 아니요 | 변수 하나만 바꿔 두 실행을 비교할 때 유용합니다. 프레임까지 같다는 보장은 아닙니다. |
요금
| 사양 | 요금 |
|---|---|
| $0.019 / 초 |
| $0.038 / 초 |
| $0.057 / 초 |
활용 사례
다른 API가 거절하는 장면
시작 프레임을 받아 보낸 그대로 움직이므로, 다른 곳에서 프롬프트 필터에 막히는 소재도 여기서는 작동합니다. 내용이 텍스트가 아니라 이미지에 있으므로 클립은 말을 순화해 읽은 결과가 아니라 승인한 프레임과 일치합니다.
20초 컴패니언 장면
다가오고, 멈추고, 시선을 돌리는 흐름을 한 번의 생성에 담습니다. 컴패니언이나 롤플레이 클립이 반복되는 2초 루프가 아니라 하나의 순간처럼 느껴지려면 필요한 형태입니다. 프레임 하나, 프롬프트 하나, 요청 하나입니다.
기존 세트를 한꺼번에 움직이기
프롬프트가 선택이므로 이미지마다 지시 없이 스틸 아카이브를 통째로 처리할 수 있습니다. 각 프레임은 480p 3초 클립이 되고, 남길 가치가 있는 것만 1080p로 더 길게 다시 만듭니다.
프롬프트 가이드 및 실전 팁
프레임부터 만들기
영상 패스에서는 바뀌지 않으므로 의상, 몸, 포즈, 구도는 이미지 패스에서 정해 두십시오. 스틸은 납품하려는 비율로 내보내십시오. 나중에 고칠 화면비 필드는 없습니다.
480p로 시험하고 한 번에 납품하기
480p 3초면 프레임이 제대로 움직이는지 저렴하게 확인할 수 있습니다. 잘 움직이면 같은 seed로 720p나 1080p 전체 길이를 생성하고 소리는 편집에서 입히십시오. 이 엔드포인트가 돌려주는 오디오는 무음이거나 작은 경우가 많습니다. 기본 tuned 프리셋이 원하는 룩과 충돌하면 스타일을 거의 더하지 않는 original로 preset을 바꾸십시오.
포함된 예시 응용하기
공개된 예시는 duration_seconds 5, resolution 720p를 쓰며 스틸 한 장을 image_url로 보냅니다.
She turns further toward the driver's seat, wet shirt clinging as she moves, pushes a soaked strand of hair back and mouths something with a tired smile. Rain streams down the windscreen, neon reflections crawl across the glass, wipers sweep once.
스틸 한 장과 움직임 메모입니다. 몸을 돌리는 동작, 머리카락, 와이퍼는 글로 썼고, 젖은 셔츠와 구도는 프레임에서 왔습니다.
반복하기 전에 결과 확인하기
시작 프레임을 충실히 따르며 스틸도 보낸 그대로 움직입니다. 프롬프트를 쓴다면 움직임만 적으십시오. 프레임과 어긋나는 글은 클립이 둘 사이에서 타협하게 만듭니다. 20초는 한 번의 생성이지 잘라 낸 것이 아니므로 3초 초안과 20초 완성본은 별개의 실행입니다. 해상도 기본값은 480p이므로 납품할 때는 720p나 1080p를 지정하십시오.
API 빠른 시작
# Generate the idempotency key once; reuse it when retrying after a lost response.
export SPICY_IDEMPOTENCY_KEY="${SPICY_IDEMPOTENCY_KEY:-$(uuidgen)}"
curl -X POST https://api.spicyapi.ai/api/v1/jobs/createTask \
-H "Authorization: Bearer $SPICY_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $SPICY_IDEMPOTENCY_KEY" \
-d '{
"model": "lightricks/ltx-2.3-spicy/image-to-video",
"input": {
"duration_seconds": 5,
"image_url": "https://example.com/reference.png",
"preset": "tuned",
"resolution": "480p"
}
}'
# Copy data.taskId from the response into TASK_ID, then poll the status.
TASK_ID="TASK_ID_FROM_RESPONSE"
curl "https://api.spicyapi.ai/api/v1/jobs/recordInfo?taskId=$TASK_ID" \
-H "Authorization: Bearer $SPICY_API_KEY"
인증, 전체 스키마, 폴링과 오류 처리는 API 레퍼런스에서 확인하세요.












