diff --git a/dsAiSupport/src/main/java/com/dsideal/aiSupport/Util/KeLing/KlImg2Video.java b/dsAiSupport/src/main/java/com/dsideal/aiSupport/Util/KeLing/KlImg2Video.java index e87db27f..d1e4a1d2 100644 --- a/dsAiSupport/src/main/java/com/dsideal/aiSupport/Util/KeLing/KlImg2Video.java +++ b/dsAiSupport/src/main/java/com/dsideal/aiSupport/Util/KeLing/KlImg2Video.java @@ -29,11 +29,10 @@ public class KlImg2Video extends KlCommon { * * @param imageUrl 图片URL * @param modelName 模型名称,枚举值:kling-v1, kling-v1-5, kling-v1-6 - * @param externalTaskId 外部任务ID,可为空 * @return 任务ID * @throws Exception 异常信息 */ - public static String generateVideo(String imageUrl, String modelName, String externalTaskId) throws Exception { + public static String generateVideo(String imageUrl, String modelName) throws Exception { // 获取JWT令牌 String jwt = getJwt(); @@ -41,12 +40,7 @@ public class KlImg2Video extends KlCommon { Map requestBody = new HashMap<>(); requestBody.put("model_name", modelName); requestBody.put("image", imageUrl); - - // 如果提供了外部任务ID,则添加到请求体中 - if (externalTaskId != null && !externalTaskId.isEmpty()) { - requestBody.put("external_task_id", externalTaskId); - } - + // 使用Hutool发送POST请求 HttpResponse response = HttpRequest.post(BASE_URL + GENERATION_PATH) .header("Content-Type", "application/json") @@ -55,13 +49,10 @@ public class KlImg2Video extends KlCommon { .execute(); log.info("生成视频请求体:{}", JSONUtil.toJsonStr(requestBody)); - log.info("生成视频响应体:{}", response.body()); - // 检查响应状态码 if (response.getStatus() != 200) { throw new Exception("请求失败,状态码:" + response.getStatus()); } - // 解析响应 String responseBody = response.body(); JSONObject responseJson = JSONObject.parseObject(responseBody); @@ -102,28 +93,22 @@ public class KlImg2Video extends KlCommon { } public static void main(String[] args) throws Exception { - // 确保目录存在 - FileUtil.mkdir(basePath); - log.info("保存目录: {}", basePath); - // 图片URL和模型名称 - String imageUrl = "https://example.com/image.jpg"; // 替换为实际可访问的图片URL + String imageUrl = "https://dsideal.obs.cn-north-1.myhuaweicloud.com/HuangHai/BlogImages/202505131058596.png"; // 替换为实际可访问的图片URL String modelName = "kling-v1"; // 可选:kling-v1, kling-v1-5, kling-v1-6 - - // 生成外部任务ID(可选) - String externalTaskId = "image2video_" + UUID.randomUUID().toString().replace("-", ""); - + + // 添加重试逻辑 int generateRetryCount = 0; - int maxGenerateRetries = 5; // 最大重试次数 + int maxGenerateRetries = 1000; // 最大重试次数 int generateRetryInterval = 5000; // 重试间隔(毫秒) String taskId = null; boolean accountIssue = false; - while (generateRetryCount < maxGenerateRetries && !accountIssue) { + while (!accountIssue) { try { - taskId = generateVideo(imageUrl, modelName, externalTaskId); + taskId = generateVideo(imageUrl, modelName); break; } catch (Exception e) { log.error("生成视频异常: {}", e.getMessage(), e); @@ -157,7 +142,7 @@ public class KlImg2Video extends KlCommon { // 查询任务状态 int queryRetryCount = 0; - int maxQueryRetries = 60; // 最大查询次数 + int maxQueryRetries = 1000; // 最大查询次数 int queryRetryInterval = 5000; // 查询间隔(毫秒) while (queryRetryCount < maxQueryRetries) {