Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
121 commits
Select commit Hold shift + click to select a range
1f3c8f1
fix(tasks): #185 #187 - stop advertising device on non-consuming task…
dkackman Sep 17, 2026
09875d9
Merge fix/185-187-task-device-and-gain-audio
dkackman Sep 17, 2026
993fe44
fix(plan): #186 - surface gate status in downloads_required pre-flight
dkackman Sep 17, 2026
da1c239
Merge fix/186-gated-repo-preflight
dkackman Sep 17, 2026
ea272ce
feat(tasks): #188 - add transcribe_audio ASR task
dkackman Sep 17, 2026
3586fd3
Merge fix/188-transcribe-audio
dkackman Sep 17, 2026
3ae67b7
fix(tasks): #188 - drop unused imports left in audio_utils.py
dkackman Sep 17, 2026
f78226e
fix(plan): #186 - actually probe file access to detect a blocked gate
dkackman Sep 17, 2026
cecbc4c
Merge fix/186-gate-probe
dkackman Sep 17, 2026
a5cef23
fix(templates): #196 - resample the score at its own rate in dissolve…
dkackman Sep 17, 2026
b070e15
Merge fix/196-dissolve-slice-audio-rate
dkackman Sep 17, 2026
f19f839
docs(audio): correct loop_audio crossfade claim, document gain_audio …
dkackman Sep 17, 2026
7372e31
Merge docs/audio-loop-gain-clarifications
dkackman Sep 17, 2026
fcd87bd
fix(audio): #197 - fit in-memory-generated audio to frame count befor…
dkackman Sep 17, 2026
a0cd11a
fix(audio): #198/#199 - warn on tonal bleed material, add gain_db to …
dkackman Sep 17, 2026
3541cde
Merge fix/197-198-199-bleed-audio-seam
dkackman Sep 17, 2026
392fc0b
docs(mcp): #201 - name workspace isolation explicitly in the path-ref…
dkackman Sep 17, 2026
e9c7106
Merge branch 'docs/workspace-isolation-error-message' into develop
dkackman Sep 17, 2026
aebda18
fix(video): #197 - make _fit_audio_to_frames tensor-aware for in-memo…
dkackman Sep 17, 2026
28ee9ff
Merge fix/197-tensor-audio-pad into develop
dkackman Sep 17, 2026
15e9921
fix(audio): #198 - detect speech/tonal bleed tails at native rate
dkackman Sep 17, 2026
c42acea
Merge fix/198-bleed-join-tonal-detection into develop
dkackman Sep 17, 2026
1786a92
fix(audio): #200/#207 - add compress_audio, filter_audio, analyze_aud…
dkackman Sep 17, 2026
f4ec030
Merge fix/200-audio-dynamics-filter-analyze into develop
dkackman Sep 17, 2026
f5f0229
fix(mcp): #202 - add JSON merge patch support to save_workflow
dkackman Sep 17, 2026
c0e58e7
Merge fix/202-save-workflow-patch into develop
dkackman Sep 17, 2026
9b9b799
fix(mcp): #203/#204 - inline-bytes upload_asset content path + get_ou…
dkackman Sep 17, 2026
1abd2a6
feat: #119 - select reducer, judge scorer, selected manifest field
dkackman Sep 18, 2026
c29e2f1
Merge fix/119-score-and-select into develop
dkackman Sep 18, 2026
c15114b
docs(mcp): #203/#204 - document inline upload content= and get_output…
dkackman Sep 18, 2026
2382a72
Merge fix/203-204-inline-media into develop
dkackman Sep 18, 2026
14e118f
fix: #205 - audio sample_rate relabel silent at the engine save path
dkackman Sep 18, 2026
e762dae
Merge fix/205-audio-sample-rate-relabel into develop
dkackman Sep 18, 2026
c8460f1
docs(mcp): #206 - clarify get_health worker_alive means resident, not…
dkackman Sep 18, 2026
cb44420
Merge fix/206-worker-alive-description into develop
dkackman Sep 18, 2026
f661b8c
fix: #211 - analyze_audio spectral bands now share rms_dbfs's scale
dkackman Sep 18, 2026
2a9691a
Merge fix/211-spectral-balance-scale into develop
dkackman Sep 18, 2026
6b63b78
fix(server): #184 - echo workspace/output_dir the plan was probed aga…
dkackman Sep 18, 2026
1996f8a
Merge fix/184-plan-workspace-echo into develop
dkackman Sep 18, 2026
da32153
fix: #212 - validate_workflow refuses result on scalar-returning steps
dkackman Sep 18, 2026
36d5293
Merge fix/212-scalar-result-validation into develop
dkackman Sep 18, 2026
f6eba42
fix: #213 - select_errors catches gather: candidates/scores size mism…
dkackman Sep 18, 2026
bf6cc58
Merge fix/213-select-gather-size-mismatch into develop
dkackman Sep 18, 2026
baba4c9
fix(mcp): #214, #215 - surface match_levels clip-hold and gain as eve…
dkackman Sep 18, 2026
5b6e3d9
Merge fix/214-215-match-levels-warning-and-dbfs into develop
dkackman Sep 18, 2026
5bf862f
fix(mcp): #197 - write fitted in-memory audio back onto the AudioVide…
dkackman Sep 18, 2026
e215637
Merge fix/197-write-back-fitted-audio-onto-artifact into develop
dkackman Sep 18, 2026
4b4979a
fix(server): #216 - name the wrapper in PUT /api/workflows error, cro…
dkackman Sep 18, 2026
25fdc68
fix(mcp): #197 - memoize get_artifact_list per Result so the audio-fi…
dkackman Sep 18, 2026
5b02141
fix(mcp): #209 - drop a variable:-sourced null from arguments before …
dkackman Sep 18, 2026
506dcc6
Merge fix/209-null-variable-argument-drop into develop
dkackman Sep 18, 2026
a02bc17
docs(tasks): #220 - name the clip-hold ceiling in match_levels_dbfs docs
dkackman Sep 18, 2026
0a6154d
Merge fix/220-match-levels-dbfs-doc-ceiling into develop
dkackman Sep 18, 2026
2c661be
feat(plugin): #217 - add series-episodes skill for fixed-cast, five-b…
dkackman Sep 18, 2026
98d1b38
Merge feature/217-series-episodes-skill into develop
dkackman Sep 18, 2026
3b9a7a8
feat(server,mcp): #221 clear-memory endpoint/tool, #222 runtime env info
dkackman Sep 18, 2026
a516b12
Merge fix/221-222-memory-clear-runtime-info into develop
dkackman Sep 18, 2026
24a871f
feat(speech): #223 - add speaker_embedding arg to generate_speech
dkackman Sep 18, 2026
0d34a1b
Merge fix/223-speaker-embedding into develop
dkackman Sep 18, 2026
01b54c6
fix(tasks): #220 dissolve_videos docstring hold ceiling, #223 speaker…
dkackman Sep 18, 2026
c9b4d89
Merge fix/220-223-dissolve-doc-speaker-shape into develop
dkackman Sep 18, 2026
fda3084
fix(tests): #224 - stop pinning diffusers' private cache-context inte…
dkackman Sep 18, 2026
fe8f7ea
fix(docs): clarify workflow listing instructions in SKILL.md
dkackman Sep 18, 2026
7001b90
ruff format
dkackman Sep 18, 2026
c07f866
Bump transformers floor to 5.17.0
dkackman Sep 18, 2026
b574318
fix(speech): #225 - accept chat-templated messages input, relax text/…
dkackman Sep 18, 2026
4eae1a8
Merge fix/225-226-messages-vibevoice into develop
dkackman Sep 18, 2026
018eed4
fix(mcp): #227 - wire audio_bleed_gain_db into the three concat_video…
dkackman Sep 18, 2026
5c03105
Merge fix/227-audio-bleed-gain-db-templates into develop
dkackman Sep 18, 2026
cd2f6e2
fix(deps): #232 - revert transformers floor to >=5.16.1,!=5.17.0
dkackman Sep 19, 2026
7f588c2
Merge fix/232-revert-transformers-floor into develop
dkackman Sep 19, 2026
87c45fd
fix(mcp): #226/#233 - VITS default for generate-speech template, mess…
dkackman Sep 19, 2026
2d57b39
Merge fix/226-233-vits-default-messages-guard into develop
dkackman Sep 19, 2026
6dd35da
fix(mcp): #223/#235 - speaker_embedding dtype fix, final subfolder ma…
dkackman Sep 19, 2026
1acace7
Merge fix/223-235-speaker-dtype-template-subfolder into develop
dkackman Sep 19, 2026
e5eed6d
format
dkackman Sep 19, 2026
1ec68b4
feat: add proposal for `script-to-video` skill to enhance workflow co…
dkackman Sep 19, 2026
6fe3595
feat(proposal): add Framewright comparison proposal document
dkackman Sep 19, 2026
9637d2b
Merge branch 'develop' of https://github.com/dkackman/diffusers-workf…
dkackman Sep 19, 2026
882e0cc
Merge branch 'master' into develop
dkackman Sep 19, 2026
127a0f9
fix: PR #241 review - waveform layouts, harmonicity rate, null media …
dkackman Sep 19, 2026
d01686e
format
dkackman Sep 19, 2026
ec1df29
docs(plan): agent discoverability - the prompt library, traits, and s…
dkackman Sep 19, 2026
11d312d
feat(server): narrow the prompt listing, and let a caller drop the text
dkackman Sep 19, 2026
ccb27c8
fix(mcp): list_prompts is callable again
dkackman Sep 19, 2026
0f8838c
fix(prompts): one spelling per family in intended_model
dkackman Sep 19, 2026
7b42e12
fix(catalog): has-audio covers a workflow whose output is the track
dkackman Sep 19, 2026
0ca0abe
docs: name the prompt library where an agent will read it
dkackman Sep 19, 2026
d43dbad
docs(plugin): give the H3 skill a reason to read the exemplar, not on…
dkackman Sep 19, 2026
59f07e6
docs(plugin): list series-episodes where the plugin describes itself
dkackman Sep 19, 2026
f942916
docs: pin the stated tool count to the registered tools
dkackman Sep 19, 2026
8a99ab2
feat(guides): say how a repo path in a guide becomes a catalog name
dkackman Sep 19, 2026
81a1c18
test(mcp): put a ceiling on the resident tool surface
dkackman Sep 19, 2026
7d4fe74
test(mcp): log both surface measurements in the budget comment
dkackman Sep 19, 2026
22fa16c
fix: close the final-review findings on the discoverability branch
dkackman Sep 19, 2026
67c7f22
format (#250)
dkackman Sep 19, 2026
e34752f
fix(mcp): #247 - gallery reference contract, path leak, no-seed false…
dkackman Sep 19, 2026
8a7954e
Merge branch 'fix/247-mcp-polish' into develop
dkackman Sep 19, 2026
86b1dfc
fix(server): ensure tool descriptions have no docstring indentation f…
dkackman Sep 19, 2026
c42db2b
fix(server): #238 - make .txt outputs visible in gallery/asset listings
dkackman Sep 20, 2026
7da78b7
fix(plan): #242 - report partial when a total comes only from a compo…
dkackman Sep 20, 2026
691751a
fix(tasks): #246 - warn when pair_audio trims audio to fit the video
dkackman Sep 20, 2026
c2770dd
Merge branch 'fix/238-242-246-batch' into develop
dkackman Sep 20, 2026
997121b
fix(server): #243 - project host memory for list-driven runs, warn only
dkackman Sep 20, 2026
0a09ad1
Merge branch 'fix/243-host-memory-projection' into develop
dkackman Sep 20, 2026
60d2c0f
feat(tasks): #245 - add frame_grid contact-sheet task
dkackman Sep 20, 2026
bc82afa
fix(mcp): #248 - env-configurable wait_for_job cap; #249 - compact li…
dkackman Sep 20, 2026
f02ab4d
Merge branch 'fix/248-249-mcp-cost' into develop
dkackman Sep 20, 2026
f3e7cc1
fix(plan): #252 - name the unpriced contributors in a partial estimate
dkackman Sep 20, 2026
85dd270
Merge branch 'fix/252-plan-unpriced-names' into develop
dkackman Sep 20, 2026
162fa8e
fix(cache): #253 - give reference dataclasses real value equality
dkackman Sep 20, 2026
b8780a5
Merge branch 'fix/253-step-cache-dataclass-equality' into develop
dkackman Sep 20, 2026
c4821fb
fix(mcp): #254 - don't warn about a host-memory peak already survived
dkackman Sep 20, 2026
4cca4f3
Merge branch 'fix/254-host-memory-already-survived' into develop
dkackman Sep 20, 2026
162da40
docs: #193 - output assessment proposal (probes, evidence tools, find…
dkackman Sep 20, 2026
e999c76
docs: #193 - revise output assessment proposal after review
dkackman Sep 20, 2026
8f606e4
docs: #193 - stage 1 (evidence) implementation plan
dkackman Sep 20, 2026
7fbe64d
feat: onboard Qwen-Image-2.1 flagship text-to-image template (#256)
dkackman Sep 20, 2026
c177598
Merge branch 'develop' of https://github.com/dkackman/diffusers-workf…
dkackman Sep 20, 2026
006b067
fix: Qwen-Image-2.1 field findings - alpha into jpeg, location-dict a…
dkackman Sep 20, 2026
f2d711d
Merge branch 'master' into develop
dkackman Sep 20, 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
2 changes: 1 addition & 1 deletion docs/MCP.md
Original file line number Diff line number Diff line change
Expand Up @@ -233,7 +233,7 @@ when no single workflow covers it.

| Tool | Arguments | Purpose |
| --- | --- | --- |
| `get_output_image(name, max_dimension=768, workspace=None)` | `name`, `max_dimension`, `workspace` | Look at a generated image, downscaled to `max_dimension` on its longest side. Returns the image plus a text part reporting `original_size`, `returned_size` and `bytes`, so a downscale is never silent. `workspace` names the workspace for this one call without switching the session to it - the same pin `run_workflow` takes, so a job run into another workspace stays reachable from the session that queued it |
| `get_output_image(name, max_dimension=768, workspace=None, crop=None)` | `name`, `max_dimension`, `workspace`, `crop` | Look at a generated image, downscaled to `max_dimension` on its longest side. Returns the image plus a text part reporting `original_size`, `returned_size` and `bytes`, so a downscale is never silent. `crop` is `[x, y, width, height]` in the original's pixels, cut before the downscale and reported back clamped - the way to see a region of a 2K still at 100%, where the whole would be shrunk past what a small element or a decode-tiling seam can be judged at. `workspace` names the workspace for this one call without switching the session to it - the same pin `run_workflow` takes, so a job run into another workspace stays reachable from the session that queued it |
| `get_output_audio(name, workspace=None)` | `name`, `workspace` | Listen to a generated audio output, as base64. Unlike `get_output_image` there is no downscale - a clip whose base64 size would exceed the same 4MB budget is refused outright rather than cut or transcoded, since a truncated clip is a different, misleading answer rather than a smaller correct one (#204). Use `download_output` or the gallery `url` for a longer file, and `get_gallery_metadata` for its duration and sample rate without fetching the bytes at all. `workspace` names the workspace for this one call without switching the session to it |
| `get_output_text(name, max_characters=20000, workspace=None)` | `name`, `max_characters`, `workspace` | Read a text output — a prompt enhancement, or any step whose result is `text/plain` or JSON. Reports the file's real length and whether it was truncated. `workspace` names the workspace for this one call without switching the session to it - the same pin `run_workflow` takes, so a job run into another workspace stays reachable from the session that queued it |
| `download_output(name, destination=None, overwrite=False, workspace=None)` | `name`, `destination`, `overwrite`, `workspace` | Save one output file to local disk, of any content type. `destination` may be a full path, a directory, or omitted to save under the output's own name in the current working directory; `~` expands and missing parent directories are created. `overwrite=True` is required to replace a file already at the resolved path. Over a `dw.serve --mcp` endpoint the file lands on the server, so the destination is confined to that workspace and a relative one is joined onto it. Returns nothing to the conversation but where the file landed — unlike the other media tools, the point is a file on disk, not a payload in context. Writes on the machine running the MCP server - over `dw.serve --mcp` that is the GPU box. A write that fails there (a path that exists only on the client, for instance) comes back as an error naming the server-side write and the client-side alternatives, not as an anonymous tool failure. `workspace` names the workspace for this one call without switching the session to it - the same pin `run_workflow` takes, so a job run into another workspace stays reachable from the session that queued it |
Expand Down
11 changes: 10 additions & 1 deletion docs/WORKFLOW_GUIDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -283,6 +283,10 @@ for existence.
- `asset:` — `asset:name` is a file in the asset library. Rooted at the
library and confined to it, never resolved relative to the workflow file; a path that
escapes the library is rejected. `upload_asset` returns one of these names.
One name, three places it can sit: a bare string (`"image": "asset:x.png"`),
an element of a list, or the `location` of a media dict
(`{"location": "asset:x.png"}`, with or without `media_type`) - all resolve
to the same file.
- `output:` — `output:<workflow identity>/<run id>/<file>` is a file an earlier
run wrote, under the output root and confined to it. `latest` in the run-id position
picks the newest run that holds that file. A run id is not stable against
Expand Down Expand Up @@ -727,7 +731,12 @@ longer than that is truncated with an ellipsis in every listing.
Declare `shape`, `traits` or `summary` at the top level only when derivation
gets it wrong; a declaration that merely repeats the derivation is noise that
rots when the rules change, and the repo's catalog tests refuse it. `cost` is
never derived — leave it absent until a run has been measured.
never derived — leave it absent until a run has been measured. That makes it
the catalog's verified marker as well: an entry carrying `cost` has been run
to completion on the device it names, and one without has only been authored
— its description may still say what it has not been able to check (VRAM at
a size, whether a format carries what the pipeline returns), and the first
run is the one that finds out.

`cost_drivers` is the other half of saying what a workflow costs, and it *is*
for derivation: the variables that move the wall clock — a frame count, a
Expand Down
2 changes: 1 addition & 1 deletion docs/proposals/agent-catalog-legibility-complete.md

Large diffs are not rendered by default.

Loading
Loading