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..691c7c0e 100644 --- a/relay/controller/image.go +++ b/relay/controller/image.go @@ -55,6 +55,11 @@ 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) + c.Set("response_format", imageRequest.ResponseFormat) + var requestBody io.Reader if isModelMapped || meta.ChannelType == channeltype.Azure { // make Azure channel request body jsonStr, err := json.Marshal(imageRequest) @@ -89,7 +94,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)