forked from 77media/video-flow
380 lines
8.4 KiB
TypeScript
380 lines
8.4 KiB
TypeScript
import { AspectRatioValue } from '@/components/ChatInputBox/AspectRatioSelector'
|
||
|
||
/**
|
||
* 图片故事AI分析返回DTO
|
||
*/
|
||
export interface CharacterRegion {
|
||
/** x坐标 */
|
||
x: number;
|
||
/** y坐标 */
|
||
y: number;
|
||
/** 区域宽度 */
|
||
width: number;
|
||
/** 区域高度 */
|
||
height: number;
|
||
}
|
||
|
||
/** 角色分析信息 */
|
||
export interface CharacterAnalysis {
|
||
/** 角色头像URL */
|
||
crop_url: string;
|
||
/** 角色ID */
|
||
id: string;
|
||
/** 角色名称 */
|
||
role_name: string;
|
||
/** 角色区域 */
|
||
region: CharacterRegion | null;
|
||
/** 角色描述 */
|
||
whisk_caption: string;
|
||
/** 角色头像URL(可选,用于存储裁剪后的头像) */
|
||
avatarUrl?: string;
|
||
}
|
||
|
||
/** 图片故事AI分析返回结构 */
|
||
export interface MovieStartDTO {
|
||
/** 是否成功 */
|
||
success: boolean;
|
||
/** 故事梗概 */
|
||
story_logline: string;
|
||
/** 分类数据 */
|
||
potential_genres: string[];
|
||
/** 角色头像及名称 */
|
||
characters_analysis: CharacterAnalysis[];
|
||
/** 图片URL */
|
||
image_url: string;
|
||
/** 用户输入文本 */
|
||
user_text: string;
|
||
/** 错误信息 */
|
||
error: string | null;
|
||
}
|
||
|
||
/** 电影故事任务详情 */
|
||
export interface MovieStoryTaskDetail {
|
||
/** 任务ID */
|
||
task_id: string;
|
||
/** 状态 */
|
||
status: string;
|
||
/** 进度 */
|
||
progress: number;
|
||
/** 当前步骤 */
|
||
current_step: string;
|
||
/** 步骤消息 */
|
||
step_message: string;
|
||
/** 已用时间 */
|
||
elapsed_time: number;
|
||
/** 预计剩余时间 */
|
||
estimated_remaining: number | null;
|
||
/** 错误信息 */
|
||
error_message: string | null;
|
||
/** 结果 */
|
||
result: MovieStartDTO;
|
||
}
|
||
|
||
/**图片分析出故事的任务相关数据,用于轮询查状态 */
|
||
export interface StoryAnalysisTask{
|
||
/** 任务ID */
|
||
task_id:string;
|
||
/** 状态 */
|
||
status:string;
|
||
/** 消息 */
|
||
message:string;
|
||
/** 预计时长 */
|
||
estimated_duration:number;
|
||
}
|
||
|
||
/**
|
||
* 创建电影项目V2请求参数 照片生成电影
|
||
*/
|
||
export interface CreateMovieProjectV2Request {
|
||
/** 任务ID */
|
||
project_id:string;
|
||
/** 剧本内容 */
|
||
script: string;
|
||
/** 用户ID */
|
||
user_id: string;
|
||
/** 客户端用户数据 */
|
||
user_data?: {
|
||
is_mobile: 1 | 0;
|
||
user_agent: string;
|
||
};
|
||
/** 模式:auto | manual */
|
||
mode: "auto" | "manual";
|
||
/** 分辨率:720p | 1080p | 4k */
|
||
resolution: "720p" | "1080p" | "4k";
|
||
/** 类型 */
|
||
genre: string;
|
||
/** 角色简介数组 */
|
||
character_briefs: {
|
||
name:string;
|
||
image_url:string;
|
||
character_analysis:string;
|
||
}[];
|
||
/** 语言 */
|
||
language: string;
|
||
/** 图片URL */
|
||
image_url: string;
|
||
/** 画面比例(横/竖屏) */
|
||
aspect_ratio?: AspectRatioValue;
|
||
}
|
||
|
||
/**
|
||
* 创建电影项目V2响应数据
|
||
*/
|
||
export interface CreateMovieProjectResponse {
|
||
/** 原始文本 */
|
||
original_text: string;
|
||
/** 项目ID */
|
||
project_id: string;
|
||
/** 视频数据 */
|
||
video: Record<string, any>;
|
||
/** 扩展数据2 */
|
||
ext2: Record<string, any>;
|
||
/** 多语言视频 */
|
||
multilingual_video: Record<string, any>;
|
||
/** 制作手册 */
|
||
production_bible: string;
|
||
/** 项目名称 */
|
||
name: string;
|
||
/** 音乐数据 */
|
||
music: Record<string, any>;
|
||
/** 扩展数据3 */
|
||
ext3: Record<string, any>;
|
||
/** 语言 */
|
||
language: string;
|
||
/** 分镜头 */
|
||
storyboard: string;
|
||
/** 状态 */
|
||
status: string;
|
||
/** 最终视频 */
|
||
final_video: Record<string, any>;
|
||
/** 扩展数据4 */
|
||
ext4: string;
|
||
/** 产品代码 */
|
||
pcode: string;
|
||
/** 制作手册JSON */
|
||
production_bible_json: Record<string, any>;
|
||
/** 步骤 */
|
||
step: string;
|
||
/** 最终简单视频 */
|
||
final_simple_video: Record<string, any>;
|
||
/** 扩展数据5 */
|
||
ext5: string;
|
||
/** 产品代码版本 */
|
||
pcode_version: string;
|
||
/** 分辨率 */
|
||
resolution: string;
|
||
/** 剧本分镜头 */
|
||
script_shots: string;
|
||
/** 最后消息 */
|
||
last_message: string;
|
||
/** 扩展数据 */
|
||
ext: Record<string, any>;
|
||
/** 角色草稿 */
|
||
character_draft: any;
|
||
/** 模式 */
|
||
mode: string;
|
||
/** 提示词 */
|
||
prompts: string;
|
||
/** 草图 */
|
||
sketch: Record<string, any>;
|
||
/** 当前任务ID */
|
||
current_task_id: string;
|
||
/** 创建时间 */
|
||
created_at: string;
|
||
/** ID */
|
||
id: number;
|
||
/** 描述 */
|
||
description: string;
|
||
/** 镜头草图 */
|
||
shot_sketch: Record<string, any>;
|
||
/** 扩展数据1 */
|
||
ext1: Record<string, any>;
|
||
/** 当前计划ID */
|
||
current_plan_id: string;
|
||
/** 用户ID */
|
||
user_id: string;
|
||
/** 生成的剧本 */
|
||
generated_script: string;
|
||
/** 角色数据 */
|
||
character: Record<string, any>;
|
||
/** 更新时间 */
|
||
updated_at: string;
|
||
}
|
||
|
||
/**
|
||
* 创建电影项目V3请求参数 模板生成电影
|
||
*/
|
||
export interface CreateMovieProjectV3Request {
|
||
/** 故事梗概 */
|
||
script: string;
|
||
/**分类 */
|
||
category: string;
|
||
/** 用户ID */
|
||
user_id: string;
|
||
/** 客户端用户数据 */
|
||
user_data?: {
|
||
is_mobile: 1 | 0;
|
||
user_agent: string;
|
||
};
|
||
/** 模式:auto | manual */
|
||
mode: "auto" | "manual";
|
||
/** 分辨率:720p | 1080p | "4k" */
|
||
resolution: "720p" | "1080p" | "4k";
|
||
/** 语言 */
|
||
language: string;
|
||
/**模板id */
|
||
template_id: string;
|
||
/** 自由输入 */
|
||
freeInput?: {
|
||
/** 用户提示,提示给用户需要输入什么内容 */
|
||
user_tips: string;
|
||
/** 约束,可选,用于传给ai,让ai去拦截用户不符合约束的输入内容 */
|
||
constraints: string;
|
||
/** 自由输入文字 */
|
||
free_input_text: string;
|
||
/** 输入名称 */
|
||
input_name: string;
|
||
}[];
|
||
/** 故事角色 */
|
||
storyRole: {
|
||
/** 角色名 */
|
||
role_name: string;
|
||
/** 角色描述,ai分析出来,用于剧本生成 */
|
||
role_description: string;
|
||
/** 用户提示,提示给用户需要输入什么内容 */
|
||
user_tips: string;
|
||
/** 约束,可选,用于传给ai,让ai去拦截用户不符合约束的输入内容 */
|
||
constraints: string;
|
||
/** 照片URL */
|
||
photo_url: string;
|
||
/** 声音URL */
|
||
voice_url: string;
|
||
}[];
|
||
/** 道具 */
|
||
storyItem: {
|
||
/** 道具名 */
|
||
item_name: string;
|
||
/** 道具描述,ai分析出来,用于剧本生成 */
|
||
item_description: string;
|
||
/** 用户提示,提示给用户需要输入什么内容 */
|
||
user_tips: string;
|
||
/** 约束,可选,用于传给ai,让ai去拦截用户不符合约束的输入内容 */
|
||
constraints: string;
|
||
/** 道具照片URL */
|
||
photo_url: string;
|
||
}[];
|
||
/** 画面比例(横/竖屏) */
|
||
aspect_ratio?: AspectRatioValue;
|
||
}
|
||
|
||
/**
|
||
* Gemini文本转图像请求参数
|
||
*/
|
||
export interface GeminiTextToImageRequest {
|
||
/** 提示词 */
|
||
prompt: string;
|
||
}
|
||
|
||
/**
|
||
* Gemini文本转图像响应数据
|
||
*/
|
||
export interface GeminiTextToImageData {
|
||
/** 生成的图像URL */
|
||
image_url: string;
|
||
}
|
||
|
||
/**
|
||
* Gemini文本转图像响应
|
||
*/
|
||
export interface GeminiTextToImageResponse {
|
||
/** 响应码 */
|
||
code: number;
|
||
/** 响应消息 */
|
||
message: string;
|
||
/** 响应数据 */
|
||
data: GeminiTextToImageData;
|
||
/** 是否成功 */
|
||
successful: boolean;
|
||
}
|
||
|
||
/**
|
||
* 文本转图像请求参数
|
||
*/
|
||
export interface TextToImageRequest {
|
||
/** 图像描述 */
|
||
description: string;
|
||
}
|
||
|
||
/**
|
||
* 文本转图像响应数据
|
||
*/
|
||
export interface TextToImageData {
|
||
/** 生成的图像URL */
|
||
image_url: string;
|
||
/** 本地图像路径 */
|
||
local_image_path: string;
|
||
/** 是否成功 */
|
||
success: boolean;
|
||
/** 描述 */
|
||
description: string;
|
||
/** 宽高比 */
|
||
aspect_ratio: string;
|
||
}
|
||
|
||
/**
|
||
* 文本转图像响应
|
||
*/
|
||
export interface TextToImageResponse {
|
||
/** 响应码 */
|
||
code: number;
|
||
/** 响应消息 */
|
||
message: string;
|
||
/** 响应数据 */
|
||
data: TextToImageData;
|
||
/** 是否成功 */
|
||
successful: boolean;
|
||
}
|
||
|
||
/**
|
||
* 创建电影V4接口请求数据
|
||
*/
|
||
export interface CreateMovieProjectV4Request {
|
||
/** 剧本内容 */
|
||
script: string;
|
||
/** 模式 */
|
||
mode: "auto" | "manual";
|
||
/** 分辨率 */
|
||
resolution: "720p" | "1080p" | "4k";
|
||
/** 语言 */
|
||
language: string;
|
||
/** 画面比例(横/竖屏) */
|
||
aspect_ratio: AspectRatioValue;
|
||
/** 扩展模式 */
|
||
expansion_mode: boolean;
|
||
/** 视频时长 */
|
||
video_duration: string;
|
||
/** 是否是图生 */
|
||
use_img2video: boolean;
|
||
/** pcode编码 */
|
||
pcode: string;
|
||
/** 角色简介数组 */
|
||
character_briefs?: {
|
||
character_name:string;
|
||
character_description:string;
|
||
image_url:string;
|
||
}[];
|
||
/** 场景简介数组 */
|
||
scene_briefs?: {
|
||
scene_name:string;
|
||
scene_description:string;
|
||
image_url:string;
|
||
scene_type:string;
|
||
}[];
|
||
/** 道具简介数组 */
|
||
prop_briefs?: {
|
||
prop_name:string;
|
||
prop_description:string;
|
||
image_url:string;
|
||
prop_type:string;
|
||
}[];
|
||
} |