index.ts 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. import request from '@/config/axios'
  2. // AI API 密钥 VO
  3. export interface ImageRespVO {
  4. id: number // 编号
  5. platform: string // 平台
  6. model: string // 模型
  7. prompt: string // 提示词
  8. width: number // 图片宽度
  9. height: number // 图片高度
  10. status: number // 状态
  11. publicStatus: boolean // 公开状态
  12. picUrl: string // 任务地址
  13. errorMessage: string // 错误信息
  14. options: object // 配置 Map<string, string>
  15. taskId: number // 任务编号
  16. buttons: ImageMjButtonsVO[] // mj 操作按钮
  17. createTime: string // 创建时间
  18. }
  19. export interface ImagePageReqVO {
  20. pageNo: number // 分页编号
  21. pageSize: number // 分页大小
  22. }
  23. export interface ImageDrawReqVO {
  24. platform: string // 平台
  25. prompt: string // 提示词
  26. model: string // 模型
  27. style: string // 图像生成的风格
  28. width: string // 图片宽度
  29. height: string // 图片高度
  30. options: object // 绘制参数,Map<String, String>
  31. }
  32. export interface ImageMidjourneyImagineReqVO {
  33. prompt: string // 提示词
  34. model: string // 模型 mj nijj
  35. base64Array: string[] // size不能为空
  36. width: string // 图片宽度
  37. height: string // 图片高度
  38. version: string // 版本
  39. }
  40. export interface ImageMjActionVO {
  41. id: number // 图片编号
  42. customId: string // MJ::JOB::upsample::1::85a4b4c1-8835-46c5-a15c-aea34fad1862 动作标识
  43. }
  44. export interface ImageMjButtonsVO {
  45. customId: string // MJ::JOB::upsample::1::85a4b4c1-8835-46c5-a15c-aea34fad1862 动作标识
  46. emoji: string // 图标 emoji
  47. label: string // Make Variations 文本
  48. style: number // 样式: 2(Primary)、3(Green)
  49. }
  50. // AI API 密钥 API
  51. export const ImageApi = {
  52. // 获取我的图片列表
  53. getImagePageMy: async (params: ImagePageReqVO) => {
  54. return await request.get({ url: `/ai/image/my-page`, params })
  55. },
  56. // 获取我的图片
  57. getImageMy: async (id: number) => {
  58. return await request.get({ url: `/ai/image/get-my?id=${id}` })
  59. },
  60. // 生成图片
  61. drawImage: async (data: ImageDrawReqVO) => {
  62. return await request.post({ url: `/ai/image/draw`, data })
  63. },
  64. // 删除我的图片
  65. deleteImageMy: async (id: number) => {
  66. return await request.delete({ url: `/ai/image/delete-my?id=${id}` })
  67. },
  68. // ================ midjourney 专属 ================
  69. // 【Midjourney】生成图片
  70. midjourneyImagine: async (data: ImageMidjourneyImagineReqVO) => {
  71. return await request.post({ url: `/ai/image/midjourney/imagine`, data })
  72. },
  73. // 【Midjourney】Action 操作(二次生成图片)
  74. midjourneyAction: async (data: ImageMjActionVO) => {
  75. return await request.post({ url: `/ai/image/midjourney/action`, data })
  76. },
  77. // ================ 绘图管理 ================
  78. // 查询绘画分页
  79. getImagePage: async (params: any) => {
  80. return await request.get({ url: `/ai/image/page`, params })
  81. },
  82. // 更新绘画发布状态
  83. updateImagePublicStatus: async (id: number, publicStatus: boolean) => {
  84. return await request.put({
  85. url: '/ai/image/update-public-status',
  86. data: {
  87. id,
  88. publicStatus
  89. }
  90. })
  91. },
  92. // 删除绘画
  93. deleteImage: async (id: number) => {
  94. return await request.delete({ url: `/ai/image/delete?id=` + id })
  95. }
  96. }