增加可灵视频算力配置

This commit is contained in:
RockYang
2025-02-26 18:48:33 +08:00
parent 8a4596b36a
commit 6c84d2557c
7 changed files with 65 additions and 171 deletions

View File

@@ -150,7 +150,7 @@ type SystemConfig struct {
DallPower int `json:"dall_power,omitempty"` // DALL-E-3 绘图消耗算力
SunoPower int `json:"suno_power,omitempty"` // Suno 生成歌曲消耗算力
LumaPower int `json:"luma_power,omitempty"` // Luma 生成视频消耗算力
KeLingPower int `json:"luma_power,omitempty"` // Luma 生成视频消耗算力
KeLingPower int `json:"keling_power,omitempty"` // 可灵生成视频消耗算力
AdvanceVoicePower int `json:"advance_voice_power,omitempty"` // 高级语音对话消耗算力
PromptPower int `json:"prompt_power,omitempty"` // 生成提示词消耗算力
@@ -170,5 +170,6 @@ type SystemConfig struct {
EnabledVerify bool `json:"enabled_verify"` // 是否启用验证码
EmailWhiteList []string `json:"email_white_list"` // 邮箱白名单列表
TranslateModelId int `json:"translate_model_id"` // 用来做提示词翻译的大模型 id
MaxFileSize int `json:"max_file_size"` // 最大文件大小,单位MB
}

View File

@@ -28,11 +28,21 @@ func NewUploadHandler(app *core.AppServer, db *gorm.DB, manager *oss.UploaderMan
}
func (h *UploadHandler) Upload(c *gin.Context) {
file, err := h.uploaderManager.GetUploadHandler().PutFile(c, "file")
// 判断文件大小
file, err := c.FormFile("file")
if err != nil {
resp.ERROR(c, err.Error())
return
}
if h.App.SysConfig.MaxFileSize > 0 && file.Size > int64(h.App.SysConfig.MaxFileSize)*1024*1024 {
resp.ERROR(c, "文件大小超过限制")
return
}
file, err := h.uploaderManager.GetUploadHandler().PutFile(c, "file")
if err != nil {
resp.ERROR(c, err.Error())
userId := 0
res := h.DB.Create(&model.File{
UserId: userId,

View File

@@ -9,7 +9,6 @@ package video
import (
"bytes"
"encoding/base64"
"encoding/json"
"errors"
"fmt"
@@ -147,7 +146,6 @@ func (s *Service) Run() {
"err_msg": err.Error(),
"progress": service.FailTaskProgress,
"cover_url": "/images/failed.jpg",
"prompt": task.Prompt,
}).Error
if err != nil {
logger.Errorf("update task with error: %v", err)
@@ -439,22 +437,10 @@ func (s *Service) LumaCreate(task types.VideoTask) (LumaRespVo, error) {
"user_prompt": task.Prompt,
"expand_prompt": params.PromptOptimize,
"loop": params.Loop,
"image_url": params.StartImgURL, // 图生视频
"image_end_url": params.EndImgURL, // 图生视频
}
// 图生视频
if params.StartImgURL != "" {
// 下载图片,并转成 base64
imageData, err := utils.DownloadImage(params.StartImgURL, "")
if err == nil {
reqBody["image_url"] = base64.StdEncoding.EncodeToString(imageData)
}
}
if params.EndImgURL != "" {
// 下载图片,并转成 base64
imageData, err := utils.DownloadImage(params.EndImgURL, "")
if err == nil {
reqBody["image_end_url"] = base64.StdEncoding.EncodeToString(imageData)
}
}
var res LumaRespVo
apiURL := fmt.Sprintf("%s/luma/generations", apiKey.ApiURL)
logger.Debugf("API URL: %s, request body: %+v", apiURL, reqBody)
@@ -584,15 +570,8 @@ func (s *Service) KeLingCreate(task types.VideoTask) (KeLingRespVo, error) {
// 处理图生视频
if params.TaskType == "image2video" {
// 下载图片,并转成 base64
imageData, err := utils.DownloadImage(params.Image, "")
if err == nil {
payload["image"] = base64.StdEncoding.EncodeToString(imageData)
}
imageData, err = utils.DownloadImage(params.ImageTail, "")
if err == nil {
payload["image_tail"] = base64.StdEncoding.EncodeToString(imageData)
}
payload["image"] = params.Image
payload["image_tail"] = params.ImageTail
}
jsonPayload, err := json.Marshal(payload)