Repository navigation
v0.4.0
Breaking and behaviour changes
-
download_outputover adw.serve --mcpendpoint refuses a call with no
destination. It used to write into the server's own directory (#353). -
Untrusted workflows are refused in more cases (#409-#413):
- a
*_typethat doesn't resolve to a class, or that isn't a kind a
workflow constructs: a diffusers or transformers model, pipeline,
scheduler, tokenizer or processor, a quantization config, an auto
factory, a diffusers reference/condition type or an attention processor.
A plaintorchclass such astorch.nn.Linearis now refused; constant:walks through_names or out of the allowed packages;- URLs with backslashes;
text/htmlandtext/xmlresult types;- media hosts that aren't globally routable, including 100.64/10 (CGNAT,
and so Tailscale); - more than 5 redirects;
- images over 50M pixels.
Listings and export zips drop symlinks that escape their root.
--trust-workflowslifts all of these. - a
-
run_workflowvalidates the caller'sargumentswhen it queues the job
(#414/#415).validate_workflow(arguments={})checks a run with no values
supplied, not just the document (#364). -
A fractional value for an int variable is refused (#338), and so is a
still image passed as a video argument (#347). -
templates/minimax/musicnormalizes to -3 dBFS instead of -1, so its output
is quieter (#362). -
Every response carries
X-Content-Type-Options: nosniffand
X-Frame-Options: DENY. Active document types under/outputsand
/inputsare served withContent-Security-Policy: sandbox. -
A validate-time probe reads only a literal media path that the run itself
would be allowed to read. -
A dict or list passed to a string-typed variable is refused (#433).
templates/ltx2/keyframestakesfirst_image/last_imageas plain
strings, not{"location": ...}(#431/#433). -
loop_framesreturns float32 frames in [0, 1] instead of uint8, the shape
LTX2ReferenceConditionneeds; a keyframe condition still wants
frames_as_array.ltx2/reference-sheet's default asset is now
asset:reference_sheet.jpg(#444). -
validate_workflowrefuses acomponentsname the pipeline doesn't
register;duration_headis gone from the in-context LTX-2 templates
(#442). -
A
{"media_type": "image"}reference on a video argument loads as a
one-frame still (#443). -
pair_audio fit: "video"always fits, and warns on any nonzero gap
(#428/#429).concat_videosanddissolve_videospad a short joined
track to the frame grid, warning (joined_audio_padded_to_frames) only
when the pad is a frame or more; a residual the AAC mux trims off is
logged, or warned asjoined_audio_short_after_muxfrom a frame up.
media.shotsis measured against the file as written (#426/#435/#454).
Neither warns about resampling inputs that agree to a pinned
sample_rate(#453). -
New warnings:
match_levels_near_silent(#434), andshot_span_overrun
from the probes plus a validate-time check (#425). -
Error text changed:
delete_workspace(#437/#438), the sub-workflow path
refusal names the places it looked (#422), and/outputs/asset:...misses
name the asset without server paths.
New
- The
assess_outputtool andGET /api/gallery/{name}/assess, plus the
probe tasksanalyze_shots,analyze_seamsandanalyze_sync_drift
(#387/#388). - A joined video records its shot boundaries (
media.shots).
get_output_frames(seams=true)uses them, so it no longer needs
boundaries(#385). - Run versions (
v<N>):list_galleryreturnsrun_id/versionand filters byfolderand
version;output:<wf>/v<N>/<file>references;wait_for_jobreturnsrun_version;- export zips download as
<wf>-vN-<job>.zip.
list_gallery(media=true)adds durations, andoutput:names work in
gallery reads (#356).DW_PUBLIC_URLadds absolute URLs to gallery and export responses.
export_jobalso returnsauth_requiredandopen_url(#353).- A
gradetask for images and video: exposure, contrast, saturation and
temperature/tint (#349). - The
templates/minimax/shots-batchH3 template (#352). - Every generative template takes a
seedargument (#351). normalize_audio(target_lufs), andintegrated_lufsplus true peak in
media metadata (#361).gain_audiowith no region gains the whole track (#395).world_fade_out_msonassemble-and-score(#339).- Download progress shows in
phase_detail(#343).phase_stallevents
now read as informational (#357). workflow,inline_workflowandpromptalso accept a JSON string. A
mistyped workflow name gets suggestions from the catalog (#397).- Host caches are released when each job ends (#368), and the skills point
atclear_memory. get_job_events(kinds=...)and?kinds=on the event-log route; a kind
matches an event'seventor itskind, so["phase_stall"]selects
one warning type (#436).get_memoryreports the step cache'sentriesandretained_bytes
(#418).get_output_imageand/outputsresolveasset:references (#445), and
get_output_frames(seams=true)works on linked assets (#430).- Compact
assess_outputlists each finding once (#427). Shots are named by
their source when joined inputs already carry shots (#432). - A task-only workflow's run history counts, so its estimate can quote
basis: observed(#439). The Music 3 hint no longer shows on video
(#441).
Fixes