From 36dc3c0b5c03fca829463d947671a52d90f390c5 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Wed, 26 Jun 2024 12:38:21 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E3=80=90=E4=BB=A3=E7=A0=81=E8=B0=83?= =?UTF-8?q?=E6=95=B4=E3=80=91AI=EF=BC=9AMJ=20=E4=BA=8C=E6=AC=A1=20Action?= =?UTF-8?q?=20=E7=9A=84=E6=8E=A5=E5=8F=A3=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/ai/image/index.ts | 78 ++++++++++-------------- src/views/ai/image/ImageDetailDrawer.vue | 6 +- src/views/ai/image/ImageTask.vue | 16 ++--- src/views/ai/image/ImageTaskCard.vue | 6 +- src/views/ai/image/midjourney/index.vue | 4 -- 5 files changed, 47 insertions(+), 63 deletions(-) diff --git a/src/api/ai/image/index.ts b/src/api/ai/image/index.ts index 4fd35abe..205d0803 100644 --- a/src/api/ai/image/index.ts +++ b/src/api/ai/image/index.ts @@ -1,51 +1,28 @@ import request from '@/config/axios' // AI API 密钥 VO -// TODO @fan:要不前端不弄太多 VO,就用这个 ImageDetailVO?! -export interface ImageDetailVO { +export interface ImageRespVO { id: number // 编号 - prompt: string // 提示词 - status: number // 状态 - errorMessage: string // 错误信息 - type: string // 模型下分不同的类型(清晰、真实...) - taskId: number // dr 任务id - picUrl: string // 任务地址 - originalPicUrl: string // 绘制图片地址 platform: string // 平台 model: string // 模型 - style: string // 图像生成的风格 - size: string // 图片尺寸 + prompt: string // 提示词 + width: number // 图片宽度 + height: number // 图片高度 + status: number // 状态 + publicStatus: string // 公开状态 + picUrl: string // 任务地址 + errorMessage: string // 错误信息 + options: object // 配置 Map + taskId: number // 任务编号 buttons: ImageMjButtonsVO[] // mj 操作按钮 createTime: string // 创建时间 - updateTime: string // 更新事件 } -export interface ImageMjButtonsVO { - 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 ImageMjActionVO { - id: string // MJ::JOB::upsample::1::85a4b4c1-8835-46c5-a15c-aea34fad1862 动作标识 - customId: string // MJ::JOB::upsample::1::85a4b4c1-8835-46c5-a15c-aea34fad1862 动作标识 -} - - export interface ImagePageReqVO { pageNo: number // 分页编号 pageSize: number // 分页大小 } -export interface ImageDallReqVO { - prompt: string // 提示词 - model: string // 模型 - style: string // 图像生成的风格 - width: string // 图片宽度 - height: string // 图片高度 -} - export interface ImageDrawReqVO { platform: string // 平台 prompt: string // 提示词 @@ -65,34 +42,45 @@ export interface ImageMidjourneyImagineReqVO { version: string // 版本 } -// TODO 芋艿:review 下整体注释、方法名 +export interface ImageMjActionVO { + id: number // 图片编号 + customId: string // MJ::JOB::upsample::1::85a4b4c1-8835-46c5-a15c-aea34fad1862 动作标识 +} + +export interface ImageMjButtonsVO { + customId: string // MJ::JOB::upsample::1::85a4b4c1-8835-46c5-a15c-aea34fad1862 动作标识 + emoji: string // 图标 emoji + label: string // Make Variations 文本 + style: number // 样式: 2(Primary)、3(Green) +} + // AI API 密钥 API export const ImageApi = { - // 获取 image 列表 - getImageList: async (params: ImagePageReqVO) => { + // 获取我的图片列表 + getImagePageMy: async (params: ImagePageReqVO) => { return await request.get({ url: `/ai/image/my-page`, params }) }, - // 获取 image 详细信息 - getImageDetail: async (id: number) => { + // 获取我的图片 + getImageMy: async (id: number) => { return await request.get({ url: `/ai/image/get-my?id=${id}`}) }, // 生成图片 drawImage: async (data: ImageDrawReqVO)=> { return await request.post({ url: `/ai/image/draw`, data }) }, - // 删除 - deleteImage: async (id: number)=> { + // 删除我的图片 + deleteImageMy: async (id: number)=> { return await request.delete({ url: `/ai/image/delete-my?id=${id}`}) }, - // ------------ midjourney + // ================ midjourney 专属 ================ - // midjourney - imagine + // 【Midjourney】生成图片 midjourneyImagine: async (data: ImageMidjourneyImagineReqVO)=> { return await request.post({ url: `/ai/image/midjourney/imagine`, data }) }, - // midjourney - action - midjourneyAction: async (params: ImageMjActionVO)=> { - return await request.get({ url: `/ai/image/midjourney/action`, params }) + // 【Midjourney】Action 操作(二次生成图片) + midjourneyAction: async (data: ImageMjActionVO)=> { + return await request.post({ url: `/ai/image/midjourney/action`, data }) }, } diff --git a/src/views/ai/image/ImageDetailDrawer.vue b/src/views/ai/image/ImageDetailDrawer.vue index e26a719a..7c74ef35 100644 --- a/src/views/ai/image/ImageDetailDrawer.vue +++ b/src/views/ai/image/ImageDetailDrawer.vue @@ -60,11 +60,11 @@ diff --git a/src/views/ai/image/manager/index.vue b/src/views/ai/image/manager/index.vue new file mode 100644 index 00000000..ef505036 --- /dev/null +++ b/src/views/ai/image/manager/index.vue @@ -0,0 +1,247 @@ + + +