소개
영상 효과음은 클립을 보고 사운드트랙을 입히는 도구입니다. video_url에 영상을 보내고, 필요하면 prompt에 들려야 할 소리를 설명하고, duration_seconds로 만들 소리의 초 수를 고르세요. 화면 속 움직임을 따라가는 효과음과 환경음이 만들어지고, 같은 화면에 그 트랙이 오디오로 들어가 돌아옵니다.
핵심 기능 및 하이라이트
화면을 따라가는 소리
트랙은 프레임에서 만들어지므로 부딪히는 소리, 발소리, 따르는 소리, 지나가는 차 소리가 위에 깔린 반복음이 아니라 화면에서 일어나는 순간에 맞춰 납니다. 짧은 설명으로 유리에 부딪히는 비부터 자갈 밟는 발소리, 분주한 주방까지 소리의 방향을 정할 수 있고, 음악이나 목소리처럼 원치 않는 것은 네거티브 프롬프트로 뺄 수 있습니다.
직접 정하는 길이, 예측 가능한 요금
요청 길이는 1~30초이며, 반환 클립의 길이와 요금을 모두 정합니다. 처리 시간이 아니라 요청한 초만큼 냅니다. 화면 자체는 바뀌지 않으므로 구도와 해상도는 보낸 클립과 똑같습니다.
요청 파라미터
| 파라미터 | 필수 | 설명 |
|---|---|---|
video_url | 예 | 소리를 입힐 클립입니다. 화면은 그대로 유지됩니다. 1자 이상 |
prompt | 아니요 | 원하는 소리를 짧게 나열하세요. 창문에 부딪히는 비, 멀리서 들리는 차 소리, 자갈 밟는 발소리처럼 쓰면 됩니다. 1자 이상 · 1000자 이하 |
duration_seconds | 아니요 | 만들 소리의 초 수로, 1~30입니다. 반환 영상은 이 길이로 잘리고 클립이 더 짧아도 이 초만큼 과금되므로 클립 길이에 맞추세요. |
negative_prompt | 아니요 | 빼고 싶은 소리입니다. 음악, 말소리, 바람 잡음 등을 적으세요. 1000자 이하 |
ignore_visual_semantics | 아니요 | 기본값은 꺼짐이며, 모델은 화면 내용과 프롬프트를 함께 보고 어떤 소리를 낼지 정합니다. 화면에 없는 소리나 영상에서 드러나지 않는 분위기처럼 프롬프트만으로 소리를 정해야 할 때 켜십시오. 기본값: |
guidance_scale | 아니요 | 소리가 설명을 얼마나 충실히 따를지 정하며, 0~20입니다. 대부분의 클립은 기본값이 맞고, 프롬프트가 무시되면 조금 올리세요. |
steps | 아니요 | 다듬기 반복 횟수로, 4~50입니다. 늘리면 시간이 더 걸리며 기본값이 적당한 균형입니다. |
요금
$0.0012 / 출력 초
클립 길이가 아니라 duration_seconds로 요청한 소리의 초당 과금됩니다.
활용 사례
영상 모델 결과물 마무리
생성된 영상은 대부분 무음으로 옵니다. 게시 전에 환경음과 효과음을 더하면 효과음 라이브러리를 뒤지거나 편집기를 열지 않고도 클립이 완성되며, 짧은 클립은 대개 1분 안에 돌아옵니다.
가편집본과 제품 샷의 임시 사운드
무음으로 재생되는 초안은 판단하기 어렵습니다. 가편집본, 음식 클립, 제품 루프 영상에 그럴듯한 소리 바탕을 깔고, 장면에 제대로 된 음악이 필요하면 나중에 바꾸세요.
프롬프트 가이드 및 실전 팁
분위기 말고 소리의 원천을 쓰기
소리를 내는 것을 나열하세요. 아늑한 분위기보다 에스프레소 머신의 증기 소리, 컵 부딪히는 소리, 낮은 카페 웅성거림이 더 잘 됩니다. 소리 원천은 서너 개면 충분하고, 길게 나열하면 뭉개져 섞입니다.
길이를 클립에 맞추기
duration_seconds를 클립 길이에 맞추고 소수점은 올리세요. 더 길게 요청하면 반환 영상이 클립 끝에서 멈추므로 나타나지도 않는 초까지 내게 되고, 더 짧게 요청하면 영상이 요청한 길이로 잘립니다.
세부 설정은 처음엔 그대로 두기
guidance_scale은 소리가 말을 얼마나 따를지, steps는 다듬기 반복 횟수를 정하며, 대부분의 클립은 기본값이면 됩니다. 결과가 프롬프트를 무시할 때만 가이던스를 조금 올리고, 스텝을 늘리면 소리가 극적으로 좋아지기보다 시간이 늘어난다고 생각하세요.
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": "spicyapi/foley-v1/video-to-audio",
"input": {
"duration_seconds": 8,
"video_url": "https://example.com/reference.mp4"
}
}'
# 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 레퍼런스에서 확인하세요.




