비디오 디렉터은(는) 무엇을 하나요?
비디오 작업을 위해 Operate(resource="video", operation="generate", input={ ... })를 호출하기 전에 이 스킬을 사용하세요.
AI 채팅에서 이 스킬은 비디오 생성을 위한 단일 진입점입니다. 사용자가 "口播视频 만들어 줘", "비디오 하나 생성해 줘", "제품 프로모션 영상", "광고 영상", "디지털 휴먼 비디오" 또는 이와 유사한 비디오 요청을 하면 먼저 video-director를 호출하세요. cosyvoice-ssml부터 시작하지 마십시오. 해당 스킬은 내부 디지털 휴먼 TTS 하위 단계이며 비디오 워크플로우를 주도해서는 안 됩니다.
사용자가 이미지를 첨부하고 프로모션 영상 / 宣传片 / 비디오를 요청하여 이 스킬이 로드된 경우, 첨부된 이미지를 비디오 워크플로우를 위한 제품 또는 시각적 참조 자료로 취급하십시오. "분석" 단계로 대체 제품 이미지를 생성하지 마십시오.
기본 워크플로우
워크플로우를 게이트형 상태 머신으로 취급하십시오. 상태를 건너뛰거나 재정렬하지 마십시오:
plan_draft: 사용자의 목표와 자산을 바탕으로 의도된 비디오 모드를 명확히 한 다음, 간결하지만 상세한 비디오 스크립트와 샷 테이블을 초안 작성합니다.storyboard_preview: 샷 테이블이 존재한 직후,Operate(resource="image", operation="generate", input={ ... })로 스토리보드 콘택트 시트 미리보기 이미지를 생성합니다. 스토리보드 이미지는 계획된 샷의 미리보기이며, 독립형 제품 포스터, 대체 제품 렌더링, 커버 이미지 또는 최종 비디오 키프레임이 아닙니다.user_review: 스크립트, 스토리보드 미리보기 이미지, 그리고 명시적인 비디오 사양을 함께 보여줍니다. 사용자에게 전체 계획을 확인하거나 수정하도록 요청합니다.production_prep: 확인 후, 이것이<=15초단일 업스트림 클립, 긴video_sequence요청, 또는 수동 편집기/프로젝트 어셈블리가 되어야 하는지 결정합니다. 사용자가 명시적으로 프로젝트/패키지/편집기 워크플로우를 요청하거나 작업이 이미 기존 팩에 바인딩된 경우에만 비디오 프로젝트 팩을 사용하십시오.tts_if_needed: 확인된 작업이 캐릭터 토킹헤드 / 口播 비디오인 경우 아래의 TTS 우선 워크플로우를 완료합니다.video_generate: 확인 및 필요한 TTS 오디오가 완료된 후에만Operate(resource="video", operation="generate", input={ ... })를 호출합니다.
사용자가 아직 스크립트를 확인하지 않은 경우 비디오를 생성하지 마십시오.
사용자가 아직 스토리보드 미리보기 이미지를 보고 승인하지 않은 경우 비디오를 생성하지 마십시오.
샷 테이블이 존재하지만 아직 스토리보드 콘택트 시트 이미지가 생성되지 않은 경우, 다음 도구 호출은 반드시 스토리보드 미리보기를 위한 image.generate여야 하며, video.generate, voice.speech, tts-director 또는 cosyvoice-ssml이 아니어야 합니다.
스토리보드 콘택트 시트 미리보기는 첫 번째 샷 스크립트가 작성된 후 필수입니다. 이는 최종 비디오 키프레임과 동일하지 않습니다. 비디오 생성 전에 사용자가 방향, 구도, 제품 배치 및 연속성을 승인할 수 있도록 계획된 샷 시퀀스의 빠른 시각적 증거입니다.
첨부/참조 이미지로부터의 제품 프로모션 비디오:
- 최초의
image.generate호출(있는 경우)은 스크립트와 샷 테이블이 존재한 후에 스토리보드 콘택트 시트여야 합니다. - 스토리보드 프롬프트는 이것이 비디오를 위한 멀티패널 스토리보드 미리보기임을 명시해야 하며, 첨부/참조 제품의 보이는 모양, 재질, 색상 및 독특한 디테일을 보존해야 합니다.
- 단순히 제품 참조를 "분석"하거나, "추출"하거나, "향상"시키거나, 재생성하기 위해
image.generate를 호출하지 마십시오. - 사용자가 스토리보드 방향을 확인할 때까지
video.generate를 호출하지 마십시오.
자산 라이브러리 캐릭터 토킹헤드 규칙
사용자가 자산 라이브러리의 캐릭터를 사용하여 토킹헤드 / 口播 / 프리젠터 / 라이브스트림 환영 비디오를 원하는 경우, 캐릭터 이미지는 시각적 정체성 참조일 뿐입니다. 음성 트랙이 아닙니다.
다음 세 가지 입력을 분리하여 유지하십시오:
voiceId: 캐릭터 자산에 저장된 재사용 가능한 복제 음성 정체성. 이는 향후 TTS 호출을 위한 기본 음성 필드입니다.- 음성 샘플 / 참조 오디오: 준비된
voiceId가 없을 때 복제를 위한 대체 소스 자료. 준비된voiceId가 발견되면 이를 계속 분석하거나 제시하지 마십시오. - 생성된 TTS 오디오 자산: 완성된 음성 스크립트. 이는 캐릭터 토킹헤드 비디오를 구동해야 하는 유일한 오디오입니다.
다음 정확한 순서를 사용하십시오:
- 스크립트 및 스토리보드 우선
- 최종 음성 스크립트를 확인합니다.
- 스토리보드 / 샷 테이블을 확인합니다.
Sound열에는 실제 음성 대사가 포함되어야 하며, "角色讲解"과 같은 모호한 레이블이 아니어야 합니다.
- 캐릭터 음성 확인
- 미디어를 생성하기 전에 선택한 캐릭터 자산을 읽습니다.
- 자산에 준비된
voiceId/voice_id가 있는 경우, 이를 확인된 음성으로 취급하고 음성 샘플 검사를 중단합니다. 확인된voiceId를 보고하고 참조 오디오 파일 이름은 보고하지 마십시오. - 자산에 음성 샘플은 있지만 준비된
voiceId가 없는 경우, 먼저Operate(resource="voice", operation="clone", input={ ... })를 호출하고 완료를 기다린 후 반환된voiceId를 사용합니다. - 준비된
voiceId도 사용 가능한 음성 샘플도 없는 경우, 중단하고 사용자에게 음성을 제공하거나 선택하도록 요청합니다. 일반 음성으로 자동 대체하지 마십시오.
- TTS로 완전한 음성 트랙 생성
- 승인된 전체 음성 스크립트와 확인된
voiceId를 사용하여Operate(resource="voice", operation="speech", input={ ... })를 호출합니다. - 사용자가 명시적으로 별도의 클립을 원하지 않는 한, 전체 토킹헤드 세그먼트에 대해 하나의 완전한 오디오 자산을 선호합니다.
- 확인된 디지털 휴먼 / VideoRetalk 흐름 내에서 표현적인 내레이션, 긴 스크립트, 시, 광고 또는 다중 감정 연기가 필요한 경우, 먼저
Operate(resource="skills", operation="invoke", input={ "name": "tts-director" })로tts-director를 활성화한 다음, 그 안내를 사용하여 승인된 스크립트를 의미적 단위로 분할하고 모델에 적합한 전달 제어를 할당합니다. - 선택한 TTS 모델이 CosyVoice인 경우,
tts-director는 비디오 디렉터 워크플로우가 이것이 디지털 휴먼 / VideoRetalk / 자산 라이브러리 토킹헤드 비디오임을 확인하고 스크립트와 역할 음성이 확인된 후에만 여기서cosyvoice-ssml을 활성화할 수 있습니다. - 승인된 성능을 향상시킬 때 절제된 전달 제어를 추가합니다: 템포를 위해
speed, 톤을 위해pitch, 분위기를 위해emotion,~,?,!,……와 같은 표현적 구두점, 그리고input내에서 말하는 리듬이 필요한 곳에만 MiniMax 텍스트 마커(예:<#0.6#>,(laughs),(sighs),(breath))를 사용합니다. - 제어 명령을 음성 텍스트에 작성하지 마십시오. 예를 들어, 캐릭터가 "用开心快速的语气"라고 말하게 하는 대신
"emotion":"happy"및speed:1.08을 전달하십시오. - 승인된 음성 트랙에 여러 감정적 비트가 필요한 경우, 순서가 지정된
segments와 함께 하나의voice.speech호출을 제출하십시오. 미디어 런타임이 각 세그먼트를 생성하고 최종 오디오를 병합합니다. 반복적으로voice.speech를 호출한 다음 수동으로 병합하지 마십시오. - TTS 결과에 사용 가능한 오디오 자산 경로, URL 또는 자산 ID가 포함될 때까지 기다리십시오.
- TTS 작업이 대기 중이거나 실행 중인 동안 비디오 생성을 시작하지 마십시오.
- 승인된 전체 음성 스크립트와 확인된
- 시각적 참조 및 생성된 오디오로 비디오 생성
- 선택한 캐릭터 이미지를 시각적 참조로 사용합니다.
- 새로 생성된 완전한 TTS 오디오 자산을
drivingAudio로 사용합니다. - 프롬프트 전문에서 생성된 음성 오디오로 식별합니다(예:
Audio 1: 립싱크/말하는 리듬을 위해 생성된 Jamba TTS 음성). - 그런 다음 일반적으로
reference-guided모드에서Operate(resource="video", operation="generate", input={ ... })를 호출합니다.
이는 비디오 모델이 승인된 스크립트와 정렬된 완성된 오디오 파형을 필요로 하기 때문에 필수적입니다. 캐릭터 voiceId는 오디오가 아닙니다. 음성 샘플은 승인된 음성 대사가 아닙니다. 비디오 프롬프트 내의 음성 텍스트는 TTS를 대체할 수 없습니다.
금지된 지름길:
- 캐릭터 이미지와 스크립트만으로 캐릭터 口播용 비디오 생성을 호출하지 마십시오.
voiceId, 음성 샘플 오디오 또는 "音色素材"를drivingAudio로 전달하지 마십시오.- 토킹헤드 작업을 위해
generateAudio에 의존하여 캐릭터 음성을 생성하지 마십시오. - 비디오 프롬프트에서만 의도된 음성을 설명하고 비디오 모델이 이를 합성할 것으로 기대하지 마십시오.
- 사용자가 별도로 편집 가능한 오디오 클립을 요청하거나 비디오가 여러 독립적인 말하기 클립으로 조립되지 않는 한, 스토리보드 행별로 TTS를 분할하지 마십시오.
권장 TTS 페이로드 형태:
{
"voiceId": "voice_xxx",
"segments": [
{
"input": "완전하고 확인된 口播 오프닝.<#0.5#>",
"speed": 0.98,
"pitch": 0,
"emotion": "calm"
},
{
"input": "자연스럽게 더 설득력 있는 핵심으로 전환(laughs).",
"speed": 1.05,
"pitch": 0,
"emotion": "happy"
}
],
"title": "Jamba 환영 음성 해설",
"waitForCompletion": true
}
TTS 완료 후 권장 비디오 페이로드 형태:
{
"generationMode": "reference-guided",
"referenceImages": ["/absolute/path/to/jamba.png"],
"drivingAudio": "/absolute/path/to/generated-jamba-tts.mp3",
"drivingAudioLabel": "승인된 스크립트에서 생성된 Jamba TTS 음성",
"storyboardShots": [
{
"time": "0-3s",
"picture": "Jamba가 라이브스트리밍 방에서 카메라를 향해 자연스럽게 미소짓습니다.",
"sound": "방송에 오신 것을 환영합니다. 오늘은 정말 실용적인 좋은 아이템을 준비했습니다.",
"shot": "미디엄 클로즈업, 안정적인 프리젠터 프레이밍."
}
]
}
비디오 프로젝트 팩 규칙
비디오 프로젝트 팩은 기본 경로가 아닙니다.
다음 경우에만 생성하십시오:
- 사용자가 명시적으로 视频项目 / 视频工程 / 프로젝트 팩을 요청하는 경우
- 사용자가 명시적으로 나중에 비디오 편집기 / 프로젝트 작업대 내에서 계속하기를 요청하는 경우
- 작업이 이미 기존 비디오 프로젝트 팩에 바인딩된 경우
요청에 여러 샷, 긴 컨텍스트, 연속성 위험, 스토리보드 필요 또는 가능한 수정이 있다는 이유만으로 생성하지 마십시오.
명시적으로 필요할 때 다음으로 생성하십시오:
Operate(resource="video", operation="create", input={ "explicitProjectWorkflow": true, "title": "...", "duration": "...", "aspectRatio": "...", "mode": "..." })
프로젝트 폴더는 다음 위치에 있습니다:
manuscripts/video/<project-name>/
다음 파일을 함께 보관하는 데 사용해야 합니다:
manifest.jsonscript.mdassets.jsoneditor.project.json- 가져온 참조 이미지 / 키프레임 / 생성된 클립 / 최종 출력
팩이 생성된 후:
- 사용자 브리핑과 승인된 스크립트를 비디오 프로젝트 폴더에 다시 씁니다.
- 가능할 때마다 이후의 키프레임, 클립 및 출력을 동일한 팩에 보관합니다.
그렇지 않으면 계획을 채팅에 유지하고, video generate를 직접 호출하고, 출력이 생성된 미디어 라이브러리에 저장되도록 합니다.
하드 규칙
- 비디오 생성은 앱에 의해 구성된 공식 비디오 경로로 고정됩니다.
- 임의의 비디오 엔드포인트 또는 타사 비디오 모델을 선택하지 마십시오.
- 공식 모델 매핑만 사용하십시오:
text-to-video->wan2.7-t2v-videoreference-guided->wan2.7-r2v-videofirst-last-frame->wan2.7-i2v-video
- 첫/마지막 프레임 전환을 이미지-투-비디오 작업의 하위 유형으로 취급하십시오.
- 단일 업스트림 비디오 생성 세그먼트는
15초를 초과할 수 없습니다. 15초보다 긴 최종 비디오의 경우, 최종durationSeconds또는 명시적videoSegments와 함께 하나의video.generate요청을 제출하십시오. 미디어 큐가<=15초세그먼트를 생성하고 하나의 최종 비디오 자산으로 연결합니다.- 단순히 업스트림
15초 세그먼트 제한을 우회하기 위해video.generate를 반복해서 호출하지 마십시오. - 요청이 명확해 보인다고 해서 스크립트 검토 단계를 건너뛰지 마십시오.
- 사용자가 명시적으로 더 긴 연속 샷을 요청하지 않는 한, 단일 샷은 일반적으로
1-3초여야 합니다. - 명시적인 사용자 승인 없이 단일 샷은
5초를 초과할 수 없습니다.
모드 선택
- 사용자가 텍스트만 제공하고 새로운 비디오 샷을 원하는 경우
text-to-video를 사용하십시오. - 사용자가 하나 이상의 참조 이미지를 제공하고 비디오가 해당 이미지에서 피사체 요소, 스타일 큐, 소품, 장면 모티프 또는 구도 힌트를 흡수하기를 원하는 경우
reference-guided를 사용하십시오. - 두 이미지에 명시적인 시작/종료 의미(예: "A에서 B로", "首帧/尾帧", "开头/结尾", "起始状态/结束状态")가 있는 경우에만
first-last-frame을 사용하십시오. - 사용자가 두 이미지를 제공했지만 스타일 참조에 불과한 경우,
reference-guided의미를 유지하고first-last-frame을 사용하지 마십시오.
제작 전략
-
单视频模式:- 하나의 생성된 비디오 클립을 사용합니다.
- 요청이 간단하고, 작업이 짧으며, 전체 아이디어가 하나의 일관된 클립에 들어맞을 때 기본값입니다.
- 단일 생성된 클립은
15초를 초과할 수 없습니다.
-
长视频队列模式:15초보다 긴 하나의 최종 AI 생성 비디오에 사용합니다.durationSeconds > 15와 함께 하나의video.generate요청을 제출하십시오. 런타임이video_sequence큐 작업을 생성하고, 생성을<=15초세그먼트로 분할하고, 각 세그먼트를 기다리고, 세그먼트를 연결하고, 하나의 최종 비디오 자산을 반환합니다.- 스토리보드가 장면별, 비트별, 참조 이미지, 첫/마지막 프레임 또는 구동 오디오 제어를 필요로 할 때 명시적
videoSegments를 사용하십시오. - 각
videoSegments[]항목은<=15초여야 하며 승인된 스토리보드 행의 일관된 그룹에 해당해야 합니다. - 사용자가 명시적으로 긴 생성을 백그라운드에서 실행하도록 요청하지 않는 한
waitForCompletion: true를 유지하십시오.
-
手动多视频工程模式:- 사용자가 명시적으로 별도의 클립, 프로젝트/편집기 워크플로우, 가져온 클립 어셈블리, 수동 후반 작업 또는 별도로 편집 가능한 출력을 요청하는 경우에만 사용하십시오.
- 일반 채팅/에이전트 비디오 생성에서는 수동으로 한 번에 하나의 클립을 생성하고
ffmpeg로 연결하지 마십시오. 대신长视频队列模式을 사용하십시오. - 수동 어셈블리가 명시적으로 필요한 경우, 각 클립을 신중하게 생성한 다음 모든 클립이 성공한 후 스토리보드 순서로 연결하십시오.
-
요청에 여러 샷, 명확한 연속성 요구 사항 또는 시각적 드리프트 위험이 있는 경우, 콘택트 시트 미리보기를 보여준 후 한 가지 질문을 더 하십시오:
- 비디오 제작 전에 별도의 스토리보드 키프레임도 생성해야 하는지 여부.
-
별도의 스토리보드 키프레임이 생성되는 경우, 이후 비디오 생성은 우선적으로 이미지 기반 모드를 사용해야 하며, 전환이 많은 세그먼트의 경우
first-last-frame을 선호해야 합니다.
스토리보드 우선 규칙
모든 비디오 작업은 스크립트 테이블 이후, 사용자 확인 전에 스토리보드 콘택트 시트 미리보기가 필요합니다.