zhangwencui
7 天以前 f35825c1922149df154e3913d6dfebee57ee8cee
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
import type { PageParam, PageResult } from '@vben/request';
 
import { requestClient } from '#/api/request';
 
export namespace AiImageApi {
  /** 绘图 */
  export interface Image {
    id: number; // 编号
    userId: number;
    platform: string; // 平台
    model: string; // 模型
    prompt: string; // 提示词
    width: number; // 图片宽度
    height: number; // 图片高度
    status: number; // 状态
    publicStatus: boolean; // 公开状态
    picUrl: string; // 任务地址
    errorMessage: string; // 错误信息
    options: any; // 配置 Map<string, string>
    taskId: number; // 任务编号
    buttons: ImageMidjourneyButtons[]; // mj 操作按钮
    createTime: Date; // 创建时间
    finishTime: Date; // 完成时间
  }
 
  export interface ImageMidjourneyButtons {
    customId: string; // MJ::JOB::upsample::1::85a4b4c1-8835-46c5-a15c-aea34fad1862 动作标识
    emoji: string; // 图标 emoji
    label: string; // Make Variations 文本
    style: number; // 样式: 2(Primary)、3(Green)
  }
 
  export interface ImageDrawReqVO {
    prompt: string; // 提示词
    modelId: number; // 模型
    style: string; // 图像生成的风格
    width: number; // 图片宽度
    height: number; // 图片高度
    options: object; // 绘制参数,Map<String, String>
  }
 
  export interface ImageMidjourneyImagineReqVO {
    prompt: string; // 提示词
    modelId: number; // 模型
    base64Array: string[]; // 参考图 base64 列表
    width: string; // 图片宽度
    height: string; // 图片高度
    version: string; // 版本
  }
 
  export interface ImageMidjourneyAction {
    id: number; // 图片编号
    customId: string; // MJ::JOB::upsample::1::85a4b4c1-8835-46c5-a15c-aea34fad1862 动作标识
  }
}
 
/** 获取【我的】绘图分页 */
export function getImagePageMy(params: PageParam) {
  return requestClient.get<PageResult<AiImageApi.Image>>('/ai/image/my-page', {
    params,
  });
}
 
/** 获取【我的】绘图记录 */
export function getImageMy(id: number) {
  return requestClient.get<AiImageApi.Image>(`/ai/image/get-my?id=${id}`);
}
 
/** 获取【我的】绘图记录列表 */
export function getImageListMyByIds(ids: number[]) {
  return requestClient.get<AiImageApi.Image[]>(`/ai/image/my-list-by-ids`, {
    params: { ids: ids.join(',') },
  });
}
 
/** 生成图片 */
export function drawImage(data: AiImageApi.ImageDrawReqVO) {
  return requestClient.post(`/ai/image/draw`, data);
}
 
/** 删除【我的】绘画记录 */
export function deleteImageMy(id: number) {
  return requestClient.delete(`/ai/image/delete-my?id=${id}`);
}
 
/** ================ midjourney 专属 ================ */
 
/** 【Midjourney】生成图片 */
export function midjourneyImagine(
  data: AiImageApi.ImageMidjourneyImagineReqVO,
) {
  return requestClient.post(`/ai/image/midjourney/imagine`, data);
}
 
/** 【Midjourney】Action 操作(二次生成图片) */
export function midjourneyAction(data: AiImageApi.ImageMidjourneyAction) {
  return requestClient.post(`/ai/image/midjourney/action`, data);
}
 
/** ================ 绘图管理 ================ */
 
/** 查询绘画分页 */
export function getImagePage(params: any) {
  return requestClient.get<AiImageApi.Image[]>(`/ai/image/page`, { params });
}
 
/** 更新绘画发布状态 */
export function updateImage(data: any) {
  return requestClient.put(`/ai/image/update`, data);
}
 
/** 删除绘画 */
export function deleteImage(id: number) {
  return requestClient.delete(`/ai/image/delete?id=${id}`);
}