图片模式使用指南
本文档介绍 ai_app_run_image 接口支持的图片输入模式。
概述
图生视频任务支持以下图片输入模式:
| 模式 | 标识 | 说明 | 前端可选 |
|---|---|---|---|
| 首尾帧模式 | first_last_frame | 第一张图片为首帧,第二张(可选)为尾帧 | 是 |
| 多参考图模式 | multi_reference | 所有图片作为参考图 | 是 |
| 首尾帧+参考图模式 | first_last_with_ref | 第一张为首帧,最后一张为尾帧,中间为参考图 | 否(仅后端配置) |
前端实现说明
前端图生视频节点的选择器中提供三种用户可选模式:
- 首尾帧模式 (
first_last_frame):支持首帧和尾帧图片输入,以及首尾帧图片节点连接端口 - 多参考图模式 (
multi_reference):支持多张参考图上传,以及参考图输入端口、参考音频、参考视频连接 - 文生视频 (
text_to_video):不使用图片输入,直接由提示词生成视频
其中首尾帧+参考图模式(first_last_with_ref)不在前端选择器中提供,仅可通过后端配置/接口参数使用。
此外,存在一个内部上下文值 first_last_with_tail,当首尾帧模式下同时存在首帧和尾帧时,系统会自动使用此值作为算力计算的上下文参数,而非用户可选模式。
API 参数
新增参数
| 参数名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
image_mode | string | first_last_frame | 图片模式 |
reference_image_urls | string | null | 参考图URL列表(逗号分隔) |
示例请求
首尾帧模式(默认)
curl -X POST "/api/ai-app-run-image" \
-F "prompt=一只猫在奔跑" \
-F "task_id=<任务ID>" \
-F "image_urls=https://example.com/first.jpg,https://example.com/last.jpg" \
-F "image_mode=first_last_frame"
多参考图模式
curl -X POST "/api/ai-app-run-image" \
-F "prompt=一只猫在奔跑" \
-F "task_id=<任务ID>" \
-F "image_urls=https://example.com/ref1.jpg,https://example.com/ref2.jpg" \
-F "image_mode=multi_reference"
首尾帧+参考图模式
curl -X POST "/api/ai-app-run-image" \
-F "prompt=一只猫在奔跑" \
-F "task_id=<任务ID>" \
-F "image_urls=https://example.com/first.jpg,https://example.com/middle.jpg,https://example.com/last.jpg" \
-F "image_mode=first_last_with_ref"
数据存储结构
系统在相关数据表中保存以下信息:
- 首尾帧图片URL列表(逗号分隔)
- 参考图URL列表(JSON数组)
- 图片模式配置(JSON对象,包含模式标识)
各模式存储方式
| 模式 | 首尾帧信息 | 参考图信息 |
|---|---|---|
| 首尾帧 | 1-2张首尾帧 | 无 |
| 多参考图 | 无 | 参考图列表 |
| 首尾帧+参考图 | 2张首尾帧 | 中间参考图列表 |
配置层
在统一配置文件中配置任务支持的图片模式
每个图生视频任务可以配置 supported_image_modes 字段来指定支持的图片模式:
# 统一配置文件中某个图生视频任务的配置
UnifiedTaskConfig(
key='某图生视频任务',
name='图片生成视频(某视频生成模型)',
category=TaskCategory.IMAGE_TO_VIDEO,
# ... 其他配置
supported_image_modes=[ImageMode.FIRST_LAST_FRAME], # 支持首尾帧
default_image_mode='first_last_frame', # 默认模式
)
ImageMode 常量
class ImageMode:
FIRST_LAST_FRAME = 'first_last_frame' # 首尾帧模式
MULTI_REFERENCE = 'multi_reference' # 多参考图模式
FIRST_LAST_WITH_REF = 'first_last_with_ref' # 首尾帧+参考图模式
驱动支持情况
当前各驱动对模式的支持
| 驱动 | 首尾帧 | 多参考图 | 首尾帧+参考图 | 配置模式 |
|---|---|---|---|---|
| 视频生成模型 A | ✅ 完整支持 | ⚠️ 使用第一张 | ⚠️ 仅使用首尾帧 | first_last_frame, multi_reference |
| 视频生成模型 B | ✅ 完整支持 | ⚠️ 使用第一张 | ⚠️ 仅使用首尾帧 | first_last_frame, multi_reference |
| 视频生成模型 C | ✅ 完整支持 | ⚠️ 使用第一张 | ⚠️ 仅使用首尾帧 | first_last_frame |
| 视频生成模型 D | ⚠️ 仅使用首帧 | ⚠️ 使用第一张 | ⚠️ 仅使用首帧 | first_last_frame |
| 视频生成模型 E | ⚠️ 仅使用首帧 | ⚠️ 使用第一张 | ⚠️ 仅使用首帧 | first_last_frame |
| 视频生成模型 F | ⚠️ 仅使用首帧 | ⚠️ 使用第一张 | ⚠️ 仅使用首帧 | first_last_frame |
说明:
- ✅ 完整支持:驱动原生支持该模式
- ⚠️ 部分支持:驱动会自动降级处理,日志中会记录警告
- 配置模式:当前在统一配置文件中配置的
supported_image_modes
驱动层
驱动层(对应驱动)提供以下能力解析图片模式:
- 解析当前图片模式(返回
first_last_frame等标识) - 获取首帧与尾帧
- 获取参考图列表
- 一次性获取所有图片信息(返回包含模式、首帧、尾帧、参考图列表的字典)
前端多参考图模式功能
当用户选择多参考图模式时,前端提供以下功能:
参考图输入
- 文件上传:支持多图片文件选择上传
- 节点连接:通过参考图输入端口连接图片节点,自动提取参考图
- 参考图预览:显示已选择的参考图缩略图和计数
- 清除功能:支持清除全部参考图
参考音视频
- 参考音频:支持连接音频节点或上传音频文件作为参考
- 参考视频:支持连接视频节点作为参考
模型限制
- 参考图数量上限取决于当前选择的视频模型,通过任务配置中的最大参考图数量获取
- 参考图片标签会动态更新显示当前模型支持的数量范围
向后兼容
image_mode默认值为first_last_frame,与现有行为一致- 不传
reference_images时,该字段为null - 现有接口调用无需修改即可正常工作
数据库迁移
已提供对应的数据库迁移脚本(新增参考图列表字段),部署时按标准流程执行迁移即可。