forked from 77media/video-flow
504 lines
10 KiB
TypeScript
504 lines
10 KiB
TypeScript
/**
|
|
* 视频流程项目相关的TypeScript类型定义
|
|
* 包含角色、场景、服装、音乐等完整的数据结构
|
|
*/
|
|
|
|
/**
|
|
* 角色性别枚举
|
|
*/
|
|
export enum Gender {
|
|
MALE = 'male',
|
|
FEMALE = 'female'
|
|
}
|
|
|
|
/**
|
|
* 角色种族枚举
|
|
*/
|
|
export enum Race {
|
|
WESTERN = 'Western',
|
|
ASIAN = 'Asian',
|
|
AFRICAN = 'African',
|
|
LATINO = 'Latino',
|
|
MIDDLE_EASTERN = 'Middle Eastern',
|
|
MIXED = 'Mixed'
|
|
}
|
|
|
|
/**
|
|
* 角色类型枚举
|
|
*/
|
|
export enum RoleType {
|
|
PROTAGONIST = 'Protagonist',
|
|
ANTAGONIST = 'Antagonist',
|
|
SUPPORTING = 'Supporting',
|
|
BACKGROUND = 'Background'
|
|
}
|
|
|
|
/**
|
|
* 项目状态枚举
|
|
*/
|
|
export enum ProjectStatus {
|
|
COMPLETED = 'COMPLETED',
|
|
IN_PROGRESS = 'IN_PROGRESS',
|
|
PENDING = 'PENDING',
|
|
FAILED = 'FAILED'
|
|
}
|
|
|
|
/**
|
|
* 项目步骤枚举
|
|
*/
|
|
export enum ProjectStep {
|
|
INIT = 'INIT',
|
|
SKETCH = 'SKETCH',
|
|
CHARACTER = 'CHARACTER',
|
|
SHOT_SKETCH = 'SHOT_SKETCH',
|
|
VIDEO = 'VIDEO',
|
|
FINAL = 'FINAL'
|
|
}
|
|
|
|
/**
|
|
* 项目模式枚举
|
|
*/
|
|
export enum ProjectMode {
|
|
AUTOMATIC = 'automatic',
|
|
MANUAL = 'manual',
|
|
HYBRID = 'hybrid'
|
|
}
|
|
|
|
/**
|
|
* 分辨率枚举
|
|
*/
|
|
export enum Resolution {
|
|
P720 = '720p',
|
|
P1080 = '1080p',
|
|
P4K = '4K'
|
|
}
|
|
|
|
/**
|
|
* 语言枚举
|
|
*/
|
|
export enum Language {
|
|
EN = 'en',
|
|
ZH = 'zh',
|
|
JA = 'ja',
|
|
KO = 'ko'
|
|
}
|
|
|
|
/**
|
|
* 角色信息接口
|
|
*/
|
|
export interface Character {
|
|
/** 角色唯一标识符 */
|
|
id: string;
|
|
/** 角色名称 */
|
|
name: string;
|
|
/** 角色描述,包含外貌、性格等详细信息 */
|
|
description: string;
|
|
/** 角色类型 */
|
|
role: RoleType;
|
|
/** 角色年龄 */
|
|
age: number;
|
|
/** 角色性别 */
|
|
gender: Gender;
|
|
/** 角色种族 */
|
|
race: Race;
|
|
/** 角色简介 */
|
|
brief?: string;
|
|
/** 角色体型描述 */
|
|
physique?: string;
|
|
/** 角色发型描述 */
|
|
hairstyle?: string;
|
|
/** 角色默认举止描述 */
|
|
default_demeanor?: string;
|
|
}
|
|
|
|
/**
|
|
* 服装信息接口
|
|
*/
|
|
export interface Wardrobe {
|
|
/** 服装所属角色ID */
|
|
belongs_to: string;
|
|
/** 服装详细描述 */
|
|
description: string;
|
|
}
|
|
|
|
/**
|
|
* 场景信息接口
|
|
*/
|
|
export interface Scene {
|
|
/** 场景名称 */
|
|
name: string;
|
|
/** 场景详细描述 */
|
|
description: string;
|
|
}
|
|
|
|
/**
|
|
* 项目风格信息接口
|
|
*/
|
|
export interface ProjectStyle {
|
|
/** 地理设置和种族信息 */
|
|
geographic_setting_ethnicity: string;
|
|
/** 格式要求 */
|
|
format: string;
|
|
/** 美学风格描述 */
|
|
aesthetics: string;
|
|
/** 技术蓝图 */
|
|
technical_blueprint: string;
|
|
}
|
|
|
|
/**
|
|
* 提示JSON结构接口
|
|
*/
|
|
export interface PromptJson {
|
|
/** 导演指令 */
|
|
directors_directive: string;
|
|
/** 叙事提示 */
|
|
narrative_prompt: string;
|
|
/** 对话语言 */
|
|
dialogue_language: string;
|
|
/** 整体项目风格 */
|
|
overall_project_style: string;
|
|
/** 主要角色列表 */
|
|
master_character_list: MasterCharacter[];
|
|
/** 主要服装列表 */
|
|
master_wardrobe_list: MasterWardrobe[];
|
|
/** 主要场景列表 */
|
|
master_scene_list: MasterScene[];
|
|
/** 核心氛围 */
|
|
core_atmosphere: string;
|
|
}
|
|
|
|
/**
|
|
* 场景草图项
|
|
*/
|
|
export interface SketchItem {
|
|
/** 草图名称 */
|
|
sketch_name: string;
|
|
/** 图片ID */
|
|
image_id: string;
|
|
/** 提示词 */
|
|
prompt: string;
|
|
/** 提示词JSON */
|
|
prompt_json: PromptJson;
|
|
/** 草图名称前缀 */
|
|
sketch_name_prefix: string;
|
|
/** 图片URL列表 */
|
|
urls: string[];
|
|
}
|
|
|
|
/**
|
|
* 镜头草图项
|
|
*/
|
|
export interface ShotSketchItem {
|
|
/** 镜头草图名称 */
|
|
shot_sketch_name: string;
|
|
/** 图片ID */
|
|
image_id: string;
|
|
/** 提示词 */
|
|
prompt: string;
|
|
/** 提示词JSON */
|
|
prompt_json: PromptJson;
|
|
/** 镜头草图名称前缀 */
|
|
shot_sketch_name_prefix: string;
|
|
/** 图片URL列表 */
|
|
urls: string[];
|
|
}
|
|
|
|
/**
|
|
* 视频项
|
|
*/
|
|
export interface VideoItem {
|
|
/** 视频ID */
|
|
video_id: string;
|
|
/** 描述 */
|
|
description: string;
|
|
/** 提示词JSON */
|
|
prompt_json: PromptJson;
|
|
/** 视频名称前缀 */
|
|
video_name_prefix: string;
|
|
/** 视频URL列表 */
|
|
urls: string[];
|
|
}
|
|
|
|
/**
|
|
* 主要角色
|
|
*/
|
|
export interface MasterCharacter {
|
|
/** 角色ID */
|
|
id: string;
|
|
/** 角色名称 */
|
|
name: string;
|
|
/** 角色描述 */
|
|
description: string;
|
|
}
|
|
|
|
/**
|
|
* 主要服装
|
|
*/
|
|
export interface MasterWardrobe {
|
|
/** 所属角色 */
|
|
belongs_to: string;
|
|
/** 服装描述 */
|
|
description: string;
|
|
}
|
|
|
|
/**
|
|
* 主要场景
|
|
*/
|
|
export interface MasterScene {
|
|
/** 场景名称 */
|
|
name: string;
|
|
/** 场景描述 */
|
|
description: string;
|
|
}
|
|
|
|
/**
|
|
* 视频数据
|
|
*/
|
|
export interface VideoData {
|
|
/** 视频列表 */
|
|
data: VideoItem[];
|
|
/** 总数 */
|
|
total_count: number;
|
|
/** 全局ID */
|
|
guid: string;
|
|
/** 项目ID */
|
|
project_id: string;
|
|
}
|
|
|
|
/**
|
|
* 音乐数据
|
|
*/
|
|
export interface MusicData {
|
|
[key: string]: any;
|
|
}
|
|
/**
|
|
* 视频信息接口
|
|
*/
|
|
export interface Video {
|
|
/** 视频唯一标识符 */
|
|
video_id: string;
|
|
/** 视频描述 */
|
|
description: string;
|
|
/** 提示JSON数据 */
|
|
prompt_json: PromptJson;
|
|
/** 视频名称前缀 */
|
|
video_name_prefix: string;
|
|
/** 视频URL列表 */
|
|
urls: string[];
|
|
}
|
|
|
|
/**
|
|
* 音乐信息接口
|
|
*/
|
|
export interface Music {
|
|
/** 音乐相关数据,当前为空对象 */
|
|
[key: string]: any;
|
|
}
|
|
|
|
/**
|
|
* 最终视频信息接口
|
|
*/
|
|
export interface FinalVideo {
|
|
/** 最终视频URL */
|
|
video: string;
|
|
}
|
|
|
|
/**
|
|
* 多语言视频信息接口
|
|
*/
|
|
export interface MultilingualVideo {
|
|
/** 多语言视频相关数据,当前为空对象 */
|
|
[key: string]: any;
|
|
}
|
|
|
|
/**
|
|
* 项目设置接口
|
|
*/
|
|
export interface ProjectSettings {
|
|
/** 视频质量设置 */
|
|
quality: string;
|
|
/** 帧率设置 */
|
|
frame_rate: string;
|
|
/** 分辨率设置 */
|
|
resolution: string;
|
|
/** 音频设置 */
|
|
audio: {
|
|
/** 音频质量 */
|
|
quality: string;
|
|
/** 音频格式 */
|
|
format: string;
|
|
};
|
|
}
|
|
|
|
/**
|
|
* 项目统计信息接口
|
|
*/
|
|
export interface ProjectStatistics {
|
|
/** 总视频数 */
|
|
total_videos: number;
|
|
/** 总角色数 */
|
|
total_characters: number;
|
|
/** 总场景数 */
|
|
total_scenes: number;
|
|
/** 总服装数 */
|
|
total_wardrobes: number;
|
|
/** 总音乐数 */
|
|
total_music: number;
|
|
/** 总时长 */
|
|
total_duration: number;
|
|
/** 总大小 */
|
|
total_size: number;
|
|
}
|
|
|
|
/**
|
|
* 项目元数据接口
|
|
*/
|
|
export interface ProjectMetadata {
|
|
/** 项目版本 */
|
|
version: string;
|
|
/** 项目语言 */
|
|
language: string;
|
|
/** 项目分类 */
|
|
category: string;
|
|
/** 项目难度 */
|
|
difficulty: string;
|
|
/** 项目时长 */
|
|
duration: string;
|
|
/** 项目预算 */
|
|
budget: string;
|
|
/** 项目团队 */
|
|
team: string[];
|
|
/** 项目设备 */
|
|
equipment: string[];
|
|
/** 项目软件 */
|
|
software: string[];
|
|
/** 项目许可证 */
|
|
license: string;
|
|
/** 项目版权 */
|
|
copyright: string;
|
|
/** 项目评分 */
|
|
rating: number;
|
|
/** 项目评论数 */
|
|
review_count: number;
|
|
/** 项目下载数 */
|
|
download_count: number;
|
|
/** 项目分享数 */
|
|
share_count: number;
|
|
/** 项目收藏数 */
|
|
favorite_count: number;
|
|
/** 项目观看数 */
|
|
view_count: number;
|
|
/** 项目完成度 */
|
|
completion_rate: number;
|
|
/** 项目进度 */
|
|
progress: number;
|
|
/** 项目阶段 */
|
|
stage: string;
|
|
/** 项目里程碑 */
|
|
milestones: string[];
|
|
/** 项目任务 */
|
|
tasks: string[];
|
|
/** 项目文件 */
|
|
files: string[];
|
|
/** 项目链接 */
|
|
links: string[];
|
|
/** 项目备注 */
|
|
notes: string;
|
|
/** 项目历史 */
|
|
history: string[];
|
|
/** 项目日志 */
|
|
logs: string[];
|
|
/** 项目统计 */
|
|
statistics: ProjectStatistics;
|
|
}
|
|
|
|
/**
|
|
* 项目内容接口
|
|
*/
|
|
export interface ProjectContent {
|
|
/** 草图数据 */
|
|
sketch: SketchItem[];
|
|
/** 角色数据 */
|
|
character: Character[];
|
|
/** 镜头草图数据 */
|
|
shot_sketch: ShotSketchItem[];
|
|
/** 视频数据 */
|
|
video: VideoData;
|
|
/** 音乐数据 */
|
|
music: MusicData;
|
|
/** 最终视频 */
|
|
final_video: FinalVideo;
|
|
/** 多语言视频 */
|
|
multilingual_video: MultilingualVideo;
|
|
}
|
|
|
|
/**
|
|
* 视频流程项目接口
|
|
*/
|
|
export interface VideoFlowProject {
|
|
/** 项目名称 */
|
|
name: string;
|
|
/** 项目描述 */
|
|
description: string;
|
|
/** 项目类型 */
|
|
type: string;
|
|
/** 项目状态 */
|
|
status: string;
|
|
/** 项目创建时间 */
|
|
created_at: string;
|
|
/** 项目更新时间 */
|
|
updated_at: string;
|
|
/** 项目所有者ID */
|
|
owner_id: string;
|
|
/** 项目标签列表 */
|
|
tags: string[];
|
|
/** 项目设置 */
|
|
settings: ProjectSettings;
|
|
/** 项目元数据 */
|
|
metadata: ProjectMetadata;
|
|
/** 项目内容 */
|
|
content: ProjectContent;
|
|
/** 音乐信息 */
|
|
music: Music;
|
|
/** 最终视频 */
|
|
final_video: FinalVideo;
|
|
/** 多语言视频 */
|
|
multilingual_video: MultilingualVideo;
|
|
}
|
|
|
|
/**
|
|
* 视频流程项目 - 完整的接口返回值类型
|
|
*/
|
|
export interface VideoFlowProjectResponse {
|
|
/** 项目名称 */
|
|
name: string;
|
|
/** 项目ID */
|
|
project_id: string;
|
|
/** 项目模式 */
|
|
mode: ProjectMode;
|
|
/** 分辨率 */
|
|
resolution: Resolution;
|
|
/** 语言 */
|
|
language: Language;
|
|
/** 原始文本 */
|
|
original_text: string;
|
|
/** 生成的脚本 */
|
|
generated_script: string;
|
|
/** 项目状态 */
|
|
status: ProjectStatus;
|
|
/** 项目标题 */
|
|
title: string;
|
|
/** 项目类型 */
|
|
genre: string;
|
|
/** 项目标签 */
|
|
tags: string[];
|
|
/** 项目步骤 */
|
|
step: ProjectStep;
|
|
/** 最后消息 */
|
|
last_message: string;
|
|
/** 项目内容 */
|
|
data: ProjectContent;
|
|
}
|
|
|
|
|