Files
smartDriveEE/src/main/java/com/rj/service/IImageModelService.java
2025-10-19 13:45:53 +08:00

183 lines
6.7 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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);
}