Browse Source

feature-img-1.0:修复BUG,添加文生图

feature-1.0-img
Penny 3 years ago
parent
commit
51b34f4227
  1. 32
      bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/dto/TextToImgDto.java
  2. 21
      bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/vo/TextToImgVo.java
  3. 9
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/CreatorMiniController.java
  4. 2
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/TiktokMiniController.java
  5. 12
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/StableDiffusionService.java
  6. 54
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/StableDiffusionServiceImpl.java
  7. 2
      bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/TiktokCollectionMapper.xml

32
bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/dto/TextToImgDto.java

@ -0,0 +1,32 @@
package com.bnyer.common.core.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
@Getter
@Setter
@ApiModel("文生图接收类")
public class TextToImgDto implements Serializable {
@NotNull(message = "宽度不能为空!")
@ApiModelProperty(value="图片宽度")
private Integer width;
@NotNull(message = "高度不能为空!")
@ApiModelProperty(value="图片高度")
private Integer height;
@ApiModelProperty(value="提示词")
private String prompt;
@ApiModelProperty(value="风格")
private String samplerIndex;
}

21
bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/vo/TextToImgVo.java

@ -0,0 +1,21 @@
package com.bnyer.common.core.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
import java.util.List;
@Getter
@Setter
@ApiModel("文生图响应体")
public class TextToImgVo implements Serializable {
@ApiModelProperty(value="图片base64集合")
private List<String> images;
private static final long serialVersionUID = 1L;
}

9
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/CreatorMiniController.java

@ -67,6 +67,9 @@ public class CreatorMiniController extends BaseController {
@Autowired
private FollowService followService;
@Autowired
private StableDiffusionService stableDiffusionService;
@ApiOperation(value="检查手机号是否重复")
@PostMapping(value = "/checkPhone")
public AjaxResult checkPhone(@Validated @RequestBody @ApiParam("手机号对象") CheckPhoneDto dto){
@ -400,4 +403,10 @@ public class CreatorMiniController extends BaseController {
public AjaxResult queryCreatorFansLikeNum(@PathVariable @ApiParam("艺术家图片标签对象") Long creatorId){
return AjaxResult.success(creatorService.queryCreatorFansLikeNum(creatorId));
}
@ApiOperation(value="文生图")
@PostMapping(value = "/textToImg")
public AjaxResult textToImg(@Validated @RequestBody @ApiParam("文生图对象") TextToImgDto param){
return AjaxResult.success(stableDiffusionService.textToImg(param));
}
}

2
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/TiktokMiniController.java

@ -346,7 +346,6 @@ public class TiktokMiniController extends BaseController {
return AjaxResult.success();
}
@ApiOperation(value="取消关注")
@PostMapping(value = "/tiktokUnFollow")
public AjaxResult tiktokUnFollow(@Validated @RequestBody @ApiParam("关注对象") FollowDto dto){
@ -355,7 +354,6 @@ public class TiktokMiniController extends BaseController {
return AjaxResult.success();
}
@ApiOperation(value="查询是否关注过")
@PostMapping(value = "/judgeTiktokFollow")
public AjaxResult judgeTiktokFollow(@Validated @RequestBody @ApiParam("关注对象") FollowDto dto){

12
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/StableDiffusionService.java

@ -0,0 +1,12 @@
package com.bnyer.img.service;
import com.bnyer.common.core.dto.TextToImgDto;
import com.bnyer.common.core.vo.TextToImgVo;
public interface StableDiffusionService {
TextToImgVo textToImg(TextToImgDto param);
void imgToImg();
}

54
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/StableDiffusionServiceImpl.java

@ -0,0 +1,54 @@
package com.bnyer.img.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.bnyer.common.core.dto.TextToImgDto;
import com.bnyer.common.core.vo.TextToImgVo;
import com.bnyer.img.service.StableDiffusionService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service
@Slf4j
public class StableDiffusionServiceImpl implements StableDiffusionService {
@Autowired
private RestTemplate restTemplate;
@Override
public TextToImgVo textToImg(TextToImgDto param) {
Map<String, Object> map = new HashMap<>();
map.put("width",param.getWidth());
map.put("height",param.getHeight());
map.put("prompt", param.getPrompt());
map.put("seed",-1);
map.put("batch_size",1);
map.put("cfg_scale",7);
map.put("restore_faces",false);
map.put("tiling",false);
map.put("eta",0);
map.put("sampler_index","Euler");
//map.put("sampler_index",param.getSamplerIndex());
map.put("steps",20);
map.put("negative_prompt","nsfw");
JSONObject jsonObject = restTemplate.postForObject("http://localhost:7860/sdapi/v1/txt2img", map, JSONObject.class);
log.info("请求stable_diffusion响应体的为:【{}】", JSON.toJSONString(jsonObject));
TextToImgVo img = new TextToImgVo();
if(jsonObject != null && jsonObject.getJSONArray("images").size() > 0){
img.setImages(jsonObject.getJSONArray("images").toJavaList(String.class));
}
return img;
}
@Override
public void imgToImg() {
}
}

2
bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/TiktokCollectionMapper.xml

@ -27,7 +27,7 @@
from img_collection itc
join img_tiktok_img iti on itc.img_id = iti.id
join img_type it on iti.type_id = it.id
where iti.is_show = '1' and it.is_show = '1' and iti.status = '3' and itc.is_show = '1'
where iti.is_show = '1' and it.is_show = '1' and iti.status = '2' and itc.is_show = '1'
and itc.user_id = #{userId} and itc.platform = #{platform}
order by itc.sort desc
</select>

Loading…
Cancel
Save