Skip to content
Merged

0.17.0 #1140

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
208 commits
Select commit Hold shift + click to select a range
0cbd0de
chore: open 0.17.0-alpha.1 on develop
dkackman Oct 28, 2026
3bf128b
docs: add an attributions page, linked from the README
dkackman Oct 30, 2026
e745bca
feat(plugin): #1070 - minimax-h3 style-skills pointer (references/sty…
dkackman Oct 31, 2026
7735379
Merge feat/1059-1-style-pointer (#1070)
dkackman Oct 31, 2026
7495862
feat(audit): #1071 - H3 AISkills probes 2, 3 and 5 on lem (all refuted)
dkackman Oct 31, 2026
e7cc154
Merge feat/1059-2-aiskills-probes (#1071)
dkackman Oct 31, 2026
0c11244
docs: #1085 - reframe a clip to another aspect (crop or native re-ren…
dkackman Oct 31, 2026
cc046a1
fix(install): #1084 - require Python >=3.12 (pyproject, classifiers, …
dkackman Oct 31, 2026
a5d22eb
fix(tasks): #1085 - reframe pointer in fit_to_model mode param doc (s…
dkackman Oct 31, 2026
49b1373
fix(install): #1084 - ps1 range-checks an explicit INSTALL_PYTHON_VER…
dkackman Oct 31, 2026
00e89a9
fix(tasks): #1085 - put the reframe pointer in the served fit_to_mode…
dkackman Oct 31, 2026
69d1876
feat(plugin): #1072 - record the AISkills probes P2/P3/P5 (all refute…
dkackman Oct 31, 2026
24eb678
Merge feat/1059-3-probe-rules (#1072)
dkackman Oct 31, 2026
ec039e4
docs(proposals): #1059 - close-out record for the H3 AISkills probes …
dkackman Oct 31, 2026
b7fbc8e
Merge docs/1059-closeout-aiskills-probes (#1059)
dkackman Oct 31, 2026
7525c41
docs(proposals): #1061 - close-out record for the follow-timeline pro…
dkackman Oct 31, 2026
59a8063
Merge docs/1061-closeout-chain-follow-video (#1061)
dkackman Oct 31, 2026
64b7997
feat(h3): #1077 - regional edit blocks: source latents and mask blend
dkackman Oct 31, 2026
218ce79
feat(h3): #1077 - regional edit argument rules at validate and call
dkackman Oct 31, 2026
b3563b7
feat(h3): #1077 - regional edit tests, guide section and architecture…
dkackman Oct 31, 2026
62ed585
Merge feat/1062-A-h3-regional-edit (#1077)
dkackman Oct 31, 2026
a140207
feat(h3): #1077 - mask arithmetic on Pillow, torch and scipy
dkackman Oct 31, 2026
554775f
Merge feat/1062-A-h3-regional-edit (#1077)
dkackman Oct 31, 2026
0b1787a
feat(h3): #1077 - hold the source mp4's track, strength 1.0 with a so…
dkackman Oct 31, 2026
5ee49b8
Merge feat/1062-A-h3-regional-edit-2 (#1077)
dkackman Oct 31, 2026
71304eb
feat(ltx2): #1079 - alpha-matte template on the Alpha-Gen IC-LoRA
dkackman Oct 31, 2026
ddb1860
Merge feat/1064-A-alpha-matte (#1079)
dkackman Oct 31, 2026
b34b467
feat(loras): #1081 - Open-H3 refiner trial entry, regenerate-2k and t…
dkackman Oct 31, 2026
5fb74d6
Merge feat/1065-A-open-h3-regen-probe (#1081)
dkackman Oct 31, 2026
4fc4fb6
fix(server): #1086 - list_jobs refuses a workspace that doesn't exist
dkackman Oct 31, 2026
520d152
Merge fix/1086-list-jobs-workspace (#1086)
dkackman Oct 31, 2026
d9f3056
style: #1086 - ruff format
dkackman Oct 31, 2026
bac5823
fix(validate): #1087 - refuse a full-frame H3 refine whose size disag…
dkackman Oct 31, 2026
ef73cf0
fix(plan): #1088 - price a single-file LoRA as its file, not its whol…
dkackman Oct 31, 2026
96dd5ad
Merge fix/1088-lora-file-estimate (#1088)
dkackman Oct 31, 2026
908fbba
feat(h3): #1077 - a regional edit's job events name its cells, mask_g…
dkackman Oct 31, 2026
4cc40dc
Merge feat/1062-A-h3-regional-edit-3 (#1077)
dkackman Oct 31, 2026
9ae694b
fix(plan): #1088 - build a LoRA's file entry through file_entries
dkackman Oct 31, 2026
3b8a4da
docs(mcp): #1089 - H3 lead-in is mostly the first denoise pass, not t…
dkackman Oct 31, 2026
7b104eb
fix(plugin): #1089 - keep minimax-h3 SKILL.md under its size cap
dkackman Oct 31, 2026
c5ed8bd
test(mcp): #1089 - the H3 skill carries the re-measured lead-in
dkackman Oct 31, 2026
eed1462
fix(security): GHSA-75fh-g499-53cf, GHSA-9597-5qpq-55x6 - videos list…
dkackman Oct 31, 2026
3b714b2
docs: #1089 - one encode metric in the lead-in breakdown, SERVER.md m…
dkackman Oct 31, 2026
677c04f
docs: credit Longshot Studio for the #1091-#1095 ideas
dkackman Oct 31, 2026
73ceb37
feat(h3): #1082 - refine_sigmas, an explicit refine schedule
dkackman Oct 31, 2026
f47ff16
docs(h3): #1077 - measured refine_strength bands for a regional edit
dkackman Oct 31, 2026
e526430
Merge feat/1062-A-strength-docs: #1077 measured regional-edit strengt…
dkackman Oct 31, 2026
a3672fd
test(h3): #1077 - a string refine_strength is refused where it reache…
dkackman Oct 31, 2026
56fe3c7
Merge feat/1062-A-string-strength: #1077 string refine_strength tests
dkackman Oct 31, 2026
64722a0
fix(h3): #1077 - a latent refine keeps its verbatim range message
dkackman Oct 31, 2026
a34b4d1
Merge feat/1062-A-verbatim-range: #1077 verbatim latent-refine range …
dkackman Oct 31, 2026
0a96240
feat(h3): #1078 - regional-edit template and minimax-h3 skill branch
dkackman Oct 31, 2026
b169f5a
Merge feat/1062-B-regional-edit-template: #1078 regional-edit templat…
dkackman Oct 31, 2026
3b0707c
feat(h3): #1078 - regional-edit cost recalibrated to the measured 2.1…
dkackman Oct 31, 2026
5e04cab
Merge feat/1062-B-regional-edit-template: #1078 regional-edit cost re…
dkackman Oct 31, 2026
9ec2df8
feat(ltx2): #1079 - alpha-matte written at the source's frame rate
dkackman Oct 31, 2026
c6a5878
Merge feat/1064-A-alpha-matte-fps: #1079 alpha-matte at the source's …
dkackman Oct 31, 2026
56d1819
docs: #1062 close-out - H3 regional edit design record
dkackman Oct 31, 2026
66d0eb3
Merge docs/1062-close-out-regional-edit: #1062 design record
dkackman Oct 31, 2026
02ebe65
docs(h3): #1082 - Explicit refine sigmas reachable through get_guide
dkackman Oct 31, 2026
1cc889f
Merge feat/1065-B-refine-sigmas: #1082 guide subsection reachable
dkackman Oct 31, 2026
92d09b5
docs(stems): #1096 - htdemucs as a dialogue/rest splitter, A/B record
dkackman Oct 31, 2026
18d68aa
Merge feat/1091-A-dialogue-stems: #1096 dialogue/rest stems record
dkackman Oct 31, 2026
5080a5d
docs(proposals): #1065 - Open-Regenerate-2K refiner design record
dkackman Oct 31, 2026
080f915
Merge docs/1065-close-out-open-regen-2k: #1065 design record
dkackman Oct 31, 2026
0e265cb
fix(video): #1109 - write fractional frame rates exactly
dkackman Oct 31, 2026
1d2d29a
docs(arch): #1109 - map row for writing a video at its rate, plus gua…
dkackman Oct 31, 2026
da0fd43
feat(ltx2): #1079 - alpha-matte keeps vae, audio_vae and vocoder off …
dkackman Oct 31, 2026
99af967
Merge feat/1064-A-alpha-matte-residency: #1079 on-demand decoders
dkackman Oct 31, 2026
d52f1ae
feat(plugin): #1100 - cutaway and lead-in joins in the script-to-vide…
dkackman Oct 31, 2026
fb40f1c
Merge feat/1093-A-script-to-video-joins: #1100 joins in script-to-video
dkackman Oct 31, 2026
e73d53d
fix(templates): #1110 - price last-frame-only and first-and-last-fram…
dkackman Oct 31, 2026
db71fc1
feat(face-track): #1098 - crops carry the padded soundtrack; min_fram…
dkackman Oct 31, 2026
3d8bc20
Merge feat/1092-B-crop-audio-window: #1098 crop soundtrack and window
dkackman Oct 31, 2026
76d10b4
docs(proposals): #1093 - design record for cutaway and lead-in joins
dkackman Oct 31, 2026
d868c33
Merge docs/1093-closeout-script-to-video-joins: #1093 design record
dkackman Oct 31, 2026
a99b088
feat(templates): #1079 - alpha-matte says a hard cut leaks; matte one…
dkackman Oct 31, 2026
6b1dcfc
Merge feat/1064-A-alpha-matte-cut-note: #1079 shot-cut note
dkackman Oct 31, 2026
416c406
feat(templates): #1080 - restore-colorize template and dual-panel prompt
dkackman Oct 31, 2026
60aef90
feat(templates): #1080 - restore-colorize route, docs and tests
dkackman Oct 31, 2026
f5f792c
feat(templates): #1099 - minimax/face-repair: H3 t2va face refine wit…
dkackman Oct 31, 2026
3cc3805
feat(templates): #1099 - face-repair cost measured on lem: 2.2 min (j…
dkackman Oct 31, 2026
5c1b3de
Merge feat/1092-C-h3-face-repair: #1099 H3 face repair template
dkackman Oct 31, 2026
416ed93
feat(templates): #1099 - face-repair declares the LoRA and shift vari…
dkackman Oct 31, 2026
b110e7c
Merge feat/1092-C-h3-face-repair: #1099 schedule variables
dkackman Oct 31, 2026
1a0cbdb
Merge branches 'develop' and 'develop' of https://github.com/dkackman…
dkackman Oct 31, 2026
cef4041
feat(plugin): #1096 - series-episodes dialogue/rest recipe via separa…
dkackman Oct 31, 2026
7621cc2
Merge feat/1091-A-dialogue-recipe (#1096)
dkackman Oct 31, 2026
f0fb02d
fix(security): GHSA-w9qv-2pg5-j79m, GHSA-75cg-7964-pjwx - reference e…
dkackman Oct 31, 2026
dd801d8
Merge branch 'develop' of https://github.com/dkackman/diffusers-workf…
dkackman Oct 31, 2026
61a1b4a
feat(plugin): #1096 - dialogue recipe keeps balanced for headroom, no…
dkackman Oct 31, 2026
fd151ec
Merge feat/1091-A-dialogue-headroom (#1096)
dkackman Oct 31, 2026
139db09
Merge remote-tracking branch 'origin/develop' into feat/1064-B-restor…
dkackman Oct 31, 2026
a7e267c
feat(tasks): #1104 - analyze_phrases task: sung phrases from centre-w…
dkackman Oct 31, 2026
0f6fb26
Merge feat/1095-A-analyze-phrases (#1104)
dkackman Oct 31, 2026
9c49e16
feat(templates): #1080 - restore-colorize cost from a lem run; ic-col…
dkackman Oct 31, 2026
65f2628
Merge feat/1064-B-restore-colorize (#1080)
dkackman Oct 31, 2026
4f9b3a1
docs(proposals): #1092 - H3 face repair close-out record
dkackman Oct 31, 2026
2eb54ce
Merge docs/1092-closeout (#1092)
dkackman Oct 31, 2026
bda5d3a
feat(tasks): #1105 - plan_cuts takes analyze_phrases' result
dkackman Oct 31, 2026
0e35506
Merge feat/1095-B-plan-cuts-phrases (#1105)
dkackman Oct 31, 2026
ec2d3c3
docs(proposals): #1091 - dialogue/rest stems close-out record
dkackman Oct 31, 2026
cb49329
Merge docs/1091-closeout (#1091)
dkackman Oct 31, 2026
9aff5c7
feat(templates): #1080 - restore-colorize prompt must describe the cl…
dkackman Nov 1, 2026
3d211b3
Merge feat/1064-B2-colorize-prompt (#1080)
dkackman Nov 1, 2026
4256fdd
feat(tasks): #1106 - source fps for paste_face_track, join_windows an…
dkackman Nov 1, 2026
200a338
test(tasks): #1106 - source fps tests for paste_face_track, join_wind…
dkackman Nov 1, 2026
fc0a40d
Merge feat/1090-B-source-fps-face-restore-long (#1106)
dkackman Nov 1, 2026
e748fc2
feat(templates): #1107 - upscale-clip, refine-clip and refine-in-plac…
dkackman Nov 1, 2026
c41fb9f
Merge feat/1090-A-source-fps-fit-shaped (#1107)
dkackman Nov 1, 2026
b375e3b
docs(proposals): #1064 - design record for the remaining LTX-2.5 IC-L…
dkackman Nov 1, 2026
c69a6cb
Merge docs/1064-close-out (#1064)
dkackman Nov 1, 2026
1d1a4ee
feat(templates): #1108 - restore-deblur and restore-decompression fit…
dkackman Nov 1, 2026
f47d2ad
Merge feat/1090-C-deblur-decompression-fit (#1108)
dkackman Nov 1, 2026
af5a38d
docs(proposals): #1090 - design record for one-for-one templates foll…
dkackman Nov 1, 2026
1d654e8
Merge docs/1090-close-out (#1090)
dkackman Nov 1, 2026
5880731
feat(plugin): #1103 - record the odd-then-bridge probe as "probed, no…
dkackman Nov 1, 2026
7dd927b
Merge feat/1094-B-cuts-probe-record (#1103)
dkackman Nov 1, 2026
c439731
feat(validation): #1111 - refuse a literal cross-entry reference insi…
dkackman Nov 1, 2026
9b65ba8
Merge feat/1101-A-refuse-cross-entry-ref (#1111)
dkackman Nov 1, 2026
5da0f56
docs: #1094 close-out - odd-then-bridge design record (doesn't win)
dkackman Nov 1, 2026
b18f9d3
Merge docs/1094-close-out (#1094)
dkackman Nov 1, 2026
7502e47
refactor(validation): #1111 - move cross_entry_key into for_each besi…
dkackman Nov 1, 2026
168a61c
Merge feat/1101-A-refuse-cross-entry-ref (#1111, arch-review fix)
dkackman Nov 1, 2026
aa49e2d
fix(check-script): #1115 - speech_not_transcribed reports each audibl…
dkackman Nov 1, 2026
947c7c7
Merge fix/1115-untranscribed-blocks (#1115)
dkackman Nov 1, 2026
3a3b3a1
feat(ltx2): #1114 - document restore-colorize's colour limit on low-r…
dkackman Nov 1, 2026
f3fdb6c
Merge feat/1064-C-colorize-limit (#1114)
dkackman Nov 1, 2026
6b1afbf
docs(proposals): #1101 - close-out record for refusing for_each cross…
dkackman Nov 1, 2026
96dbdd9
Merge docs/1101-closeout (#1101)
dkackman Nov 1, 2026
635d46c
fix(check-script): #1115 - split an untranscribed block at the shot s…
dkackman Nov 1, 2026
7f5a646
docs(proposals): #1064 - close-out record adds fix-forward stage C (#…
dkackman Nov 1, 2026
9f28f71
Merge docs/1064-closeout-stage-c (#1064)
dkackman Nov 1, 2026
1bb6b87
fix(check-script): #1115 - keep a line's timing inside its shot; chec…
dkackman Nov 1, 2026
d517659
Merge fix/1115-line-timing-and-unheard-clip (#1115)
dkackman Nov 1, 2026
93ff061
fix(timing): #1116 - warn when a cached pipeline's decode runs for mi…
dkackman Nov 1, 2026
503b228
Merge fix/1116-slow-decode-warning (#1116)
dkackman Nov 1, 2026
671ed7c
fix(check-script): #1117 - a take with no shots is one implicit shot …
dkackman Nov 1, 2026
b1fb282
Merge fix/1117-implicit-shot (#1117)
dkackman Nov 1, 2026
f3bbd9e
fix(check-script): #1118 - a looped bed in a line gap is not untransc…
dkackman Nov 1, 2026
226b339
Merge fix/1118-looped-bed (#1118)
dkackman Nov 1, 2026
955cd88
refactor(dsp): #1118 - looped-bed self-correlation measured in dsp vi…
dkackman Nov 1, 2026
96bfd47
fix(timing): #1119 - first_pass_slow no longer claims a shape cause i…
dkackman Nov 1, 2026
c4867c2
feat(tasks): #1120 - vendored, ported Audio8-TTS model module
dkackman Nov 1, 2026
94c0aad
Merge feat/1112-B-audio8-model (#1120)
dkackman Nov 1, 2026
5748f4d
fix(timing): #1119 - pin the first_pass_slow wording; docstring drops…
dkackman Nov 1, 2026
e8782f1
fix(ui): minimatch 11.0.3 for eslint and typescript-eslint (GHSA-g3hv…
dkackman Nov 1, 2026
957a7c5
feat(plugin): #1125 - beat authoring and the beat review in script-to…
dkackman Nov 1, 2026
84e8edd
Merge feat/1122-A-beat-review (#1125)
dkackman Nov 1, 2026
2c86a23
feat(tasks): #1121 - Audio8-TTS branch in generate_speech, voice-clon…
dkackman Nov 1, 2026
37f457f
feat(speech): #1121 - Audio8 docs, voice-clone plugin line, step-cach…
dkackman Nov 1, 2026
ad343b3
Merge feat/1112-C-audio8-wiring (#1121)
dkackman Nov 1, 2026
8ad64d2
docs(proposals): #1122 - beat review design record
dkackman Nov 1, 2026
6716fbb
Merge docs/1122-closeout-beat-review (#1122)
dkackman Nov 1, 2026
5546c17
fix(check-script): #1129 - name speech outside a partial shot map in …
dkackman Nov 1, 2026
b0ac9b4
feat(speech): #1121 - refuse top-level Hub-code arguments in generate…
dkackman Nov 1, 2026
defa6e1
Merge feat/1112-C-audio8-remote-args (#1121)
dkackman Nov 1, 2026
2ca6ece
fix(stems): #1130 - no random-shift averaging on a clip shorter than …
dkackman Nov 1, 2026
e45b228
fix(trust): GHSA-hhfj-p9xj-xjmr - refuse Hub-code task arguments at v…
dkackman Nov 1, 2026
6d72885
feat(docs): #1126 - story-forge lessons 1-2 probes
dkackman Nov 1, 2026
567af8c
Merge feat/1123-A-story-forge-probes (#1126)
dkackman Nov 1, 2026
a49d198
fix(stems): #1130 - read the BagOfModels max_allowed_segment so the s…
dkackman Nov 1, 2026
f1020d8
Merge fix/1130-bag-segment
dkackman Nov 1, 2026
097e633
feat(docs): #1127 - story-forge lessons 3, 4, 6 probes
dkackman Nov 1, 2026
f247071
Merge feat/1123-B-story-forge-probes (#1127)
dkackman Nov 1, 2026
580365c
fix(tasks): #1134 - attribute_voices accepts an audio step's output (…
dkackman Nov 1, 2026
ee14a9f
feat(docs): #1127 - L4 table cites job ids, not run ids
dkackman Nov 1, 2026
0193bb0
Merge feat/1123-B-story-forge-probes (#1127, L4 job ids)
dkackman Nov 1, 2026
d6c3fbf
docs(proposals): #1112 - Audio8-TTS voice cloning design record
dkackman Nov 1, 2026
24204b0
Merge docs/1112-audio8-close-out (#1112 design record)
dkackman Nov 1, 2026
9f67217
feat(tasks): #1131 - vendored MMAudio flow network, Euler sampler and…
dkackman Nov 1, 2026
ac8b312
Merge feat/1124-B-mmaudio-network (#1131, MMAudio network)
dkackman Nov 1, 2026
a85dcba
feat(tasks): #1132 - vendored Synchformer, MMAudio decoder load, fram…
dkackman Nov 1, 2026
1ea1679
Merge feat/1124-C-mmaudio-sync-decoder (#1132, Synchformer, decoder, …
dkackman Nov 1, 2026
a56ce32
fix(tasks): #1135 - transcribe_audio marks chunks of a near-silent cl…
dkackman Nov 1, 2026
ebe8d21
feat(skills): enhance voice description guidelines for LTX-2.5
dkackman Nov 1, 2026
b4fd85a
fix(tasks): #1136 - transcribe_audio marks Whisper's stock outro line…
dkackman Nov 1, 2026
b14e244
docs(tasks): #1136 - plan_cuts docstring names stock_phrase
dkackman Nov 1, 2026
28ef460
feat(tasks): #1105 - phrase advice: floor_db for fused legato lines, …
dkackman Nov 1, 2026
625e38e
Merge feat/1095-B-phrase-advice (#1105)
dkackman Nov 1, 2026
8818eba
refactor(tasks): #1105 - disproportion warning uses statistics.median
dkackman Nov 1, 2026
46d1ec2
Merge feat/1095-B-median (#1105)
dkackman Nov 1, 2026
12a2b36
fix(tasks): #1137 - plan_cuts mismatch warning: 'so the counts match'…
dkackman Nov 1, 2026
cbe3453
feat(docs): #1127 - L4 Klein probes
dkackman Nov 1, 2026
d71bc1f
Merge feat/1123-B-probes-klein (#1127, L4 Klein probes)
dkackman Nov 1, 2026
c2496b7
fix(tasks): #1136 - stock_phrase also marks word-mode chunks of a sto…
dkackman Nov 1, 2026
a5d06ac
Merge fix/1136-word-mode (#1136)
dkackman Nov 1, 2026
e98b083
feat(plugin): #1128 - land story-forge lesson 5 as framing guidance
dkackman Nov 1, 2026
cb428f6
Merge feat/1123-C-land-lessons (#1128, story-forge lesson 5 guidance)
dkackman Nov 1, 2026
eafa8ff
fix(tasks): #1138 - transcribe_audio marks 5-6 word loops and duplica…
dkackman Nov 1, 2026
374c996
Merge branch 'develop' of https://github.com/dkackman/diffusers-workf…
dkackman Nov 1, 2026
4f56e22
feat(tasks): #1133 - generate_sound_effects task (MMAudio) and its re…
dkackman Nov 1, 2026
f48492f
docs: #1095 close-out - analyze_phrases design record
dkackman Nov 1, 2026
0775528
Merge docs/1095-close-out (#1095 design record)
dkackman Nov 1, 2026
15fae93
feat(catalog): #1133 - video-to-sound-effects and text-to-sound-effec…
dkackman Nov 1, 2026
3816db3
feat(docs): #1133 - sound effects docs, skill lines and tests
dkackman Nov 1, 2026
d6406fc
Merge feat/1124-D-sound-effects (#1133, generate_sound_effects)
dkackman Nov 1, 2026
f1bfb46
docs: #1123 close-out - story-forge lessons design record
dkackman Nov 1, 2026
a8f5ea4
Merge docs/1123-close-out (#1123 design record)
dkackman Nov 1, 2026
c6e674a
fix(tasks): #1133 - shared argument domains and trust helper for gene…
dkackman Nov 1, 2026
dd497b2
Merge feat/1124-D-sound-effects (#1133 arch-review fix)
dkackman Nov 1, 2026
db84003
feat(tasks): #1133 - announce generate_sound_effects loads, document …
dkackman Nov 1, 2026
a089b11
Merge feat/1124-D-sound-effects-2 (#1133 tester bounce fix)
dkackman Nov 1, 2026
2d542c3
fix(tasks): #1133 - a clip's fractional length is the default duratio…
dkackman Nov 1, 2026
e6864b3
Merge feat/1124-D-sound-effects-3 (#1133 tester bounce fix)
dkackman Nov 1, 2026
59b7869
docs(proposals): #1124 close-out - MMAudio sound effects design record
dkackman Nov 1, 2026
15707ef
Merge docs/1124-closeout-mmaudio (#1124 close-out record)
dkackman Nov 1, 2026
8943952
release prep 0.17.0: ratchet back to green, review fixes, H3 skill ro…
dkackman Nov 1, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ two front ends on it: an **MCP server**, so Claude Code (or any MCP client)
can author, run and inspect generations; and a **web UI** for doing the same
by hand. A CLI sits underneath for when you want neither.

**Python 3.10-3.14 | CUDA (NVIDIA) | MPS (Apple Silicon) | CPU**
**Python 3.12-3.14 | CUDA (NVIDIA) | MPS (Apple Silicon) | CPU**

<picture>
<source media="(prefers-color-scheme: dark)" srcset="docs/img/ui-workflows-dark.png">
Expand Down Expand Up @@ -245,3 +245,4 @@ frame interpolation and more.
- [Testing](docs/TESTING.md) — Running the test suite
- [Releasing](docs/RELEASING.md) — Cutting a release from a version tag
- [Agent Loop](docs/AGENT_LOOP.md) — What the automated implementer/tester ticket labels mean, for anyone joining an Issue
- [Attributions](docs/ATTRIBUTIONS.md) — Code included from other projects, and the projects whose ideas dw reimplemented
17 changes: 10 additions & 7 deletions docs/ARCHITECTURE.md

Large diffs are not rendered by default.

111 changes: 111 additions & 0 deletions docs/ATTRIBUTIONS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
# Attributions

diffusers-workflow is Apache-2.0. This page credits the work it builds on that
a dependency list does not show: code that was copied in, and other projects
whose ideas were reimplemented here. Python dependencies are in
[requirements.txt](../requirements.txt) and [pyproject.toml](../pyproject.toml).
Model and LoRA weights keep their own licences, and each catalog entry
([workflows/models/](../workflows/models/), [loras/](../loras/)) names the
repository it downloads from.

## Code included in this repository

Each file keeps its upstream licence notice in its header.

| File | Source | Licence |
|---|---|---|
| [dw/tasks/rife_model.py](../dw/tasks/rife_model.py) | The RIFE interpolation network from [hzwer/Practical-RIFE](https://github.com/hzwer/Practical-RIFE) | MIT, Copyright (c) Megvii Inc. |
| [dw/tasks/h3_latent_upscaler_model.py](../dw/tasks/h3_latent_upscaler_model.py) | The MiniMax H3 3D-convolution latent upscaler from [LBH-123-AI/Comfyui_Minimax_h3_latent_Upscaler](https://github.com/LBH-123-AI/Comfyui_Minimax_h3_latent_Upscaler) | MIT, Copyright (c) LBH-123-AI |
| [dw/vendored/audio8_tts_model.py](../dw/vendored/audio8_tts_model.py) | The Audio8-TTS (ArkTTS) dual-AR speech model, codec and processor from [Edge0/Audio8-TTS-Realistic-0.6b](https://huggingface.co/Edge0/Audio8-TTS-Realistic-0.6b/tree/1e857568bfd4f02931aca3988ee773a44d2d26d3), ported (upstream NOTICE kept in the file header) | Apache-2.0 |
| [dw/vendored/mmaudio_model.py](../dw/vendored/mmaudio_model.py), [dw/vendored/mmaudio_clip.py](../dw/vendored/mmaudio_clip.py) | The MMAudio flow-matching network, its sequence lengths and classifier-free guidance, and the CLIP conditioning from [hkchengrex/MMAudio](https://github.com/hkchengrex/MMAudio/tree/974010a026c731054592d8f777218bd9d85a6c24), ported (the sampler is dw's own Euler loop, and the DFN5B towers are transformers' CLIP models filled by a key map) | MIT, Copyright (c) 2024 Sony Research Inc. |
| [dw/vendored/mmaudio_sync_model.py](../dw/vendored/mmaudio_sync_model.py) | MMAudio's Synchformer visual encoder (a MotionFormer feature extractor) and its 16-frame segmenting, from [hkchengrex/MMAudio](https://github.com/hkchengrex/MMAudio/tree/974010a026c731054592d8f777218bd9d85a6c24)'s `mmaudio/ext/synchformer/`, ported without timm, einops or omegaconf | MIT, Copyright (c) 2024 Vladimir Iashin |
| [dw/tasks/mmaudio_decoder.py](../dw/tasks/mmaudio_decoder.py) | Loads diffusers' `MMAudioVAE` and `MMAudioVocoder`; the vocoder is [BigVGAN](https://github.com/NVIDIA/BigVGAN) (no BigVGAN code is copied here: the classes are diffusers') | BigVGAN: MIT, Copyright (c) 2024 NVIDIA CORPORATION |
| [dw/community_pipelines/pipeline_flux_rf_inversion.py](../dw/community_pipelines/pipeline_flux_rf_inversion.py) | The diffusers community RF-Inversion pipeline, after [RF Inversion](https://rf-inversion.github.io/) by Litu Rout, Yujia Chen, Nataniel Ruiz, Constantine Caramanis, Sanjay Shakkottai and Wen-Sheng Chu | Apache-2.0, Copyright 2024 Black Forest Labs and The HuggingFace Team |
| [dw/prompt_weighting.py](../dw/prompt_weighting.py) | Based on [sd_embed](https://github.com/xhinker/sd_embed) by Andrew Zhu | Apache-2.0 |

## Model weights with their own terms

Most weights are named only by their catalog entry. These are listed here as
well, because their terms are narrower than this repository's licence and
apply to anything generated with them.

| Weights | Used by | Licence |
|---|---|---|
| [hkchengrex/MMAudio](https://huggingface.co/hkchengrex/MMAudio) (`weights/mmaudio_large_44k_v2.pth` and its `ext_weights/`) | `generate_sound_effects`: [dw/vendored/mmaudio_model.py](../dw/vendored/mmaudio_model.py) | [CC-BY-NC 4.0](https://creativecommons.org/licenses/by-nc/4.0/): non-commercial use only |
| [hkchengrex/MMAudio](https://huggingface.co/hkchengrex/MMAudio) `ext_weights/synchformer_state_dict.pth` | `generate_sound_effects`, MMAudio's sync features, [dw/vendored/mmaudio_sync_model.py](../dw/vendored/mmaudio_sync_model.py) | [CC-BY-NC 4.0](https://creativecommons.org/licenses/by-nc/4.0/): non-commercial use only |
| [kandinskylab/Kandinsky-6.0-Lite-distill-5s-Diffusers](https://huggingface.co/kandinskylab/Kandinsky-6.0-Lite-distill-5s-Diffusers/tree/4c487e8b4aeeb9059e5a77905aa2ddb59ec28f81) `audio_vae/` and `vocoder/` | `generate_sound_effects`, MMAudio's decoder, [dw/tasks/mmaudio_decoder.py](../dw/tasks/mmaudio_decoder.py) | The MMAudio VAE tensors: [CC-BY-NC 4.0](https://creativecommons.org/licenses/by-nc/4.0/), non-commercial use only, as MMAudio's weights (K6's model card states MIT; dw follows the stricter MMAudio terms). The BigVGAN vocoder: MIT. |
| [apple/DFN5B-CLIP-ViT-H-14-384](https://huggingface.co/apple/DFN5B-CLIP-ViT-H-14-384) | `generate_sound_effects`, MMAudio's CLIP conditioning, [dw/vendored/mmaudio_clip.py](../dw/vendored/mmaudio_clip.py) | [Apple Machine Learning Research Model License](https://huggingface.co/apple/DFN5B-CLIP-ViT-H-14-384/blob/main/LICENSE): research purposes only. Apple Machine Learning Research Model is licensed under the Apple Machine Learning Research Model License Agreement. dw maps the weights into transformers' layout in memory at load time and never writes or ships converted tensors. |

## Ideas reimplemented here

These projects showed an approach that dw rebuilt in its own code for
diffusers. No code, prompt text or data was copied from them; where a licence
does not allow reuse, only the concept was taken. The issue numbers link to the
design discussion, which names the source files consulted.

### [vrgamegirl19/comfyui-vrgamedevgirl](https://github.com/vrgamegirl19/comfyui-vrgamedevgirl)

A ComfyUI node pack and set of workflows for MiniMax H3 and LTX-2 film making,
assessed in October 2026. It is source-available under a licence that does not
allow reuse here, so only concepts were taken. It inspired:

- holding the reference audio during H3 denoising, and a refine pass after the
latent upscale ([#598](https://github.com/dkackman/diffusers-workflow/issues/598))
- tracked, distance-gated face repair with LTX on face crops ([#599](https://github.com/dkackman/diffusers-workflow/issues/599))
- the music-video timing stack: beat analysis, a lyric- and beat-aware cut
planner, pad-then-trim shots ([#600](https://github.com/dkackman/diffusers-workflow/issues/600))
- overlapping windows for long video sources, joined with a cosine blend
(`window_video`, `join_windows`; [#601](https://github.com/dkackman/diffusers-workflow/issues/601))
- the exact size and frame-count round trip for video-to-video templates
(`fit_to_model`, `restore_to_source`; [#602](https://github.com/dkackman/diffusers-workflow/issues/602))
- the finishing tasks: LUT apply and make, film grain, sharpen, tonal controls
in `grade` ([#603](https://github.com/dkackman/diffusers-workflow/issues/603))
- stem separation as its own task (`separate_stems`; [#604](https://github.com/dkackman/diffusers-workflow/issues/604))
- strength-selectable same-size LTX refine and per-segment strength decay in
chains ([#606](https://github.com/dkackman/diffusers-workflow/issues/606))
- laying out a reference sheet from individual images (`ingredients_grid`; [#607](https://github.com/dkackman/diffusers-workflow/issues/607))
- the H3 dialogue-budget warnings ([#608](https://github.com/dkackman/diffusers-workflow/issues/608))
- checking a take's transcript against the expected lines (`check_script`; [#609](https://github.com/dkackman/diffusers-workflow/issues/609))
- the script-to-video shot-list contract and voice bible ([#610](https://github.com/dkackman/diffusers-workflow/issues/610))
- H3 chunk continuation in latent space ([#611](https://github.com/dkackman/diffusers-workflow/issues/611))
- trying the Alissonerdx H3 LoRAs, which its workflows use ([#612](https://github.com/dkackman/diffusers-workflow/issues/612))

### [Kablex/ComfyUI-Ref2VA-VSA](https://github.com/Kablex/ComfyUI-Ref2VA-VSA)

Apache-2.0. Showed that MiniMax H3's Ref2VA attention could run block-sparse,
building on the [FastVideo](https://github.com/hao-ai-lab/FastVideo) team's
VSA-H3 sparse-attention work. dw's `sparse` attention backend
([dw/sparse_attention.py](../dw/sparse_attention.py),
[#931](https://github.com/dkackman/diffusers-workflow/issues/931)) runs on
[comfy-kitchen](https://pypi.org/project/comfy-kitchen/)'s Sol-Attn kernel, a
dependency.

### [mo-akkakk/ComfyUI-MiniMaxH3-TemporalWindow-SpatialTiles](https://github.com/mo-akkakk/ComfyUI-MiniMaxH3-TemporalWindow-SpatialTiles)

MIT. The tiled low-sigma refine after an H3 upscale (`refine_tiles`,
[#1043](https://github.com/dkackman/diffusers-workflow/issues/1043)), and the
approach of the test that checks a one-segment H3 chain is bit-identical to a
native run on a tiny random-weight model on CPU
([#1046](https://github.com/dkackman/diffusers-workflow/issues/1046)).

### [harlixay7/Kinoloom](https://github.com/harlixay7/Kinoloom)

MIT. Its seamless-chain research gave `analyze_seams` its saturation,
lightness, contrast and detail measures
([#1031](https://github.com/dkackman/diffusers-workflow/issues/1031)), and the
`script-to-video` skill its guidance on re-rolling a chained segment whose seam
fails ([#1034](https://github.com/dkackman/diffusers-workflow/issues/1034)).

### [r34vtraining/Longshot_Studio](https://github.com/r34vtraining/Longshot_Studio)

A ComfyUI studio for making long MiniMax H3 films shot by shot, assessed in
October 2026. It has no licence, so only concepts are taken. Its ideas are
filed as dialogue/effects stem separation
([#1091](https://github.com/dkackman/diffusers-workflow/issues/1091)), an H3
face refine with the audio held
([#1092](https://github.com/dkackman/diffusers-workflow/issues/1092)), cutaway
and lead-in joins ([#1093](https://github.com/dkackman/diffusers-workflow/issues/1093)),
rendering the odd shots of a long take first and bridging the gaps
([#1094](https://github.com/dkackman/diffusers-workflow/issues/1094)), and
finding phrase starts from the centre of the stereo mix
([#1095](https://github.com/dkackman/diffusers-workflow/issues/1095)).
2 changes: 1 addition & 1 deletion docs/DEPENDENCIES.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ source ./activate
.\venv\scripts\activate
```

The install scripts handle everything: Python version detection (3.10-3.14), virtual environment creation, PyTorch, diffusers, and all dependencies.
The install scripts handle everything: Python version detection (3.12-3.14), virtual environment creation, PyTorch, diffusers, and all dependencies.

### Manual Installation

Expand Down
17 changes: 12 additions & 5 deletions docs/MCP.md
Original file line number Diff line number Diff line change
Expand Up @@ -424,11 +424,18 @@ one phase, so two polls otherwise come back identical: read `denoise_step`
moving (slow but healthy) against a `denoise_step` that is a number and
stays put while `seconds_since_event` climbs (nothing is happening). A null
`denoise_step` under `generating` is neither - it is the lead-in the
pipeline runs before the loop, encoding the prompt and every reference, with
nothing emitted, so silence there is expected. Its length follows what it
encodes: ~90 s on MiniMax H3 for a prompt with an image or audio reference,
~10 min once a *video* reference is among them (measured: 629 s for one 5 s
960x544 clip on an RTX 3090). `get_job_events` names the block it is in
pipeline runs before the loop, encoding the prompt and every reference and
then the first denoise pass, with nothing emitted, so silence there is
expected. On MiniMax H3 the first pass dominates the lead-in, not the encode,
and it varies by card. The reference encode (`vae_encoder`) is about 6 s for
an image reference and about 50-53 s for a 5 s 960x544 video reference;
reference tokens make the first pass slower. Measured on lem: an image
reference's lead-in was 187 s (job `f90a041af26a`: `timing.encode_s` 26 s,
first pass 161 s; of the encode, `vae_encoder` was 6 s); the same image +
video job took 508 s on cuda:1 (`f5aefcdd5e26`: `encode_s` 86 s, first pass
422 s; `vae_encoder` 59 s) and 165 s on cuda:0 (`6961876f11d3`: `encode_s`
79 s, first pass 86 s; `vae_encoder` 56 s). Plan for several minutes, up to
~8.5 min measured (508 s, `f5aefcdd5e26`), with a video reference. `get_job_events` names the block it is in
while that runs - a `log` line per top-level block of a modular pipeline
(`MiniMaxAI/MiniMax-H3: vae_encoder`), which is the difference between
silence and knowing it is encoding the reference. And once the counter is a number the gaps
Expand Down
Loading
Loading