344 lines
8.7 KiB
TypeScript
344 lines
8.7 KiB
TypeScript
import { BookTaskDetailModel } from '@/define/db/model/bookTaskDetail'
|
||
import {
|
||
BookBackTaskStatus,
|
||
BookBackTaskType,
|
||
BookTaskStatus,
|
||
BookType,
|
||
TaskExecuteType,
|
||
BookRepalceDataType
|
||
} from '../../enum/bookEnum'
|
||
import { MJAction } from '../../enum/bookEnum'
|
||
import { BookTaskDetail } from './bookTaskDetail'
|
||
import { ImageCategory } from '@/define/data/imageData'
|
||
import { ImageGenerateMode } from '@/define/data/mjData'
|
||
|
||
declare namespace Book {
|
||
//#region 小说相关
|
||
|
||
/**
|
||
* 小说数据类型
|
||
*/
|
||
type SelectBook = {
|
||
id?: string
|
||
no?: number
|
||
name?: string
|
||
bookFolderPath?: string
|
||
type?: BookType
|
||
oldVideoPath?: string
|
||
srtPath?: string
|
||
audioPath?: string
|
||
draftDepend?: string // 草稿依赖
|
||
imageFolder?: string
|
||
draftSrtStyle?: string | null // 草稿字幕样式
|
||
backgroundMusic?: string | null // 背景音乐ID
|
||
friendlyReminder?: string | null // 友情提示
|
||
subtitlePosition?: string
|
||
watermarkPosition?: string
|
||
updateTime?: Date
|
||
createTime?: Date
|
||
version?: string
|
||
imageStyle?: string[] | null // 软件内置的样式
|
||
autoAnalyzeCharacter?: string | null // 自动分析角色设置
|
||
customizeImageStyle?: string[] | null // 自定义的样式
|
||
videoConfig?: string | null // 合成视频设置
|
||
prefixPrompt?: string | null // 前缀
|
||
suffixPrompt?: string | null // 后缀
|
||
}
|
||
|
||
/**
|
||
* 查询小说的条件
|
||
*/
|
||
type QueryBookCondition = {
|
||
id?: string
|
||
name?: string
|
||
page?: number
|
||
pageSize?: number
|
||
type?: BookType
|
||
}
|
||
|
||
/**
|
||
* 查询小说的返回类型
|
||
*/
|
||
type QueryBookConditionResponse = {
|
||
resultBooks: SelectBook[]
|
||
bookLength: number
|
||
}
|
||
|
||
//#endregion
|
||
|
||
//#region 小说任务相关
|
||
|
||
/**
|
||
* 小说批次任务类型
|
||
*/
|
||
type SelectBookTask = {
|
||
no?: number
|
||
id?: string
|
||
bookId?: string
|
||
name?: string
|
||
generateVideoPath?: string
|
||
srtPath?: string
|
||
audioPath?: string
|
||
draftDepend?: string
|
||
draftSrtStyle?: string | null // 草稿字幕样式
|
||
backgroundMusic?: string | null // 背景音乐ID
|
||
friendlyReminder?: string | null // 友情提示
|
||
imageFolder?: string
|
||
customizeImageStyle?: string[]
|
||
cacheImageList?: string[]
|
||
prefixPrompt?: string
|
||
suffixPrompt?: string
|
||
styleList?: BookStyle[] | DefineBookStyle[] // 样式列表,
|
||
status?: BookTaskStatus
|
||
errorMsg?: string
|
||
version?: string
|
||
imageCategory?: ImageCategory // 出图方式
|
||
imageStyle?: string[] | null // 软件内置的样式
|
||
autoAnalyzeCharacter?: string | null // 自动分析角色设置
|
||
customizeImageStyle?: string[] | null // 自定义的样式
|
||
videoConfig?: string | null // 合成视频设置
|
||
prefixPrompt?: string | null // 前缀
|
||
suffixPrompt?: string | null // 后缀
|
||
isAuto?: boolean // 是否标记全自动
|
||
subImageFolder?: string[] | null // 子图片文件夹地址,多个
|
||
openVideoGenerate?: boolean // 是否开启视频生成
|
||
createTime?: Date
|
||
updateTime?: Date
|
||
}
|
||
|
||
/**
|
||
* 查询小说批次任务的条件
|
||
*/
|
||
type QueryBookTaskCondition = {
|
||
id?: string
|
||
no?: number
|
||
name?: string
|
||
bookId?: string
|
||
bookTaskId?: string
|
||
page?: number
|
||
pageSize?: number
|
||
}
|
||
|
||
/**
|
||
* 查询小说人物的返回数据类型
|
||
*/
|
||
type QueryBookTaskConditionResponse = {
|
||
bookTasks: SelectBookTask[]
|
||
bookTaskLength: number
|
||
}
|
||
|
||
//#endregion
|
||
|
||
//#region 小说任务详细数据相关
|
||
|
||
type SelectBookTaskDetail = {
|
||
id?: string
|
||
no?: number
|
||
name?: string
|
||
bookId?: string
|
||
bookTaskId?: string
|
||
videoPath?: string // 视频地址
|
||
generateVideoPath?: string // 生成的视频地址
|
||
audioPath?: string // 音频地址
|
||
draftDepend?: string // 草稿依赖
|
||
word?: string // 文案
|
||
oldImage?: string // 旧图片(用于SD的图生图)
|
||
afterGpt?: string // GPT生成的文案
|
||
startTime?: number // 开始时间
|
||
endTime?: number // 结束时间
|
||
timeLimit?: string // 事件实现(0 -- 3000)
|
||
subValue?: BookTaskDetail.CopywritingSubValue[] | string // 包含的字幕数据
|
||
characterTags?: string[] // 角色标签
|
||
sceneTags?: string[] // 场景标签
|
||
styleTags?: string[] // 风格标签
|
||
promptSort?: string // 提示词排序
|
||
gptPrompt?: string // GPT提示词
|
||
mjMessage?: MJMessage // MJ消息
|
||
videoMessage?: BookTaskDetail.VideoMessage // 视频消息
|
||
outImagePath?: string // 输出图片地址
|
||
subImagePath?: string[] // 子图片地址
|
||
imageLock?: boolean // 图片锁
|
||
reversePrompt?: ReversePrompt[] // 反推的提示词数据
|
||
prompt?: string // 提示
|
||
adetailer?: boolean // 是否开启修脸
|
||
sdConifg?: SDConfig // SD配置
|
||
subtitlePosition?: string // 字幕位置
|
||
status?: BookTaskStatus
|
||
createTime?: Date
|
||
updateTime?: Date
|
||
}
|
||
|
||
type QueryBookTaskDetailCondition = {
|
||
id?: string
|
||
name?: string
|
||
bookId?: string
|
||
bookTaskId?: string
|
||
page?: number
|
||
pageSize?: number
|
||
}
|
||
|
||
//#endregion
|
||
|
||
// 添加批次任务
|
||
type AddBookTask = {
|
||
copyBookTask: boolean // 是否复制旧的小说任务
|
||
count: number // 批次数量
|
||
prefixPrompt?: string // 前缀提示
|
||
suffixPrompt?: string // 后缀提示词
|
||
selectBookTask?: string // 选择的旧的小说任务
|
||
selectTaskDataCategory?: string[] // 选择复制的数据类型
|
||
selectBookId: string // 选择的小说ID
|
||
}
|
||
|
||
// 返回的MJ消息
|
||
type MJMessage = {
|
||
id?: string
|
||
mjApiUrl?: string
|
||
progress: number
|
||
category: ImageGenerateMode
|
||
imageClick?: string // 图片点击(显示的小的)
|
||
imageShow?: string // 图片实际的地址
|
||
messageId?: string // 消息ID(可以是MJ中的,也可以是API中的)
|
||
action?: MJAction // 动作(生图,反推之类)
|
||
status: string // 状态
|
||
message?: string // 消息
|
||
}
|
||
|
||
type WebuiConfig = {
|
||
sampler_name: string // 采样器名称
|
||
negative_prompt: string // 负面提示
|
||
batch_size: number // 批次大小
|
||
steps: number // 步数
|
||
cfg_scale: number // 提示词相关性
|
||
denoising_strength: number // 降噪强度
|
||
width: number // 宽度
|
||
height: number // 高度
|
||
seed: number // 种子
|
||
init_images: string // 初始图片(垫图的图片地址)
|
||
id: string
|
||
}
|
||
|
||
type SDConfig = {
|
||
checkpoints: string // 大模型
|
||
api: string // api地址
|
||
model: string // 生图方式
|
||
webuiConfig: WebuiConfig
|
||
id: string
|
||
}
|
||
|
||
type ReversePrompt = {
|
||
id?: string
|
||
bookTaskDetailId?: string
|
||
prompt?: string
|
||
promptCN?: string
|
||
isSelect?: boolean
|
||
}
|
||
|
||
// 查询小说任务的
|
||
type QueryBookBackTaskCondition = {
|
||
id: string
|
||
bookId: string
|
||
bookTaskId: string
|
||
name: string
|
||
type: string
|
||
status: string
|
||
executeType: string
|
||
count: number
|
||
}
|
||
|
||
// 更新小说任务状态
|
||
type UpdateBookTaskListStatus = {
|
||
id: string
|
||
status: BookBackTaskStatus
|
||
errorMessage?: string
|
||
startTime?: number
|
||
endTime?: number
|
||
}
|
||
|
||
// 小说人物
|
||
type BookTask = {
|
||
id: string
|
||
bookId: string
|
||
bookTaskId: string
|
||
bookTaskDetailId: string
|
||
name: string // 任务名称,小说名+批次名+分镜名
|
||
type: BookBackTaskType
|
||
status: BookBackTaskStatus
|
||
errorMessage?: string
|
||
executeType: TaskExecuteType // 任务执行类型,手动还是自动
|
||
createTime: Date
|
||
updateTime: Date
|
||
startTime?: number
|
||
endTime?: number
|
||
}
|
||
|
||
// 获取小说文案的参数
|
||
type GetVideoFrameTextParams = {
|
||
id: string
|
||
type: SubtitleSavePositionType
|
||
videoPath: string
|
||
subtitlePosition?: string
|
||
}
|
||
|
||
// 小说风格
|
||
type BookStyle = {
|
||
id?: string
|
||
label?: string
|
||
key?: string
|
||
value?: string
|
||
children?: string
|
||
type?: string
|
||
prompt?: string
|
||
image_url?: string
|
||
cref_cw?: number
|
||
lora?: string
|
||
chinese_prompt?: string
|
||
lora_weight?: number
|
||
show_image?: string
|
||
isShow?: boolean
|
||
}
|
||
|
||
type DefineBookStyle = {
|
||
chinese_style?: string
|
||
english_style?: string
|
||
id?: string
|
||
image?: string
|
||
}
|
||
|
||
/**
|
||
* 裁剪小视频的返回数据类型
|
||
*/
|
||
type BookFrameShortClip = {
|
||
startTime: number
|
||
endTime: number
|
||
videoPath: string
|
||
duration: number
|
||
}
|
||
|
||
type DeleteBookTaskDetailCondition = {
|
||
id?: string
|
||
bookId?: string
|
||
bookTaskId?: string
|
||
name?: string
|
||
}
|
||
|
||
//#region 替换小说数据
|
||
|
||
type BookReplaceData = {
|
||
before: string
|
||
after: string
|
||
replaceAll?: boolean
|
||
type: BookRepalceDataType
|
||
}
|
||
|
||
type ReplaceDataRes = {
|
||
bookTaskDetailId: string
|
||
newData: string | BookTaskDetail.CopywritingSubValue[]
|
||
type?: 'reversePrompt' | 'gptPrompt' | 'afterGpt' | 'prompt' | 'subValue'
|
||
reversePromptType?: 'prompt' | 'promptCN'
|
||
reversePromptId?: string
|
||
}
|
||
|
||
//#endregion
|
||
}
|