feat(ui): Video playground tab + video capability plumbing #2

Merged
steve merged 1 commits from feat/video-ui into main 2026-07-12 14:56:35 +00:00
Owner

Answers "does the new llama-swap have a built-in video section?" — it does now.

Playground → Video tab: model selector (filtered to video_generation/image_to_video capabilities), prompt + negative prompt, size/frames/fps/steps/guidance/seed knobs (0 = model default), optional conditioning-image upload for image-to-video, an elapsed-time counter on the spinner (the sync call blocks for minutes), inline <video> playback with loop + download. Calls POST /v1/videos/sync (multipart) via the routes merged in #1.

Capability plumbing: video is now a valid capabilities.in/out modality; /v1/models maps text→videovideo_generation and image→videoimage_to_video (mirrors the image mappings), which is what the tab's model filter keys on. Declare video models like:

videogen-wan22-5b:
  cmd: ...
  capabilities:
    in: [text, image]
    out: [video]

Verified: svelte-check 0 errors, 97 UI tests + full Go suite green, vite build clean. After merge, the broadened CI trigger (b83edeb) auto-builds the image.

🤖 Generated with Claude Code

https://claude.ai/code/session_01AXQxVhXBw8PwFAtsVrXSmj

Answers "does the new llama-swap have a built-in video section?" — it does now. **Playground → Video tab**: model selector (filtered to `video_generation`/`image_to_video` capabilities), prompt + negative prompt, size/frames/fps/steps/guidance/seed knobs (0 = model default), optional conditioning-image upload for image-to-video, an elapsed-time counter on the spinner (the sync call blocks for minutes), inline `<video>` playback with loop + download. Calls `POST /v1/videos/sync` (multipart) via the routes merged in #1. **Capability plumbing**: `video` is now a valid `capabilities.in/out` modality; `/v1/models` maps `text→video` ⇒ `video_generation` and `image→video` ⇒ `image_to_video` (mirrors the image mappings), which is what the tab's model filter keys on. Declare video models like: ```yaml videogen-wan22-5b: cmd: ... capabilities: in: [text, image] out: [video] ``` Verified: `svelte-check` 0 errors, 97 UI tests + full Go suite green, `vite build` clean. After merge, the broadened CI trigger (b83edeb) auto-builds the image. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01AXQxVhXBw8PwFAtsVrXSmj
steve added 1 commit 2026-07-12 14:53:42 +00:00
New Video tab in the Playground: model selector filtered to
video_generation/image_to_video capabilities, prompt + negative prompt,
size/frames/fps/steps/guidance/seed knobs (0 = model default), optional
conditioning-image upload (image-to-video), elapsed-time spinner for
the minutes-long blocking call, inline <video> playback + download.
Calls POST /v1/videos/sync (multipart); resolution rides as both
width/height and size so either upstream convention honors it.

Config side: "video" joins the valid capability modalities, and
/v1/models maps text->video to video_generation and image->video to
image_to_video, mirroring the image mappings. Declare e.g.:

  videogen-wan22-5b:
    capabilities:
      in: [text, image]
      out: [video]

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AXQxVhXBw8PwFAtsVrXSmj
steve merged commit fdd89d6580 into main 2026-07-12 14:56:35 +00:00
steve deleted branch feat/video-ui 2026-07-12 14:56:35 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: steve/llama-swap#2