Browse Source

feat: jimeng video add images

feitianbubu 5 months ago
parent
commit
f14b06ec3a
3 changed files with 14 additions and 8 deletions
  1. 4 4
      relay/channel/task/jimeng/adaptor.go
  2. 3 2
      relay/common/relay_info.go
  3. 7 2
      relay/common/relay_utils.go

+ 4 - 4
relay/channel/task/jimeng/adaptor.go

@@ -318,11 +318,11 @@ func (a *TaskAdaptor) convertToRequestPayload(req *relaycommon.TaskSubmitReq) (*
 	}
 
 	// Handle one-of image_urls or binary_data_base64
-	if req.Image != "" {
-		if strings.HasPrefix(req.Image, "http") {
-			r.ImageUrls = []string{req.Image}
+	if req.HasImage() {
+		if strings.HasPrefix(req.Images[0], "http") {
+			r.ImageUrls = req.Images
 		} else {
-			r.BinaryDataBase64 = []string{req.Image}
+			r.BinaryDataBase64 = req.Images
 		}
 	}
 	metadata := req.Metadata

+ 3 - 2
relay/common/relay_info.go

@@ -481,6 +481,7 @@ type TaskSubmitReq struct {
 	Model    string                 `json:"model,omitempty"`
 	Mode     string                 `json:"mode,omitempty"`
 	Image    string                 `json:"image,omitempty"`
+	Images   []string               `json:"images,omitempty"`
 	Size     string                 `json:"size,omitempty"`
 	Duration int                    `json:"duration,omitempty"`
 	Metadata map[string]interface{} `json:"metadata,omitempty"`
@@ -490,8 +491,8 @@ func (t TaskSubmitReq) GetPrompt() string {
 	return t.Prompt
 }
 
-func (t TaskSubmitReq) GetImage() string {
-	return t.Image
+func (t TaskSubmitReq) HasImage() bool {
+	return len(t.Images) > 0
 }
 
 type TaskInfo struct {

+ 7 - 2
relay/common/relay_utils.go

@@ -16,7 +16,7 @@ type HasPrompt interface {
 }
 
 type HasImage interface {
-	GetImage() string
+	HasImage() bool
 }
 
 func GetFullRequestURL(baseURL string, requestURL string, channelType int) string {
@@ -74,6 +74,11 @@ func ValidateBasicTaskRequest(c *gin.Context, info *RelayInfo, action string) *d
 		return taskErr
 	}
 
+	if len(req.Images) == 0 && strings.TrimSpace(req.Image) != "" {
+		// 兼容单图上传
+		req.Images = []string{req.Image}
+	}
+
 	storeTaskRequest(c, info, action, req)
 	return nil
 }
@@ -89,7 +94,7 @@ func ValidateTaskRequestWithImage(c *gin.Context, info *RelayInfo, requestObj in
 	}
 
 	action := constant.TaskActionTextGenerate
-	if hasImage, ok := requestObj.(HasImage); ok && strings.TrimSpace(hasImage.GetImage()) != "" {
+	if hasImage, ok := requestObj.(HasImage); ok && hasImage.HasImage() {
 		action = constant.TaskActionGenerate
 	}