From c81d7204f44ee4974c821b553c13df8b48adc2cb Mon Sep 17 00:00:00 2001 From: mo Date: Sun, 26 May 2024 00:18:18 +0800 Subject: [PATCH] Add prefixes to image models to solve the problem of duplicate models --- relay/billing/ratio/image.go | 5 +++++ relay/controller/image.go | 6 +++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/relay/billing/ratio/image.go b/relay/billing/ratio/image.go index 5a29cddc..ced0c667 100644 --- a/relay/billing/ratio/image.go +++ b/relay/billing/ratio/image.go @@ -49,3 +49,8 @@ var ImagePromptLengthLimitations = map[string]int{ "wanx-v1": 4000, "cogview-3": 833, } + +var ImageOriginModelName = map[string]string{ + "ali-stable-diffusion-xl": "stable-diffusion-xl", + "ali-stable-diffusion-v1.5": "stable-diffusion-v1.5", +} diff --git a/relay/controller/image.go b/relay/controller/image.go index 6620bef5..61dc2f07 100644 --- a/relay/controller/image.go +++ b/relay/controller/image.go @@ -55,6 +55,10 @@ func RelayImageHelper(c *gin.Context, relayMode int) *relaymodel.ErrorWithStatus return openai.ErrorWrapper(err, "get_image_cost_ratio_failed", http.StatusInternalServerError) } + imageModel := imageRequest.Model + // Convert the original image model + imageRequest.Model, _ = getMappedModelName(imageRequest.Model, billingratio.ImageOriginModelName) + var requestBody io.Reader if isModelMapped || meta.ChannelType == channeltype.Azure { // make Azure channel request body jsonStr, err := json.Marshal(imageRequest) @@ -89,7 +93,7 @@ func RelayImageHelper(c *gin.Context, relayMode int) *relaymodel.ErrorWithStatus requestBody = bytes.NewBuffer(jsonStr) } - modelRatio := billingratio.GetModelRatio(imageRequest.Model) + modelRatio := billingratio.GetModelRatio(imageModel) groupRatio := billingratio.GetGroupRatio(meta.Group) ratio := modelRatio * groupRatio userQuota, err := model.CacheGetUserQuota(ctx, meta.UserId)