메인 콘텐츠로 건너뛰기
POST
/
v1
/
videos
/
generations
curl --request POST \
  --url https://api.evolink.ai/v1/videos/generations \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "model": "wan2.7-image-to-video",
  "generation_mode": "first_frame",
  "prompt": "피아노를 치는 고양이",
  "image_start": "https://example.com/first_frame.jpg"
}
'
{
  "created": 1757169743,
  "id": "task-unified-1757169743-7cvnl5zw",
  "model": "wan2.7-image-to-video",
  "progress": 0,
  "status": "pending",
  "task_info": {
    "can_cancel": true,
    "estimated_time": 120
  },
  "type": "video",
  "usage": {
    "billing_rule": "per_call",
    "credits_reserved": 5,
    "user_group": "default"
  }
}

Documentation Index

Fetch the complete documentation index at: https://docs.evolink.ai/llms.txt

Use this file to discover all available pages before exploring further.

인증

Authorization
string
header
필수

모든 API는 Bearer Token 인증이 필요합니다

API Key 받기:

API Key 관리 페이지에서 API Key를 받으세요

요청 헤더에 추가:

Authorization: Bearer YOUR_API_KEY

본문

application/json
model
enum<string>
필수

모델명, wan2.7-image-to-video 고정

사용 가능한 옵션:
wan2.7-image-to-video
예시:

"wan2.7-image-to-video"

generation_mode
enum<string>

유효한 소재 조합을 결정하는 생성 모드. 명시적 지정을 권장합니다

값:

  • first_frame: 시작 프레임→동영상. 필수: image_start. 선택: audio_urls. 거부: image_end, video_urls
  • first_last_frame: 시작/종료 프레임→동영상. 필수: image_start + image_end. 선택: audio_urls. 거부: video_urls
  • video_continuation: 동영상 연속. 필수: video_urls[0]. 선택: image_end(종료 프레임으로 사용). 거부: image_start, audio_urls

하위 호환 동작: generation_mode를 생략하면 요청 내 소재 유형에 따라 적절한 모드가 자동 선택됩니다. 모호함을 피하기 위해 명시적 지정을 권장합니다

사용 가능한 옵션:
first_frame,
first_last_frame,
video_continuation
예시:

"first_frame"

prompt
string

동영상 생성용 텍스트 프롬프트. 중국어와 영어 지원, 각 글자/문자를 1자로 카운트하며 초과분은 자동으로 잘립니다. 최대 5000자

Maximum string length: 5000
예시:

"피아노를 치는 고양이"

negative_prompt
string

동영상에 나타나지 않기를 원하는 내용을 기술하는 네거티브 프롬프트. 중국어와 영어 지원, 최대 500자, 초과분은 자동으로 잘립니다

Maximum string length: 500
예시:

"흐림, 저품질"

image_start
string<uri>

시작 프레임 이미지 URL

모드 제약:

  • first_frame 모드: 필수
  • first_last_frame 모드: 필수
  • video_continuation 모드: 전송 불가

이미지 제한:

  • 포맷: JPEG, JPG, PNG(투명도 미지원), BMP, WEBP
  • 해상도: 가로/세로가 [240, 8000] 픽셀
  • 종횡비: 1:8 ~ 8:1
  • 파일 크기: 20MB 이하
예시:

"https://example.com/first_frame.jpg"

image_end
string<uri>

종료 프레임 이미지 URL

모드 제약:

  • first_last_frame 모드: 필수
  • video_continuation 모드: 선택(연속의 종료 프레임으로 사용)
  • first_frame 모드: 전송 불가(시작/종료가 모두 필요한 경우 first_last_frame 사용)

이미지 제한:

  • 포맷: JPEG, JPG, PNG(투명도 미지원), BMP, WEBP
  • 해상도: 가로/세로가 [240, 8000] 픽셀
  • 종횡비: 1:8 ~ 8:1
  • 파일 크기: 20MB 이하
예시:

"https://example.com/last_frame.jpg"

video_urls
string<uri>[]

동영상 연속 URL 배열. 1개 요소만 지원

모드 제약:

  • video_continuation 모드: 필수
  • first_frame / first_last_frame 모드: 전송 불가
  • audio_urls와 함께 사용 불가

동영상 제한:

  • 포맷: mp4, mov
  • 길이: 2 ~ 10초(입력 클립 자체의 길이)
  • 해상도: 가로/세로가 [240, 4096] 픽셀
  • 종횡비: 1:8 ~ 8:1
  • 파일 크기: 100MB 이하

연속 길이 규칙:

  • duration최종 출력 동영상의 총 길이를 의미(입력 클립 + 모델 생성 연속 부분)
  • 모델 생성 부분 길이 = duration − 입력 동영상 길이
  • duration은 입력 동영상 길이 이상이어야 함
  • 청구는 최종 출력 동영상 총 길이(즉 duration) 기준

예시:

입력 클립 길이duration생성 연속최종 출력청구
3초1512초15초15초
5초105초10초10초
8초80초(입력만)8초8초
예시:
["https://example.com/clip.mp4"]
audio_urls
string<uri>[]

구동 오디오 URL 배열. 현재 1개 요소만 지원. 모델은 이 오디오를 구동 소스로 사용하여 동영상을 생성합니다(예: 립싱크, 모션 동기화)

모드 제약:

  • first_frame 모드: 선택
  • first_last_frame 모드: 선택
  • video_continuation 모드: 전송 불가(video_urls와 함께 사용 불가)

포맷 요구사항:

  • 지원 포맷: wav, mp3
  • 길이: 2 ~ 30
  • 파일 크기: 15MB 이하

잘림 처리:

  • 오디오 길이가 duration을 초과하면 앞 N초만 사용하고 나머지는 폐기
  • 오디오 길이가 동영상 길이보다 짧으면 나머지 부분은 무음. 예: 오디오 3초, 동영상 5초인 경우 앞 3초는 유음, 뒤 2초는 무음
Required array length: 1 element
예시:
["https://example.com/audio.mp3"]
quality
enum<string>
기본값:720p

동영상 품질, 기본값 720p

옵션:

  • 720p: 표준 화질, 표준 가격(기본)
  • 1080p: 고화질, 가격 상승
사용 가능한 옵션:
720p,
1080p
예시:

"720p"

duration
number
기본값:5

동영상 길이(초, 정수). 범위 2 ~ 15, 기본값 5

의미:

  • first_frame / first_last_frame 모드: 생성 동영상의 총 길이
  • video_continuation 모드: 최종 출력 동영상의 총 길이(= 입력 클립 + 모델 생성 연속 부분)

video_continuation 모드의 추가 제약:

  • duration입력 동영상 길이 이상이어야 함(아니면 오류 반환)
  • 모델 생성 부분 길이 = duration − 입력 동영상 길이
  • duration이 입력 동영상 길이와 같으면 연속이 생성되지 않고 입력 클립이 그대로 출력됨
  • 자세한 규칙과 예시는 video_urls 필드 참조

청구: 실제 생성된 동영상 길이 기준

필수 범위: 2 <= x <= 15
예시:

5

seed
integer

랜덤 시드, 기본값은 랜덤

설명:

  • 범위: 1 ~ 2147483647
  • 시드를 고정하면 프롬프트 반복 시 변동을 줄이고 재현성을 높입니다
필수 범위: 1 <= x <= 2147483647
예시:

42

prompt_extend
boolean
기본값:false

프롬프트 지능 재작성 활성화 여부. 활성화 시 대형 모델이 프롬프트를 최적화하여 단순하거나 설명이 부족한 프롬프트의 결과를 크게 개선합니다.

참고: 기본값은 false입니다. 필드를 생략하거나 false를 보내면 재작성이 발생하지 않습니다. 활성화하려면 명시적으로 true를 보내세요.

예시:

false

callback_url
string<uri>

작업 완료 시의 HTTPS 콜백 URL

콜백 시점:

  • 작업 완료(completed), 실패(failed), 취소(cancelled) 시 트리거
  • 청구 확정 후 전송

보안 제약:

  • HTTPS만 지원
  • 내부 IP 주소(127.0.0.1, 10.x.x.x, 172.16-31.x.x, 192.168.x.x 등)로의 콜백 금지
  • URL 길이는 2048자 이하

콜백 메커니즘:

  • 타임아웃: 10
  • 실패 시 최대 3회 재시도(실패 후 1/2/4초 시점)
  • 콜백 응답 형식은 작업 조회 API와 동일
  • 2xx 상태 코드는 성공으로 간주, 그 외는 재시도 트리거
예시:

"https://your-domain.com/webhooks/video-task-completed"

응답

동영상 작업 생성 성공

created
integer

작업 생성 타임스탬프

예시:

1757169743

id
string

작업 ID

예시:

"task-unified-1757169743-7cvnl5zw"

model
string

실제로 사용한 모델명

예시:

"wan2.7-image-to-video"

object
enum<string>

작업의 구체적인 종류

사용 가능한 옵션:
video.generation.task
progress
integer

작업 진행률 (0-100)

필수 범위: 0 <= x <= 100
예시:

0

status
enum<string>

작업 상태

사용 가능한 옵션:
pending,
processing,
completed,
failed
예시:

"pending"

task_info
object

동영상 작업 상세 정보

type
enum<string>

작업 출력 유형

사용 가능한 옵션:
text,
image,
audio,
video
예시:

"video"

usage
object

사용량 및 청구 정보