Skills neodomain-ai

Generate images and videos via Neodomain AI API. Supports text-to-image, image-to-video, text-to-video, universal multi-modal video, motion control video, and batch storyboard video generation. Use when user wants to create AI-generated images or videos using the Neodomain platform.

install
source · Clone the upstream repo
git clone https://github.com/openclaw/skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/bandwhite/neo-ai" ~/.claude/skills/clawdbot-skills-neodomain-ai && rm -rf "$T"
manifest: skills/bandwhite/neo-ai/SKILL.md
source content

Neodomain AI Content Generator

核心行为规范

  • Token 检查:每次执行前确认
    NEODOMAIN_ACCESS_TOKEN
    已设置。若未设置或遇到 token 过期错误(errCode 2001),立即走 认证流程,动态询问用户手机号/邮箱,不要硬编码保存。
  • 模型选择:根据用户需求按 模型选择逻辑 自主选择,无需询问用户(除非用户明确指定)。
  • 提示词规范:必须遵循各模式的提示词公式,尤其是 UNIVERSAL_TO_VIDEO 必须用
    @图片 1
    /
    @视频 1
    等明确引用素材。
  • 输出目录:默认使用
    ./output
    ,若用户未指定则不需询问。
  • --generate-audio
    是布尔 flag,写
    --generate-audio
    即可,不要写
    --generate-audio true

⚠️ 常见问题与解决方案 (FAQ)

1. Token has been revoked (errCode 2001)

现象:视频生成 API 返回

Token has been revoked
,但图片 API 可能正常。

原因

  • 企业版 token 的视频服务权限被撤销
  • Token 已过期
  • 服务端认证系统临时故障

解决方案

  1. 先用图片 API 测试 token 是否有效:
    curl -H "accessToken: $TOKEN" https://story.neodomain.cn/agent/ai-image-generation/models
  2. 如果图片 API 正常但视频 API 失败 → 联系管理员确认视频服务权限
  3. 如果全部失败 → 重新登录获取新 token(走认证流程)

2. 模型不支持某 generationType

现象

❌ Failed: 模型 xxx 不支持 YYY 类型

原因:不是所有模型都支持所有生成类型。

解决方案

  • neo-video-2-0
    /
    neo-video-2-0-fast
    → 仅支持
    UNIVERSAL_TO_VIDEO
  • kling-video-o1
    /
    kling-v3-omni
    → 仅支持
    UNIVERSAL_TO_VIDEO
  • veo-3.1-*
    → 支持
    REFERENCE_TO_VIDEO
    (多图参考)
  • 其他模型 → 通常支持
    TEXT_TO_VIDEO
    IMAGE_TO_VIDEO

正确选择

  • 多张角色图 → 用
    neo-video-2-0
    +
    UNIVERSAL_TO_VIDEO
  • 单张首帧 → 用
    doubao-seedance-1-5-pro
    +
    IMAGE_TO_VIDEO
  • 纯文字 → 用
    doubao-seedance-1-5-pro
    +
    TEXT_TO_VIDEO

3. UNIVERSAL_TO_VIDEO 提示词写法错误

错误示例

--prompt "蓝白校服的男生和穿碎花裙子的女生在校园里散步"

正确示例

--prompt "参考@图片 1 的男生和@图片 2 的女生,两人在阳光明媚的校园里并肩散步,镜头缓慢跟随"

规则

  • --image-urls
    中第 1 个 URL → 用
    @图片 1
    引用
  • --image-urls
    中第 2 个 URL → 用
    @图片 2
    引用
  • --video-urls
    中第 1 个 URL → 用
    @视频 1
    引用
  • --audio-urls
    中第 1 个 URL → 用
    @音频 1
    引用
  • 必须在 prompt 中明确引用每个素材,不要用"那张图"等模糊表达

4. 认证服务不可用

现象

Authentication service unavailable, please try again

原因:Neodomain 服务端认证系统临时故障(可能在重启)

解决方案:等待 5-10 分钟后重试


意图识别与路径选择

根据用户意图选择正确路径:

用户意图路径
生成图片(无参考图)
generate_image.py
→ TEXT_TO_IMAGE
生成图片(有参考图/角色一致性)
generate_image_ref.py
生成视频(纯文字描述)
generate_video.py
TEXT_TO_VIDEO
生成视频(有参考图/首帧)
generate_video.py
IMAGE_TO_VIDEO
生成视频(多张参考图保持一致性)
generate_video.py
REFERENCE_TO_VIDEO
(仅 Veo 3.1)
生成视频(多模态:图 + 视频 + 音频组合)
generate_video.py
UNIVERSAL_TO_VIDEO
(Universal 模型)
动作迁移(把参考视频动作转移到图片人物上)
motion_control.py
故事板/分镜批量生视频
batch_video.py

Model Selection Logic

图片模型选择

有参考图?
├─ 是 → generate_image_ref.py,模型用 doubao-seedream-5-0-260128
└─ 否 → generate_image.py
        ├─ 追求高性价比 → doubao-seedream-5-0-260128 (25pts)
        ├─ 追求最高质量 → gemini-3-pro-image-preview (100pts)
        └─ 默认/普通需求 → gemini-3.1-flash-image-preview (90pts)

视频模型选择

有多模态素材(视频/音频参考)?
└─ 是 → UNIVERSAL_TO_VIDEO
        ├─ 追求最高品质 → neo-video-2-0
        ├─ 追求速度/性价比 → neo-video-2-0-fast
        └─ 需要高分辨率 (1080p) → kling-v3-omni 或 kling-video-o1

有多张参考图(保持角色一致性)?
└─ 是 → REFERENCE_TO_VIDEO,模型用 veo-3.1-generate-preview

有参考图(图生视频)?
└─ 是 → IMAGE_TO_VIDEO
        ├─ 需要音频 → doubao-seedance-1-5-pro-251215 或 kling-v3
        ├─ 需要首尾帧精确控制 → kling-v3 或 kling-v2-6
        ├─ 需要超高清 4K → veo-3.1-generate-preview
        ├─ 需要超长时长 (15s+) → kling-v3(最长 15s) 或 vidu-q3-pro(最长 16s)
        └─ 默认 → doubao-seedance-1-5-pro-251215

纯文字生视频?
└─ 是 → TEXT_TO_VIDEO
        ├─ 需要音频 → doubao-seedance-1-5-pro-251215 或 kling-v3
        ├─ 高性价比 → doubao-seedance-1-0-pro-fast-251015
        └─ 默认 → doubao-seedance-1-5-pro-251215

视频参数选择规则

  • resolution:用户未指定时默认
    720p
    ;明确要求高清用
    1080p
    ;明确要求超清用
    4K
    (仅 Veo 3.1 支持)
  • duration:用户未指定时默认
    8s
    ;需注意各模型上限(见下表),不要超出范围
  • aspect-ratio:根据用途自主判断——竖屏内容用
    9:16
    ,横屏用
    16:9
    ,方形用
    1:1
    ;IMAGE_TO_VIDEO 模式下此参数无效,无需传入
  • generate-audio:用户提到"有声音"/"带音频"/"有背景音乐"时自动加上

Authentication

# Step 1:发送验证码(询问用户手机号或邮箱后执行)
python3 {baseDir}/scripts/login.py --send-code --contact "手机号或邮箱"

# Step 2:用户提供验证码后登录
python3 {baseDir}/scripts/login.py --login --contact "手机号或邮箱" --code "验证码"

Step 2 可能出现两种结果:

  • 单一身份:直接输出

    accessToken
    ,告知用户设置到
    NEODOMAIN_ACCESS_TOKEN
    环境变量。

  • 多身份:输出身份列表(含编号、类型、昵称、企业名、userId),需执行 Step 3 选择身份:

# Step 3:选择身份(仅在 Step 2 返回多身份时执行)
python3 {baseDir}/scripts/login.py --select-identity --contact "手机号或邮箱" --user-id "选中的userId"

Step 3 成功后输出

accessToken
,告知用户设置到
NEODOMAIN_ACCESS_TOKEN
环境变量。


Image Generation

generate_image.py(文生图 / 图生图)

python3 {baseDir}/scripts/generate_image.py \
  --prompt "A beautiful mountain landscape, golden hour, cinematic" \
  --model "doubao-seedream-5-0-260128" \
  --aspect-ratio "16:9" \
  --size "2K" \
  --token $NEODOMAIN_ACCESS_TOKEN
参数说明默认值
--prompt
图片描述必填
--model
模型 ID
gemini-3.1-flash-image-preview
--aspect-ratio
1:1
,
16:9
,
9:16
,
4:3
,
3:4
1:1
--num-images
1
4
1
--size
1K
,
2K
,
4K
2K
--negative-prompt
负向提示词-
--guidance-scale
提示词遵循度 (1.0-20.0)
7.5
--seed
随机种子随机
--output-format
jpeg
,
png
,
webp
jpeg
--output-dir
保存目录
./output

可用模型:

模型 ID费用支持尺寸特点
gemini-2.5-flash-image
30 pts1K快速低价
gemini-3.1-flash-image-preview
90 pts1K, 2K, 4K均衡
gemini-3-pro-image-preview
100 pts2K, 4K最高质量
doubao-seedream-5-0-260128
25 pts2K, 3K最高性价比,推荐参考图用
doubao-seedream-4-5-251128
30 pts2K, 4K-
doubao-seedream-4-0-250828
25 pts2K, 4K-
gpt-image-1.5
100 pts1KGPT 风格
Midjourney-niji 7
30 pts1K二次元/动漫
Midjourney-v 7
30 pts1K艺术风格

generate_image_ref.py(参考图生图 / 角色一致性)

python3 {baseDir}/scripts/generate_image_ref.py \
  --prompt "A woman walking in a forest" \
  --reference-image "https://example.com/character1.jpg" \
  --reference-image "https://example.com/character2.jpg" \
  --model "doubao-seedream-5-0-260128" \
  --aspect-ratio "16:9" \
  --token $NEODOMAIN_ACCESS_TOKEN

--reference-image
可多次指定,上限 10 张。其余参数同
generate_image.py
,默认模型为
doubao-seedream-5-0-260128


Video Generation

generate_video.py

统一入口,通过

--generation-type
区分模式。

TEXT_TO_VIDEO(文生视频)

python3 {baseDir}/scripts/generate_video.py \
  --prompt "A serene lake at dawn, mist rising, cinematic wide shot" \
  --model "doubao-seedance-1-5-pro-251215" \
  --generation-type "TEXT_TO_VIDEO" \
  --aspect-ratio "16:9" \
  --resolution "720p" \
  --duration "8s" \
  --generate-audio \
  --token $NEODOMAIN_ACCESS_TOKEN

IMAGE_TO_VIDEO(图生视频)

# 首帧必填,尾帧可选(需模型支持首尾帧);宽高比自动按参考图,无需指定
python3 {baseDir}/scripts/generate_video.py \
  --prompt "The camera slowly pans across the landscape" \
  --model "kling-v3" \
  --generation-type "IMAGE_TO_VIDEO" \
  --first-frame "https://example.com/image.jpg" \
  --last-frame "https://example.com/end.jpg" \
  --resolution "1080p" \
  --duration "5s" \
  --generate-audio \
  --token $NEODOMAIN_ACCESS_TOKEN

REFERENCE_TO_VIDEO(多图参考生视频)

veo-3.1-generate-preview
/
veo-3.1-fast-generate-preview
支持。

python3 {baseDir}/scripts/generate_video.py \
  --prompt "Characters interacting in a scene" \
  --model "veo-3.1-generate-preview" \
  --generation-type "REFERENCE_TO_VIDEO" \
  --image-urls "https://example.com/ref1.jpg,https://example.com/ref2.jpg" \
  --aspect-ratio "16:9" \
  --resolution "1080p" \
  --duration "8s" \
  --generate-audio \
  --token $NEODOMAIN_ACCESS_TOKEN

UNIVERSAL_TO_VIDEO(多模态组合生视频)

支持图片、视频、音频混合参考。必须在 prompt 中用

@图片 1
/
@图片 2
/
@视频 1
/
@音频 1
精确引用对应素材(顺序即编号)。

python3 {baseDir}/scripts/generate_video.py \
  --prompt "参考@图片 1 的男生和@图片 2 的女生,两人在阳光明媚的校园里并肩散步,镜头缓慢跟随" \
  --model "neo-video-2-0" \
  --generation-type "UNIVERSAL_TO_VIDEO" \
  --image-urls "https://example.com/boy.jpg,https://example.com/girl.jpg" \
  --resolution "720p" \
  --duration "5s" \
  --token $NEODOMAIN_ACCESS_TOKEN

Universal 提示词公式:

@素材引用 + 主体描述 + 动作/场景 + 镜头语言 + 风格美学

@素材引用规则(重要!)

  • --image-urls
    中第 1 个 URL → 用
    @图片 1
    引用
  • --image-urls
    中第 2 个 URL → 用
    @图片 2
    引用
  • --video-urls
    中第 1 个 URL → 用
    @视频 1
    引用
  • --audio-urls
    中第 1 个 URL → 用
    @音频 1
    引用
  • 必须在 prompt 开头明确引用每个素材,不要用"那张图""这个角色"等模糊表达

错误示例 ❌:

--prompt "蓝白校服的男生和穿碎花裙子的女生在校园里散步"
--image-urls "boy.jpg,girl.jpg"

正确示例 ✅:

--prompt "参考@图片 1 的蓝白校服男生和@图片 2 的碎花裙子女生,两人在阳光明媚的校园里并肩散步,镜头缓慢跟随"
--image-urls "boy.jpg,girl.jpg"

适用模型

neo-video-2-0
,
neo-video-2-0-fast
,
kling-video-o1
,
kling-v3-omni

generate_video.py 完整参数表

参数说明默认值
--prompt
视频描述必填
--model
模型 ID
doubao-seedance-1-5-pro-251215
--generation-type
TEXT_TO_VIDEO
/
IMAGE_TO_VIDEO
/
REFERENCE_TO_VIDEO
/
UNIVERSAL_TO_VIDEO
TEXT_TO_VIDEO
--first-frame
首帧图片 URL(I2V 必填)-
--last-frame
尾帧图片 URL(可选,需模型支持)-
--image-urls
参考图 URL 逗号分隔(R2V 必填;U2V 可选,→
imageUrls
-
--video-urls
参考视频 URL 逗号分隔(U2V 可选,→
referenceVideoUrls
-
--audio-urls
参考音频 URL 逗号分隔(U2V 可选,→
audioUrl
-
--aspect-ratio
16:9
/
9:16
/
1:1
/
4:3
/
3:4
/
21:9
/
9:21
(T2V/R2V 有效;I2V 无效)
16:9
--resolution
480p
/
720p
/
768p
/
1080p
/
2k
/
4K
(各模型范围不同)
720p
--duration
时长如
5s
/
8s
/
10s
(各模型范围不同)
8s
--fps
帧率
24
--seed
随机种子随机
--generate-audio
生成音频(flag)false
--enhance-prompt
增强提示词(flag)false
--negative-prompt
负向提示词-
--output-dir
保存目录
./output

各模型支持范围(Cascading)

模型 ID类型分辨率时长音频首尾帧
doubao-seedance-1-5-pro-251215
T2V/I2V480p, 720p, 1080p4–12s
doubao-seedance-1-0-pro-250528
T2V/I2V720p, 1080p2–10s
doubao-seedance-1-0-pro-fast-251015
T2V/I2V720p, 1080p3–10s
kling-v3
T2V/I2V720p, 1080p3–15s
kling-v2-6
T2V/I2V1080p5s, 10s
kling-v2-5-turbo
T2V/I2V720p, 1080p5s, 10s
kling-v2-1
I2V 仅720p, 1080p5s, 10s
vidu-q3-pro
T2V/I2V720p, 1080p, 2k¹5–16s
vidu-q2-pro
I2V 仅720p, 1080p5s, 8s
wan2.6
T2V/I2V720p, 1080p5s, 10s, 15s
wan2.6-i2v-flash
I2V 仅720p, 1080p5s, 10s, 15s
MiniMax-Hailuo-2.3
T2V/I2V768p, 1080p6s, 10s
MiniMax-Hailuo-2.3-Fast
T2V/I2V768p, 1080p6s, 10s
MiniMax-Hailuo-02
T2V/I2V768p, 1080p6s, 10s
veo-3.1-generate-preview
T2V/I2V/R2V720p, 1080p, 4K4s, 6s, 8s
veo-3.1-fast-generate-preview
T2V/I2V/R2V720p, 1080p, 4K4s, 6s, 8s

¹ Vidu Q3 Pro 的 2k 仅在 I2V 模式下支持。 T2V 宽高比:Doubao 支持

16:9/9:16/1:1/4:3/3:4/21:9/9:21
;Kling/Vidu/Wan 支持
16:9/9:16/1:1
;Hailuo 仅
16:9
;Veo 支持
16:9/9:16

各模型支持范围(Universal,--generation-type UNIVERSAL_TO_VIDEO)

模型 ID分辨率时长音频首尾帧最大参考数
neo-video-2-0
480p, 720p4–15s图×9, 视频×3, 音频×3
neo-video-2-0-fast
480p, 720p4–12s图×9, 视频×3, 音频×3
kling-video-o1
720p, 1080p3–10s图×12, 视频×1
kling-v3-omni
720p, 1080p3–15s图×12, 视频×1

motion_control.py(动作迁移)

将参考视频的人物动作迁移到参考图片上:

python3 {baseDir}/scripts/motion_control.py \
  --image "https://example.com/ref_image.jpg" \
  --video "https://example.com/ref_video.mp4" \
  --prompt "Make the character dance" \
  --mode "pro" \
  --duration 5000 \
  --token $NEODOMAIN_ACCESS_TOKEN
参数说明默认值
--image
参考图片 URL必填
--video
参考动作视频 URL必填
--prompt
附加文字控制-
--mode
std
(标准)/
pro
(专业)
std
--orientation
角色朝向来源:
image
/
video
image
--keep-original-sound
保留原视频声音:
yes
/
no
yes
--duration
时长(毫秒)
5000
--output-dir
保存目录
./output

batch_video.py(批量分镜生视频)

需要

pip install oss2
(用于上传本地图片到 OSS)。默认使用
doubao-seedance-1-5-pro-251215
,IMAGE_TO_VIDEO,720p/5s。

python3 {baseDir}/scripts/batch_video.py \
  --storyboard-dir ./storyboards \
  --output-dir ./output/videos \
  --start 1 \
  --end 17 \
  --token $NEODOMAIN_ACCESS_TOKEN
参数说明默认值
--storyboard-dir
分镜图片目录(命名格式:
shot_01_*.jpeg
必填
--output-dir
视频输出目录必填
--start
起始镜头编号
1
--end
结束镜头编号
17

Output

所有脚本完成后自动下载到输出目录:

  • 图片:
    image_1.jpg
    /
    .png
    /
    .webp
  • 视频:
    video.mp4
    +
    thumbnail.jpg
  • 批量视频:
    video_01.mp4
    ,
    video_02.mp4
    , ...
  • metadata.json
    :任务 ID、参数、文件 URL 等详情