['bindToken', 'bindExportToken', 'checkLogin']], function () { Route::group(['prefix' => 'book'], function () { // 书籍管理 Route::get('list', [BookController::class, 'bookList']); Route::get('all', [BookController::class, 'allBooks']); Route::get('chapterList', [BookController::class, 'chapterList']); Route::get('chapterContent', [BookController::class, 'chapterContent']); // 海外小说 Route::get('overseasBookList', [BookController::class, 'overseasBookList']); Route::get('overseasBooks', [BookController::class, 'overseasBooks']); // 版本管理 Route::get('addVersion', [BookController::class, 'addBookVersion']); Route::get('editVersion', [BookController::class, 'editBookVersion']); Route::get('bookVersion', [BookController::class, 'bookVersion']); Route::get('versionList', [BookController::class, 'versionList']); Route::get('taskList', [BookController::class, 'taskList']); Route::get('taskDetail', [BookController::class, 'taskDetail']); // 音效 Route::get('audioEffects', [BookController::class, 'audioEffects']); Route::get('audioEffectList', [BookController::class, 'audioEffectList']); Route::post('editAudioEffect', [BookController::class, 'editAudioEffect']); // bgm Route::get('bgms', [BookController::class, 'bgms']); Route::get('bgmList', [BookController::class, 'bgmList']); Route::post('editBgm', [BookController::class, 'editBgm']); }); Route::group(['middleware' => ['bindToken', 'bindExportToken', 'checkLogin', 'checkSign'], 'prefix' => 'book'], function () { Route::post('uploadAudioEffect', [BookController::class, 'uploadAudioEffect']); Route::post('uploadBgm', [BookController::class, 'uploadBgm']); }); Route::group(['prefix' => 'timbre'], function () { Route::get('addCategory', [TimbreController::class, 'addCategory']); Route::get('editCategory', [TimbreController::class, 'editCategory']); Route::get('categoryList', [TimbreController::class, 'categoryList']); Route::get('list', [TimbreController::class, 'timbreList']); Route::get('timbreCategories', [TimbreController::class, 'timbreCategories']); Route::get('edit', [TimbreController::class, 'editTimbre']); Route::get('groupList', [TimbreController::class, 'timbreGroupList']); Route::post('addGroup', [TimbreController::class, 'addTimbreGroup']); Route::post('editGroup', [TimbreController::class, 'editTimbreGroup']); // 情绪组 Route::get('emotionGroupList', [TimbreController::class, 'emotionGroupList']); Route::post('addEmotionGroup', [TimbreController::class, 'addEmotionGroup']); Route::post('editEmotionGroup', [TimbreController::class, 'editEmotionGroup']); Route::get('delEmotionGroup', [TimbreController::class, 'delEmotionGroup']); }); Route::group(['prefix' => 'deepseek'], function () { Route::post('chatWithReasoner', [DeepSeekController::class, 'chatWithReasoner']); Route::get('timbreList', [DeepSeekController::class, 'timbreList']); Route::get('paragraphAudios', [DeepSeekController::class, 'paragraphAudios']); Route::post('addGenerateTask', [DeepSeekController::class, 'addGenerateTask']); Route::get('setStsToken', [DeepSeekController::class, 'setStsToken']); Route::get('resetParagraphAudio', [DeepSeekController::class, 'resetParagraphAudio']); Route::post('saveParagraphAudio', [DeepSeekController::class, 'saveParagraphAudio']); Route::get('emotionGroups', [DeepSeekController::class, 'emotionGroups']); Route::post('insertAudioEffect', [DeepSeekController::class, 'insertAudioEffect']); Route::post('insertBgm', [DeepSeekController::class, 'insertBgm']); }); Route::group(['middleware' => ['checkSign', 'checkCompany']], function () { Route::group(['prefix' => 'deepseek'], function () { // 剧本管理 Route::get('scriptList', [DeepSeekController::class, 'scriptList']); Route::get('scripts', [DeepSeekController::class, 'scripts']); Route::get('scriptInfo', [DeepSeekController::class, 'scriptInfo']); Route::get('createScript', [DeepSeekController::class, 'createScript']); Route::post('editScript', [DeepSeekController::class, 'editScript']); Route::get('delScript', [DeepSeekController::class, 'delScript']); Route::get('createEpisode', [DeepSeekController::class, 'createEpisode']); Route::get('editEpisode', [DeepSeekController::class, 'editEpisode']); Route::get('delEpisode', [DeepSeekController::class, 'delEpisode']); Route::get('exportScript', [DeepSeekController::class, 'exportScript']); Route::get('getBookContent', [DeepSeekController::class, 'getBookContent']); Route::post('chatWithFile', [DeepSeekController::class, 'chatWithFile']); Route::post('chatWithFileStream', [DeepSeekController::class, 'chatWithFileStream']); Route::post('generateEpisodes', [DeepSeekController::class, 'generateEpisodes']); Route::get('getEpisodeContent', [DeepSeekController::class, 'getEpisodeContent']); Route::post('saveEpisodeContent', [DeepSeekController::class, 'saveEpisodeContent']); Route::post('saveScriptChatHistory', [DeepSeekController::class, 'saveScriptChatHistory']); // 保存剧本沟通历史记录 Route::get('getScriptChatHistory', [DeepSeekController::class, 'getScriptChatHistory']); // 获取剧本历史对话记录 }); // AI生成 Route::group(['prefix' => 'AIGeneration'], function () { // 图片生成相关路由 Route::post('image/createTask', [ImageGenerationController::class, 'createTask']); Route::get('image/taskStatus', [ImageGenerationController::class, 'taskStatus']); Route::get('image/taskList', [ImageGenerationController::class, 'taskList']); // 视频生成相关路由 Route::get('video/taskList', [VideoGenerationController::class, 'taskList']); // 即梦AI3.0视频生成路由 Route::post('video/createJimengTask', [VideoGenerationController::class, 'createJimengTask']); Route::get('video/taskStatus', [VideoGenerationController::class, 'taskStatus']); // Seedance 1.5 Pro 视频生成路由 Route::post('video/createSeedanceTask', [VideoGenerationController::class, 'createSeedanceTask']); // Route::get('video/seedance/taskStatus/{taskId}', [VideoGenerationController::class, 'getSeedanceTaskStatus']); // 可灵Omni视频生成路由 Route::post('video/createKelingTask', [VideoGenerationController::class, 'createKelingTask']); Route::get('video/keling/taskStatus/{taskId}', [VideoGenerationController::class, 'getKelingTaskStatus']); // 主体管理相关路由 Route::post('element/create', [VideoGenerationController::class, 'createElement']); Route::get('element/status/{taskId}', [VideoGenerationController::class, 'getElementStatus']); Route::get('element/list', [VideoGenerationController::class, 'getElementsList']); Route::post('element/delete', [VideoGenerationController::class, 'deleteElement']); Route::get('element/local/list', [VideoGenerationController::class, 'getLocalElementsList']); }); // 动漫管理 Route::group(['prefix' => 'anime'], function () { Route::get('textModel', [AnimeController::class, 'textModel']); // 文字模型 Route::get('imageModel', [AnimeController::class, 'imageModel']); // 图片模型 Route::get('videoModel', [AnimeController::class, 'videoModel']); // 视频模型 Route::get('artStyleList', [AnimeController::class, 'artStyleList']); // 艺术风格列表 Route::post('create', [AnimeController::class, 'createAnime']); // 创建动漫 Route::post('edit', [AnimeController::class, 'editAnime']); // 编辑动漫 Route::get('delete', [AnimeController::class, 'delAnime']); // 删除动漫 Route::post('addChat', [DeepSeekController::class, 'addChat']); // 新增动漫对话 Route::post('reGenerateAnime', [DeepSeekController::class, 'reGenerateAnime']); // 调整动漫大纲 Route::get('chatList', [AnimeController::class, 'chatList']); // 动漫列表 Route::get('chatHistory', [AnimeController::class, 'chatHistory']); // 动漫对话历史 Route::post('chat', [DeepSeekController::class, 'chat']); // 动漫对话 Route::get('detail', [AnimeController::class, 'animeDetail']); // 动漫大纲 Route::get('episodeInfo', [AnimeController::class, 'episodeInfo']); // 动漫剧集 Route::get('segmentInfo', [AnimeController::class, 'segmentInfo']); // 分镜信息 Route::get('copyEpisodeVersion', [AnimeController::class, 'copyEpisodeVersion']); // 复制动漫剧集 Route::get('episodeVersions', [AnimeController::class, 'episodeVersions']); // 剧集版本 Route::get('bindEpisodeVersion', [AnimeController::class, 'bindEpisodeVersion']); // 绑定剧集版本 Route::post('changeEpisodeRoles', [AnimeController::class, 'changeEpisodeRoles']); // 更改分集主体列表 Route::post('changeEpisodeScenes', [AnimeController::class, 'changeEpisodeScenes']); // 更改分集场景列表 Route::post('editSegment', [AnimeController::class, 'editSegment']); // 编辑分镜 Route::post('batchUploadImg', [ImageGenerationController::class, 'batchUploadImg']); // 批量上传图片 Route::post('batchSetRoleImg', [AnimeController::class, 'batchSetRoleImg']); // 批量生成角色形象 Route::post('batchSetSceneImg', [AnimeController::class, 'batchSetSceneImg']); // 批量生成场景图片 Route::post('chatChangeImg', [AnimeController::class, 'chatChangeImg']); // 对话改图 Route::post('batchSetSegmentPics', [AnimeController::class, 'batchSetSegmentPics']); // 一键生成分镜图片 Route::post('reGenerateSegment', [AnimeController::class, 'reGenerateSegment']); // 重新生成分镜 Route::post('addSegment', [AnimeController::class, 'addSegment']); // 新增分镜 Route::post('copySegment', [AnimeController::class, 'copySegment']); // 复制分镜 Route::post('moveSegment', [AnimeController::class, 'moveSegment']); // 移动分镜 Route::post('delSegment', [AnimeController::class, 'delSegment']); // 删除分镜 Route::get('applySegment', [AnimeController::class, 'applySegment']); // 应用分镜 Route::post('addAct', [AnimeController::class, 'addAct']); // 新增片段 Route::post('editAct', [AnimeController::class, 'editAct']); // 编辑片段 Route::post('copyAct', [AnimeController::class, 'copyAct']); // 复制片段 Route::post('moveAct', [AnimeController::class, 'moveAct']); // 移动片段 Route::post('delAct', [AnimeController::class, 'delAct']); // 删除片段 Route::get('applyAct', [AnimeController::class, 'applyAct']); // 应用片段 Route::post('segmentHistory', [AnimeController::class, 'segmentHistory']); // 分镜历史图片/视频 Route::get('segmentChatHistory', [AnimeController::class, 'segmentChatHistory']); // 分镜对话历史记录 Route::post('createSegmentVideoTask', [AnimeController::class, 'createSegmentVideoTask']); // 分镜图片转视频 Route::post('batchSetSegmentVideos', [AnimeController::class, 'batchSetSegmentVideos']); // 一键转视频 Route::post('applyAudioData', [AnimeController::class, 'applyAudioData']); // 修改分镜音频参数 Route::post('previewAudio', [AnimeController::class, 'previewAudio']); // 音频试听 Route::get('episodePicsInfo', [AnimeController::class, 'episodePicsInfo']); // 获取主体和场景图片生成信息 Route::get('clipSegmentVideo', [AnimeController::class, 'clipSegmentVideo']); // 裁剪视频 Route::post('addChatForAce', [DeepSeekController::class, 'addChatForAce']); // 新增动漫对话 Route::post('reGenerateAnimeForAce', [DeepSeekController::class, 'reGenerateAnimeForAce']); // 调整动漫大纲 Route::post('chatForAce', [DeepSeekController::class, 'chatForAce']); // 动漫对话(全能模式) Route::post('regenerateSegmentScript', [DeepSeekController::class, 'regenerateSegmentScript']); // 重新生成分段剧本 Route::get('episodeInfoForAce', [AnimeController::class, 'episodeInfoForAce']); // 动漫剧集(全能模式) Route::get('actChatHistory', [AnimeController::class, 'actChatHistory']); // 片段对话历史记录 Route::get('confirmActs', [AnimeController::class, 'confirmActs']); // 确认片段分镜 Route::get('saveActVideoGenerateParams', [AnimeController::class, 'saveActVideoGenerateParams']); // 保存生成视频参数 Route::post('createActVideoTask', [AnimeController::class, 'createActVideoTask']); // 片段转视频 Route::post('batchSetActVideos', [AnimeController::class, 'batchSetActVideos']); // 片段一键转视频 // 完整视频合成任务 Route::get('createCompleteVideoTask', [AnimeController::class, 'createCompleteVideoTask']); Route::get('generateImg', [AnimeController::class, 'generateImg']); // 文生图(通用) Route::post('generateText', [DeepSeekController::class, 'generateText']); // 文生文(通用) Route::post('createGenerateText', [DeepSeekController::class, 'createGenerateText']); // 新建剧本对话 Route::post('newGenerateText', [DeepSeekController::class, 'newGenerateText']); // 文生文(通用-非流式) // 监控分镜图片和音频生成任务进度(SSE) Route::get('segmentPicsInfo', [AnimeController::class, 'monitorSegmentTasks']); // 导出全部分镜 Route::get('exportEpisodeImages', [AnimeController::class, 'exportEpisodeImages']); Route::get('globalProducts', [AnimeController::class, 'globalProducts']); // 角色库 Route::post('createProduct', [AnimeController::class, 'createProduct']); // 创建资产 Route::post('editProduct', [AnimeController::class, 'editProduct']); // 编辑资产 // Route::get('getRoleVersions', [AnimeController::class, 'getRoleVersions']); // 获取资产版本历史 // Route::post('restoreRoleVersion', [AnimeController::class, 'restoreRoleVersion']); // 恢复到指定版本 Route::get('deleteProduct', [AnimeController::class, 'deleteProduct']); // 删除资产 Route::post('createFolder', [AnimeController::class, 'createFolder']); // 新建文件夹 Route::post('renameFolder', [AnimeController::class, 'renameFolder']); // 重命名文件夹 Route::post('moveRoleOrFolder', [AnimeController::class, 'moveProductOrFolder']); // 移动资产或文件夹 Route::get('getFolderPath', [AnimeController::class, 'getFolderPath']); // 获取文件夹路径 // 生成三视图(基于参考图生成主体的标准正面、侧面、后面三视图,主体完整。在最左侧添加主体正视图的特写,主体清晰完整。背景修改成纯白色,整体保持与参考图一致的美术风格和色彩搭配。画面无说明文字) Route::post('generateThreeView', [AnimeController::class, 'generateThreeView']); // 剧本资产关联管理 Route::post('saveScriptProducts', [AnimeController::class, 'saveScriptProducts']); // 保存剧本资产 Route::get('getScriptProducts', [AnimeController::class, 'getScriptProducts']); // 获取剧本资产 // 提示词模板管理 Route::get('promptTemplates', [PromptTemplateController::class, 'promptTemplates']); // 提示词模板列表 Route::post('createPromptTemplate', [PromptTemplateController::class, 'createTemplate']); // 创建提示词模板 Route::post('editPromptTemplate', [PromptTemplateController::class, 'editTemplate']); // 编辑提示词模板 Route::get('deletePromptTemplate', [PromptTemplateController::class, 'deleteTemplate']); // 删除提示词模板 }); }); }); // Route::post('addChat', [DeepSeekController::class, 'addChat']); // Route::post('testChat', [DeepSeekController::class, 'testChat']); Route::get('login', [AccountController::class, 'login']); // 登录 Route::get('logout', [AccountController::class, 'logout']); // 退出 Route::get('sseLink', [DeepSeekController::class, 'sseLink']); // sseLink Route::get('testLink', function () { return 'Hello, World!'; }); // seedance回调 Route::any('video/seedanceCallback', [VideoGenerationController::class, 'seedanceCallback']); Route::any('{slug}',[AccountController::class, 'index'])->where('slug', '(.*)?');