短剧制作工坊 · Open Skill 공개 스킬

短剧制作工坊

短剧制作工坊은 Digen의 공개 Open Skill입니다. 열어 보면 이 워크플로가 무엇을 만드는지 알 수 있습니다.

@lnlfjkac700839

ShortDrama

8 1 2

https://d7qlwi7tl2u27.cloudfront.net/skill-covers/prod/4045512/2026-10-09/63t2q3bb.png

# 短剧制作工坊 (Short Drama Producer)

把「一个标题 + 一个主角」做成一部完整的约 3 分钟竖屏(9:16)短剧:剧本 → 分镜图 → 逐镜动画 → 配音/配乐 → 合成成片。

## When to use
- 用户给出一个短剧标题,并给出主角(上传的人物图 或 一段人物描述),想要一部完整短剧。
- 用户想重做/修改其中某一阶段(重写剧本、重出某一镜、重设主角形象、重新合成)。

## Inputs
- **标题 (Title)**:短剧标题,例如【我在中国古代卖化妆品】。
- **主角 (Protagonist)**:上传的人物图(asset_id / uri)或一段人物描述。两者都有时以图为准、用文字补充。

## Steps

### 0. 准备
- 先 `write_todos` 列出 6 个阶段(主角 → 剧本 → 分镜 → 动画 → 配音配乐 → 合成)。
- 用 `memory_query` 查用户偏好的短剧风格/语言/配音偏好,`memory_whoami` 了解用户身份,用于塑造剧本与配音。

### 1. 确立主角
- 若提供了人物图:`recognize_image(image_url=<asset uri>, prompt="详细描述人物外貌,用于短剧一致化渲染")`,整理出一段固定的**人物描述块**(性别、年龄、发型、脸型、五官、服装、气质、风格),后续每个 prompt 都原样复用。并把该图作为**主角参考图**(asset_id/uri)保留。
- 若只有文字:直接用文字作为人物描述块。
- 若两者都有:以图为参考,把文字并入描述块。

### 2. 写剧本 (create_document)
- 依据标题+主角写一部约 3 分钟竖屏短剧剧本。结构:开场钩子 → 冲突发展 → 反转/高潮 → 结尾悬念。
- 规划 **12–15 镜**,每镜约 12–15 秒(合计≈180 秒)。每镜写明:镜号、场景/地点、动作、对白/旁白、时长、以及该镜分镜图的英文画面 prompt(务必包含人物描述块)。
- 保存:`create_document(content=<完整剧本 markdown>, name=<标题>, entity_type='scripts')`。
- **检查点**:把剧本展示给用户,确认或要求修改后再生成画面。若需修改,用 `update_document(asset_id=<剧本id>, content=<修订版>)` 并重新展示。

### 3. 分镜图 (generate_image)
- 为每镜生成一张分镜图:
  - 有主角参考图:`model='i2i'`,`input_urls=[<主角参考图>]`,prompt = 该镜画面 prompt + 人物描述块。
  - 仅文字:`model='t2i'`,prompt = 该镜画面 prompt + 人物描述块。
  - 一律 `orientation='portrait'`、`resolution='720P'`、`name='shot_XX'`、`entity_type='storyboard_images'`。
- 每镜复用同一人物描述块与参考图,保证主角形象一致。

### 4. 逐镜动画 (generate_video)
- 把每张分镜图做成动态镜头:`model='i2v'`,`input_urls=[<分镜图>]`,prompt = 该镜的动作/运镜描述,`orientation='portrait'`,`duration≈12–15`(由模型自动钳制),`name='clip_XX'`、`entity_type='storyboard_videos'`。

### 5. 配音 + 配乐
- 为每句对白/旁白生成配音:`model='tts.design'` + `voice_instruction`(用英文描述符合角色的音色/语气)。若用户提供了参考人声,则改用 `model='tts.clone'` + `reference_audio_url`。`name='vo_XX'`、`entity_type='voiceovers'`。
- 生成背景音乐:`generate_music(prompt=<贴合剧情的情绪/风格>)`,`name='bgm'`、`entity_type='music'`。

### 6. 合成成片 (mix_clips)
- `mix_clips`:每镜一个 clip —— `video=<clip_XX>`、`audio=<vo_XX>`(对白/旁白),并把 `bgm` 作为低音量音轨铺满全片。可选地把对白烧成字幕(`subtitles.items`;中文文本用 `font_name='Noto Sans CJK SC'`)。
- `orientation='portrait'`、`name=<标题>_final`、`entity_type='final_videos'`。
- 展示成片并总结。调用 `set_guidance` 建议下一步(如重写剧本、重设主角、出下一集)。

## Notes
- 视频生成在任何 channel 都不支持 NSFW/成人内容,遇到此类请求礼貌拒绝。
- 中间产物(剧本、分镜图、镜头、配音)都会出现在画布上,属正常现象。
- 如实报告失败,绝不编造 URL。
- 记忆:当用户分享短剧偏好(风格/语言/配音偏好)时,用 `memory_store` 写入,`kind='preference'`、`namespace='short-drama-producer'`。