|
|
@@ -3998,8 +3998,10 @@ class AnimeService
|
|
|
$tail_frame_url = getProp($data, 'tail_frame_url');
|
|
|
$generate_audio = getProp($data, 'generate_audio', 1);
|
|
|
$products = getProp($data, 'products', []);
|
|
|
- // $reference_images = getProp($data, 'reference_images', []);
|
|
|
- $reference_images = [];
|
|
|
+ $reference_images = getProp($data, 'reference_images', []);
|
|
|
+ if (!is_array($reference_images) || !is_array($products)) {
|
|
|
+ Utils::throwError('20003:传入的参考图或资产格式不正确');
|
|
|
+ }
|
|
|
|
|
|
if (!$act_id) {
|
|
|
Utils::throwError('1002:片段ID不能为空');
|
|
|
@@ -4026,7 +4028,7 @@ class AnimeService
|
|
|
// 构建完整的提示词
|
|
|
$processResult = $this->processActContentWithProducts($actContent, $products);
|
|
|
$fullPrompt = $processResult['content'];
|
|
|
- $reference_images = array_merge($reference_images, $processResult['reference_images']);
|
|
|
+ $reference_images = array_merge($processResult['reference_images'], $reference_images);
|
|
|
dd($fullPrompt, $reference_images);
|
|
|
|
|
|
// 去除多余的换行符(将连续多个换行符替换为单个换行符)
|
|
|
@@ -6138,15 +6140,12 @@ class AnimeService
|
|
|
return mb_strlen($b) - mb_strlen($a);
|
|
|
});
|
|
|
|
|
|
- $count = 0;
|
|
|
try {
|
|
|
DB::beginTransaction();
|
|
|
// 处理每个片段
|
|
|
foreach ($acts as $act) {
|
|
|
$act_content = getProp($act, 'act_content');
|
|
|
if (!$act_content) continue;
|
|
|
- $count++;
|
|
|
- if ($count > 1) continue;
|
|
|
|
|
|
$processed_content = $act_content;
|
|
|
|
|
|
@@ -6194,6 +6193,17 @@ class AnimeService
|
|
|
}, $processed_content);
|
|
|
}
|
|
|
|
|
|
+ // 处理【镜头X】或【分镜X】重新编号为从1开始的连续整数【镜头X】
|
|
|
+ $shot_counter = 0;
|
|
|
+ $processed_content = preg_replace_callback(
|
|
|
+ '/【(?:镜头|分镜)(\d+)】/u',
|
|
|
+ function($matches) use (&$shot_counter) {
|
|
|
+ $shot_counter++;
|
|
|
+ return '【镜头' . $shot_counter . '】';
|
|
|
+ },
|
|
|
+ $processed_content
|
|
|
+ );
|
|
|
+
|
|
|
// 更新数据库
|
|
|
$boolen = DB::table('mp_episode_segments')
|
|
|
->where('id', $act->id)
|
|
|
@@ -6221,6 +6231,9 @@ class AnimeService
|
|
|
|
|
|
DB::commit();
|
|
|
|
|
|
+ // 重新查询更新后的片段数据
|
|
|
+ $acts = DB::table('mp_episode_segments')->where('episode_id', $episode_id)->orderBy('act_number')->get();
|
|
|
+
|
|
|
// 合并角色和场景作为products,统一字段名为product_name
|
|
|
$products = [];
|
|
|
|