멀티모달 감독 작업 공간
텍스트·이미지·오디오·비디오 입력을 한 번의 생성에서 받아들이고, 각 참조에 역할을 태그해 스타일·모션·사운드 중 무엇을 제어할지 모델에 알려줄 수 있습니다.
ByteDance의 Seedance 2.0을 하나의 통합 API로 사용해 시네마틱 AI 비디오를 생성하세요. 단일 REST 엔드포인트, 비동기 작업, 웹훅을 갖추었으며 별도의 ByteDance 계정을 관리할 필요가 없습니다.
Seedance 2을(를) 단 한 번의 API 호출로 통합하세요. 하나의 키, 하나의 통합 엔드포인트, 그리고 Apiframe의 모든 모델에 적용되는 통합 청구.
model: "seedance-2" 텍스트·이미지·오디오·비디오 입력을 한 번의 생성에서 받아들이고, 각 참조에 역할을 태그해 스타일·모션·사운드 중 무엇을 제어할지 모델에 알려줄 수 있습니다.
음악·효과음·비트에 맞춘 컷·립싱크를 포함한 사운드를 비디오와 함께 생성해, 이후에 사운드트랙을 따로 추가할 필요가 없습니다.
한 번의 생성으로 자연스러운 컷과 전환을 가진 여러 샷을 만들어, 하나의 클립이 연속된 단일 촬영이 아니라 편집된 시퀀스처럼 느껴집니다.
업계 최고 수준의 모션 안정성과 물리적 타당성을 제공해, 복잡한 상호작용과 다중 피사체 액션 장면에서도 무너지지 않습니다.
움직임·각도 변화·장면 전환 전반에서 캐릭터의 정체성을 보존해 영화, 브랜드 영상, 프로모션에 중요합니다.
특정 클립·캐릭터·액션·스토리라인을 수정하고 요소를 교체·제거하며, 전체 클립을 다시 생성하지 않고 샷을 확장하거나 이어갈 수 있습니다.
Apiframe의 Seedance 2 API로 생성한 출력 예시입니다.
A 5-second cinematic clip of a chef plating a dessert in a warm restaurant kitchen, slow push-in, soft key light.
An image-to-video animation of this product photo, gentle rotation on a turntable, studio lighting, subtle reflections.
A 5-second scene of a city at dawn, a wide skyline cutting to a close-up of a coffee cup, smooth transition.
A music-video clip of a dancer moving in sync with an upbeat track, neon-lit interior, beat-matched cuts.
A tracking shot following a cyclist along a coastal road at golden hour, natural wind and ambient sound.
An image-to-video clip where the camera continues past a doorway into a sunlit garden, smooth motion.
API 키와 함께 POST /v2/videos/generate 요청을 한 번 보내면 Seedance 2로 생성이 시작됩니다. 응답으로 폴링하거나 웹훅으로 받을 수 있는 jobId가 반환됩니다.
curl -X POST https://api.apiframe.ai/v2/videos/generate \
-H "X-API-Key: afk_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"prompt": "a cinematic sunrise over a futuristic cityscape, smooth camera push-in",
"model": "seedance-2",
"seedanceParams": {
"resolution": "720p",
"start_image": "https://example.com/input.jpg",
"generate_audio": false,
"end_image": "https://example.com/input.jpg"
}
}'import requests
response = requests.post(
"https://api.apiframe.ai/v2/videos/generate",
headers={
"X-API-Key": "afk_your_api_key_here",
"Content-Type": "application/json",
},
json={
"prompt": "a cinematic sunrise over a futuristic cityscape, smooth camera push-in",
"model": "seedance-2",
"seedanceParams": {
"resolution": "720p",
"start_image": "https://example.com/input.jpg",
"generate_audio": False,
"end_image": "https://example.com/input.jpg"
}
},
)
print(response.json()) # { "jobId": "...", "status": "QUEUED" }const response = await fetch("https://api.apiframe.ai/v2/videos/generate", {
method: "POST",
headers: {
"X-API-Key": "afk_your_api_key_here",
"Content-Type": "application/json",
},
body: JSON.stringify({
"prompt": "a cinematic sunrise over a futuristic cityscape, smooth camera push-in",
"model": "seedance-2",
"seedanceParams": {
"resolution": "720p",
"start_image": "https://example.com/input.jpg",
"generate_audio": false,
"end_image": "https://example.com/input.jpg"
}
}),
});
const { jobId } = await response.json();
console.log(jobId);생성은 비동기로 처리됩니다. 제출이 성공하면 202 Accepted와 jobId가 반환됩니다. 상태가 COMPLETED가 될 때까지 GET /v2/jobs/{id}를 폴링하거나 webhook_url을 지정하면 result 필드에 출력 URL이 담깁니다.
{
"jobId": "b2c3d4e5-f6a7-8901-bcde-f23456789012",
"status": "QUEUED"
}curl https://api.apiframe.ai/v2/jobs/JOB_ID \
-H "X-API-Key: afk_your_api_key_here"import requests, time
while True:
job = requests.get(
"https://api.apiframe.ai/v2/jobs/JOB_ID",
headers={"X-API-Key": "afk_your_api_key_here"},
).json()
if job["status"] in ("COMPLETED", "FAILED"):
break
time.sleep(2)
print(job["result"])let job;
do {
await new Promise((r) => setTimeout(r, 2000));
job = await fetch("https://api.apiframe.ai/v2/jobs/JOB_ID", {
headers: { "X-API-Key": "afk_your_api_key_here" },
}).then((r) => r.json());
} while (job.status !== "COMPLETED" && job.status !== "FAILED");
console.log(job.result);Seedance 2 엔드포인트가 허용하는 요청 파라미터입니다. 모델별 옵션은 아래에 표시된 파라미터 객체 안에 중첩됩니다.
| 파라미터 | 유형 | 필수 | 기본값 | 허용값 / 범위 | 설명 |
|---|---|---|---|---|---|
| prompt | string | 필수 | — | — | 생성할 내용에 대한 텍스트 설명. |
| model | string | 필수 | "seedance-2" | "seedance-2" | 이 엔드포인트의 모델 식별자. |
| seedanceParams.resolution | string | 선택 | "720p" | "480p", "720p", "1080p" | Resolution |
| seedanceParams.start_image | string (URL) | 선택 | — | — | Use a still as the first frame of the clip. |
| seedanceParams.generate_audio | boolean | 선택 | false | — | Generate audio |
| seedanceParams.end_image | string (URL) | 선택 | — | — | Optional last frame to control the ending. |
| seedanceParams.reference_image_urls | string[] (URLs) | 선택 | — | — | Reference images |
| seedanceParams.reference_video_urls | string[] (URLs) | 선택 | — | — | Reference videos |
| seedanceParams.reference_audio_urls | string[] (URLs) | 선택 | — | — | Reference audio |
| seedanceParams.return_last_frame | boolean | 선택 | false | — | Also return the final frame as a still image. |
| seedanceParams.web_search | boolean | 선택 | false | — | Web search |
| seedanceParams.camera_fixed | boolean | 선택 | false | — | Disable camera movement. |
| seedanceParams.seed | number | 선택 | — | step 1 | Reuse a number to reproduce the same result. |
Seedance 2 API에 대한 일반적인 질문입니다.
ByteDance의 2세대 멀티모달 AI 비디오 생성 모델로, 2026년 2월에 출시되었습니다.
텍스트·이미지·오디오·비디오를 지원하며, 이를 결합하고 역할을 태그해 출력을 제어할 수 있습니다.
네. 음악·효과음·비트 동기화·립싱크를 포함한 동기화된 네이티브 오디오를 생성합니다.
5초이며, 최대 1080p와 여러 화면 비율을 지원합니다.
네. 클립·캐릭터·액션을 수정하고 요소를 교체하며 샷을 확장하거나 이어갈 수 있습니다.
Apiframe는 물론 ByteDance의 CapCut·Dreamina 앱과 fal API를 통해 사용할 수 있습니다.
아직 궁금한 점이 있으신가요?
API 키를 받아 몇 분 만에 Seedance 2을(를) 통합하세요 — 사용한 만큼 지불.
궁금하신 점이 있으신가요? Discord에 참여하거나 영업팀에 문의하세요.