Neodomain AI Content Generator
核心行为规范
- - Token 检查:每次执行前确认
NEODOMAIN_ACCESS_TOKEN 已设置。若未设置或遇到 token 过期错误(errCode 2001),立即走 认证流程,动态询问用户手机号/邮箱,不要硬编码保存。 - 模型选择:根据用户需求按 模型选择逻辑 自主选择,无需询问用户(除非用户明确指定)。
- 提示词规范:必须遵循各模式的提示词公式,尤其是 UNIVERSALTOVIDEO 必须用
@图片 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 是否有效: INLINECODE8
- 如果图片 API 正常但视频 API 失败 → 联系管理员确认视频服务权限
- 如果全部失败 → 重新登录获取新 token(走认证流程)
2. 模型不支持某 generationType
现象: INLINECODE9
原因:不是所有模型都支持所有生成类型。
解决方案:
- -
neo-video-2-0 / neo-video-2-0-fast → 仅支持 INLINECODE12 - INLINECODE13 /
kling-v3-omni → 仅支持 INLINECODE15 - INLINECODE16 → 支持
REFERENCE_TO_VIDEO(多图参考) - 其他模型 → 通常支持
TEXT_TO_VIDEO 和 INLINECODE19
正确选择:
- - 多张角色图 → 用
neo-video-2-0 + INLINECODE21 - 单张首帧 → 用
doubao-seedance-1-5-pro + INLINECODE23 - 纯文字 → 用
doubao-seedance-1-5-pro + INLINECODE25
3. UNIVERSALTOVIDEO 提示词写法错误
错误示例: INLINECODE26
正确示例: INLINECODE27
规则:
- -
--image-urls 中第 1 个 URL → 用 @图片 1 引用 - INLINECODE30 中第 2 个 URL → 用
@图片 2 引用 - INLINECODE32 中第 1 个 URL → 用
@视频 1 引用 - INLINECODE34 中第 1 个 URL → 用
@音频 1 引用 - 必须在 prompt 中明确引用每个素材,不要用"那张图"等模糊表达
4. 认证服务不可用
现象: INLINECODE36
原因:Neodomain 服务端认证系统临时故障(可能在重启)
解决方案:等待 5-10 分钟后重试
意图识别与路径选择
根据用户意图选择正确路径:
| 用户意图 | 路径 |
|---|
| 生成图片(无参考图) | INLINECODE37 → TEXTTOIMAGE |
| 生成图片(有参考图/角色一致性) |
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
图片模型选择
CODEBLOCK0
视频模型选择
CODEBLOCK1
视频参数选择规则
- - resolution:用户未指定时默认
720p;明确要求高清用 1080p;明确要求超清用 4K(仅 Veo 3.1 支持) - duration:用户未指定时默认
8s;需注意各模型上限(见下表),不要超出范围 - aspect-ratio:根据用途自主判断——竖屏内容用
9:16,横屏用 16:9,方形用 1:1;IMAGETOVIDEO 模式下此参数无效,无需传入 - generate-audio:用户提到"有声音"/"带音频"/"有背景音乐"时自动加上
Authentication
CODEBLOCK2
Step 2 可能出现两种结果:
- - 单一身份:直接输出
accessToken,告知用户设置到 NEODOMAIN_ACCESS_TOKEN 环境变量。
- - 多身份:输出身份列表(含编号、类型、昵称、企业名、userId),需执行 Step 3 选择身份:
CODEBLOCK3
Step 3 成功后输出 accessToken,告知用户设置到 NEODOMAIN_ACCESS_TOKEN 环境变量。
Image Generation
generate_image.py(文生图 / 图生图)
CODEBLOCK4
| 参数 | 说明 | 默认值 |
|---|
| INLINECODE60 | 图片描述 | 必填 |
| INLINECODE61 |
模型 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 | 费用 | 支持尺寸 | 特点 |
|---|
| INLINECODE90 | 30 pts | 1K | 快速低价 |
| INLINECODE91 |
90 pts | 1K, 2K, 4K | 均衡 |
|
gemini-3-pro-image-preview | 100 pts | 2K, 4K | 最高质量 |
|
doubao-seedream-5-0-260128 | 25 pts | 2K, 3K | 最高性价比,推荐参考图用 |
|
doubao-seedream-4-5-251128 | 30 pts | 2K, 4K | - |
|
doubao-seedream-4-0-250828 | 25 pts | 2K, 4K | - |
|
gpt-image-1.5 | 100 pts | 1K | GPT 风格 |
|
Midjourney-niji 7 | 30 pts | 1K | 二次元/动漫 |
|
Midjourney-v 7 | 30 pts | 1K | 艺术风格 |
generateimageref.py(参考图生图 / 角色一致性)
CODEBLOCK5
INLINECODE99 可多次指定,上限 10 张。其余参数同 generate_image.py,默认模型为 doubao-seedream-5-0-260128。
Video Generation
generate_video.py
统一入口,通过 --generation-type 区分模式。
TEXTTOVIDEO(文生视频)
CODEBLOCK6
IMAGETOVIDEO(图生视频)
CODEBLOCK7
REFERENCETOVIDEO(多图参考生视频)
仅 veo-3.1-generate-preview / veo-3.1-fast-generate-preview 支持。
CODEBLOCK8
UNIVERSALTOVIDEO(多模态组合生视频)
支持图片、视频、音频混合参考。必须在 prompt 中用 @图片 1/@图片 2/@视频 1/@音频 1 精确引用对应素材(顺序即编号)。
CODEBLOCK9
Universal 提示词公式: INLINECODE109
@素材引用规则(重要!):
- -
--image-urls 中第 1 个 URL → 用 @图片 1 引用 - INLINECODE112 中第 2 个 URL → 用
@图片 2 引用 - INLINECODE114 中第 1 个 URL → 用
@视频 1 引用 - INLINECODE116 中第 1 个 URL → 用
@音频 1 引用 - 必须在 prompt 开头明确引用每个素材,不要用"那张图""这个角色"等模糊表达
错误示例 ❌:
CODEBLOCK10
正确示例 ✅:
CODEBLOCK11
适用模型:neo-video-2-0, neo-video-2-0-fast, kling-video-o1, INLINECODE121
generate_video.py 完整参数表
| 参数 | 说明 | 默认值 |
|---|
| INLINECODE122 | 视频描述 | 必填 |
| INLINECODE123 |
模型 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 | 类型 | 分辨率 | 时长 | 音频 | 首尾帧 |
|---|
| INLINECODE169 | T2V/I2V | 480p, 720p, 1080p | 4–12s | ✅ | ✅ |
| INLINECODE170 |
T2V/I2V | 720p, 1080p | 2–10s | ❌ | ✅ |
|
doubao-seedance-1-0-pro-fast-251015 | T2V/I2V | 720p, 1080p | 3–10s | ❌ | ❌ |
|
kling-v3 | T2V/I2V | 720p, 1080p | 3–15s | ✅ | ✅ |
|
kling-v2-6 | T2V/I2V | 1080p | 5s, 10s | ✅ | ✅ |
|
kling-v2-5-turbo | T2V/I2V | 720p, 1080p | 5s, 10s | ❌ | ✅ |
|
kling-v2-1 |
I2V 仅 | 720p, 1080p | 5s, 10s | ❌ | ✅ |
|
vidu-q3-pro | T2V/I2V | 720p, 1080p, 2k¹ | 5–16s | ✅ | ✅ |
|
vidu-q2-pro |
I2V 仅 | 720p, 1080p | 5s, 8s | ❌ | ✅ |
|
wan2.6 | T2V/I2V | 720p, 1080p | 5s, 10s, 15s | ✅ | ❌ |
|
wan2.6-i2v-flash |
I2V 仅 | 720p, 1080p | 5s, 10s, 15s | ✅ | ❌ |
|
MiniMax-Hailuo-2.3 | T2V/I2V | 768p, 1080p | 6s, 10s | ❌ | ❌ |
|
MiniMax-Hailuo-2.3-Fast | T2V/I2V | 768p, 1080p | 6s, 10s | ❌ | ❌ |
|
MiniMax-Hailuo-02 | T2V/I2V | 768p, 1080p | 6s, 10s | ❌ | ✅ |
|
veo-3.1-generate-preview | T2V/I2V/
R2V | 720p, 1080p, 4K | 4s, 6s, 8s | ✅ | ✅ |
|
veo-3.1-fast-generate-preview | T2V/I2V/
R2V | 720p, 1080p, 4K | 4s, 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 UNIVERSALTOVIDEO)
| 模型 ID | 分辨率 | 时长 | 音频 | 首尾帧 | 最大参考数 |
|---|
| INLINECODE189 | 480p, 720p | 4–15s | ✅ | ✅ | 图×9, 视频×3, 音频×3 |
| INLINECODE190 |
480p, 720p | 4–12s | ✅ | ✅ | 图×9, 视频×3, 音频×3 |
|
kling-video-o1 | 720p, 1080p | 3–10s | ❌ | ❌ | 图×12, 视频×1 |
|
kling-v3-omni | 720p, 1080p | 3–15s | ✅ | ❌ | 图×12, 视频×1 |
motion_control.py(动作迁移)
将参考视频的人物动作迁移到参考图片上:
CODEBLOCK12
| 参数 | 说明 | 默认值 |
|---|
| INLINECODE193 | 参考图片 URL | 必填 |
| INLINECODE194 |
参考动作视频 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,IMAGETOVIDEO,720p/5s。
CODEBLOCK13
| 参数 | 说明 | 默认值 |
|---|
| INLINECODE214 | 分镜图片目录(命名格式:shot_01_*.jpeg) | 必填 |
| INLINECODE216 |
视频输出目录 | 必填 |
|
--start | 起始镜头编号 |
1 |
|
--end | 结束镜头编号 |
17 |
Output
所有脚本完成后自动下载到输出目录:
- - 图片:
image_1.jpg / .png / INLINECODE223 - 视频:
video.mp4 + INLINECODE225 - 批量视频:
video_01.mp4, video_02.mp4, ... - INLINECODE228 :任务 ID、参数、文件 URL 等详情
Neodomain AI 内容生成器
核心行为规范
- - Token 检查:每次执行前确认 NEODOMAINACCESSTOKEN 已设置。若未设置或遇到 token 过期错误(errCode 2001),立即走 认证流程,动态询问用户手机号/邮箱,不要硬编码保存。
- 模型选择:根据用户需求按 模型选择逻辑 自主选择,无需询问用户(除非用户明确指定)。
- 提示词规范:必须遵循各模式的提示词公式,尤其是 UNIVERSALTOVIDEO 必须用 @图片 1/@视频 1 等明确引用素材。
- 输出目录:默认使用 ./output,若用户未指定则不需询问。
- --generate-audio 是布尔 flag,写 --generate-audio 即可,不要写 --generate-audio true。
⚠️ 常见问题与解决方案 (FAQ)
1. Token 已被撤销 (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
- 如果图片 API 正常但视频 API 失败 → 联系管理员确认视频服务权限
- 如果全部失败 → 重新登录获取新 token(走认证流程)
2. 模型不支持某 generationType
现象:❌ 失败:模型 xxx 不支持 YYY 类型
原因:不是所有模型都支持所有生成类型。
解决方案:
- - neo-video-2-0 / neo-video-2-0-fast → 仅支持 UNIVERSALTOVIDEO
- kling-video-o1 / kling-v3-omni → 仅支持 UNIVERSALTOVIDEO
- veo-3.1-* → 支持 REFERENCETOVIDEO(多图参考)
- 其他模型 → 通常支持 TEXTTOVIDEO 和 IMAGETOVIDEO
正确选择:
- - 多张角色图 → 用 neo-video-2-0 + UNIVERSALTOVIDEO
- 单张首帧 → 用 doubao-seedance-1-5-pro + IMAGETOVIDEO
- 纯文字 → 用 doubao-seedance-1-5-pro + TEXTTOVIDEO
3. UNIVERSALTOVIDEO 提示词写法错误
错误示例:--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. 认证服务不可用
现象:认证服务不可用,请稍后重试
原因:Neodomain 服务端认证系统临时故障(可能在重启)
解决方案:等待 5-10 分钟后重试
意图识别与路径选择
根据用户意图选择正确路径:
| 用户意图 | 路径 |
|---|
| 生成图片(无参考图) | generateimage.py → TEXTTOIMAGE |
| 生成图片(有参考图/角色一致性) |
generateimage_ref.py |
| 生成视频(纯文字描述) | generate
video.py → TEXTTO_VIDEO |
| 生成视频(有参考图/首帧) | generate
video.py → IMAGETO_VIDEO |
| 生成视频(多张参考图保持一致性) | generate
video.py → REFERENCETO_VIDEO(仅 Veo 3.1) |
| 生成视频(多模态:图 + 视频 + 音频组合) | generate
video.py → UNIVERSALTO_VIDEO(Universal 模型) |
| 动作迁移(把参考视频动作转移到图片人物上) | motion_control.py |
| 故事板/分镜批量生视频 | batch_video.py |
模型选择逻辑
图片模型选择
有参考图?
├─ 是 → generateimageref.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)
视频模型选择
有多模态素材(视频/音频参考)?
└─ 是 → UNIVERSALTOVIDEO
├─ 追求最高品质 → neo-video-2-0
├─ 追求速度/性价比 → neo-video-2-0-fast
└─ 需要高分辨率 (1080p) → kling-v3-omni 或 kling-video-o1
有多张参考图(保持角色一致性)?
└─ 是 → REFERENCETOVIDEO,模型用 veo-3.1-generate-preview
有参考图(图生视频)?
└─ 是 → IMAGETOVIDEO
├─ 需要音频 → 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
纯文字生视频?
└─ 是 → TEXTTOVIDEO
├─ 需要音频 → 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;IMAGETOVIDEO 模式下此参数无效,无需传入
- generate-audio:用户提到有声音/带音频/有背景音乐时自动加上
认证流程
bash
步骤 1:发送验证码(询问用户手机号或邮箱后执行)
python3 {baseDir}/scripts/login.py --send-code --contact 手机号或邮箱
步骤 2:用户提供验证码后登录
python3 {baseDir}/scripts/login.py --login --contact 手机号或邮箱 --code 验证码
步骤 2 可能出现两种结果:
- - 单一身份:直接输出 accessToken,告知用户设置到 NEODOMAINACCESSTOKEN 环境变量。
- - 多身份:输出身份列表(含编号、类型、昵称、企业名、userId),需执行步骤 3 选择身份:
bash
步骤 3:选择身份(仅在步骤 2 返回多身份时执行)
python3 {baseDir}/scripts/login.py --select