BUGFIX:1、积分消耗值不准确 2、flux获取结果报错
This commit is contained in:
@@ -992,7 +992,7 @@ public class GenerateServiceImpl extends ServiceImpl<GenerateMapper, Generate> i
|
||||
|
||||
// 检查积分是否够本次扣除
|
||||
// CreditsEventsEnum event = CreditsEventsEnum.IMAGE_TO_SKETCH;
|
||||
CreditsEventsEnum event = CreditsEventsEnum.FLUX_IMG2IMG;
|
||||
CreditsEventsEnum event = CreditsEventsEnum.IMAGE_TO_SKETCH_FLUX;
|
||||
Boolean b = creditsService.checkCredits(accountId, event, 1);
|
||||
if (!b) {
|
||||
throw new BusinessException("remaining.credits.insufficient", ResultEnum.PROMPT.getCode());
|
||||
@@ -1232,7 +1232,7 @@ public class GenerateServiceImpl extends ServiceImpl<GenerateMapper, Generate> i
|
||||
poseTransformationVO.setResultType(CollectionType.POSE_TRANSFORM.getValue());
|
||||
return poseTransformationVO;
|
||||
}else {
|
||||
return new PoseTransformationVO();
|
||||
return new PoseTransformationVO(taskId, "Executing");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2099,13 +2099,13 @@ public class GenerateServiceImpl extends ServiceImpl<GenerateMapper, Generate> i
|
||||
String fluxRequestUrl = "https://api.bfl.ai/v1/flux-kontext-pro";
|
||||
if (StringUtil.isNullOrEmpty(prompt)){
|
||||
switch (func){
|
||||
case RELIGHT:
|
||||
case RELIGHT_FLUX:
|
||||
prompt = "a model standing on the beautiful beach, ultra high quality, 8k";
|
||||
break;
|
||||
case IMAGE_TO_SKETCH:
|
||||
case IMAGE_TO_SKETCH_FLUX:
|
||||
prompt = "generate the sketch of the image, simple line, ultra high quality";
|
||||
break;
|
||||
case TO_PRODUCT_IMAGE:
|
||||
case TO_PRODUCT_IMAGE_FLUX:
|
||||
prompt = "change the image to real style, ultra high quality, 8k";
|
||||
break;
|
||||
}
|
||||
@@ -2130,16 +2130,29 @@ public class GenerateServiceImpl extends ServiceImpl<GenerateMapper, Generate> i
|
||||
String resp = sendRequestUtil.sendFluxPost(fluxRequestUrl, requestBody.toString());
|
||||
JSONObject respObj = JSONUtil.parseObj(resp);
|
||||
log.info("flux 发起生成请求返回结果: {}", respObj);
|
||||
if (StringUtil.isNullOrEmpty(respObj.getStr("id"))){
|
||||
String taskId = respObj.getStr("id");
|
||||
if (StringUtil.isNullOrEmpty(taskId)){
|
||||
return null;
|
||||
}
|
||||
return respObj.getStr("id");
|
||||
|
||||
String pollingUrl = respObj.getStr("polling_url");
|
||||
String key = RedisUtil.FLUX_POLLING_URL + taskId;
|
||||
redisUtil.addToString(key, pollingUrl, CommonConstant.GENERATE_RESULT_EXPIRE_TIME);
|
||||
|
||||
return taskId;
|
||||
}
|
||||
|
||||
public String getFluxResult(String taskId, String objectName){
|
||||
String fluxResultRequestUrl = "https://api.bfl.ai/v1/get_result";
|
||||
String pollingUrl = redisUtil.getFromString(RedisUtil.FLUX_POLLING_URL + taskId);
|
||||
String fluxResultRequestUrl;
|
||||
HashMap<String, Object> params = new HashMap<>();
|
||||
params.put("id", taskId);
|
||||
if (StringUtil.isNullOrEmpty(pollingUrl)){
|
||||
fluxResultRequestUrl = "https://api.bfl.ai/v1/get_result";
|
||||
params.put("id", taskId);
|
||||
} else {
|
||||
fluxResultRequestUrl = pollingUrl;
|
||||
}
|
||||
|
||||
String resp = sendRequestUtil.sendGet(fluxResultRequestUrl, params);
|
||||
log.info("获取flux生成的结果为:{}", resp);
|
||||
JSONObject respObj = JSONUtil.parseObj(resp);
|
||||
|
||||
@@ -377,7 +377,7 @@ public class UserLikeGroupServiceImpl extends ServiceImpl<UserLikeGroupMapper, U
|
||||
// 判断用户当前积分是否够本次生成消耗
|
||||
boolean fluxTask = !StringUtil.isNullOrEmpty(toProductImageDTO.getModelName())
|
||||
&& toProductImageDTO.getModelName().equals("flux");
|
||||
CreditsEventsEnum creditsEventsEnum = fluxTask ? CreditsEventsEnum.FLUX_IMG2IMG : CreditsEventsEnum.TO_PRODUCT_IMAGE;
|
||||
CreditsEventsEnum creditsEventsEnum = fluxTask ? CreditsEventsEnum.TO_PRODUCT_IMAGE_FLUX : CreditsEventsEnum.TO_PRODUCT_IMAGE;
|
||||
Boolean preDeduction = creditsService.creditsPreDeduction(creditsEventsEnum, toProductImageDTO.getToProductImageVOList().size());
|
||||
if (!preDeduction) {
|
||||
throw new BusinessException("Your remaining credits are insufficient for this generation. Please recharge.", ResultEnum.WARNING.getCode());
|
||||
@@ -458,7 +458,7 @@ public class UserLikeGroupServiceImpl extends ServiceImpl<UserLikeGroupMapper, U
|
||||
}
|
||||
ToProductImageResult toProductImageResult = new ToProductImageResult();
|
||||
if (fluxTask){
|
||||
taskId = generateService.flux(CreditsEventsEnum.TO_PRODUCT_IMAGE, sb.toString(), tDesignPythonOutfit.getDesignUrl());
|
||||
taskId = generateService.flux(CreditsEventsEnum.TO_PRODUCT_IMAGE_FLUX, sb.toString(), tDesignPythonOutfit.getDesignUrl());
|
||||
toProductImageResult.setModelName("flux");
|
||||
toProductImageResult.setResultType("ToProductImage");
|
||||
} else {
|
||||
@@ -719,7 +719,7 @@ public class UserLikeGroupServiceImpl extends ServiceImpl<UserLikeGroupMapper, U
|
||||
}
|
||||
}
|
||||
} else if (Objects.isNull(magicToolResultVO)) {
|
||||
magicToolResultVO = new MagicToolResultVO();
|
||||
magicToolResultVO = new MagicToolResultVO(taskId, "Executing");
|
||||
}
|
||||
if (!StringUtil.isNullOrEmpty(magicToolResultVO.getStatus())) collect.add(magicToolResultVO.getStatus());
|
||||
results.add(magicToolResultVO);
|
||||
@@ -973,7 +973,7 @@ public class UserLikeGroupServiceImpl extends ServiceImpl<UserLikeGroupMapper, U
|
||||
// 判断用户当前积分是否够本次生成消耗
|
||||
boolean fluxTask = !StringUtil.isNullOrEmpty(toProductImageDTO.getModelName())
|
||||
&& toProductImageDTO.getModelName().equals("flux");
|
||||
CreditsEventsEnum creditsEventsEnum = fluxTask ? CreditsEventsEnum.FLUX_IMG2IMG : CreditsEventsEnum.RELIGHT;
|
||||
CreditsEventsEnum creditsEventsEnum = fluxTask ? CreditsEventsEnum.RELIGHT_FLUX : CreditsEventsEnum.RELIGHT;
|
||||
Boolean preDeduction = creditsService.creditsPreDeduction(creditsEventsEnum, toProductImageDTO.getToProductImageVOList().size());
|
||||
if (!preDeduction) {
|
||||
throw new BusinessException("Your remaining credits are insufficient for this generation. Please recharge.", ResultEnum.WARNING.getCode());
|
||||
@@ -1032,7 +1032,7 @@ public class UserLikeGroupServiceImpl extends ServiceImpl<UserLikeGroupMapper, U
|
||||
|
||||
ToProductImageResult toProductImageResult = new ToProductImageResult();
|
||||
if (fluxTask){
|
||||
taskId = generateService.flux(CreditsEventsEnum.RELIGHT, s, toProductImageResult1.getUrl());
|
||||
taskId = generateService.flux(CreditsEventsEnum.RELIGHT_FLUX, s, toProductImageResult1.getUrl());
|
||||
toProductImageResult.setModelName("flux");
|
||||
toProductImageResult.setResultType("Relight");
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user