clawhub install jimeng-ai📖 About This Skill
name: jimeng-ai description: 基于火山引擎即梦AI的文生图/文生视频能力,支持通过文本描述生成图片和视频。
即梦AI 文生图/文生视频 Skill
基于火山引擎即梦AI的文生图和文生视频能力,支持通过文本描述生成图片和视频。
功能特性
所需环境变量
| 变量名 | 是否必需 | 说明 |
|--------|----------|------|
| VOLCENGINE_AK | 必需 | 火山引擎 Access Key |
| VOLCENGINE_SK | 条件必需 | 火山引擎 Secret Key(永久凭证必需) |
| VOLCENGINE_TOKEN | 可选 | 安全令牌(临时凭证 STS 必需) |
> 注意:使用临时凭证(AKTP 开头)时,可以只使用 AK + Token,不需要 SK。
配置示例
export VOLCENGINE_AK="your-access-key"
export VOLCENGINE_SK="your-secret-key"如果使用临时凭证(STS),还需要设置 Token
export VOLCENGINE_TOKEN="your-security-token"
获取方式: 1. 登录 火山引擎控制台 2. 进入"访问控制" -> "密钥管理" 3. 创建或查看已有访问密钥
安装依赖
cd ~/.openclaw/workspace/skills/jimeng-ai
npm install
工作流程
首次执行(新任务)
使用新提示词运行时,脚本将:
1. 向 API 提交任务
2. 使用 md5(提示词) 作为文件夹名创建目录
3. 保存 param.json、response.json 和 taskId.txt
4. 输出:"任务已提交,TaskId: xxx"
$ npx ts-node scripts/text2image.ts "一只可爱的猫咪"
任务已提交,TaskId: 1234567890
后续执行(异步查询)
使用相同提示词运行将查询已有任务:
1. 如果图片已存在 → 立即返回图片路径
2. 如果任务未完成 → 输出:"任务未完成,TaskId: xxx"
3. 如果任务已完成 → 从 binary_data_base64 解码并保存图片
$ npx ts-node scripts/text2image.ts "一只可爱的猫咪"
任务未完成,TaskId: 1234567890或者任务完成时:
$ npx ts-node scripts/text2image.ts "一只可爱的猫咪"
任务已完成,图片保存路径:
- ./output//1.jpg
- ./output//2.jpg
使用方法
基础用法
npx ts-node scripts/text2image.ts "一只可爱的猫咪"
完整参数
npx ts-node scripts/text2image.ts "提示词" \
--version v40 \
--ratio 16:9 \
--count 2
参数说明
| 参数 | 说明 | 默认值 |
|------|------|--------|
| prompt | 图片生成提示词(必填) | - |
| --version | API版本: v30, v31, v40 | v31 |
| --ratio | 宽高比: 1:1, 9:16, 16:9, 3:4, 4:3, 2:3, 3:2, 1:2, 2:1 | 16:9 |
| --count | 生成数量 1-4 | 1 |
| --width | 指定宽度(可选) | - |
| --height | 指定高度(可选) | - |
| --size | 指定面积(可选,如 4194304 表示 2048x2048) | - |
| --seed | 随机种子(可选) | - |
| --output | 图片输出目录 | ./output |
| --debug | 调试模式 | false |
| --no-download | 不下载图片,只返回URL | false |
输出格式
任务已提交(首次运行)
{
"success": true,
"submitted": true,
"prompt": "一只可爱的猫咪",
"version": "v40",
"ratio": "1:1",
"count": 1,
"taskId": "1234567890",
"folder": "./output/",
"message": "任务已提交,请稍后使用相同提示词查询结果"
}
任务已完成
{
"success": true,
"prompt": "一只可爱的猫咪",
"version": "v40",
"ratio": "1:1",
"count": 1,
"taskId": "1234567890",
"images": [
"./output//1.jpg",
"./output//2.jpg"
],
"outputDir": "./output/"
}
任务未完成
{
"success": true,
"prompt": "一只可爱的猫咪",
"version": "v40",
"ratio": "1:1",
"count": 1,
"taskId": "1234567890",
"folder": "./output/",
"message": "任务未完成,请稍后使用相同提示词查询结果"
}
错误响应
{
"success": false,
"error": {
"code": "MISSING_CREDENTIALS",
"message": "请设置环境变量 VOLCENGINE_AK 和 VOLCENGINE_SK"
}
}
文件夹结构
output/
└── / # md5哈希作为文件夹名
├── param.json # 请求参数
├── response.json # API提交响应
├── taskId.txt # 任务ID
└── 1.jpg, 2.jpg, ... # 生成的图片
示例
生成风景画
npx ts-node scripts/text2image.ts "山水风景画,水墨风格" --version v40 --ratio 16:9
生成科幻城市
npx ts-node scripts/text2image.ts "未来科幻城市,霓虹灯光,赛博朋克风格" --version v40 --ratio 16:9 --count 2
指定尺寸生成
npx ts-node scripts/text2image.ts "抽象艺术" --width 2048 --height 1152
自定义输出目录
npx ts-node scripts/text2image.ts "一只可爱的猫咪" --output ~/Pictures/jimeng
版本说明
文生视频使用方法
基础用法
npx ts-node scripts/text2video.ts "一只可爱的猫咪在草地上奔跑"
完整参数
npx ts-node scripts/text2video.ts "提示词" \
--ratio 9:16 \
--duration 5 \
--fps 24
参数说明
| 参数 | 说明 | 默认值 |
|------|------|--------|
| prompt | 视频生成提示词(必填) | - |
| --ratio | 宽高比: 16:9, 4:3, 1:1, 3:4, 9:16, 21:9 | 9:16 |
| --duration | 视频时长: 5 或 10 秒 | 5 |
| --fps | 帧率: 24 或 30 | 24 |
| --output | 视频输出目录 | ./output |
| --wait | 等待任务完成 | false |
| --debug | 调试模式 | false |
| --no-download | 不下载视频,只返回URL | false |
视频输出格式
#### 任务已提交
{
"success": true,
"submitted": true,
"prompt": "元宵节灯笼",
"ratio": "9:16",
"duration": 5,
"fps": 24,
"taskId": "1234567890",
"folder": "./output/video/",
"message": "任务已提交,请稍后使用相同提示词查询结果"
}
#### 任务已完成
{
"success": true,
"prompt": "元宵节灯笼",
"ratio": "9:16",
"duration": 5,
"fps": 24,
"taskId": "1234567890",
"videoUrl": "https://...",
"data": {}
}
#### 任务未完成
{
"success": true,
"pending": true,
"prompt": "元宵节灯笼",
"ratio": "9:16",
"duration": 5,
"fps": 24,
"taskId": "1234567890",
"status": "in_queue",
"message": "任务处理中,请稍后使用相同提示词查询结果"
}
视频文件夹结构
output/video/
└── / # md5哈希作为文件夹名
├── param.json # 请求参数
├── response.json # API提交响应
├── taskId.txt # 任务ID
└── video.mp4 # 生成的视频