Phase 2: move Wan 2.2 TI2V-5B off vLLM-Omni onto ComfyUI #6

Open
opened 2026-08-06 00:52:04 +00:00 by steve · 0 comments
Owner

Part of #3. Blocked by #4 (reuses its shim scaffolding, not its output).

videogen-wan22-5b is the last non-ComfyUI generative engine — vllm/vllm-omni:v0.24.0, a 30.9 GB image, serving /v1/videos/sync. Wan 2.2 TI2V-5B has native ComfyUI support with official workflow templates, so this is a shim rewrite, not a research project.

Deliverables

images/comfyui-video/ in steveternet — a separate image from comfyui-h3, or a merge of the two if the dependency sets turn out compatible. Decide during the work; one process is one crash domain, and an H3 render wedging Wan is worse than an extra 14 GB image on disk.

The shim keeps the exact /v1/videos/sync multipart contract both existing video engines already speak — mort's majordomo client posts multipart form fields and expects the encoded clip as the raw response body, no job id, no polling. Contract is documented in majordomo ADR-0019.

Fields: prompt, negative_prompt, width/height/size, num_frames, num_inference_steps, guidance_scale, fps, seed, input_reference (i2v first frame). Unlike H3, Wan does have a negative branch and CFG — do not copy H3's log-and-ignore for those.

Why bother

  • Drops a 30.9 GB image
  • Opens LightX2V step-distillation LoRAs (the reason most people run Wan in ComfyUI at all), VACE, ControlNet-video, and frame-interpolation in-graph
  • One engine family for all video means one place to fix things

Do not break

  • videoutils chaining is wan-pinned. The long-video chainer mirrors VIDEOGEN_MODEL and mort pins segment pricing to skills.llamaswap.longvideo.segment_model precisely so a default-model flip cannot reprice chains onto the H3 curve. Keep the model id videogen-wan22-5b and keep the chainer pointed at it.
  • mort's cost curves are calibrated per model. videoModelProfiles holds measured frames→GPU-seconds. If ComfyUI changes Wan's speed materially, videoModelCurve needs re-measuring — and note the anchor rule: cost_micro_usd denominates the current default model at its default frame count, which is H3@124 (336000 µUSD) right now. Changing Wan's curve must not silently move that anchor.
  • Wan is the fast/cheap/silent option in mort's routing prose (generate_video.go, agents/general/agent.yml). If it gets slower, that routing advice becomes wrong.

Acceptance

  • t2v and i2v both render; input_reference lands as the first frame
  • seed varies output
  • A long-video chain through videoutils completes end to end
  • Frames→seconds re-measured on-grid and videoModelProfiles updated if it moved. Follow the module rule: a benchmark is PROVISIONAL until re-measured warm and on-grid
Part of #3. Blocked by #4 (reuses its shim scaffolding, not its output). `videogen-wan22-5b` is the last non-ComfyUI generative engine — `vllm/vllm-omni:v0.24.0`, a 30.9 GB image, serving `/v1/videos/sync`. Wan 2.2 TI2V-5B has **native** ComfyUI support with official workflow templates, so this is a shim rewrite, not a research project. ## Deliverables `images/comfyui-video/` in steveternet — a *separate* image from `comfyui-h3`, or a merge of the two if the dependency sets turn out compatible. Decide during the work; one process is one crash domain, and an H3 render wedging Wan is worse than an extra 14 GB image on disk. The shim keeps the **exact** `/v1/videos/sync` multipart contract both existing video engines already speak — mort's majordomo client posts multipart form fields and expects the encoded clip as the raw response body, no job id, no polling. Contract is documented in majordomo ADR-0019. Fields: `prompt`, `negative_prompt`, `width`/`height`/`size`, `num_frames`, `num_inference_steps`, `guidance_scale`, `fps`, `seed`, `input_reference` (i2v first frame). Unlike H3, Wan **does** have a negative branch and CFG — do not copy H3's log-and-ignore for those. ## Why bother - Drops a 30.9 GB image - Opens LightX2V step-distillation LoRAs (the reason most people run Wan in ComfyUI at all), VACE, ControlNet-video, and frame-interpolation in-graph - One engine family for all video means one place to fix things ## Do not break - **`videoutils` chaining is wan-pinned.** The long-video chainer mirrors `VIDEOGEN_MODEL` and mort pins segment pricing to `skills.llamaswap.longvideo.segment_model` precisely so a default-model flip cannot reprice chains onto the H3 curve. Keep the model id `videogen-wan22-5b` and keep the chainer pointed at it. - **mort's cost curves are calibrated per model.** `videoModelProfiles` holds measured frames→GPU-seconds. If ComfyUI changes Wan's speed materially, `videoModelCurve` needs re-measuring — and note the anchor rule: `cost_micro_usd` denominates the *current default model at its default frame count*, which is H3@124 (336000 µUSD) right now. Changing Wan's curve must not silently move that anchor. - Wan is the fast/cheap/silent option in mort's routing prose (`generate_video.go`, `agents/general/agent.yml`). If it gets slower, that routing advice becomes wrong. ## Acceptance - t2v and i2v both render; `input_reference` lands as the first frame - `seed` varies output - A long-video chain through `videoutils` completes end to end - Frames→seconds re-measured on-grid and `videoModelProfiles` updated if it moved. Follow the module rule: a benchmark is PROVISIONAL until re-measured warm and on-grid
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: steve/llama-swap#6