NEODOMAIN_ACCESS_TOKEN 已设置。若未设置或遇到 token 过期错误(errCode 2001),立即走 认证流程,动态询问用户手机号/邮箱,不要硬编码保存。@图片 1/ @视频 1 等明确引用素材。./output,若用户未指定则不需询问。--generate-audio 是布尔 flag,写 --generate-audio 即可,不要写 --generate-audio true。现象:视频生成 API 返回 Token has been revoked,但图片 API 可能正常。
原因:
解决方案:
curl -H "accessToken: $TOKEN" https://story.neodomain.cn/agent/ai-image-generation/models现象: ❌ Failed: 模型 xxx 不支持 YYY 类型
原因:不是所有模型都支持所有生成类型。
解决方案:
neo-video-2-0 / neo-video-2-0-fast → 仅支持 UNIVERSAL_TO_VIDEOkling-video-o1 / kling-v3-omni → 仅支持 UNIVERSAL_TO_VIDEOveo-3.1-* → 支持 REFERENCE_TO_VIDEO(多图参考)TEXT_TO_VIDEO 和 IMAGE_TO_VIDEO正确选择:
neo-video-2-0 + UNIVERSAL_TO_VIDEOdoubao-seedance-1-5-pro + IMAGE_TO_VIDEOdoubao-seedance-1-5-pro + TEXT_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 引用现象: 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
text
有参考图?
├─ 是 → 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)
text
有多模态素材(视频/音频参考)?
└─ 是 → 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
720p;明确要求高清用 1080p;明确要求超清用 4K(仅 Veo 3.1 支持)8s;需注意各模型上限(见下表),不要超出范围9:16,横屏用 16:9,方形用 1:1;IMAGE_TO_VIDEO 模式下此参数无效,无需传入bash
# 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 选择身份:
bash
# Step 3:选择身份(仅在 Step 2 返回多身份时执行)
python3 {baseDir}/scripts/login.py --select-identity --contact "手机号或邮箱" --user-id "选中的userId"
Step 3 成功后输出 accessToken,告知用户设置到 NEODOMAIN_ACCESS_TOKEN 环境变量。
bash
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模型 IDgemini-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-image30 pts1K快速低价gemini-3.1-flash-image-preview90 pts1K, 2K, 4K均衡gemini-3-pro-image-preview100 pts2K, 4K最高质量doubao-seedream-5-0-26012825 pts2K, 3K最高性价比,推荐参考图用doubao-seedream-4-5-25112830 pts2K, 4K-doubao-seedream-4-0-25082825 pts2K, 4K-gpt-image-1.5100 pts1KGPT 风格Midjourney-niji 730 pts1K二次元/动漫Midjourney-v 730 pts1K艺术风格
bash
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。
统一入口,通过 --generation-type 区分模式。
bash
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
bash
# 首帧必填,尾帧可选(需模型支持首尾帧);宽高比自动按参考图,无需指定
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
仅 veo-3.1-generate-preview / veo-3.1-fast-generate-preview 支持。
bash
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
支持图片、视频、音频混合参考。 必须 在 prompt 中用 @图片 1/ @图片 2/ @视频 1/ @音频 1 精确引用对应素材(顺序即编号)。
bash
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 引用错误示例 ❌:
bash
--prompt "蓝白校服的男生和穿碎花裙子的女生在校园里散步"
--image-urls "boy.jpg,girl.jpg"
正确示例 ✅:
bash
--prompt "参考@图片 1 的蓝白校服男生和@图片 2 的碎花裙子女生,两人在阳光明媚的校园里并肩散步,镜头缓慢跟随"
--image-urls "boy.jpg,girl.jpg"
适用模型: neo-video-2-0, neo-video-2-0-fast, kling-video-o1, kling-v3-omni
参数说明默认值--prompt视频描述必填--model模型 IDdoubao-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
模型 ID类型分辨率时长音频首尾帧doubao-seedance-1-5-pro-251215T2V/I2V480p, 720p, 1080p4–12s✅✅doubao-seedance-1-0-pro-250528T2V/I2V720p, 1080p2–10s❌✅doubao-seedance-1-0-pro-fast-251015T2V/I2V720p, 1080p3–10s❌❌kling-v3T2V/I2V720p, 1080p3–15s✅✅kling-v2-6T2V/I2V1080p5s, 10s✅✅kling-v2-5-turboT2V/I2V720p, 1080p5s, 10s❌✅kling-v2-1I2V 仅720p, 1080p5s, 10s❌✅vidu-q3-proT2V/I2V720p, 1080p, 2k¹5–16s✅✅vidu-q2-proI2V 仅720p, 1080p5s, 8s❌✅wan2.6T2V/I2V720p, 1080p5s, 10s, 15s✅❌wan2.6-i2v-flashI2V 仅720p, 1080p5s, 10s, 15s✅❌MiniMax-Hailuo-2.3T2V/I2V768p, 1080p6s, 10s❌❌MiniMax-Hailuo-2.3-FastT2V/I2V768p, 1080p6s, 10s❌❌MiniMax-Hailuo-02T2V/I2V768p, 1080p6s, 10s❌✅veo-3.1-generate-previewT2V/I2V/ R2V720p, 1080p, 4K4s, 6s, 8s✅✅veo-3.1-fast-generate-previewT2V/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。
模型 ID分辨率时长音频首尾帧最大参考数neo-video-2-0480p, 720p4–15s✅✅图×9, 视频×3, 音频×3neo-video-2-0-fast480p, 720p4–12s✅✅图×9, 视频×3, 音频×3kling-video-o1720p, 1080p3–10s❌❌图×12, 视频×1kling-v3-omni720p, 1080p3–15s✅❌图×12, 视频×1
将参考视频的人物动作迁移到参考图片上:
bash
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
需要
pip install oss2(用于上传本地图片到 OSS)。默认使用doubao-seedance-1-5-pro-251215,IMAGE_TO_VIDEO,720p/5s。
bash
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
所有脚本完成后自动下载到输出目录:
image_1.jpg / .png / .webpvideo.mp4 + thumbnail.jpgvideo_01.mp4, video_02.mp4, ...metadata.json:任务 ID、参数、文件 URL 等详情