瀏覽代碼

【增加】AI Image 增加 dall 绘画

cherishsince 1 年之前
父節點
當前提交
d9ebb61dc1
共有 2 個文件被更改,包括 32 次插入15 次删除
  1. 10 1
      src/api/ai/image/index.ts
  2. 22 14
      src/views/ai/image/dall3/index.vue

+ 10 - 1
src/api/ai/image/index.ts

@@ -12,6 +12,7 @@ export interface ImageDetailVO {
   originalPicUrl: string // 绘制图片地址
   platform: string // 平台
   model: string // 模型
+  style: string // 图像生成的风格
 }
 
 export interface ImagePageReqVO {
@@ -19,6 +20,12 @@ export interface ImagePageReqVO {
   pageSize: number // 分页大小
 }
 
+export interface ImageDallReqVO {
+  prompt: string // 提示词
+  model: string // 模型
+  style: string // 图像生成的风格
+  size: string // size不能为空
+}
 
 // AI API 密钥 API
 export const ImageApi = {
@@ -52,5 +59,7 @@ export const ImageApi = {
       model: 'dr'
     } as ImageDetailVO
   },
-
+  dall: async (data: ImageDallReqVO)=> {
+    return await request.post({ url: `/ai/image/dall`, data })
+  },
 }

+ 22 - 14
src/views/ai/image/dall3/index.vue

@@ -82,7 +82,7 @@
         <div :class="selectImageSize === imageSize ? 'size-wrapper selectImageSize' : 'size-wrapper'">
           <div :style="imageSize.style"></div>
         </div>
-        <div class="size-font">{{ imageSize.key }}</div>
+        <div class="size-font">{{ imageSize.name }}</div>
       </div>
     </el-space>
   </div>
@@ -111,49 +111,55 @@ interface ImageSizeVO {
 const prompt = ref<string>('')  // 提示词
 const selectHotWord = ref<string>('') // 选中的热词
 const hotWords = ref<string[]>(['中国旗袍', '古装美女', '卡通头像', '机甲战士', '童话小屋', '中国长城'])  // 热词
-const selectModel = ref<any>() // 模型
+const selectModel = ref<any>({}) // 模型
 const models = ref<ImageModelVO[]>([
   {
-    key: 'dall2',
+    key: 'dall-e-2',
     name: 'dall2',
     image: 'https://h5.cxyhub.com/images/model_1.png',
   },
   {
-    key: 'dall3',
+    key: 'dall-e-3',
     name: 'dall3',
     image: 'https://h5.cxyhub.com/images/model_2.png',
   },
 ])  // 模型
+selectModel.value = models.value[0]
 
-const selectImageStyle = ref<any>() // style 样式
+const selectImageStyle = ref<any>({}) // style 样式
 const imageStyleList = ref<ImageModelVO[]>([
   {
-    key: 'qingxi',
+    key: 'vivid',
     name: '清晰',
     image: 'https://h5.cxyhub.com/images/model_1.png',
   },
   {
-    key: 'ziran',
+    key: 'natural',
     name: '自然',
     image: 'https://h5.cxyhub.com/images/model_2.png',
   },
-])  // 模型
+])  // style
+selectImageStyle.value = imageStyleList.value[0]
 
 const selectImageSize = ref<ImageSizeVO>({} as ImageSizeVO) // 选中 size
 const imageSizeList = ref<ImageSizeVO[]>([
   {
-    key: '1:1',
+    key: '1024x1024',
+    name: '1:1',
     style: 'width: 30px; height: 30px;background-color: #dcdcdc;',
   },
   {
-    key: '3:5',
+    key: '1024x1792',
+    name: '3:5',
     style: 'width: 30px; height: 50px;background-color: #dcdcdc;',
   },
   {
-    key: '5:3',
+    key: '1792x1024',
+    name: '5:3',
     style: 'width: 50px; height: 30px;background-color: #dcdcdc;',
   }
 ]) // size
+selectImageSize.value = imageSizeList.value[0]
 
 // 定义 Props
 const props = defineProps({})
@@ -209,11 +215,13 @@ const handlerSizeClick = async (imageSize: ImageSizeVO) => {
  */
 const handlerGenerateImage = async () => {
   // todo @范 图片生产逻辑
+  console.log('prompt.value', prompt)
+  console.log('prompt.value', prompt.value)
   const form = {
     prompt: prompt.value, // 提示词
-    model: selectModel.value, // 模型
-    style: selectImageStyle.value, // 图像生成的风格
-    size: selectImageSize.value, // size不能为空
+    model: selectModel.value.key, // 模型
+    style: selectImageStyle.value.key, // 图像生成的风格
+    size: selectImageSize.value.key, // size不能为空
   } as ImageDallReqVO
   // 发送请求
   await ImageApi.dall(form)