Files
aida_back/src/main/java/com/ai/da/controller/GenerateController.java

144 lines
6.4 KiB
Java
Raw Normal View History

2023-08-17 11:59:19 +08:00
package com.ai.da.controller;
import com.ai.da.common.response.Response;
2025-03-25 11:19:55 +08:00
import com.ai.da.model.dto.*;
import com.ai.da.model.vo.*;
2023-08-17 11:59:19 +08:00
import com.ai.da.service.GenerateService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
2023-09-19 15:39:21 +08:00
import io.swagger.annotations.ApiParam;
2023-08-17 11:59:19 +08:00
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
2025-03-25 11:19:55 +08:00
import org.springframework.web.multipart.MultipartFile;
2023-08-17 11:59:19 +08:00
import javax.annotation.Resource;
import javax.validation.Valid;
import java.util.List;
2023-08-17 11:59:19 +08:00
/**
* @author XP
*/
@Api(tags = "Generate模块")
@Slf4j
@RestController
@RequestMapping("/api/generate")
public class GenerateController {
@Resource
private GenerateService generateService;
2024-06-03 17:13:48 +08:00
/*@ApiOperation("自动识别sketch的caption 暂时未上")
2023-08-17 11:59:19 +08:00
@PostMapping("/caption")
2023-10-20 14:47:18 +08:00
public Response<GenerateCaptionVO> generateCaption(@RequestParam Long sketchElementId) {
2023-08-17 11:59:19 +08:00
return Response.success(generateService.generateCaption(sketchElementId));
2024-06-03 17:13:48 +08:00
}*/
2023-08-17 11:59:19 +08:00
2024-04-18 16:48:19 +08:00
/*@ApiOperation("通过文字、图片生成图片")
@PostMapping("/sketchAndPrint")
public void generateThroughImageText(@Valid @RequestBody GenerateThroughImageTextDTO generateThroughImageTextDTO) {
// return Response.success(generateService.generateThroughImageText(generateThroughImageTextDTO));
generateService.generateThroughImageText(generateThroughImageTextDTO);
2024-04-18 16:48:19 +08:00
}*/
2023-08-17 11:59:19 +08:00
@ApiOperation("喜欢生成的图片")
@PostMapping("/like")
2023-10-20 14:47:18 +08:00
public Response<GenerateLikeVO> like(@Valid @RequestBody GenerateLikeDTO generateLikeDTO) {
return Response.success(generateService.generateLike(generateLikeDTO));
}
2023-08-17 11:59:19 +08:00
@ApiOperation(value = "取消喜欢")
2023-09-19 15:39:21 +08:00
@GetMapping("/dislike")
public Response<Boolean> dislike(@ApiParam("generateDetailId") @RequestParam Long generateDetailId,
@ApiParam("timeZone") @RequestParam String timeZone) {
2023-10-20 14:47:18 +08:00
return Response.success(generateService.generateDislike(generateDetailId, timeZone));
}
2024-01-22 14:00:05 +08:00
@ApiOperation(value = "发起生成请求,异步获取结果")
@PostMapping("/prepare")
2024-04-18 16:48:19 +08:00
public Response<PrepareForGenerateVO> prepareForGenerate(@Valid @RequestBody GenerateThroughImageTextDTO generateThroughImageTextDTO) {
return Response.success(generateService.prepareForGenerate(generateThroughImageTextDTO));
}
@ApiOperation(value = "取消继续生成")
@GetMapping("/stopWaiting")
2024-01-26 13:12:04 +08:00
public Response<String> stopWaiting(@RequestParam("userId") Long userId,
2024-04-18 16:48:19 +08:00
@RequestParam("uniqueId") List<String> uniqueId,
2024-06-24 17:02:25 +08:00
@RequestParam("timeZone") String timeZone,
@RequestParam("type") String type) {
generateService.cancelGenerate(userId, uniqueId, timeZone, type);
return Response.success("stop waiting successfully");
}
/*@ApiOperation(value = "获取生成结果")
2024-01-22 14:00:05 +08:00
@GetMapping("/result")
public Response<GenerateCollectionVO> getGenerateResult(@RequestParam("uniqueId") String uniqueId) {
GenerateCollectionVO generateResult = generateService.getGenerateResult(uniqueId);
return Response.success(generateResult);
}*/
@ApiOperation(value = "获取生成结果")
@PostMapping("/result")
public Response<List<GenerateResultVO>> getGenerateResults(@Valid @RequestBody List<String> taskIdList) {
List<GenerateResultVO> generateResult = generateService.getGenerateResultList(taskIdList);
return Response.success(generateResult);
}
@ApiOperation(value = "imageToSketch")
@PostMapping("/imageToSketch")
2024-09-23 11:13:44 +08:00
public Response<GenerateResultVO> imageToSketch(@Valid @RequestBody ImageToSketchDTO imageToSketchDTO) {
2025-03-25 11:19:55 +08:00
return Response.success(generateService.imageToSketch(imageToSketchDTO, null, null));
}
// modifySketch
@ApiOperation(value = "modifySketch")
@PostMapping("/modifySketch")
2024-09-27 15:40:30 +08:00
public Response<GenerateResultVO> modifySketch(@Valid @RequestBody GenerateModifyDTO generateModifyDTO) {
2024-09-23 11:13:44 +08:00
return Response.success(generateService.modifySketch(generateModifyDTO));
}
2025-03-25 11:19:55 +08:00
@ApiOperation(value = "请求进行姿势变换")
@GetMapping("/poseTransform")
2025-03-20 17:42:16 +08:00
public Response<String> poseTransform(@ApiParam("projectId") @RequestParam Long projectId,
@ApiParam("productImage") @RequestParam String productImage,
@ApiParam("poseId") @RequestParam int poseId) {
return Response.success(generateService.poseTransform(projectId, productImage, poseId));
}
2025-03-25 11:19:55 +08:00
@ApiOperation(value = "获取姿势变换生成结果")
@GetMapping("/poseTransformResult")
2025-03-20 17:42:16 +08:00
public Response<PoseTransformationVO> getPoseTransformationResults(@ApiParam("taskId") @RequestParam String taskId) {
PoseTransformationVO generateResult = generateService.getPoseTransformationResult(taskId);
return Response.success(generateResult);
}
@ApiOperation("喜欢或取消喜欢姿势变换生成的图片")
@PostMapping("/likeOrDislike")
public Response<Boolean> likeOrDislike(@ApiParam("id") @RequestParam Long transformedId, @ApiParam("like || dislike") @RequestParam String likeOrDislike) {
return Response.success(generateService.disOrLikePose(transformedId, likeOrDislike));
}
2025-03-25 11:19:55 +08:00
@ApiOperation(value = "修改模特比例")
@PostMapping("/modifyProportion")
public Response<String> modifyModelProportion(@Valid @RequestBody ModifyModelProportionDTO proportionDTO){
String path = generateService.modifyModelProportion(proportionDTO);
return Response.success(path);
2025-03-20 17:42:16 +08:00
}
2025-03-25 11:19:55 +08:00
@ApiOperation(value = "拼贴图生成线稿")
@PostMapping("/genSketchRecon")
public Response<GenerateResultVO> sketchReconstructionGenerate(@Valid @RequestBody SketchReconstructionDTO sketchReconstructionDTO){
GenerateResultVO generateResultVO = generateService.sketchReconstructionGenerate(sketchReconstructionDTO);
return Response.success(generateResultVO);
}
@ApiOperation(value = "获取拼贴图最后一次生成结果")
@GetMapping("/getReconLastResult")
2025-03-25 11:19:55 +08:00
public Response<SketchReconstructionVO> getSketchReconstruction(@RequestParam("projectId") Long projectId){
SketchReconstructionVO sketchReconstruction = generateService.getSketchReconstruction(projectId);
return Response.success(sketchReconstruction);
2025-03-20 17:42:16 +08:00
}
2023-08-17 11:59:19 +08:00
}