返回 VideoClaw
static_short_video.md
根目录 / video-claw / references / pipelines / static_short_video.md
1 # 文艺短视频
2
3 文艺短视频对应 `standard` pipeline。它支持两种生成方式:
4
5 1. `image_concat`:为每句旁白生成一张图和一段 TTS 音频,用图片+音频合成静态图文片段,再拼接成最终视频。
6 2. `dynamic_video`:先为每句旁白生成图片,再调用图生视频模型生成动态片段,最后使用生成的 TTS 音频替换片段音轨并拼接成最终视频。
7
8 输入也支持两种方式:
9
10 1. `inspiration`:用户给创作灵感,并提供目标片段数量,后端用 LLM 扩写成对应数量的旁白句子。
11 2. `copy`:用户给完整文案,后端直接按句号切分,得到实际片段数量。
12
13 ## 请求
14
15 ```bash
16 curl -X POST "http://localhost:8000/api/pipelines/standard/tasks" \
17 -H "Content-Type: application/json" \
18 -d '{
19 "video_mode": "image_concat",
20 "mode": "inspiration",
21 "text": "一个关于拖延症和自救的短视频灵感",
22 "segment_count": 6,
23 "title": "",
24 "llm_model": "qwen3.5-plus",
25 "image_model": "doubao-seedream-5-0-260128",
26 "video_ratio": "9:16",
27 "tts_voice": "zh-CN-YunjianNeural",
28 "tts_speed": 1.2,
29 "style_control": "Minimalist black-and-white matchstick figure style illustration, clean lines, simple sketch style",
30 "enable_subtitles": true
31 }'
32 ```
33
34 动态视频模式示例:
35
36 ```json
37 {
38 "video_mode": "dynamic_video",
39 "mode": "copy",
40 "text": "第一句旁白。第二句旁白。",
41 "image_model": "doubao-seedream-5-0-260128",
42 "video_model": "wan2.7-i2v",
43 "video_duration": 5
44 }
45 ```
46
47 ## 参数说明
48
49 | 参数 | 必填 | 默认 | 说明 |
50 |------|------|------|------|
51 | `video_mode` | | `image_concat` | `image_concat` 为图片拼接;`dynamic_video` 为动态视频 |
52 | `mode` | | `copy` | `inspiration` 为创作灵感,先经 LLM 构思;`copy` 为完整文案,直接切分 |
53 | `text` | ✅ | | 创作灵感或完整文案 |
54 | `segment_count` | | `6` | 仅 `inspiration` 模式使用,用于约束 LLM 扩写出的旁白句子数量 |
55 | `title` | | | 可选,留空时由 LLM 根据最终旁白生成 |
56 | `llm_model` | | 后端默认 | 标题生成、创作灵感扩写和图片提示词生成使用的 LLM |
57 | `image_model` | | 后端默认 | 文生图模型,需支持 `text_to_image` |
58 | `video_model` | | 后端默认 | 仅 `dynamic_video` 模式使用,需支持图生视频 |
59 | `video_duration` | | `5` | 仅 `dynamic_video` 模式使用,单个动态片段目标时长 |
60 | `video_ratio` | | `9:16` | 视频比例,支持 `9:16` / `16:9` / `1:1` |
61 | `tts_voice` | | `zh-CN-YunjianNeural` | Edge TTS 声音 |
62 | `tts_speed` | | `1.2` | TTS 语速 |
63 | `style_control` | | 火柴人黑白简笔风 | 作为所有图像提示词的前缀 |
64 | `enable_subtitles` | | `false` | 是否把标题和字幕直接绘制到生成图片上 |
65
66 默认风格控制:
67
68 ```text
69 Minimalist black-and-white matchstick figure style illustration, clean lines, simple sketch style
70 ```
71
72 ## 字幕与标题
73
74 文艺短视频不依赖 FFmpeg `libass` 烧字幕。开启 `enable_subtitles` 时:
75
76 1. 后端先用 Pillow 将标题和当前句字幕绘制到每张图片上
77 2. 生成 `captioned_image_XX.jpg`
78 3. 图片拼接模式用带字图片合成静态视频片段
79 4. 动态视频模式用带字图片作为图生视频首帧
80
81 因此标题/字幕功能只需要 Pillow,不需要 FFmpeg 的 `ass` filter。
82
83 ## 产物
84
85 产物目录:
86
87 ```text
88 video-claw/backend/code/result/task/{task_id}/
89 ```
90
91 常见产物:
92
93 | 文件 | 说明 |
94 |------|------|
95 | `storyboard.json` | 每句旁白、图片提示词、图片/音频/视频路径 |
96 | `narration.txt` | 最终旁白文本 |
97 | `image_XX.*` | 每句旁白生成的原始图片 |
98 | `captioned_image_XX.jpg` | 开启字幕时生成的带标题/字幕图片 |
99 | `audio_XX.mp3` | 每句旁白生成的 TTS |
100 | `video_XX.mp4` | 图片拼接模式下,每句图片+音频合成的静态片段 |
101 | `video_XX_motion.mp4` | 动态视频模式下,每句生成的动态视频片段 |
102 | `final.mp4` | 最终拼接成片 |
103
104 ## 响应
105
106 ```json
107 {
108 "task_id": "20260429_170348_a281f881",
109 "pipeline": "standard",
110 "status": "pending",
111 "metadata_url": "/api/tasks/20260429_170348_a281f881",
112 "output_dir": "/.../backend/code/result/task/20260429_170348_a281f881"
113 }
114 ```
115
116 任务完成后查询:
117
118 ```bash
119 curl "http://localhost:8000/api/tasks/{task_id}"
120 ```
121
122 `output.final_video` 指向最终视频。
123
124 ## 模型能力筛选
125
126 ```bash
127 curl "http://localhost:8000/api/models?media_type=image&ability=text_to_image&verified_only=true"
128 curl "http://localhost:8000/api/models?media_type=video&ability=image_to_video&verified_only=true"
129 ```
130
131 ## 前端入口
132
133 ```text
134 http://localhost:3000/pipelines/standard
135 ```
136
137 前端选项:
138
139 | 控件 | 说明 |
140 |------|------|
141 | 图片拼接 / 动态视频 | 决定最终片段是由图片直接合成,还是继续调用图生视频模型 |
142 | 说明 | 根据当前模式提示生成方式和等待时间;图片约 10-20 秒/张,视频约 1-2 分钟/片段 |
143 | 创作灵感 / 完整文案 | 决定输入是否先经 LLM 构思 |
144 | 片段数量 | 仅创作灵感模式显示,用于约束 LLM 扩写句子数量 |
145 | 标题 | 可选,留空时由 LLM 生成 |
146 | 添加标题和字幕 | 直接画到生成图片上 |
147 | 生成配置 | LLM 模型、图片模型、动态视频模型、视频比例、TTS 声音、TTS 速度、风格控制 |
148
149 ## 注意事项
150
151 1. 图片拼接模式不会调用视频生成模型;动态视频模式会调用图生视频模型。
152 2. 完整文案会按所有句号切分,建议每句不要太长。
153 3. 图像提示词会自动追加“不要生成文字、logo、水印、标签”等约束。
154 4. 如果开启标题和字幕,会额外生成带字图片产物。
155
155 lines MARKDOWN