|
@@ -29,15 +29,6 @@ class AnimeService
|
|
|
$anime_id = getProp($data, 'anime_id');
|
|
$anime_id = getProp($data, 'anime_id');
|
|
|
if (!$anime_id) Utils::throwError('1002:请选择对话');
|
|
if (!$anime_id) Utils::throwError('1002:请选择对话');
|
|
|
$roles = getProp($data, 'roles');
|
|
$roles = getProp($data, 'roles');
|
|
|
- // $roles格式
|
|
|
|
|
- // [
|
|
|
|
|
- // {
|
|
|
|
|
- // "role": "角色名",
|
|
|
|
|
- // "description": "角色描述"
|
|
|
|
|
- // "ref_img_url": "参考图地址"
|
|
|
|
|
- // },
|
|
|
|
|
- // ...
|
|
|
|
|
- // ]
|
|
|
|
|
|
|
|
|
|
foreach ($roles as &$role) {
|
|
foreach ($roles as &$role) {
|
|
|
$role_name = getProp($role, 'role');
|
|
$role_name = getProp($role, 'role');
|
|
@@ -53,13 +44,13 @@ class AnimeService
|
|
|
];
|
|
];
|
|
|
|
|
|
|
|
$task = $this->aiImageGenerationService->createImageGenerationTask($params);
|
|
$task = $this->aiImageGenerationService->createImageGenerationTask($params);
|
|
|
- $tid = $task->id;
|
|
|
|
|
|
|
+ $task_id = $task->id;
|
|
|
|
|
|
|
|
- if (!$tid) {
|
|
|
|
|
|
|
+ if (!$task_id) {
|
|
|
Utils::throwError("20003: 角色({$role_name})生成图片失败");
|
|
Utils::throwError("20003: 角色({$role_name})生成图片失败");
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- $role['task_id'] = $tid;
|
|
|
|
|
|
|
+ $role['task_id'] = $task_id;
|
|
|
$role['task_status'] = 'processing';
|
|
$role['task_status'] = 'processing';
|
|
|
} catch (\Exception $e) {
|
|
} catch (\Exception $e) {
|
|
|
Utils::throwError("20003:" . $e->getMessage());
|
|
Utils::throwError("20003:" . $e->getMessage());
|
|
@@ -78,4 +69,50 @@ class AnimeService
|
|
|
|
|
|
|
|
return $boolen;
|
|
return $boolen;
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ public function batchSetSceneImg($data) {
|
|
|
|
|
+ $anime_id = getProp($data, 'anime_id');
|
|
|
|
|
+ if (!$anime_id) Utils::throwError('1002:请选择对话');
|
|
|
|
|
+ $scenes = getProp($data, 'scenes');
|
|
|
|
|
+
|
|
|
|
|
+ foreach ($scenes as &$scene) {
|
|
|
|
|
+ $scene_name = getProp($scene, 'scene');
|
|
|
|
|
+ $description = getProp($scene, 'description');
|
|
|
|
|
+ // 参考图地址
|
|
|
|
|
+ $ref_img_url = getProp($scene, 'url');
|
|
|
|
|
+
|
|
|
|
|
+ // 此处调用AIImageGenerationService的生成图片任务接口: createImageGenerationTask(注意使用默认参数,prompt使用角色描述),并返回任务id
|
|
|
|
|
+ try {
|
|
|
|
|
+ $params = [
|
|
|
|
|
+ 'prompt' => $description,
|
|
|
|
|
+ 'ref_img_urls' => !empty($ref_img_url) ? $ref_img_url : []
|
|
|
|
|
+ ];
|
|
|
|
|
+
|
|
|
|
|
+ $task = $this->aiImageGenerationService->createImageGenerationTask($params);
|
|
|
|
|
+ $task_id = $task->id;
|
|
|
|
|
+
|
|
|
|
|
+ if (!$task_id) {
|
|
|
|
|
+ Utils::throwError("20003: 角色({$scene_name})生成图片失败");
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ $scene['task_id'] = $task_id;
|
|
|
|
|
+ $scene['task_status'] = 'processing';
|
|
|
|
|
+ } catch (\Exception $e) {
|
|
|
|
|
+ Utils::throwError("20003:" . $e->getMessage());
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 保存角色信息
|
|
|
|
|
+ $boolen = DB::table('mp_animes')->where('id', $anime_id)->update([
|
|
|
|
|
+ 'scenes' => json_encode($scenes, 256),
|
|
|
|
|
+ 'generate_status' => '执行中',
|
|
|
|
|
+ 'updated_at' => date('Y-m-d H:i:s')
|
|
|
|
|
+ ]);
|
|
|
|
|
+ if (!$boolen) {
|
|
|
|
|
+ Utils::throwError('20003:保存角色信息失败');
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ return $boolen;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|