|
|
@@ -52,11 +52,6 @@ class AnimeService
|
|
|
// 替换美术风格
|
|
|
$mappedArtStyle = $this->DeepSeekService->getArtStylePromptByInput($input_art_style);
|
|
|
|
|
|
- $model = getProp($data, 'model');
|
|
|
- if ($model && !DB::table('mp_text_models')->where('model', $model)->where('is_enabled', 1)->value('id')) {
|
|
|
- Utils::throwError('20003:该模型不存在!');
|
|
|
- }
|
|
|
-
|
|
|
// 提取文件内容
|
|
|
if ($file) {
|
|
|
$content = $this->DeepSeekService->extractFileContent($file);
|
|
|
@@ -83,12 +78,23 @@ class AnimeService
|
|
|
'user_id' => $uid,
|
|
|
'anime_name' => '新剧本策划',
|
|
|
'is_multi' => getProp($data, 'is_multi', 1),
|
|
|
- 'model' => $model,
|
|
|
'content' => $content,
|
|
|
'created_at' => date('Y-m-d H:i:s'),
|
|
|
'updated_at' => date('Y-m-d H:i:s'),
|
|
|
];
|
|
|
|
|
|
+ // 处理文本模型
|
|
|
+ $model = getProp($data, 'model');
|
|
|
+ if (!$model) {
|
|
|
+ // 用户没有输入,使用默认值
|
|
|
+ $model = 'doubao-seed-2-0-mini-260215';
|
|
|
+ }
|
|
|
+ // 验证模型是否在可用模型表中
|
|
|
+ if (!DB::table('mp_text_models')->where('model', $model)->where('is_enabled', 1)->exists()) {
|
|
|
+ $model = 'doubao-seed-2-0-mini-260215';
|
|
|
+ }
|
|
|
+ $anime_data['model'] = $model;
|
|
|
+
|
|
|
if ($mappedArtStyle) $anime_data['art_style'] = $mappedArtStyle;
|
|
|
|
|
|
return DB::table('mp_animes')->insertGetId($anime_data);
|
|
|
@@ -2628,8 +2634,27 @@ class AnimeService
|
|
|
// $videoDuration = $this->calculateOptimalVideoDuration($segmentContent, $tail_frame);
|
|
|
$videoDuration = -1;
|
|
|
|
|
|
- // 默认使用 Seedance 1.0 Pro 模型
|
|
|
- $model = getProp($data, 'model', 'doubao-seedance-1-0-pro-250528');
|
|
|
+ // 处理视频模型
|
|
|
+ $model = getProp($data, 'model');
|
|
|
+ if (!$model) {
|
|
|
+ // 用户没有输入,从episode表获取
|
|
|
+ $episode = DB::table('mp_anime_episodes')->where('id', getProp($segment, 'episode_id'))->first();
|
|
|
+ $model = getProp($episode, 'video_model');
|
|
|
+ if (!$model) {
|
|
|
+ // episode表也没有,使用默认值
|
|
|
+ $model = 'doubao-seedance-1-0-pro-250528';
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 验证模型是否在可用模型表中
|
|
|
+ if (!DB::table('mp_video_models')->where('model', $model)->where('is_enabled', 1)->exists()) {
|
|
|
+ $model = 'doubao-seedance-1-0-pro-250528';
|
|
|
+ }
|
|
|
+ // 保存到episode表
|
|
|
+ $episode_id = getProp($segment, 'episode_id');
|
|
|
+ DB::table('mp_anime_episodes')->where('id', $episode_id)->update([
|
|
|
+ 'video_model' => $model,
|
|
|
+ 'updated_at' => date('Y-m-d H:i:s')
|
|
|
+ ]);
|
|
|
|
|
|
// 构建视频生成参数
|
|
|
$videoParams = [
|
|
|
@@ -2977,7 +3002,32 @@ class AnimeService
|
|
|
|
|
|
public function generateImg($data) {
|
|
|
$prompt = getProp($data, 'prompt');
|
|
|
- $model = getProp($data, 'model', 'doubao-seedream-5-0-lite-260128');
|
|
|
+ $episode_id = getProp($data, 'episode_id');
|
|
|
+
|
|
|
+ // 处理图片模型
|
|
|
+ $model = getProp($data, 'model');
|
|
|
+ if (!$model) {
|
|
|
+ // 用户没有输入,从episode表获取
|
|
|
+ if ($episode_id) {
|
|
|
+ $episode = DB::table('mp_anime_episodes')->where('id', $episode_id)->first();
|
|
|
+ $model = getProp($episode, 'image_model');
|
|
|
+ }
|
|
|
+ if (!$model) {
|
|
|
+ // episode表也没有,使用默认值
|
|
|
+ $model = 'doubao-seedream-5-0-lite-260128';
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 验证模型是否在可用模型表中
|
|
|
+ if (!DB::table('mp_image_models')->where('model', $model)->where('is_enabled', 1)->exists()) {
|
|
|
+ $model = 'doubao-seedream-5-0-lite-260128';
|
|
|
+ }
|
|
|
+ // 保存到episode表
|
|
|
+ if ($episode_id) {
|
|
|
+ DB::table('mp_anime_episodes')->where('id', $episode_id)->update([
|
|
|
+ 'image_model' => $model,
|
|
|
+ 'updated_at' => date('Y-m-d H:i:s')
|
|
|
+ ]);
|
|
|
+ }
|
|
|
|
|
|
// 参数验证
|
|
|
if (!$prompt) Utils::throwError('20003:请提供提示词');
|