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
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Part of #3. Blocked by #4 (reuses its shim scaffolding, not its output).
videogen-wan22-5bis 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 fromcomfyui-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/syncmultipart 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
Do not break
videoutilschaining is wan-pinned. The long-video chainer mirrorsVIDEOGEN_MODELand mort pins segment pricing toskills.llamaswap.longvideo.segment_modelprecisely so a default-model flip cannot reprice chains onto the H3 curve. Keep the model idvideogen-wan22-5band keep the chainer pointed at it.videoModelProfilesholds measured frames→GPU-seconds. If ComfyUI changes Wan's speed materially,videoModelCurveneeds re-measuring — and note the anchor rule:cost_micro_usddenominates 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.generate_video.go,agents/general/agent.yml). If it gets slower, that routing advice becomes wrong.Acceptance
input_referencelands as the first frameseedvaries outputvideoutilscompletes end to endvideoModelProfilesupdated if it moved. Follow the module rule: a benchmark is PROVISIONAL until re-measured warm and on-grid