This commit is contained in:
2025-08-19 14:33:59 +08:00
commit 56a32f8a50
336 changed files with 55317 additions and 0 deletions
+343
View File
@@ -0,0 +1,343 @@
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
}