feat(server): dispatch /v1/videos/sync by model #1
Reference in New Issue
Block a user
Delete Branch "feat/video-routes"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Registers the blocking video generation endpoint (
POST /v1/videos/sync, vLLM-Omni shape — the response body is the encoded clip) as a model-dispatched route, so llama-swap can hot-swap video upstreams the same way it does imagegen (/sdapi/v1/txt2img) and audio.extractContextis content-type driven, so both multipart and JSON bodies dispatch (covered by test).POST /v1/videosis deliberately not dispatched: its poll/download companions (GET /v1/videos/{id}[/content]) carry no model field to route by, so registering creation alone would start unretrievable upstream jobs while burning the GPU. A stray OpenAI-videos client gets a clean 404 instead (tested)./v1/videos/syncjoinscaptureFieldsByPath(headers only, both directions) so enabling captures doesn't buffer conditioning frames or whole clips through cbor+zstd.Known follow-up (pre-existing, worse for video): the metrics middleware's
bodyCopiertees the full response into memory for the usage-JSON scan even on binary routes — for multi-MB clips that's a transient second copy per request. Worth a content-type skip someday; out of scope here.Part of the video-generation rollout (this fork → majordomo#13
videogen/→ mortllamaswap_generate_video). After merge, dispatchbuild-cuda-image.yml(e.g. versionv231) to build the deployable image.🤖 Generated with Claude Code
https://claude.ai/code/session_01AXQxVhXBw8PwFAtsVrXSmj
feat(server): dispatch /v1/videos and /v1/videos/sync by modelto feat(server): dispatch /v1/videos/sync by model