Amara · Open Skill 公開スキル

Amara

Amara は Digen 上の公開 Open Skill です。開くと、このワークフローが何を作るか分かります。

@kingamara86a

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