비디오 생성
텍스트, 이미지, 참조 미디어로 AI 영상을 생성합니다 — 이미지에서 비디오, 비디오 편집, PixVerse 립싱크를 지원합니다.
listenhub video CLI로 텍스트 프롬프트나 참조 소재에서 AI 영상을 생성합니다. 정지 이미지에 움직임을 넣고, 기존 클립을 편집하고, 오디오나 음성 합성으로 캐릭터의 입 모양을 맞출 수 있습니다. 서로 다른 작업을 담당하는 세 가지 모델 계열이 있습니다: HappyHorse, SeeDance, PixVerse.
트리거
/video-gen으로 이 skill을 호출하거나, 다음 문구 중 아무거나 사용하세요:
| 문구 | 언어 |
|---|---|
video generation / text to video / create video | 영어 |
video edit / lipsync / pixverse | 영어 |
生成视频 / 做视频 / 视频生成 | 중국어 |
视频编辑 / 口型 / 对口型 | 중국어 |
ListenHub Skills가 설치되어 있어야 합니다 — 시작하기를 참고하세요.
AI 비주얼이 들어간 내레이션 해설 영상을 만들려면 /explainer를 대신 사용하세요.
빠른 예시
Generate a video: cyberpunk city at night, 16:9, 5 secondsAI가 모드와 파라미터를 한 번에 하나씩 물어보고, 비용 견적을 보여 준 뒤, 생성 전에 확인을 받습니다. 생성에는 몇 분이 걸립니다 — 작업은 백그라운드로 돌아가고, 영상이 준비되면 AI가 URL, 길이, 해상도, 크레딧 비용과 함께 알려 줍니다.
비디오 생성은 항상 --no-wait로 실행되므로, CLI는 작업 id를 즉시 반환하고 AI가 백그라운드에서 폴링합니다(10초 간격). 작업 id만 가지고 있다면 listenhub video get <taskId> --json으로 진행 상황을 확인하세요.
모델
작업에 맞는 모델을 고르세요. HappyHorse가 기본값이며 기존 영상을 편집할 수 있는 유일한 계열입니다. SeeDance는 마지막 프레임과 참조 오디오를 추가로 지원하고, PixVerse는 립싱크를 지원하는 유일한 계열이자 여러 단위 기능(mimic, restyle, fusion, transition, 마케팅 agent)을 함께 제공합니다.
| 기능 | HappyHorse(기본값) | SeeDance | PixVerse |
|---|---|---|---|
| 텍스트에서 비디오 | 지원 | 지원 | 지원(text_to_video) |
| 이미지에서 비디오(첫 프레임) | 지원 | 지원(+ 마지막 프레임) | 지원(image_to_video) |
| 참조 이미지 | 지원(1~9장, [Image N] 문법) | 지원 | 지원(fusion, @refName) |
| 비디오 편집 | 지원 | 미지원 | 미지원 |
| 립싱크 | 미지원 | 미지원 | 지원(lip_sync, 오디오 또는 TTS) |
| 모션 트랜스퍼 / mimic | 미지원 | 미지원 | 지원(mimic, 720p 고정) |
| 리스타일 | 미지원 | 미지원 | 지원(restyle) |
| 트랜지션(첫 → 마지막) | 미지원 | 지원(frame 모드) | 지원(transition / multi_transition) |
| 참조 비디오 | 미지원(비디오 편집을 사용) | 지원 | 지원(mimic / lip_sync 소스) |
| 참조 오디오 | 미지원 | 지원 | 지원(lip_sync) |
| 최대 해상도 | 1080p | 1080p | 1080p |
| 해상도 옵션 | 720p, 1080p | 480p, 720p, 1080p | 360p, 540p, 720p, 1080p |
| 길이 범위 | 3~15초 | 4~15초 | 1~60초(agent: 20/30/60) |
| 화면 비율 | 16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4 | 16:9, 9:16, 1:1, 4:3, 3:4, 21:9 | 9:16, 16:9, 1:1, 4:3, 3:4 |
립싱크, mimic, restyle, fusion, transition, 마케팅 agent는 PixVerse 전용입니다. HappyHorse와 SeeDance는 지원하지 않습니다.
SeeDance 모델 변형
SeeDance를 고르면 두 가지 변형 중에서 선택합니다:
| 모델 | 비고 |
|---|---|
doubao-seedance-2-pro | 품질이 더 높음. 1080p에는 필수이며, 마지막 프레임과 참조 오디오를 지원 |
doubao-seedance-2-fast | 더 빠름. 1080p를 고르면 자동으로 pro로 승격 |
PixVerse는 OpenAPI 전용입니다 — listenhub openapi video pixverse 아래에 있으며, 모든 미디어를 공개 네트워크 URL로 받습니다(로컬 파일 업로드 불가). 립싱크, mimic, restyle, fusion, transition, 마케팅 agent를 쓰고 싶은데 내부 인증 로그인만 설정되어 있다면, 먼저 listenhub openapi config set-key로 API 키를 설정하세요.
모드
AI는 어떤 참조 소재를 가지고 있는지에 따라 모드를 정합니다. HappyHorse와 SeeDance는 listenhub video create 명령을 함께 쓰고, PixVerse는 --capability를 명시한 listenhub openapi video pixverse generate를 씁니다.
참조 미디어 없이 텍스트 프롬프트만으로 영상을 생성합니다. 세 모델 계열 모두 지원합니다.
listenhub video create \
--prompt "cyberpunk city at night, neon reflections on wet streets" \
--model "happyhorse" \
--resolution "1080p" \
--ratio "16:9" \
--duration 5 \
--no-wait --json정지 이미지를 첫 프레임으로 삼아 움직이게 합니다. SeeDance는 마지막 프레임 이미지를 함께 받아 두 정지 이미지 사이의 전환을 보간할 수도 있습니다.
이미지 요건: jpg, jpeg, png, webp. 로컬 파일은 최대 20 MB, 가로와 세로 ≥ 300px, 화면 비율은 1:2.5에서 2.5:1 사이.
listenhub video create \
--prompt "bring the scene to life with smooth motion" \
--model "happyhorse" \
--resolution "1080p" \
--duration 5 \
--first-frame "/path/to/scene.png" \
--no-wait --jsonSeeDance frame 모드를 쓰려면 --last-frame을 추가하고 doubao-seedance-2-* 모델을 사용하세요.
HappyHorse의 이미지에서 비디오에는 --ratio가 없습니다 — 출력 비율은 입력 이미지가 결정합니다. SeeDance는 --ratio를 그대로 받습니다.
스타일이나 캐릭터를 지정하기 위해 참조 이미지를 1~9장 넘깁니다. HappyHorse에서는 프롬프트 안에서 [Image 1], [Image 2] 같은 표기로 특정 이미지를 가리킬 수 있습니다.
이미지 요건: jpg, jpeg, png, webp. 각각 최대 20 MB이며, HappyHorse는 짧은 변 ≥ 400px를 권장합니다.
listenhub video create \
--prompt "[Image 1]'s character walking through [Image 2]'s street" \
--model "happyhorse" \
--resolution "1080p" \
--ratio "16:9" \
--duration 5 \
--reference-image "/path/to/character.png" \
--reference-image "/path/to/scene.png" \
--no-wait --jsonSeeDance 참조 모드는 추가로 참조 비디오 최대 3개(mp4/mov, ≤ 50 MB)와 참조 오디오 최대 3개(mp3/wav, ≤ 20 MB, 이미지나 비디오와 짝지어 사용)를 받습니다.
PixVerse 전용. 오디오 파일이나 음성 합성으로 캐릭터의 입 모양을 맞춥니다. 소스 영상이 이미 PixVerse에 있어야 하며, --source-video-id로 지정하거나 앞서 성공한 작업을 --source-task-id로 참조합니다.
오디오 파일로 구동(공개 오디오 URL 하나, 5~60초):
listenhub openapi video pixverse generate \
--capability lip_sync \
--source-video-id "abc123" \
--audio "https://example.com/voice.mp3" \
--quality 720p \
--no-wait --json음성 합성으로 구동(중첩된 tts, --audio 없이):
listenhub openapi video pixverse generate \
--capability lip_sync \
--source-task-id "task_xyz" \
--pixverse-json '{"tts":{"speakerId":"speaker_01","content":"Welcome to this episode"}}' \
--quality 720p \
--no-wait --json오디오 파일 또는 TTS 중 하나만 넘기세요. 둘 다 넘기면 거부됩니다. TTS에는 중첩 형태의 --pixverse-json '{"tts":{...}}'를 쓰고, 계약이 받지 않는 --lip-sync-tts / --lip-sync-speaker-id / --lip-sync-content는 쓰지 마세요.
비디오 편집(HappyHorse)
기존 클립을 편집합니다 — 스타일 변경, 배경 교체, 모션 리스타일. HappyHorse 전용이며, SeeDance에서 요청하면 AI가 HappyHorse로 바꿔 줍니다.
비디오 요건: mp4/mov(H.264 권장), 입력 360초(출력은 15초로 제한), ≤ 100 MB, 짧은 변 ≥ 360px, 긴 변 ≤ 4096px. 참조 이미지는 05장까지 선택적으로 넘길 수 있습니다.
listenhub video create \
--prompt "replace the background with a deep starry sky, keep the subject's motion" \
--model "happyhorse" \
--resolution "1080p" \
--reference-video "/path/to/input.mp4" \
--audio-setting "origin" \
--no-wait --json--audio-setting은 오디오를 제어합니다: auto는 모델이 판단하게 하고, origin은 원본 오디오를 유지합니다. 비디오 편집에는 --ratio나 --duration이 없습니다 — 출력이 입력 영상을 따릅니다.
그 밖의 PixVerse 기능
PixVerse는 --capability로 추가 단위 기능을 제공하며, 모두 OpenAPI 전용이고 입력은 URL로 받습니다:
| 기능 | 입력 | 제약 |
|---|---|---|
mimic(모션 트랜스퍼) | 이미지 1장 + 비디오 1개 | 품질은 720p로 고정, 모션 소스 5~30초 |
restyle | --source-video-id(또는 --source-task-id) + --restyle-id | — |
fusion | 중첩된 imageReferences(1~8), 프롬프트에서 @refName 사용 | 최상위 --image는 비워야 함 |
transition / multi_transition | 중첩된 multiTransition 키프레임(2~7) | 기본 품질 360p |
agent(ad_master / promo_mix) | 프롬프트 + 이미지 | 품질은 720p/1080p만, 길이는 20/30/60만, promo_mix는 이미지 4장 이상 필요 |
파라미터
AI가 이 값들을 한 번에 하나씩 물어보고, 적절한 세션 기본값을 적용합니다. HappyHorse와 SeeDance는 비율과 길이에 --ratio / --duration을 쓰고, PixVerse는 --resolution / --ratio 대신 --quality와 --aspect-ratio를 씁니다.
| 파라미터 | 플래그 | 비고 |
|---|---|---|
| 프롬프트 | --prompt | 자유 텍스트. HappyHorse ≤ 2500(중국어) / ≤ 5000(비중국어), SeeDance ≤ 500, PixVerse ≤ 2048 |
| 모델 | --model | happyhorse(기본값), doubao-seedance-2-pro, doubao-seedance-2-fast, pixverse |
| 해상도 | --resolution | HappyHorse: 720p/1080p, SeeDance: 480p/720p/1080p(480p는 SeeDance 전용) |
| 화면 비율 | --ratio | 이미지에서 비디오와 비디오 편집에는 쓰지 않음(비율은 입력을 따름) |
| 길이 | --duration | 초 단위. HappyHorse 3 |
| 첫 프레임 | --first-frame | 이미지에서 비디오의 소스 이미지 |
| 마지막 프레임 | --last-frame | SeeDance frame 모드 전용 |
| 참조 이미지 | --reference-image | 반복 지정 가능. 1 |
| 참조 비디오 | --reference-video | 비디오 편집 입력(HappyHorse) 또는 SeeDance 참조 |
| 오디오 설정 | --audio-setting | 비디오 편집 전용: auto 또는 origin |
| 시드 | --seed | 선택 사항. 결과를 재현할 때 사용 |
PixVerse 전용 플래그: --capability, --quality(360p/540p/720p/1080p), --aspect-ratio(9:16/16:9/1:1/4:3/3:4), --source-video-id / --source-task-id, --audio, --agent-type, --restyle-id, 그리고 중첩 페이로드(tts, imageReferences, multiTransition)를 넘기는 --pixverse-json.
일부 선택은 자동으로 보정됩니다: HappyHorse의 480p는 720p로 내려가고, doubao-seedance-2-fast의 1080p는 doubao-seedance-2-pro로 올라갑니다. AI가 조정할 때마다 알려 줍니다.
크레딧 견적
생성 전에 AI가 견적을 냅니다. 직접 비용을 확인하려면 create에 넘길 파라미터를 그대로 견적 명령에 맞춰 넣으세요:
# HappyHorse / SeeDance
listenhub video estimate --model "happyhorse" --resolution "1080p" --ratio "16:9" --duration 5 --json
# PixVerse — mirror the capability + quality + duration
listenhub openapi video pixverse estimate --capability text_to_video --model pixverse --quality 720p --duration 5 --json비디오 편집에는 --has-video-input과 --input-video-duration <seconds>를 추가하세요.
출력
상태는 pending → generating → uploading → success 순으로 흐릅니다. 성공하면 AI가 영상 URL, 길이, 해상도, 비율, 시드, 청구된 크레딧을 알려 줍니다.
출력 동작은 설정할 때 지정한 outputMode를 따릅니다:
inline(기본값) 또는both— 영상 URL과 메타데이터가 대화 안에 바로 표시됩니다.download또는both— 파일이 현재 작업 디렉터리에도 주제를 딴 이름으로 저장됩니다(예:cyberpunk-city.mp4). 이름 중복은 자동으로 처리됩니다.
지난 작업을 확인하려면 listenhub video get <taskId> --json으로 작업 하나를 조회하고, listenhub video list --json으로 최근 작업 목록을 봅니다. 전역 플래그도 그대로 적용됩니다: --json / -j, --no-wait, --timeout <s>.
API 레퍼런스
엔드포인트 경로, 요청 파라미터, 응답 필드는 AI 비디오 API 레퍼런스를 참고하세요.