183 lines
6.7 KiB
Java
183 lines
6.7 KiB
Java
package com.rj.service;
|
||
|
||
import com.baomidou.mybatisplus.extension.service.IService;
|
||
import com.rj.controller.TextModelController;
|
||
import com.rj.entity.ImageModel;
|
||
|
||
import java.util.Map;
|
||
|
||
/**
|
||
* 图像模型服务接口
|
||
*
|
||
* 提供图像模型相关的业务逻辑接口,包括:
|
||
* - 图像模型记录的增删改查操作
|
||
* - 根据不同条件查询图像模型记录
|
||
* - 图像模型数据的业务处理逻辑
|
||
*
|
||
* 继承MyBatis-Plus的IService接口,获得基础的CRUD能力,
|
||
* 同时定义特定的业务方法。
|
||
*
|
||
* @author 系统生成
|
||
* @date 2025/1/30
|
||
* @version 1.0
|
||
*/
|
||
public interface IImageModelService extends IService<ImageModel> {
|
||
|
||
/**
|
||
* 保存图像模型记录
|
||
*
|
||
* 将图像模型数据保存到数据库中,包括完整的业务逻辑处理。
|
||
* 该方法会进行数据验证、日志记录等操作。
|
||
*
|
||
* @param imageModel 图像模型记录对象,包含所有必要的字段信息
|
||
* @return 是否保存成功,true表示保存成功,false表示保存失败
|
||
*/
|
||
boolean saveImageModel(ImageModel imageModel);
|
||
|
||
/**
|
||
* 根据UUID查询图像模型记录
|
||
*
|
||
* 通过唯一标识符查询对应的图像模型记录。
|
||
* UUID是主键,查询结果唯一。
|
||
*
|
||
* @param uuid 唯一标识符,对应数据库主键
|
||
* @return 图像模型记录,如果未找到则返回null
|
||
*/
|
||
ImageModel getByUuid(String uuid);
|
||
|
||
/**
|
||
* 根据请求ID查询图像模型记录
|
||
*
|
||
* 通过请求ID查询对应的图像模型记录。
|
||
* 一个请求ID可能对应多条记录,此方法返回最新的一条。
|
||
*
|
||
* @param requestId 请求ID,用于追踪处理请求
|
||
* @return 图像模型记录,如果未找到则返回null
|
||
*/
|
||
ImageModel getByRequestId(String requestId);
|
||
|
||
/**
|
||
* 根据任务ID查询图像模型记录
|
||
*
|
||
* 通过任务ID查询对应的图像模型记录。
|
||
* 一个任务ID可能对应多条记录,此方法返回最新的一条。
|
||
*
|
||
* @param taskId 任务ID,用于追踪异步处理任务
|
||
* @return 图像模型记录,如果未找到则返回null
|
||
*/
|
||
ImageModel getByTaskId(String taskId);
|
||
|
||
/**
|
||
* 根据所属人电话查询图像模型记录
|
||
*
|
||
* 通过所属人电话查询对应的图像模型记录。
|
||
* 一个电话号码可能对应多条记录,此方法返回最新的一条。
|
||
*
|
||
* @param ownerPhone 所属人电话,用于查询特定用户的记录
|
||
* @return 图像模型记录,如果未找到则返回null
|
||
*/
|
||
ImageModel getByOwnerPhone(String ownerPhone);
|
||
|
||
/**
|
||
* 去除图像中的中英文字符或常见水印
|
||
*
|
||
* 处理图像去除水印的业务逻辑,包括:
|
||
* - 图像预处理和参数设置
|
||
* - 调用AI模型进行水印去除
|
||
* - 结果处理和URL生成
|
||
* - 记录保存和状态更新
|
||
*
|
||
* @param imageModel 图像模型记录对象,包含处理参数和结果信息
|
||
* @return 处理后的图像模型记录,包含结果URL等信息
|
||
*/
|
||
ImageModel removeWatermar(ImageModel imageModel);
|
||
|
||
/**
|
||
* 上传图片素材
|
||
*
|
||
* 处理图片素材上传的完整业务逻辑,包括:
|
||
* - 文件验证和格式检查(根据阿里云参数要求)
|
||
* - 上传到MinIO存储
|
||
* - 生成永久URL和临时URL
|
||
* - 保存上传记录到数据库
|
||
*
|
||
* @param file 上传的图片文件
|
||
* @param ownerName 所属人姓名
|
||
* @param ownerPhone 所属人电话
|
||
* @param imageType 图片类型(base_image主体图像 或 ref_image引导图像)
|
||
* @param imageName 图像名称
|
||
* @return 图像模型记录,包含上传结果和URL信息
|
||
*/
|
||
ImageModel uploadImageMaterial(org.springframework.web.multipart.MultipartFile file,
|
||
String ownerName, String ownerPhone, String imageType, String imageName);
|
||
|
||
/**
|
||
* 上传引导图像
|
||
*
|
||
* 专门用于上传引导图像的方法,自动转换为带透明背景的RGBA四通道图像
|
||
* 支持常见图像格式(JPG、PNG、GIF、BMP、WEBP),系统会自动转换为RGBA格式
|
||
*
|
||
* @param file 上传的引导图像文件
|
||
* @param ownerName 所属人姓名
|
||
* @param ownerPhone 所属人电话
|
||
* @param imageName 图像名称
|
||
* @return 图像模型记录,包含上传结果和URL信息
|
||
*/
|
||
ImageModel uploadRefImage(org.springframework.web.multipart.MultipartFile file,
|
||
String ownerName, String ownerPhone, String imageName);
|
||
|
||
/**
|
||
* 图像处理(支持主体图像和引导图像)
|
||
*
|
||
* 根据阿里云图像参数要求进行图像处理:
|
||
* - base_image_url: 主体图像URL(必选,PNG格式,RGBA四通道,长边不超过2048像素)
|
||
* - ref_image_url: 引导图像URL(可选,JPG/PNG/WEBP格式)
|
||
*
|
||
* @param baseImageModel 主体图像模型记录
|
||
* @param refImageModel 引导图像模型记录(可选)
|
||
* @param prompt 处理提示词
|
||
* @param functionName 功能名称
|
||
* @return 处理后的图像模型记录
|
||
*/
|
||
ImageModel processImageWithRef(ImageModel baseImageModel, ImageModel refImageModel,
|
||
String prompt, String functionName);
|
||
|
||
boolean removeByUuid(String uuid);
|
||
|
||
/**
|
||
* 文本生成图像
|
||
*
|
||
* 根据文本提示词生成图像,包括:
|
||
* - 调用AI图像生成服务
|
||
* - 处理生成结果
|
||
* - 保存生成记录
|
||
*
|
||
* @param request 文本生成图像请求参数
|
||
* @return 生成结果,包含图像URL等信息
|
||
*/
|
||
Map<String, Object> generateImageByText(TextModelController.ImageProcessingRequest request);
|
||
|
||
/**
|
||
* 图生图
|
||
*
|
||
* 根据图片和指令生成新图片,包括:
|
||
* - 验证API Key和参数
|
||
* - 构建请求体
|
||
* - 调用阿里云图生图API
|
||
* - 处理异步响应
|
||
* - 返回任务信息
|
||
*
|
||
* @param multipartFile 上传的图片文件
|
||
* @param refPrompt 参考提示词
|
||
* @param ownerName 所属人姓名
|
||
* @param ownerPhone 所属人电话
|
||
* @param imageName 图片名称
|
||
* @param model 模型名称,默认为wanx-v1
|
||
* @param parameters 参数字符串(JSON格式)
|
||
* @return 生成结果,包含任务ID等信息
|
||
*/
|
||
Map<String, Object> generateImageToImage(org.springframework.web.multipart.MultipartFile multipartFile,
|
||
String refPrompt, String ownerName, String ownerPhone,
|
||
String imageName, String model, String parameters);
|
||
}
|