AI Video Gen
AI视频生成与编辑,使用火山引擎 Doubao Seedance 模型。支持文生视频、图生视频、有声视频。当用户要求生成视频、制作视频、文生视频、图生视频时使用此 skill。
MIT-0 · Free to use, modify, and redistribute. No attribution required.
⭐ 2 · 628 · 7 current installs · 7 all-time installs
byNick Qiu@qiujiahong
MIT-0
Security Scan
OpenClaw
Benign
medium confidencePurpose & Capability
Name/description match the included script and documentation: the skill calls a Doubao/Volcengine video-generation API and implements text/image/audio→video flows. Required capabilities (API key, optional base URL) are consistent with that purpose.
Instruction Scope
SKILL.md instructs the agent to run scripts/generate_video.py and optionally upload a generated video to Feishu. The Feishu upload is presented as an example and would require separate Feishu app credentials (app_id/app_secret) which are not declared as required env vars; the script itself only performs video generation and download. The script will read any local file paths you pass (first-frame/reference-image) and upload them to the remote generation API as provided — be cautious about supplying sensitive local files.
Install Mechanism
No install spec — instruction-only with included Python script. This is low-risk; nothing in the skill downloads or installs code at runtime beyond normal Python execution. The script depends on httpx but installation steps are left to the environment.
Credentials
The docs declare VIDEO_GEN_API_KEY and VIDEO_GEN_BASE_URL, but the script contains a bug: BASE_URL is read using os.environ.get("VIDEO_GEN_API_KEY", default) instead of os.environ.get("VIDEO_GEN_BASE_URL", default). This is a coding mistake (not a secret-exfiltration pattern) but means the declared base-URL env var is ignored unless you modify the script. Aside from that, only the service API key is required; no unrelated credentials are requested by the code. The Feishu example requires app_id/app_secret, but those are not listed as required env vars — they're optional examples.
Persistence & Privilege
The skill does not request persistent or elevated platform privileges (always: false, no special config paths, does not modify other skills). It performs network calls to the declared API endpoint and saves downloaded video files to disk, which is expected for its purpose.
Assessment
This skill appears to do what it says (generate videos via Volcengine/Doubao) and contains only the expected network and file operations, but check a few things before installing or running it:
- Fix the BASE_URL bug: open scripts/generate_video.py and change the BASE_URL line from os.environ.get("VIDEO_GEN_API_KEY", ...) to os.environ.get("VIDEO_GEN_BASE_URL", "https://ark.cn-beijing.volces.com/api/v3"). Without that edit the intended VIDEO_GEN_BASE_URL env var will be ignored.
- Provide only a Volcengine API key you trust and avoid passing local file paths that contain sensitive data (the script will read any --first-frame or --reference-image file you supply and send it to the remote API).
- The README/SKILL.md include an example for uploading to Feishu; if you use that, you will need Feishu app_id/app_secret and will be uploading the generated video to a third-party cloud — verify you are comfortable sharing that content.
- The skill is from an unknown source (no homepage in registry metadata). If you plan to run it in a sensitive environment, review the repository or run in an isolated environment first.
If you want higher assurance, ask the author for an official source repository or sign-off, or run the script in a disposable container and inspect network traffic and code before using real API keys or sensitive input files.Like a lobster shell, security has layers — review code before you run it.
Current versionv1.0.0
Download ziplatest
License
MIT-0
Free to use, modify, and redistribute. No attribution required.
SKILL.md
AI 视频生成
通过火山引擎 Doubao Seedance API 生成视频。
环境变量
脚本通过以下环境变量获取 API 配置:
VIDEO_GEN_API_KEY— 火山引擎 API KeyVIDEO_GEN_BASE_URL— API 基础地址(默认:https://ark.cn-beijing.volces.com/api/v3)
支持的生成模式
| 模式 | 说明 | 参数 |
|---|---|---|
text_to_video | 文生视频 | prompt |
image_to_video | 图+文生视频(URL) | prompt + --first-frame URL |
image_to_video_base64 | 图生视频(Base64) | prompt + --first-frame 路径/base64 |
audio_video_first_frame | 有声视频-首帧 | prompt + --first-frame + --audio |
audio_video_first_last_frame | 有声视频-首尾帧 | prompt + --first-frame + --last-frame + --audio |
seedance_lite_reference | Seedance-Lite 参考图 | prompt + --reference-image |
可用模型
doubao-seedance-1.5— 完整版(默认)seedance-lite— 轻量版
使用方法
文生视频
export VIDEO_GEN_API_KEY="your-api-key"
python3 scripts/generate_video.py "一只可爱的小猫在草地上奔跑,阳光明媚,慢动作" \
--mode text_to_video \
--output cat_running.mp4
图生视频
python3 scripts/generate_video.py "让图片中的人物转头微笑" \
--mode image_to_video \
--first-frame "https://example.com/image.jpg" \
--output person_smile.mp4
图生视频(Base64)
python3 scripts/generate_video.py "让图片动起来" \
--mode image_to_video_base64 \
--first-frame ./input_image.png \
--output animated.mp4
有声视频(首帧)
python3 scripts/generate_video.py "人物开口说话,声音洪亮" \
--mode audio_video_first_frame \
--first-frame ./portrait.jpg \
--audio \
--output talking.mp4
有声视频(首尾帧)
python3 scripts/generate_video.py "人物从左转头到右" \
--mode audio_video_first_last_frame \
--first-frame ./left.jpg \
--last-frame ./right.jpg \
--audio \
--output turn_head.mp4
Seedance-Lite 参考图
python3 scripts/generate_video.py "参考图片风格生成视频" \
--mode seedance_lite_reference \
--reference-image ./style_ref.jpg \
--output styled_video.mp4
工作流程
- 理解需求:分析用户的视频需求,确定生成模式
- 选择模式:文生视频、图生视频、有声视频等
- 优化提示词:将用户描述扩展为详细的视频描述
- 执行脚本:调用
scripts/generate_video.py生成视频 - 等待完成:视频生成通常需要几分钟
- 上传视频:上传到飞书获取 file_key
- 发送视频:使用
message工具发送视频
飞书视频上传
import requests
# 获取 token(使用飞书 app_id 和 app_secret)
resp = requests.post(
"https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal",
json={"app_id": "YOUR_APP_ID", "app_secret": "YOUR_APP_SECRET"}
)
token = resp.json()["tenant_access_token"]
# 上传视频
with open("video.mp4", "rb") as f:
resp = requests.post(
"https://open.feishu.cn/open-apis/im/v1/files",
headers={"Authorization": f"Bearer {token}"},
files={"file": ("video.mp4", f, "video/mp4")},
data={"file_type": "mp4"}
)
file_key = resp.json()["data"]["file_key"]
# 发送视频
# 使用 message 工具: {"file_key": "<file_key>"}
提示词技巧
- 描述动作:清晰描述主体运动、镜头运动
- 时间感:快/慢动作、延时、瞬间
- 氛围感:光线、天气、情绪
- 镜头语言:推/拉/摇/移、特写/远景
参数说明
| 参数 | 说明 | 默认值 |
|---|---|---|
| --mode | 生成模式 | text_to_video |
| --model | 模型名称 | doubao-seedance-1.5 |
| --first-frame | 首帧图片 | - |
| --last-frame | 尾帧图片 | - |
| --reference-image | 参考图片 | - |
| --audio | 启用音频 | False |
| --output | 输出路径 | 自动生成 |
| --no-wait | 不等待完成 | False |
Files
4 totalSelect a file
Select a file to preview.
Comments
Loading comments…
