diff --git a/api/core/app_server.go b/api/core/app_server.go index cb2241ae..61644d2b 100644 --- a/api/core/app_server.go +++ b/api/core/app_server.go @@ -314,10 +314,16 @@ func staticResourceMiddleware() gin.HandlerFunc { return } - // 生成缩略图 - resizedImg := resize.Thumbnail(uint(with), uint(height), img, resize.Lanczos3) + var newImg image.Image + if height == 0 || with == 0 { + // 固定宽度,高度自适应 + newImg = resize.Resize(uint(with), uint(height), img, resize.Lanczos3) + } else { + // 生成缩略图 + newImg = resize.Thumbnail(uint(with), uint(height), img, resize.Lanczos3) + } var buffer bytes.Buffer - err = jpeg.Encode(&buffer, resizedImg, &jpeg.Options{Quality: quality}) + err = jpeg.Encode(&buffer, newImg, &jpeg.Options{Quality: quality}) if err != nil { log.Fatal(err) } diff --git a/api/handler/mj_handler.go b/api/handler/mj_handler.go index 97d8a6a4..35d94cab 100644 --- a/api/handler/mj_handler.go +++ b/api/handler/mj_handler.go @@ -120,7 +120,7 @@ func (h *MidJourneyHandler) Image(c *gin.Context) { prompt += " --style raw" } if data.Model != "" && !strings.Contains(prompt, "--v") && !strings.Contains(prompt, "--niji") { - prompt += data.Model + prompt += fmt.Sprintf(" %s", data.Model) } idValue, _ := c.Get(types.LoginUserID) @@ -348,8 +348,8 @@ func (h *MidJourneyHandler) JobList(c *gin.Context) { continue } if item.Progress < 100 { - // 30 分钟还没完成的任务直接删除 - if time.Now().Sub(item.CreatedAt) > time.Minute*30 { + // 10 分钟还没完成的任务直接删除 + if time.Now().Sub(item.CreatedAt) > time.Minute*10 { h.db.Delete(&item) continue } diff --git a/api/service/mj/service.go b/api/service/mj/service.go index ffabd73c..3b286957 100644 --- a/api/service/mj/service.go +++ b/api/service/mj/service.go @@ -72,6 +72,8 @@ func (s *Service) Run() { } if err != nil { logger.Error("绘画任务执行失败:", err) + // 删除任务 + s.db.Delete(&model.MidJourneyJob{Id: uint(task.Id)}) // 推送任务到前端 client := s.Clients.Get(task.SessionId) if client != nil { diff --git a/web/src/assets/css/task-list.styl b/web/src/assets/css/task-list.styl index b3817a64..9a1a5082 100644 --- a/web/src/assets/css/task-list.styl +++ b/web/src/assets/css/task-list.styl @@ -4,6 +4,7 @@ color #ffffff overflow-x hidden + .running-job-list { .job-item { //border: 1px solid #454545; diff --git a/web/src/components/ItemList.vue b/web/src/components/ItemList.vue index ef9d9ca6..3e52f3d1 100644 --- a/web/src/components/ItemList.vue +++ b/web/src/components/ItemList.vue @@ -45,9 +45,9 @@ onMounted(() => { }) const computeSize = () => { - const w = container.value.offsetWidth - 8 // 减去滚动条的宽度 + const w = container.value.offsetWidth - 10 // 减去滚动条的宽度 let cols = Math.floor(w / props.width) - itemWidth.value = Math.ceil(w / cols) + itemWidth.value = Math.floor(w / cols) } window.onresize = () => { diff --git a/web/src/views/ImagesWall.vue b/web/src/views/ImagesWall.vue index 3e9cce45..5ecfce6e 100644 --- a/web/src/views/ImagesWall.vue +++ b/web/src/views/ImagesWall.vue @@ -259,7 +259,7 @@ const getNext = () => { // 生成缩略图 const imageList = res.data for (let i = 0; i < imageList.length; i++) { - imageList[i]["img_thumb"] = imageList[i]["img_url"] + "?imageView2/4/w/300/q/75" + imageList[i]["img_thumb"] = imageList[i]["img_url"] + "?imageView2/4/w/300/h/0/q/75" } if (list.value.length === 0) { list.value = imageList