Amara · Open Skill 공개 스킬
Amara
Amara은 Digen의 공개 Open Skill입니다. 열어 보면 이 워크플로가 무엇을 만드는지 알 수 있습니다.
VTuber
6 2 11
https://d7qlwi7tl2u27.cloudfront.net/skill-covers/prod/1305698/2026-09-06/j8czg3s2.jpg
# Amara — Long Video Voiceover (Rappel) ## When to use - The user wants to transform a long video (N seconds) into N/10 clips of exactly 10 s, with the same character (from a reference photo) speaking the transcribed words. - The user wants to advance or change one step: generate the next segment, restyle a clip, re-assemble. ## Inputs - A long video (uploaded asset, or YouTube/TikTok/Instagram URL). - A character reference photo (the person who speaks in all clips). ## Steps ### 1. Get the source video - If the video is a YouTube/TikTok/Instagram link: call `download_video(url)` and use the returned `downloadUrl` as-is. - If the video is already uploaded: use its asset id/URL directly. ### 2. Transcribe and split into 10 s segments - Call `transcribe_audio(audio_url=<video url>)` to get the exact words + timestamped segments (`dft`). - Build segments of 10 s: a video of N seconds → N/10 segments (60 s → 6 segments). For each segment, collect the words that fall inside its time window (use the transcript timestamps; adjust boundaries to the nearest sentence break if needed). ### 3. Describe the character (once) - Call `recognize_image(image_url=<character photo>)` to get a short physical description (age, skin tone, hair, beard, outfit) and the setting, to fill the prompt template. (Or use the user's own description if provided.) ### 4. Generate one 10 s clip per segment (ref2v, AI voice) For each segment i (1..N/10), call `generate_video`: - `model = 'ref2v'` - `input_urls = [<character photo>]` - `prompt` = the template below, with the segment's words inside `<d>[<language>] ...</d>` - `duration = 10` - `orientation = 'portrait'` - `resolution = '480P'` - `entity_type = 'storyboard_videos'` - `name = 'clip_XX'` (clip_01, clip_02, …) - Do NOT pass `audio_url` by default: the model generates the character's voice from the prompt text (tested method). Only pass `audio_url` of that segment's audio if the user explicitly wants the original voice/lip-sync. Prompt template (fill the placeholders; keep the structure): ``` <Subject 1> is the person in <Picture 1>, <short physical description: age, skin tone, hair, beard, outfit>. Photoreal, identity and outfit fully preserved. [reference generation] 10 seconds, one continuous talking-head shot: the person from the photo delivers a short spoken message in <language> about <topic>, seated in <setting>, looking straight into the camera, natural hand gestures, lips jaw and throat moving in sync with the audio. [Shot 1] Medium close-up, the person from <Subject 1> sits in <setting>, looks straight into the camera, speaks with conviction, gestures naturally, lips jaw and throat moving in sync with the audio; camera static with a very slight natural handheld shake; (S1) says, <d>[<language>] <SEGMENT_WORDS></d> overall_soundscape: warm room tone, microphone presence, subtle room reverb. non_diegetic_music: N/A On-screen: no subtitles, no nameplates, no extra readable text. ``` ### 5. Assemble the clips - Call `mix_clips` with a single clip: - `videos = [clip_01, clip_02, …, clip_N]` (concatenated in order; each is exactly 10 s) - `orientation = 'portrait'` - `entity_type = 'final_videos'` - `name = 'final_video'` ### 6. Deliver - Show the final video to the user. Optionally verify a clip with `recognize_video` if something looks off. ## Notes - Each clip must be exactly 10 s (`duration = 10`). - The character stays identical across all clips: always use the same reference photo. - The words of each segment are inserted into the prompt of the corresponding clip, inside `<d>[<language>] ...</d>` (e.g. `<d>[French] ...</d>`). - Default voice = AI voice generated by the model from the prompt text (no `audio_url`). Only use `audio_url` when the user explicitly asks for the original voice/lip-sync. - No background music is added: the final video contains only the AI-generated voice of the clips. - Intermediate clips appear on the canvas (user skills cannot hide intermediate