ali

package
v0.11.2-patch.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 6, 2026 License: AGPL-3.0 Imports: 17 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ChannelName = "ali"
View Source
var ModelList = []string{
	"wan2.5-i2v-preview",
	"wan2.2-i2v-flash",
	"wan2.2-i2v-plus",
	"wanx2.1-i2v-plus",
	"wanx2.1-i2v-turbo",
}

Functions

func ProcessAliOtherRatios

func ProcessAliOtherRatios(aliReq *AliVideoRequest) (map[string]float64, error)

Types

type AliMetadata

type AliMetadata struct {
	// Input 相关
	AudioURL       string `json:"audio_url,omitempty"`       // 音频URL
	ImgURL         string `json:"img_url,omitempty"`         // 图片URL(图生视频)
	FirstFrameURL  string `json:"first_frame_url,omitempty"` // 首帧图片URL(首尾帧生视频)
	LastFrameURL   string `json:"last_frame_url,omitempty"`  // 尾帧图片URL(首尾帧生视频)
	NegativePrompt string `json:"negative_prompt,omitempty"` // 反向提示词
	Template       string `json:"template,omitempty"`        // 视频特效模板

	// Parameters 相关
	Resolution   *string `json:"resolution,omitempty"`    // 分辨率: 480P/720P/1080P
	Size         *string `json:"size,omitempty"`          // 尺寸: 如 "832*480"
	Duration     *int    `json:"duration,omitempty"`      // 时长
	PromptExtend *bool   `json:"prompt_extend,omitempty"` // 是否开启prompt智能改写
	Watermark    *bool   `json:"watermark,omitempty"`     // 是否添加水印
	Audio        *bool   `json:"audio,omitempty"`         // 是否添加音频
	Seed         *int    `json:"seed,omitempty"`          // 随机数种子
}

type AliUsage

type AliUsage struct {
	Duration   int `json:"duration,omitempty"`
	VideoCount int `json:"video_count,omitempty"`
	SR         int `json:"SR,omitempty"`
}

AliUsage 使用统计

type AliVideoInput

type AliVideoInput struct {
	Prompt         string `json:"prompt,omitempty"`          // 文本提示词
	ImgURL         string `json:"img_url,omitempty"`         // 首帧图像URL或Base64(图生视频)
	FirstFrameURL  string `json:"first_frame_url,omitempty"` // 首帧图片URL(首尾帧生视频)
	LastFrameURL   string `json:"last_frame_url,omitempty"`  // 尾帧图片URL(首尾帧生视频)
	AudioURL       string `json:"audio_url,omitempty"`       // 音频URL(wan2.5支持)
	NegativePrompt string `json:"negative_prompt,omitempty"` // 反向提示词
	Template       string `json:"template,omitempty"`        // 视频特效模板
}

AliVideoInput 视频输入参数

type AliVideoOutput

type AliVideoOutput struct {
	TaskID        string `json:"task_id"`
	TaskStatus    string `json:"task_status"`
	SubmitTime    string `json:"submit_time,omitempty"`
	ScheduledTime string `json:"scheduled_time,omitempty"`
	EndTime       string `json:"end_time,omitempty"`
	OrigPrompt    string `json:"orig_prompt,omitempty"`
	ActualPrompt  string `json:"actual_prompt,omitempty"`
	VideoURL      string `json:"video_url,omitempty"`
	Code          string `json:"code,omitempty"`
	Message       string `json:"message,omitempty"`
}

AliVideoOutput 输出信息

type AliVideoParameters

type AliVideoParameters struct {
	Resolution   string `json:"resolution,omitempty"`    // 分辨率: 480P/720P/1080P(图生视频、首尾帧生视频)
	Size         string `json:"size,omitempty"`          // 尺寸: 如 "832*480"(文生视频)
	Duration     int    `json:"duration,omitempty"`      // 时长: 3-10秒
	PromptExtend bool   `json:"prompt_extend,omitempty"` // 是否开启prompt智能改写
	Watermark    bool   `json:"watermark,omitempty"`     // 是否添加水印
	Audio        *bool  `json:"audio,omitempty"`         // 是否添加音频(wan2.5)
	Seed         int    `json:"seed,omitempty"`          // 随机数种子
}

AliVideoParameters 视频参数

type AliVideoRequest

type AliVideoRequest struct {
	Model      string              `json:"model"`
	Input      AliVideoInput       `json:"input"`
	Parameters *AliVideoParameters `json:"parameters,omitempty"`
}

AliVideoRequest 阿里通义万相视频生成请求

type AliVideoResponse

type AliVideoResponse struct {
	Output    AliVideoOutput `json:"output"`
	RequestID string         `json:"request_id"`
	Code      string         `json:"code,omitempty"`
	Message   string         `json:"message,omitempty"`
	Usage     *AliUsage      `json:"usage,omitempty"`
}

AliVideoResponse 阿里通义万相响应

type TaskAdaptor

type TaskAdaptor struct {
	taskcommon.BaseBilling
	ChannelType int
	// contains filtered or unexported fields
}

func (*TaskAdaptor) BuildRequestBody

func (a *TaskAdaptor) BuildRequestBody(c *gin.Context, info *relaycommon.RelayInfo) (io.Reader, error)

func (*TaskAdaptor) BuildRequestHeader

func (a *TaskAdaptor) BuildRequestHeader(c *gin.Context, req *http.Request, info *relaycommon.RelayInfo) error

BuildRequestHeader sets required headers for Ali API

func (*TaskAdaptor) BuildRequestURL

func (a *TaskAdaptor) BuildRequestURL(info *relaycommon.RelayInfo) (string, error)

func (*TaskAdaptor) ConvertToOpenAIVideo

func (a *TaskAdaptor) ConvertToOpenAIVideo(task *model.Task) ([]byte, error)

func (*TaskAdaptor) DoRequest

func (a *TaskAdaptor) DoRequest(c *gin.Context, info *relaycommon.RelayInfo, requestBody io.Reader) (*http.Response, error)

DoRequest delegates to common helper

func (*TaskAdaptor) DoResponse

func (a *TaskAdaptor) DoResponse(c *gin.Context, resp *http.Response, info *relaycommon.RelayInfo) (taskID string, taskData []byte, taskErr *dto.TaskError)

DoResponse handles upstream response

func (*TaskAdaptor) EstimateBilling added in v0.11.0

func (a *TaskAdaptor) EstimateBilling(c *gin.Context, info *relaycommon.RelayInfo) map[string]float64

EstimateBilling 根据用户请求参数计算 OtherRatios(时长、分辨率等)。 在 ValidateRequestAndSetAction 之后、价格计算之前调用。

func (*TaskAdaptor) FetchTask

func (a *TaskAdaptor) FetchTask(baseUrl, key string, body map[string]any, proxy string) (*http.Response, error)

FetchTask 查询任务状态

func (*TaskAdaptor) GetChannelName

func (a *TaskAdaptor) GetChannelName() string

func (*TaskAdaptor) GetModelList

func (a *TaskAdaptor) GetModelList() []string

func (*TaskAdaptor) Init

func (a *TaskAdaptor) Init(info *relaycommon.RelayInfo)

func (*TaskAdaptor) ParseTaskResult

func (a *TaskAdaptor) ParseTaskResult(respBody []byte) (*relaycommon.TaskInfo, error)

ParseTaskResult 解析任务结果

func (*TaskAdaptor) ValidateRequestAndSetAction

func (a *TaskAdaptor) ValidateRequestAndSetAction(c *gin.Context, info *relaycommon.RelayInfo) (taskErr *dto.TaskError)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL