|
@@ -227,4 +227,73 @@ public class VolcengineVideoTaskServiceImpl extends ServiceImpl<VolcengineVideoT
|
|
|
}
|
|
|
return new PageInfoResult(list).toEntity();
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public VolcengineVideoTaskDetail regenerate(VolcengineVideoTaskDetail volcengineVideoTaskDetail) {
|
|
|
+
|
|
|
+ VolcengineVideoTaskDetail dataBean = volcengineVideoTaskDetailService.getById(volcengineVideoTaskDetail.getId());
|
|
|
+ if(dataBean == null) {
|
|
|
+ throw new CustException("任务不存在");
|
|
|
+ }
|
|
|
+ VolcengineVideoTask volcengineVideoTask = this.getById(dataBean.getTask_id());
|
|
|
+ if (volcengineVideoTask == null) {
|
|
|
+ throw new CustException("任务不存在");
|
|
|
+ }
|
|
|
+ if(!"failed".equals(dataBean.getStatus())) {
|
|
|
+ throw new CustException("只有失败状态可进行重试");
|
|
|
+ }
|
|
|
+
|
|
|
+ List<CreateContentGenerationTaskRequest.Content> contents = new ArrayList<>();
|
|
|
+
|
|
|
+ // 图生视频功能 构建请求参数
|
|
|
+ // 文本提示词与参数组合
|
|
|
+ if (StringUtils.isNotBlank(volcengineVideoTask.getText())) {
|
|
|
+ StringBuilder text = new StringBuilder(volcengineVideoTask.getText());
|
|
|
+ if(StringUtils.isNotBlank(volcengineVideoTask.getResolution())) {
|
|
|
+ text.append(" --rs ").append(volcengineVideoTask.getResolution());
|
|
|
+ }
|
|
|
+ if(volcengineVideoTask.getDuration() != null) {
|
|
|
+ text.append(" --dur ").append(volcengineVideoTask.getDuration());
|
|
|
+ }
|
|
|
+ if(volcengineVideoTask.getCamerafixed() != null) {
|
|
|
+ if (volcengineVideoTask.getCamerafixed() == 1) {
|
|
|
+ text.append(" --cf true");
|
|
|
+ } else {
|
|
|
+ text.append(" --cf false");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ contents.add(CreateContentGenerationTaskRequest.Content.builder()
|
|
|
+ .type("text")
|
|
|
+ .text(text.toString())
|
|
|
+ .build());
|
|
|
+ }
|
|
|
+
|
|
|
+ // 首帧图片 (若仅需使用文本生成视频功能,可将此部分内容进行注释处理。)
|
|
|
+ contents.add(CreateContentGenerationTaskRequest.Content.builder()
|
|
|
+ .type("image_url")
|
|
|
+ .imageUrl(CreateContentGenerationTaskRequest.ImageUrl.builder()
|
|
|
+ .url(volcengineVideoTask.getImg_url())
|
|
|
+ .build())
|
|
|
+ .build());
|
|
|
+ // 创建视频生成任务
|
|
|
+ CreateContentGenerationTaskRequest createRequest = CreateContentGenerationTaskRequest.builder()
|
|
|
+ .model(volcengineVideoTask.getModel())
|
|
|
+ .content(contents)
|
|
|
+ // todo callback_url 回调地址
|
|
|
+// .callbackUrl()
|
|
|
+ .build();
|
|
|
+
|
|
|
+ dataBean.setUser_id(volcengineVideoTaskDetail.getUser_id());
|
|
|
+ dataBean.setStatus("queued");
|
|
|
+ // 创建图生视频任务
|
|
|
+ CreateContentGenerationTaskResult taskResult = service.createContentGenerationTask(createRequest);
|
|
|
+
|
|
|
+ dataBean.setVolcengine_task_id(taskResult.getId());
|
|
|
+
|
|
|
+ volcengineVideoTaskDetailService.updateById(dataBean);
|
|
|
+
|
|
|
+ return dataBean;
|
|
|
+
|
|
|
+ }
|
|
|
}
|