Support start-end frame image2video routing

The CLI now submits gateway-compatible first/final-frame payloads, so the server accepts the same public SkillHub schema fields, normalizes them to images[0]/images[1] with metadata.action=firstTailGenerate, and routes multi-frame Vidu-style submissions through the unified video generations endpoint.

Constraint: Align server behavior with popiartcli v0.3.21 start/end-frame payloads

Constraint: Keep existing single-image image2video and MiniMax paths compatible

Rejected: Hardcode only the new fields in server seed skills | loading SkillHub input_schema.json keeps the remote catalog as the source of truth

Confidence: medium

Scope-risk: moderate

Directive: Preserve first-frame then final-frame ordering when changing video reference handling

Tested: go test ./...

Tested: make build

Tested: GOOS=linux GOARCH=amd64 go build -o dist/popiartserver-linux-amd64 ./cmd/popiartserver

Not-tested: Live test-server deployment; current SSH key is rejected by 101.42.99.35
This commit is contained in:
wtgoku
2026-05-18 17:32:53 +08:00
parent ede502a63c
commit 7e8244668e
5 changed files with 500 additions and 24 deletions
+1 -8
View File
@@ -117,14 +117,7 @@ func seedSkills() []skill {
ModelType: "video",
RouteKey: "video.image2video",
EstimatedDurationS: 90,
InputSchema: map[string]any{
"type": "object",
"properties": map[string]any{
"image_url": map[string]any{"type": "string"},
"prompt": map[string]any{"type": "string"},
},
"required": []string{"image_url"},
},
InputSchema: imageToVideoInputSchema(),
OutputSchema: map[string]any{
"type": "object",
"properties": map[string]any{