Repository navigation
Onboard Kandinsky 6.0 (T/I2V+audio, Lite/Pro, SR) - blocked on diffusers release #663
Copy link
Copy link
Closed
Labels
featureWork bigger than a fix: designed with Don, built in stages (harnest R11)Work bigger than a fix: designed with Don, built in stages (harnest R11)owner:donParked for human decisionParked for human decision
Description
What
Onboard Kandinsky 6.0 (kandinskylab, MIT) as a new model family: a joint text/image-to-video+audio model (5 s clips, 44.1 kHz audio incl. lip-sync) with a separate tiled super-resolution pipeline.
Collection: https://huggingface.co/collections/kandinskylab/kandinsky-60-diffusers
Diffusers support
- Merged to diffusers
mainon 2026-10-06 (Kandinsky6 huggingface/diffusers#14949,bc5e3bd9):Kandinsky6TI2VAPipeline,Kandinsky6SRPipeline,Kandinsky6Transformer3DModel(+ SR transformer). - Not in a release. Latest is v0.41.0 and the repo venv's 0.41.0.dev0 has no
Kandinsky6*classes. Onboarding is blocked on a diffusers bump (git main or the next release). Checkget_diffusers_state/list_classesfirst. - Components: Qwen2.5-VL + CLIP text encoders,
AutoencoderKLHunyuanVideo,MMAudioVAE+ vocoder (audio parts optional,sample_audio).
Checkpoints (all *-5s-Diffusers)
| Variant | Size | Steps / CFG | Notes |
|---|---|---|---|
| Lite-distill | 3B | 10 / 1.0 | PiflowScheduler, must use guidance 1.0 |
| Lite | 3B | default 50 | |
| Lite-pretrain | 3B | base, not for end use | |
| Pro-distill | 29-30B | ~16 / 1.0 | |
| Pro | 29B | 50 / ~5.0 | FlowMatchEuler |
| Pro-pretrain | 29-30B | base |
Native 480x864, 121 frames. SR pipeline upscales to 1920x1080 (x2 / x2.25 / x4, 4 steps per tile, 2 in distilled).
24 GB (RTX 3090) feasibility
- Lite / Lite-distill: yes. 3B transformer is ~6 GB in bf16; with
enable_model_cpu_offload()the Qwen2.5-VL encoder is the largest piece but is offloaded. Start here, Lite-distill (10 steps, no CFG pass) is the right first template. - Pro: only quantized. 29B bf16 is ~58 GB. Needs the transformer in nf4/int8 (see docs/QUANTIZATION.md, docs/RECIPES_24GB.md) plus offload. Plausible, unverified; measure before promising. Pro with CFG (50 steps x 2 passes) will be slow.
- SR on top of Lite output: tiled, so memory should be bounded, but verify.
- All of the above is an estimate from the model cards. No VRAM numbers are published.
Plan (per the model-family-onboarding skill)
- Bump diffusers on lem (new-HF-dep deploy pattern), confirm classes load.
- Audit against vendor text (cards, GitHub, tech report, pipeline source) ->
docs/proposals/audits/. - Catalog:
models/entries (Lite-distill first, then Lite, Pro quantized), templates for t2v+audio, i2v+audio, and SR; cost drivers measured on lem. - Check the
<S>/<AUDCAP>prompt tags and the built-in prompt-beautifier system prompt in the pipeline. Point at it, do not copy it. - Composition skill in
plugins/dw/(12 KiB cap; pinned by test). - lem field run of Lite-distill, then Pro quantized if the 24 GB question is worth answering.
Not filed
HunyuanImage-3.0 (tencent): no diffusers support. pipelines/hunyuan_image holds only the 2.1 pipelines (HunyuanImagePipeline, refiner). 3.0 is an 80B MoE autoregressive model (13B active) run via transformers AutoModelForCausalLM with trust_remote_code=True, which the catalog forbids. Revisit if a diffusers PR lands.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
featureWork bigger than a fix: designed with Don, built in stages (harnest R11)Work bigger than a fix: designed with Don, built in stages (harnest R11)owner:donParked for human decisionParked for human decision
Activity
fix(audio): #663 - read a video+audio pipeline's rate off its audio V…
fix(updater): #663 - a git diffusers install replaces one of the same…
feat(kandinsky6): #663 - audit, Lite-distill text- and image-to-video…
test(kandinsky6): #663 - record the family's prompt spelling and pipe…
fix(downloads): #663 - a finished download is no longer reported fail…
fix(kandinsky6): #663 - decode the HunyuanVideo VAE in tiles
docs(kandinsky6): #663 - park Apple Silicon: the HunyuanVideo VAE dec…
dkackman commentedon Oct 6, 2026
Status 2026-10-06: first onboarding pass on
feat/663-kandinsky6; MPS parkedWork is on branch
feat/663-kandinsky6(7 commits on develop). It has no field run yet, and the next step is lem.Done
main;c6df88a5includes #14949 and is installed on mini-ai. The version string is still0.41.0.dev0, so check for the presence ofKandinsky6TI2VAPipeline, not the version.docs/proposals/audits/2026-10-06-kandinsky-6-audit.md. These claims in this issue are corrected:_T2VA/_I2VA_EXPANSION_INSTRUCTION, off by default). The vendor's full prompting guide iscomfyui/kandinsky6/beautifier_prompts/t2av_system.txt/i2av_system.txt.revision.workflows/templates/kandinsky6/hastext-to-videoandimage-to-video. Both use Lite-distill + audio: 10 PiFlow steps, guidance 1.0, model offload, VAE tiling, width/height multiples of 16, frames 4k+1 up to 509. There are two stored prompts inprompts/kandinsky6/in the vendor beautifier's format, plus a README.e20fff5d: the audio sample rate is now read offaudio_vae.config.sample_ratewhen the vocoder has none. Without it, K6's 44.1 kHz audio would be saved at dw's default rate. This is unit-tested only, because no run has reached the audio decode yet.8df59150: the diffusers updater (POST /api/system/diffusers/update,update_diffusers) did nothing whenever the dev version string was unchanged. That covered both HEAD and pinned commits, and it still reported success. It now does--force-reinstall --no-depsand then a plainpip install diffusersfor any new dependencies. install.sh and install.ps1 do the same. Verified live on mini-ai: pinned to578c9b2, then HEAD back toc6df88a5.22956467: on huggingface_hub 1.33, a completed download was reportedfailed('Tracker' object has no attribute 'set_description_str'). Verified that both K6 repos were complete despite the "failed" status.MPS: parked
On mini-ai (64 GB, torch 2.14.1), Lite-distill t2v denoises fine: 10 steps in about 9:10, 54 s/step, with about 82% of memory free. The worker is then SIGKILLed in the HunyuanVideo VAE decode, whether tiled or not. Standalone probe results:
torch.mps.empty_cache()orPYTORCH_MPS_LOW_WATERMARK_RATIO.This looks like an MPS conv3d retention problem, not dw or diffusers. Revisit on a newer torch. Workflows have no MPS-only component override, so moving the VAE to CPU would slow CUDA as well.
Next (on lem)
c6df88a5(the updater fix makesupdate_diffuserswork for this now).templates/kandinsky6/text-to-videoandimage-to-video; look at and listen to the output; write thecostfor an RTX 3090. Check that the 24 GB layout (model offload + VAE tiling) fits.plugins/dw/skills/kandinsky-6/, pinned bytests/test_plugin_skills.py.expand_prompts, speech/lip-sync, Lite 50/5.0, SR (CUDA), Pro-distill/Pro, and sizing image-to-video from the still's aspect ratio.Also seen, not from this branch:
tests/test_api_contract.py::test_the_committed_document_is_currentfails on a cleanorigin/develop(OpenAPI drift).feat(kandinsky6): #663 - measured cost on an RTX 3090; the dragon pro…
feat(plugin): #663 - kandinsky-6 composition skill
dkackman commentedon Oct 7, 2026
Status 2026-10-06 (later): verified on lem, skill written
feat/663-kandinsky6has develop merged in (90cc1713) and is deployed on lem. Head isa8db4316.e20fff5drate fix live.text-to-video: 3.41 min, including the first load.image-to-video: 3.54 min warm, with about 13 s per denoising step.costis set at 3.5 and 3.6 min.update_diffuserspinned toc6df88a5really changed the install fromc60830ee, and the Lite-distill download finishedcompleted.update_diffusers, the server process keeps its old diffusers import, so admission refusedKandinsky6TI2VAPipelineas nonexistent until the server was restarted. The updater only restarts the worker. Options are to re-exec the server on success, or to reportrestart_requiredin the updater status. This is Don's call.plugins/dw/skills/kandinsky-6/SKILL.md(6.1 KB). Every number in it is pinned intests/test_plugin_skills.py::TestKandinsky6Skillto the diffusers module that enforces it (or, for the schedule, to the templates). Prompts point at Kandinsky Lab'st2av_system.txt/i2av_system.txt. It stops onmps.Still owed, per the onboarding lifecycle: a cold drill of the skill (a fresh session with the plugin, plus a control run without it), then a PR to master.
feat(kandinsky6): #663 - generate-and-upscale: tiled super-resolution…
docs(release): #663 - name Kandinsky 6, the diffusers updater fix and…
Merge branch 'feat/663-kandinsky6' into develop (#663)
dkackman commentedon Oct 7, 2026
Merged to develop:
a2f18203, 2026-10-06lem and mini-ai are both deployed on develop. Both still run diffusers
main(c6df88a5), which the family needs.Since the last update:
templates/kandinsky6/generate-and-upscaleruns Lite-distill, thenKandinsky6SRPipeline(distilled VSR, transformer compiled), thenpair_audio. Output is 1728x960. It took 9.2 min on an RTX 3090 and peaked at 19.3 GiB.tile_sizesheld to the trained[[512, 512]]and the scale held to 2.window_video-> 5 x 121-frame windows, overlap 16 ->join_windows) upscaled that 509-frame clip to 1728x960 in 29 min, with no measurable seams. It is not yet in the catalog.docs/RELEASING.mdNext names the family, the updater fix (including restarting the server after an update) and the download-status fix.Still open:
kandinsky-6skill (a fresh session with the plugin, plus a control run without it), then a PR to master.update_diffusers, the server process keeps its old diffusers import, so admission refuses new classes until the server restarts. Fix by re-execing the server on success, or reportrestart_required. Don's call.expand_prompts, a speech/lip-sync example, Lite 50/5.0 and Pro.kandinsky6/upscale-cliptemplate from the windowed SR.tests/test_api_contract.pyOpenAPI drift on develop.