diffusers-workflow 0.4.0b7__tar.gz → 0.5.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (468) hide show
  1. {diffusers_workflow-0.4.0b7/diffusers_workflow.egg-info → diffusers_workflow-0.5.0}/PKG-INFO +24 -4
  2. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/README.md +20 -3
  3. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0/diffusers_workflow.egg-info}/PKG-INFO +24 -4
  4. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/diffusers_workflow.egg-info/SOURCES.txt +74 -23
  5. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/diffusers_workflow.egg-info/requires.txt +3 -0
  6. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/__init__.py +83 -14
  7. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/adapter_compatibility.py +64 -12
  8. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/arguments.py +193 -20
  9. diffusers_workflow-0.5.0/dw/assessment_rules.py +192 -0
  10. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/cache_blocks.py +2 -1
  11. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/content_types.py +46 -1
  12. diffusers_workflow-0.5.0/dw/dissolve_frame_errors.py +121 -0
  13. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/docs/ACCELERATION.md +9 -5
  14. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/docs/AGENT_LOOP.md +9 -0
  15. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/docs/DEPENDENCIES.md +1 -1
  16. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/docs/MCP.md +12 -8
  17. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/docs/RECIPES_24GB.md +8 -0
  18. diffusers_workflow-0.5.0/dw/docs/RELEASING.md +324 -0
  19. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/docs/REMOTE.md +21 -2
  20. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/docs/SECURITY.md +55 -8
  21. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/docs/SERVER.md +17 -2
  22. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/docs/TASKS.md +301 -12
  23. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/docs/TESTING.md +1 -1
  24. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/docs/WORKFLOW_GUIDE.md +226 -9
  25. diffusers_workflow-0.5.0/dw/download_watch.py +335 -0
  26. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/events.py +50 -7
  27. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/host_memory_projection.py +72 -17
  28. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/hub_cache.py +114 -0
  29. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/introspection.py +436 -23
  30. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/locations.py +147 -15
  31. diffusers_workflow-0.5.0/dw/loudness.py +82 -0
  32. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/media_frames.py +37 -10
  33. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/media_info.py +53 -12
  34. diffusers_workflow-0.5.0/dw/null_media.py +99 -0
  35. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/pipeline_processors/chain.py +55 -3
  36. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/pipeline_processors/config_objects.py +50 -2
  37. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/pipeline_processors/pipeline.py +97 -26
  38. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/plan.py +92 -25
  39. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/previous_results.py +23 -3
  40. diffusers_workflow-0.5.0/dw/probe_paths.py +59 -0
  41. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/realize.py +12 -6
  42. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/reference_limits.py +10 -5
  43. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/repl_commands.py +2 -12
  44. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/result.py +213 -24
  45. diffusers_workflow-0.5.0/dw/result_fps.py +82 -0
  46. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/runs.py +354 -5
  47. diffusers_workflow-0.5.0/dw/scalar_result_validation.py +139 -0
  48. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/security.py +164 -0
  49. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/serve.py +9 -1
  50. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/app.py +594 -101
  51. diffusers_workflow-0.5.0/dw/server/assess.py +135 -0
  52. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/exports.py +12 -0
  53. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/guides.py +60 -7
  54. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/jobs.py +51 -8
  55. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/observed_cost.py +29 -1
  56. diffusers_workflow-0.4.0b7/dw/server/ui/assets/cssMode-xQCqMuag.js → diffusers_workflow-0.5.0/dw/server/ui/assets/cssMode-DRY1oIAQ.js +1 -1
  57. diffusers_workflow-0.4.0b7/dw/server/ui/assets/editor.api-Bfiq9hmW.js → diffusers_workflow-0.5.0/dw/server/ui/assets/editor.api-C_Q9knYh.js +1 -1
  58. diffusers_workflow-0.4.0b7/dw/server/ui/assets/freemarker2-BwDnlSuz.js → diffusers_workflow-0.5.0/dw/server/ui/assets/freemarker2-CoeF3Y-p.js +1 -1
  59. diffusers_workflow-0.4.0b7/dw/server/ui/assets/handlebars-Beb1we4G.js → diffusers_workflow-0.5.0/dw/server/ui/assets/handlebars-ClJeebFA.js +1 -1
  60. diffusers_workflow-0.4.0b7/dw/server/ui/assets/html-Yw-qdTCH.js → diffusers_workflow-0.5.0/dw/server/ui/assets/html-Bp7ECOGB.js +1 -1
  61. diffusers_workflow-0.4.0b7/dw/server/ui/assets/htmlMode-Dbp7eBPO.js → diffusers_workflow-0.5.0/dw/server/ui/assets/htmlMode-DWzbYXCs.js +1 -1
  62. diffusers_workflow-0.4.0b7/dw/server/ui/assets/index-CsXMC8a8.css → diffusers_workflow-0.5.0/dw/server/ui/assets/index-3Vw6WAPW.css +1 -1
  63. diffusers_workflow-0.5.0/dw/server/ui/assets/index-Bv4OgazC.js +43 -0
  64. diffusers_workflow-0.4.0b7/dw/server/ui/assets/javascript-BNzP7yQZ.js → diffusers_workflow-0.5.0/dw/server/ui/assets/javascript-B6Cbtyg8.js +1 -1
  65. diffusers_workflow-0.4.0b7/dw/server/ui/assets/jsonMode-DxIEESAg.js → diffusers_workflow-0.5.0/dw/server/ui/assets/jsonMode-dg5n9059.js +1 -1
  66. diffusers_workflow-0.4.0b7/dw/server/ui/assets/liquid-CeQTai1N.js → diffusers_workflow-0.5.0/dw/server/ui/assets/liquid-CAyPEpMs.js +1 -1
  67. diffusers_workflow-0.4.0b7/dw/server/ui/assets/lspLanguageFeatures-DKVB_UCB.js → diffusers_workflow-0.5.0/dw/server/ui/assets/lspLanguageFeatures-BGj-zQOH.js +1 -1
  68. diffusers_workflow-0.4.0b7/dw/server/ui/assets/mdx-Bczl_PHr.js → diffusers_workflow-0.5.0/dw/server/ui/assets/mdx-B5EuIkzP.js +1 -1
  69. diffusers_workflow-0.4.0b7/dw/server/ui/assets/monaco-Bu2OB6wI.js → diffusers_workflow-0.5.0/dw/server/ui/assets/monaco-ULLHC90E.js +4 -4
  70. diffusers_workflow-0.4.0b7/dw/server/ui/assets/python-CeTsj82v.js → diffusers_workflow-0.5.0/dw/server/ui/assets/python-C5D4i8ni.js +1 -1
  71. diffusers_workflow-0.4.0b7/dw/server/ui/assets/razor-CN7JaWqc.js → diffusers_workflow-0.5.0/dw/server/ui/assets/razor-DL9EVLH-.js +1 -1
  72. diffusers_workflow-0.4.0b7/dw/server/ui/assets/tsMode-CoSEMx-L.js → diffusers_workflow-0.5.0/dw/server/ui/assets/tsMode-BtDRLqfW.js +1 -1
  73. diffusers_workflow-0.4.0b7/dw/server/ui/assets/typescript-CcsolRTO.js → diffusers_workflow-0.5.0/dw/server/ui/assets/typescript-DYpkXm7y.js +1 -1
  74. diffusers_workflow-0.4.0b7/dw/server/ui/assets/workers-DLaycdy4.js → diffusers_workflow-0.5.0/dw/server/ui/assets/workers-B4R84wCs.js +1 -1
  75. diffusers_workflow-0.4.0b7/dw/server/ui/assets/xml-QEwuyn1w.js → diffusers_workflow-0.5.0/dw/server/ui/assets/xml-CQNiPADm.js +1 -1
  76. diffusers_workflow-0.4.0b7/dw/server/ui/assets/yaml-BB4U5D-R.js → diffusers_workflow-0.5.0/dw/server/ui/assets/yaml-iWBPUkB-.js +1 -1
  77. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/index.html +2 -2
  78. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/settings.py +9 -0
  79. diffusers_workflow-0.5.0/dw/shot_span_preflight.py +116 -0
  80. diffusers_workflow-0.5.0/dw/shots.py +392 -0
  81. diffusers_workflow-0.5.0/dw/slice_preflight.py +148 -0
  82. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/step_cache.py +98 -12
  83. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/task_domains.py +56 -9
  84. diffusers_workflow-0.5.0/dw/tasks/assess.py +910 -0
  85. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/tasks/audio_transcription.py +46 -3
  86. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/tasks/audio_utils.py +523 -29
  87. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/tasks/concat_videos.py +100 -19
  88. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/tasks/dissolve_videos.py +160 -22
  89. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/tasks/gather.py +7 -3
  90. diffusers_workflow-0.5.0/dw/tasks/grade.py +97 -0
  91. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/tasks/image_utils.py +38 -0
  92. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/tasks/interpolate_frames.py +9 -1
  93. diffusers_workflow-0.5.0/dw/tasks/pair_audio.py +304 -0
  94. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/tasks/segment.py +15 -4
  95. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/tasks/stabilize.py +9 -1
  96. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/tasks/task.py +154 -3
  97. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/tasks/video_utils.py +100 -22
  98. diffusers_workflow-0.5.0/dw/tasks/voice_attribution.py +781 -0
  99. diffusers_workflow-0.5.0/dw/type_helpers.py +231 -0
  100. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/variables.py +46 -4
  101. diffusers_workflow-0.5.0/dw/video_extensions.py +141 -0
  102. diffusers_workflow-0.5.0/dw/video_size_errors.py +107 -0
  103. diffusers_workflow-0.5.0/dw/vram_estimate.py +326 -0
  104. diffusers_workflow-0.5.0/dw/vram_inheritance.py +195 -0
  105. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/worker.py +47 -14
  106. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/workflow.py +363 -28
  107. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/workflow_schema.json +13 -9
  108. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/workflow_sources.py +86 -10
  109. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/workflows/test.json +1 -1
  110. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/workspace.py +5 -1
  111. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw_mcp/assets.py +117 -15
  112. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw_mcp/authoring.py +30 -38
  113. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw_mcp/catalog.py +88 -14
  114. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw_mcp/client.py +38 -3
  115. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw_mcp/diagnose.py +24 -11
  116. diffusers_workflow-0.5.0/dw_mcp/exports.py +84 -0
  117. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw_mcp/guides.py +3 -1
  118. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw_mcp/media.py +66 -6
  119. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw_mcp/prompts.py +2 -1
  120. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw_mcp/server.py +284 -272
  121. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw_mcp/workspaces.py +10 -5
  122. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/pyproject.toml +14 -1
  123. diffusers_workflow-0.5.0/tests/test_argument_updates.py +64 -0
  124. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_arguments.py +147 -43
  125. diffusers_workflow-0.5.0/tests/test_assemble_and_score_target_lufs.py +117 -0
  126. diffusers_workflow-0.5.0/tests/test_assess.py +926 -0
  127. diffusers_workflow-0.5.0/tests/test_assessment_rules.py +291 -0
  128. diffusers_workflow-0.5.0/tests/test_attention_slicing.py +31 -0
  129. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_audio_utils.py +415 -1
  130. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_best_of_n_template.py +0 -10
  131. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_borders.py +0 -6
  132. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_catalog_structure.py +11 -2
  133. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_chain.py +25 -0
  134. diffusers_workflow-0.5.0/tests/test_component_name_errors.py +141 -0
  135. diffusers_workflow-0.5.0/tests/test_component_type_errors.py +335 -0
  136. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_concat_videos.py +155 -0
  137. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_config_objects.py +130 -1
  138. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_device_helpers.py +56 -6
  139. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_dialogue_short_voices.py +0 -10
  140. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_diffusion_upscale.py +1 -11
  141. diffusers_workflow-0.5.0/tests/test_dissolve_frame_errors.py +146 -0
  142. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_dissolve_videos.py +105 -0
  143. diffusers_workflow-0.5.0/tests/test_download_watch.py +265 -0
  144. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_elision.py +66 -31
  145. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_events.py +142 -18
  146. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_gather.py +20 -80
  147. diffusers_workflow-0.5.0/tests/test_grade.py +265 -0
  148. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_h3_schedule.py +35 -7
  149. diffusers_workflow-0.5.0/tests/test_h3_vram_ceiling.py +250 -0
  150. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_host_memory.py +13 -1
  151. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_host_memory_projection.py +47 -10
  152. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_hub_cache.py +133 -1
  153. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_image_utils.py +0 -8
  154. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_integration.py +55 -7
  155. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_introspection.py +39 -0
  156. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_list_images.py +0 -17
  157. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_locations.py +25 -0
  158. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_lora_alpha.py +4 -4
  159. diffusers_workflow-0.5.0/tests/test_lora_disable.py +174 -0
  160. diffusers_workflow-0.5.0/tests/test_ltx2_extend_clip.py +35 -0
  161. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_mcp_assets.py +259 -0
  162. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_mcp_authoring.py +61 -19
  163. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_mcp_catalog.py +131 -14
  164. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_mcp_client.py +16 -14
  165. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_mcp_diagnose.py +50 -59
  166. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_mcp_exports.py +55 -16
  167. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_mcp_guides.py +0 -16
  168. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_mcp_media.py +96 -46
  169. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_mcp_models.py +0 -58
  170. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_mcp_prompts.py +2 -135
  171. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_mcp_server.py +124 -42
  172. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_mcp_workspaces.py +47 -0
  173. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_media_frames.py +37 -0
  174. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_media_info.py +55 -0
  175. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_model_cache.py +5 -37
  176. diffusers_workflow-0.5.0/tests/test_modular_output_properties.py +182 -0
  177. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_modular_progress.py +18 -2
  178. diffusers_workflow-0.5.0/tests/test_mps_fallback_warning.py +28 -0
  179. diffusers_workflow-0.5.0/tests/test_mps_rope_precision.py +64 -0
  180. diffusers_workflow-0.5.0/tests/test_null_media.py +107 -0
  181. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_observed_cost.py +63 -0
  182. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_output_references.py +0 -4
  183. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_pair_audio_fit.py +78 -8
  184. diffusers_workflow-0.5.0/tests/test_parallel_loading_default.py +51 -0
  185. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_pipeline_caching.py +134 -28
  186. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_pipeline_components.py +0 -4
  187. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_plan.py +149 -6
  188. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_plugin_skills.py +85 -8
  189. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_previous_results.py +22 -13
  190. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_prompt_references.py +13 -1
  191. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_prompts.py +10 -41
  192. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_realize.py +15 -12
  193. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_recenter_crop.py +7 -1
  194. diffusers_workflow-0.5.0/tests/test_repl_commands.py +56 -0
  195. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_resize_bucket.py +1 -10
  196. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_result.py +300 -56
  197. diffusers_workflow-0.5.0/tests/test_result_fps.py +189 -0
  198. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_runs.py +298 -0
  199. diffusers_workflow-0.5.0/tests/test_scalar_result_validation.py +378 -0
  200. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_schema.py +0 -8
  201. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_security.py +6 -27
  202. diffusers_workflow-0.5.0/tests/test_security_auth.py +451 -0
  203. diffusers_workflow-0.5.0/tests/test_security_decoder_bombs.py +209 -0
  204. diffusers_workflow-0.5.0/tests/test_security_input_caps.py +241 -0
  205. diffusers_workflow-0.5.0/tests/test_security_ssrf.py +771 -0
  206. diffusers_workflow-0.5.0/tests/test_security_symlinks.py +696 -0
  207. diffusers_workflow-0.5.0/tests/test_security_trust_gate.py +976 -0
  208. diffusers_workflow-0.5.0/tests/test_security_web_headers.py +307 -0
  209. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_segment.py +87 -1
  210. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_select.py +0 -5
  211. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_serve_main.py +7 -0
  212. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_server.py +437 -89
  213. diffusers_workflow-0.5.0/tests/test_server_assess.py +282 -0
  214. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_server_exports.py +73 -0
  215. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_server_guides.py +61 -1
  216. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_server_info.py +63 -14
  217. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_server_jobs.py +36 -2
  218. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_server_workspaces.py +95 -36
  219. diffusers_workflow-0.5.0/tests/test_shot_span_preflight.py +124 -0
  220. diffusers_workflow-0.5.0/tests/test_shots.py +1208 -0
  221. diffusers_workflow-0.5.0/tests/test_slice_preflight.py +148 -0
  222. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_speech_generation.py +0 -17
  223. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_step_cache.py +117 -12
  224. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_strip_exif_and_watermark.py +38 -12
  225. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_task.py +16 -24
  226. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_task_domains.py +30 -2
  227. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_task_signature_errors.py +76 -4
  228. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_teacache.py +0 -10
  229. diffusers_workflow-0.5.0/tests/test_template_defaults.py +59 -0
  230. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_tensor_image.py +0 -11
  231. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_text_generation.py +0 -9
  232. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_text_sections.py +7 -1
  233. diffusers_workflow-0.5.0/tests/test_transcribe_audio.py +219 -0
  234. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_type_helpers.py +2 -10
  235. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_validate_arguments.py +126 -0
  236. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_variable_constraints.py +32 -0
  237. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_variables.py +50 -1
  238. diffusers_workflow-0.5.0/tests/test_video_extensions.py +107 -0
  239. diffusers_workflow-0.5.0/tests/test_video_size_errors.py +136 -0
  240. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_video_utils.py +329 -1
  241. diffusers_workflow-0.5.0/tests/test_voice_attribution.py +784 -0
  242. diffusers_workflow-0.5.0/tests/test_vram_estimate.py +344 -0
  243. diffusers_workflow-0.5.0/tests/test_vram_inheritance.py +427 -0
  244. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_worker.py +6 -68
  245. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_worker_execute.py +74 -1
  246. diffusers_workflow-0.5.0/tests/test_worker_job_peak_rss.py +56 -0
  247. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_workflow.py +114 -25
  248. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_workflow_sources.py +67 -0
  249. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_workflow_step_cache.py +4 -2
  250. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_workflow_trust.py +152 -2
  251. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_workspace.py +0 -5
  252. diffusers_workflow-0.4.0b7/dw/docs/RELEASING.md +0 -81
  253. diffusers_workflow-0.4.0b7/dw/scalar_result_validation.py +0 -78
  254. diffusers_workflow-0.4.0b7/dw/server/ui/assets/index-DqbiZNFq.js +0 -43
  255. diffusers_workflow-0.4.0b7/dw/tasks/pair_audio.py +0 -189
  256. diffusers_workflow-0.4.0b7/dw/type_helpers.py +0 -80
  257. diffusers_workflow-0.4.0b7/dw/vram_estimate.py +0 -116
  258. diffusers_workflow-0.4.0b7/dw_mcp/exports.py +0 -43
  259. diffusers_workflow-0.4.0b7/tests/test_argument_updates.py +0 -250
  260. diffusers_workflow-0.4.0b7/tests/test_repl_commands.py +0 -60
  261. diffusers_workflow-0.4.0b7/tests/test_repl_hierarchical.py +0 -119
  262. diffusers_workflow-0.4.0b7/tests/test_repl_reorganization.py +0 -144
  263. diffusers_workflow-0.4.0b7/tests/test_scalar_result_validation.py +0 -103
  264. diffusers_workflow-0.4.0b7/tests/test_transcribe_audio.py +0 -104
  265. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/LICENSE +0 -0
  266. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/MANIFEST.in +0 -0
  267. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/diffusers_workflow.egg-info/dependency_links.txt +0 -0
  268. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/diffusers_workflow.egg-info/entry_points.txt +0 -0
  269. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/diffusers_workflow.egg-info/top_level.txt +0 -0
  270. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/assets.py +0 -0
  271. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/cache_blocks.json +0 -0
  272. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/community_pipelines/pipeline_flux_rf_inversion.py +0 -0
  273. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/docs/IP_ADAPTER.md +0 -0
  274. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/docs/LORAS.md +0 -0
  275. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/docs/PROMPT_WEIGHTING.md +0 -0
  276. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/docs/QUANTIZATION.md +0 -0
  277. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/docs/REPL_COMMANDS.md +0 -0
  278. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/docs/REPL_WORKER_GUIDE.md +0 -0
  279. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/docs/SECURITY_QUICKREF.md +0 -0
  280. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/docs/WORKSPACES.md +0 -0
  281. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/elision.py +0 -0
  282. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/for_each.py +0 -0
  283. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/host_memory.py +0 -0
  284. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/kernel_availability.py +0 -0
  285. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/log_setup.py +0 -0
  286. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/media_audio.py +0 -0
  287. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/pipeline_processors/remote.py +0 -0
  288. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/prompt_schema.json +0 -0
  289. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/prompt_weighting.py +0 -0
  290. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/prompts.py +0 -0
  291. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/reference_names.py +0 -0
  292. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/repl.py +0 -0
  293. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/repl_worker.py +0 -0
  294. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/run.py +0 -0
  295. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/schema.py +0 -0
  296. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/select_validation.py +0 -0
  297. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/__init__.py +0 -0
  298. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/catalog_shape.py +0 -0
  299. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/enhancers.py +0 -0
  300. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/mcp_mount.py +0 -0
  301. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/netinfo.py +0 -0
  302. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/sysinfo.py +0 -0
  303. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/abap-08VXUWAP.js +0 -0
  304. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/apex-BWPQTe0t.js +0 -0
  305. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/azcli-Bc_sGQ0U.js +0 -0
  306. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/bat-i0X4ZdIN.js +0 -0
  307. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/bicep-B5-_aFwp.js +0 -0
  308. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/cameligo-DMUM7wLl.js +0 -0
  309. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/clojure-Cm7r79vr.js +0 -0
  310. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/codicon-Brq4_Ui5.ttf +0 -0
  311. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/coffee-Ba7i2nA0.js +0 -0
  312. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/cpp-C7h46wYY.js +0 -0
  313. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/csharp-BKxtCVv1.js +0 -0
  314. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/csp-bTuwJoIa.js +0 -0
  315. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/css-DIMkf-bt.js +0 -0
  316. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/css.worker-B3ciXF_0.js +0 -0
  317. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/cypher-CVaqCwHa.js +0 -0
  318. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/dart-onAF5SnQ.js +0 -0
  319. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/dockerfile-DZFCIeNp.js +0 -0
  320. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/ecl-D05T4iGw.js +0 -0
  321. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/editor-jjEx9u7D.css +0 -0
  322. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/editor.worker-q-txB4vs.js +0 -0
  323. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/elixir-6RTg0lbw.js +0 -0
  324. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/flow9-C5_-GSwl.js +0 -0
  325. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/fsharp-C8Ef5oNN.js +0 -0
  326. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/go-C-y9NEjX.js +0 -0
  327. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/graphql-fmXr3nnJ.js +0 -0
  328. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/hcl-CpzslTdj.js +0 -0
  329. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/html.worker-C93Ht9o9.js +0 -0
  330. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/ini-sBoK_t0W.js +0 -0
  331. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/java-BEtHBSE6.js +0 -0
  332. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/json.worker-B2V3pomh.js +0 -0
  333. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/julia-Bri6UV-V.js +0 -0
  334. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/kotlin-BOotOW0E.js +0 -0
  335. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/less-B9JPFI3C.js +0 -0
  336. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/lexon-CfSJPG6W.js +0 -0
  337. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/lua-CsQS60Ue.js +0 -0
  338. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/m3-D-oSqn_W.js +0 -0
  339. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/markdown-Cimd5fb3.js +0 -0
  340. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/mips-CIPQ_RoX.js +0 -0
  341. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/monaco--ixms01u.css +0 -0
  342. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/msdax-DauUninz.js +0 -0
  343. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/mysql-SOo6toE5.js +0 -0
  344. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/objective-c-FvmIjYaQ.js +0 -0
  345. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/pascal-DrH0SRf2.js +0 -0
  346. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/pascaligo-D-ptJ9y-.js +0 -0
  347. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/perl-oz_6vUea.js +0 -0
  348. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/pgsql-DTj74zXo.js +0 -0
  349. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/php-nr791fC2.js +0 -0
  350. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/pla-CopQ2nXW.js +0 -0
  351. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/postiats-43DmfD33.js +0 -0
  352. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/powerquery-D3hlyOfw.js +0 -0
  353. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/powershell-DmHpPYUd.js +0 -0
  354. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/protobuf-C531GsRP.js +0 -0
  355. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/pug-Z5eAx3Zn.js +0 -0
  356. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/qsharp-DkqhCAOL.js +0 -0
  357. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/r-BwWrilGY.js +0 -0
  358. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/redis-ClamHrr6.js +0 -0
  359. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/redshift-DT7zqm-g.js +0 -0
  360. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/restructuredtext-BYgofb2h.js +0 -0
  361. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/ruby-DezsRK8O.js +0 -0
  362. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/rust-DdL9SqIa.js +0 -0
  363. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/sb-CcwsVR0C.js +0 -0
  364. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/scala-DHpiXF5c.js +0 -0
  365. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/scheme-BeGwcela.js +0 -0
  366. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/scss-gp-XZpBa.js +0 -0
  367. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/shell-CC2rA5mh.js +0 -0
  368. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/solidity-BEEn4gHE.js +0 -0
  369. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/sophia-CRfGWb83.js +0 -0
  370. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/sparql-D_Lu-MrJ.js +0 -0
  371. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/sql-NEE52Syq.js +0 -0
  372. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/st-DbInun42.js +0 -0
  373. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/swift-Bxkupp3x.js +0 -0
  374. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/systemverilog-Bz4Y3fRF.js +0 -0
  375. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/tcl-DISqw1ZD.js +0 -0
  376. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/ts.worker-D7T1-Ig5.js +0 -0
  377. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/twig-De2hgUGE.js +0 -0
  378. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/typespec-B8J7ngcE.js +0 -0
  379. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/vb-DV3o63ZY.js +0 -0
  380. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/ui/assets/wgsl-DpFanUEy.js +0 -0
  381. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/server/updater.py +0 -0
  382. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/step.py +0 -0
  383. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/subfolders.py +0 -0
  384. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/tasks/background_remover.py +0 -0
  385. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/tasks/borders.py +0 -0
  386. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/tasks/compose_text.py +0 -0
  387. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/tasks/depth_estimator.py +0 -0
  388. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/tasks/diffusion_upscale.py +0 -0
  389. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/tasks/format_messages.py +0 -0
  390. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/tasks/image_to_text.py +0 -0
  391. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/tasks/judge.py +0 -0
  392. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/tasks/model_cache.py +0 -0
  393. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/tasks/qr_code.py +0 -0
  394. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/tasks/restore_faces.py +0 -0
  395. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/tasks/rife_model.py +0 -0
  396. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/tasks/select.py +0 -0
  397. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/tasks/speech_generation.py +0 -0
  398. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/tasks/tensor_image.py +0 -0
  399. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/tasks/text_generation.py +0 -0
  400. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/tasks/text_sections.py +0 -0
  401. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/tasks/upscale.py +0 -0
  402. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/tasks/zoe_depth.py +0 -0
  403. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/teacache.py +0 -0
  404. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/teacache_models.json +0 -0
  405. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/test.py +0 -0
  406. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/validate.py +0 -0
  407. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/variable_constraints.py +0 -0
  408. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw/workflows/h3_context_ir.json +0 -0
  409. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw_mcp/__init__.py +0 -0
  410. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw_mcp/__main__.py +0 -0
  411. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/dw_mcp/models.py +0 -0
  412. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/setup.cfg +0 -0
  413. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_assets.py +0 -0
  414. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_cache_blocks.py +0 -0
  415. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_catalog_shape.py +0 -0
  416. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_cli.py +0 -0
  417. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_component_pruning.py +0 -0
  418. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_compose_text.py +0 -0
  419. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_configuration_schema.py +0 -0
  420. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_content_types.py +0 -0
  421. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_depth_estimator.py +0 -0
  422. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_device.py +0 -0
  423. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_device_portability.py +0 -0
  424. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_docs_links.py +0 -0
  425. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_examples.py +0 -0
  426. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_for_each.py +0 -0
  427. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_h3_adapters.py +0 -0
  428. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_h3_context_ir.py +0 -0
  429. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_hf_placement.py +0 -0
  430. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_image_to_text.py +0 -0
  431. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_interpolate_frames.py +0 -0
  432. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_job_history_wal.py +0 -0
  433. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_job_progress.py +0 -0
  434. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_job_warnings.py +0 -0
  435. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_jobs_listing.py +0 -0
  436. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_jobs_reused.py +0 -0
  437. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_judge.py +0 -0
  438. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_kernel_availability.py +0 -0
  439. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_library_sources.py +0 -0
  440. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_ltx2_diffusion_decode.py +0 -0
  441. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_ltx2_ic_loras.py +0 -0
  442. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_ltx_prompt_library.py +0 -0
  443. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_mcp_main.py +0 -0
  444. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_media_audio.py +0 -0
  445. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_mix_audio.py +0 -0
  446. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_modular_pipeline.py +0 -0
  447. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_offload_placement.py +0 -0
  448. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_pair_audio.py +0 -0
  449. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_phase_events.py +0 -0
  450. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_prompt_library.py +0 -0
  451. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_prompt_parser.py +0 -0
  452. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_prompt_weighting.py +0 -0
  453. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_reference_limits.py +0 -0
  454. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_reference_names.py +0 -0
  455. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_repl_ergonomics.py +0 -0
  456. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_repl_worker.py +0 -0
  457. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_rerun_new_seed.py +0 -0
  458. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_result_output_naming.py +0 -0
  459. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_scheduler_config.py +0 -0
  460. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_select_validation.py +0 -0
  461. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_server_downloads.py +0 -0
  462. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_server_mcp.py +0 -0
  463. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_stabilize.py +0 -0
  464. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_step.py +0 -0
  465. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_subfolders.py +0 -0
  466. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_task_discovery.py +0 -0
  467. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_template_subfolders.py +0 -0
  468. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.5.0}/tests/test_updater.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: diffusers-workflow
3
- Version: 0.4.0b7
3
+ Version: 0.5.0
4
4
  Summary: Declarative workflow engine and web UI for Hugging Face Diffusers
5
5
  Author: dkackman
6
6
  License: Apache-2.0
@@ -47,7 +47,10 @@ Requires-Dist: imageio-ffmpeg>=0.6.0
47
47
  Requires-Dist: av>=18.1.0
48
48
  Requires-Dist: soundfile>=0.14.0
49
49
  Requires-Dist: matplotlib>=3.11.1
50
+ Requires-Dist: pyloudnorm>=0.2.0
51
+ Requires-Dist: scipy>=1.18.1
50
52
  Requires-Dist: speechbrain>=1.0.3
53
+ Requires-Dist: demucs>=4.1.0
51
54
  Requires-Dist: qrcode>=8.2
52
55
  Requires-Dist: requests>=2.34.2
53
56
  Requires-Dist: aiohttp>=3.14.3
@@ -109,8 +112,8 @@ source ./activate
109
112
  .\venv\scripts\activate
110
113
  ```
111
114
 
112
- `python -m dw.test` confirms torch and diffusers import and shows which
113
- accelerator was found.
115
+ `python -m dw.test` runs a small built-in workflow end to end - it downloads
116
+ SD 1.5 (a few GB) and generates one image on whichever accelerator was found.
114
117
 
115
118
  **2. Start the engine.** Leave it running; everything else talks to it.
116
119
 
@@ -160,7 +163,7 @@ once; without it the run fails partway through with a 401/403 from the Hub.
160
163
 
161
164
  ## Drive it from an agent
162
165
 
163
- Then just ask. The agent has 58 tools covering the whole surface — the
166
+ Then just ask. The agent has 59 tools covering the whole surface — the
164
167
  workflow catalog, the real diffusers pipeline signatures, the job queue, the
165
168
  gallery, the model cache:
166
169
 
@@ -199,6 +202,23 @@ and outputs — so two agents, or an agent and you in the browser, share the GPU
199
202
  without saving over each other. An agent calls `use_workspace` once and the
200
203
  rest of the session lands there.
201
204
 
205
+ **Feedback from a session.** At the end of a working session, ask the agent
206
+ what got in its way: bugs, gaps, misleading skill text, tools it reached for
207
+ and couldn't find. Have it file each one as an issue on
208
+ `dkackman/diffusers-workflow` with the `field-report` label, for example:
209
+
210
+ > File each bug or gap you hit as an issue on dkackman/diffusers-workflow
211
+ > with the label `field-report`.
212
+
213
+ The label marks a report as coming from real use, not from the automated test
214
+ loop. The agent loop (see [Agent Loop](docs/AGENT_LOOP.md)) picks the report up
215
+ like any other issue when you filed it yourself; a report filed under any
216
+ other GitHub login is parked for the maintainer to review first (relabelled
217
+ `owner:don` + `status:needs-approval`), since the loop must not act
218
+ unattended on third-party text in a public repo, and is only handed to the
219
+ loop, or not, after that review. The label is also what feature planning
220
+ reads as evidence of demand.
221
+
202
222
  The complete tool reference, client configuration for other MCP hosts, and the
203
223
  troubleshooting table: [MCP Server](docs/MCP.md). Workspaces in depth:
204
224
  [Workspaces](docs/WORKSPACES.md).
@@ -32,8 +32,8 @@ source ./activate
32
32
  .\venv\scripts\activate
33
33
  ```
34
34
 
35
- `python -m dw.test` confirms torch and diffusers import and shows which
36
- accelerator was found.
35
+ `python -m dw.test` runs a small built-in workflow end to end - it downloads
36
+ SD 1.5 (a few GB) and generates one image on whichever accelerator was found.
37
37
 
38
38
  **2. Start the engine.** Leave it running; everything else talks to it.
39
39
 
@@ -83,7 +83,7 @@ once; without it the run fails partway through with a 401/403 from the Hub.
83
83
 
84
84
  ## Drive it from an agent
85
85
 
86
- Then just ask. The agent has 58 tools covering the whole surface — the
86
+ Then just ask. The agent has 59 tools covering the whole surface — the
87
87
  workflow catalog, the real diffusers pipeline signatures, the job queue, the
88
88
  gallery, the model cache:
89
89
 
@@ -122,6 +122,23 @@ and outputs — so two agents, or an agent and you in the browser, share the GPU
122
122
  without saving over each other. An agent calls `use_workspace` once and the
123
123
  rest of the session lands there.
124
124
 
125
+ **Feedback from a session.** At the end of a working session, ask the agent
126
+ what got in its way: bugs, gaps, misleading skill text, tools it reached for
127
+ and couldn't find. Have it file each one as an issue on
128
+ `dkackman/diffusers-workflow` with the `field-report` label, for example:
129
+
130
+ > File each bug or gap you hit as an issue on dkackman/diffusers-workflow
131
+ > with the label `field-report`.
132
+
133
+ The label marks a report as coming from real use, not from the automated test
134
+ loop. The agent loop (see [Agent Loop](docs/AGENT_LOOP.md)) picks the report up
135
+ like any other issue when you filed it yourself; a report filed under any
136
+ other GitHub login is parked for the maintainer to review first (relabelled
137
+ `owner:don` + `status:needs-approval`), since the loop must not act
138
+ unattended on third-party text in a public repo, and is only handed to the
139
+ loop, or not, after that review. The label is also what feature planning
140
+ reads as evidence of demand.
141
+
125
142
  The complete tool reference, client configuration for other MCP hosts, and the
126
143
  troubleshooting table: [MCP Server](docs/MCP.md). Workspaces in depth:
127
144
  [Workspaces](docs/WORKSPACES.md).
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: diffusers-workflow
3
- Version: 0.4.0b7
3
+ Version: 0.5.0
4
4
  Summary: Declarative workflow engine and web UI for Hugging Face Diffusers
5
5
  Author: dkackman
6
6
  License: Apache-2.0
@@ -47,7 +47,10 @@ Requires-Dist: imageio-ffmpeg>=0.6.0
47
47
  Requires-Dist: av>=18.1.0
48
48
  Requires-Dist: soundfile>=0.14.0
49
49
  Requires-Dist: matplotlib>=3.11.1
50
+ Requires-Dist: pyloudnorm>=0.2.0
51
+ Requires-Dist: scipy>=1.18.1
50
52
  Requires-Dist: speechbrain>=1.0.3
53
+ Requires-Dist: demucs>=4.1.0
51
54
  Requires-Dist: qrcode>=8.2
52
55
  Requires-Dist: requests>=2.34.2
53
56
  Requires-Dist: aiohttp>=3.14.3
@@ -109,8 +112,8 @@ source ./activate
109
112
  .\venv\scripts\activate
110
113
  ```
111
114
 
112
- `python -m dw.test` confirms torch and diffusers import and shows which
113
- accelerator was found.
115
+ `python -m dw.test` runs a small built-in workflow end to end - it downloads
116
+ SD 1.5 (a few GB) and generates one image on whichever accelerator was found.
114
117
 
115
118
  **2. Start the engine.** Leave it running; everything else talks to it.
116
119
 
@@ -160,7 +163,7 @@ once; without it the run fails partway through with a 401/403 from the Hub.
160
163
 
161
164
  ## Drive it from an agent
162
165
 
163
- Then just ask. The agent has 58 tools covering the whole surface — the
166
+ Then just ask. The agent has 59 tools covering the whole surface — the
164
167
  workflow catalog, the real diffusers pipeline signatures, the job queue, the
165
168
  gallery, the model cache:
166
169
 
@@ -199,6 +202,23 @@ and outputs — so two agents, or an agent and you in the browser, share the GPU
199
202
  without saving over each other. An agent calls `use_workspace` once and the
200
203
  rest of the session lands there.
201
204
 
205
+ **Feedback from a session.** At the end of a working session, ask the agent
206
+ what got in its way: bugs, gaps, misleading skill text, tools it reached for
207
+ and couldn't find. Have it file each one as an issue on
208
+ `dkackman/diffusers-workflow` with the `field-report` label, for example:
209
+
210
+ > File each bug or gap you hit as an issue on dkackman/diffusers-workflow
211
+ > with the label `field-report`.
212
+
213
+ The label marks a report as coming from real use, not from the automated test
214
+ loop. The agent loop (see [Agent Loop](docs/AGENT_LOOP.md)) picks the report up
215
+ like any other issue when you filed it yourself; a report filed under any
216
+ other GitHub login is parked for the maintainer to review first (relabelled
217
+ `owner:don` + `status:needs-approval`), since the loop must not act
218
+ unattended on third-party text in a public repo, and is only handed to the
219
+ loop, or not, after that review. The label is also what feature planning
220
+ reads as evidence of demand.
221
+
202
222
  The complete tool reference, client configuration for other MCP hosts, and the
203
223
  troubleshooting table: [MCP Server](docs/MCP.md). Workspaces in depth:
204
224
  [Workspaces](docs/WORKSPACES.md).
@@ -11,10 +11,13 @@ diffusers_workflow.egg-info/top_level.txt
11
11
  dw/__init__.py
12
12
  dw/adapter_compatibility.py
13
13
  dw/arguments.py
14
+ dw/assessment_rules.py
14
15
  dw/assets.py
15
16
  dw/cache_blocks.json
16
17
  dw/cache_blocks.py
17
18
  dw/content_types.py
19
+ dw/dissolve_frame_errors.py
20
+ dw/download_watch.py
18
21
  dw/elision.py
19
22
  dw/events.py
20
23
  dw/for_each.py
@@ -25,11 +28,14 @@ dw/introspection.py
25
28
  dw/kernel_availability.py
26
29
  dw/locations.py
27
30
  dw/log_setup.py
31
+ dw/loudness.py
28
32
  dw/media_audio.py
29
33
  dw/media_frames.py
30
34
  dw/media_info.py
35
+ dw/null_media.py
31
36
  dw/plan.py
32
37
  dw/previous_results.py
38
+ dw/probe_paths.py
33
39
  dw/prompt_schema.json
34
40
  dw/prompt_weighting.py
35
41
  dw/prompts.py
@@ -40,6 +46,7 @@ dw/repl.py
40
46
  dw/repl_commands.py
41
47
  dw/repl_worker.py
42
48
  dw/result.py
49
+ dw/result_fps.py
43
50
  dw/run.py
44
51
  dw/runs.py
45
52
  dw/scalar_result_validation.py
@@ -48,6 +55,9 @@ dw/security.py
48
55
  dw/select_validation.py
49
56
  dw/serve.py
50
57
  dw/settings.py
58
+ dw/shot_span_preflight.py
59
+ dw/shots.py
60
+ dw/slice_preflight.py
51
61
  dw/step.py
52
62
  dw/step_cache.py
53
63
  dw/subfolders.py
@@ -59,7 +69,10 @@ dw/type_helpers.py
59
69
  dw/validate.py
60
70
  dw/variable_constraints.py
61
71
  dw/variables.py
72
+ dw/video_extensions.py
73
+ dw/video_size_errors.py
62
74
  dw/vram_estimate.py
75
+ dw/vram_inheritance.py
63
76
  dw/worker.py
64
77
  dw/workflow.py
65
78
  dw/workflow_schema.json
@@ -92,6 +105,7 @@ dw/pipeline_processors/pipeline.py
92
105
  dw/pipeline_processors/remote.py
93
106
  dw/server/__init__.py
94
107
  dw/server/app.py
108
+ dw/server/assess.py
95
109
  dw/server/catalog_shape.py
96
110
  dw/server/enhancers.py
97
111
  dw/server/exports.py
@@ -117,45 +131,45 @@ dw/server/ui/assets/csharp-BKxtCVv1.js
117
131
  dw/server/ui/assets/csp-bTuwJoIa.js
118
132
  dw/server/ui/assets/css-DIMkf-bt.js
119
133
  dw/server/ui/assets/css.worker-B3ciXF_0.js
120
- dw/server/ui/assets/cssMode-xQCqMuag.js
134
+ dw/server/ui/assets/cssMode-DRY1oIAQ.js
121
135
  dw/server/ui/assets/cypher-CVaqCwHa.js
122
136
  dw/server/ui/assets/dart-onAF5SnQ.js
123
137
  dw/server/ui/assets/dockerfile-DZFCIeNp.js
124
138
  dw/server/ui/assets/ecl-D05T4iGw.js
125
139
  dw/server/ui/assets/editor-jjEx9u7D.css
126
- dw/server/ui/assets/editor.api-Bfiq9hmW.js
140
+ dw/server/ui/assets/editor.api-C_Q9knYh.js
127
141
  dw/server/ui/assets/editor.worker-q-txB4vs.js
128
142
  dw/server/ui/assets/elixir-6RTg0lbw.js
129
143
  dw/server/ui/assets/flow9-C5_-GSwl.js
130
- dw/server/ui/assets/freemarker2-BwDnlSuz.js
144
+ dw/server/ui/assets/freemarker2-CoeF3Y-p.js
131
145
  dw/server/ui/assets/fsharp-C8Ef5oNN.js
132
146
  dw/server/ui/assets/go-C-y9NEjX.js
133
147
  dw/server/ui/assets/graphql-fmXr3nnJ.js
134
- dw/server/ui/assets/handlebars-Beb1we4G.js
148
+ dw/server/ui/assets/handlebars-ClJeebFA.js
135
149
  dw/server/ui/assets/hcl-CpzslTdj.js
136
- dw/server/ui/assets/html-Yw-qdTCH.js
150
+ dw/server/ui/assets/html-Bp7ECOGB.js
137
151
  dw/server/ui/assets/html.worker-C93Ht9o9.js
138
- dw/server/ui/assets/htmlMode-Dbp7eBPO.js
139
- dw/server/ui/assets/index-CsXMC8a8.css
140
- dw/server/ui/assets/index-DqbiZNFq.js
152
+ dw/server/ui/assets/htmlMode-DWzbYXCs.js
153
+ dw/server/ui/assets/index-3Vw6WAPW.css
154
+ dw/server/ui/assets/index-Bv4OgazC.js
141
155
  dw/server/ui/assets/ini-sBoK_t0W.js
142
156
  dw/server/ui/assets/java-BEtHBSE6.js
143
- dw/server/ui/assets/javascript-BNzP7yQZ.js
157
+ dw/server/ui/assets/javascript-B6Cbtyg8.js
144
158
  dw/server/ui/assets/json.worker-B2V3pomh.js
145
- dw/server/ui/assets/jsonMode-DxIEESAg.js
159
+ dw/server/ui/assets/jsonMode-dg5n9059.js
146
160
  dw/server/ui/assets/julia-Bri6UV-V.js
147
161
  dw/server/ui/assets/kotlin-BOotOW0E.js
148
162
  dw/server/ui/assets/less-B9JPFI3C.js
149
163
  dw/server/ui/assets/lexon-CfSJPG6W.js
150
- dw/server/ui/assets/liquid-CeQTai1N.js
151
- dw/server/ui/assets/lspLanguageFeatures-DKVB_UCB.js
164
+ dw/server/ui/assets/liquid-CAyPEpMs.js
165
+ dw/server/ui/assets/lspLanguageFeatures-BGj-zQOH.js
152
166
  dw/server/ui/assets/lua-CsQS60Ue.js
153
167
  dw/server/ui/assets/m3-D-oSqn_W.js
154
168
  dw/server/ui/assets/markdown-Cimd5fb3.js
155
- dw/server/ui/assets/mdx-Bczl_PHr.js
169
+ dw/server/ui/assets/mdx-B5EuIkzP.js
156
170
  dw/server/ui/assets/mips-CIPQ_RoX.js
157
171
  dw/server/ui/assets/monaco--ixms01u.css
158
- dw/server/ui/assets/monaco-Bu2OB6wI.js
172
+ dw/server/ui/assets/monaco-ULLHC90E.js
159
173
  dw/server/ui/assets/msdax-DauUninz.js
160
174
  dw/server/ui/assets/mysql-SOo6toE5.js
161
175
  dw/server/ui/assets/objective-c-FvmIjYaQ.js
@@ -170,10 +184,10 @@ dw/server/ui/assets/powerquery-D3hlyOfw.js
170
184
  dw/server/ui/assets/powershell-DmHpPYUd.js
171
185
  dw/server/ui/assets/protobuf-C531GsRP.js
172
186
  dw/server/ui/assets/pug-Z5eAx3Zn.js
173
- dw/server/ui/assets/python-CeTsj82v.js
187
+ dw/server/ui/assets/python-C5D4i8ni.js
174
188
  dw/server/ui/assets/qsharp-DkqhCAOL.js
175
189
  dw/server/ui/assets/r-BwWrilGY.js
176
- dw/server/ui/assets/razor-CN7JaWqc.js
190
+ dw/server/ui/assets/razor-DL9EVLH-.js
177
191
  dw/server/ui/assets/redis-ClamHrr6.js
178
192
  dw/server/ui/assets/redshift-DT7zqm-g.js
179
193
  dw/server/ui/assets/restructuredtext-BYgofb2h.js
@@ -193,15 +207,16 @@ dw/server/ui/assets/swift-Bxkupp3x.js
193
207
  dw/server/ui/assets/systemverilog-Bz4Y3fRF.js
194
208
  dw/server/ui/assets/tcl-DISqw1ZD.js
195
209
  dw/server/ui/assets/ts.worker-D7T1-Ig5.js
196
- dw/server/ui/assets/tsMode-CoSEMx-L.js
210
+ dw/server/ui/assets/tsMode-BtDRLqfW.js
197
211
  dw/server/ui/assets/twig-De2hgUGE.js
198
- dw/server/ui/assets/typescript-CcsolRTO.js
212
+ dw/server/ui/assets/typescript-DYpkXm7y.js
199
213
  dw/server/ui/assets/typespec-B8J7ngcE.js
200
214
  dw/server/ui/assets/vb-DV3o63ZY.js
201
215
  dw/server/ui/assets/wgsl-DpFanUEy.js
202
- dw/server/ui/assets/workers-DLaycdy4.js
203
- dw/server/ui/assets/xml-QEwuyn1w.js
204
- dw/server/ui/assets/yaml-BB4U5D-R.js
216
+ dw/server/ui/assets/workers-B4R84wCs.js
217
+ dw/server/ui/assets/xml-CQNiPADm.js
218
+ dw/server/ui/assets/yaml-iWBPUkB-.js
219
+ dw/tasks/assess.py
205
220
  dw/tasks/audio_transcription.py
206
221
  dw/tasks/audio_utils.py
207
222
  dw/tasks/background_remover.py
@@ -213,6 +228,7 @@ dw/tasks/diffusion_upscale.py
213
228
  dw/tasks/dissolve_videos.py
214
229
  dw/tasks/format_messages.py
215
230
  dw/tasks/gather.py
231
+ dw/tasks/grade.py
216
232
  dw/tasks/image_to_text.py
217
233
  dw/tasks/image_utils.py
218
234
  dw/tasks/interpolate_frames.py
@@ -232,6 +248,7 @@ dw/tasks/text_generation.py
232
248
  dw/tasks/text_sections.py
233
249
  dw/tasks/upscale.py
234
250
  dw/tasks/video_utils.py
251
+ dw/tasks/voice_attribution.py
235
252
  dw/tasks/zoe_depth.py
236
253
  dw/workflows/h3_context_ir.json
237
254
  dw/workflows/test.json
@@ -251,7 +268,11 @@ dw_mcp/server.py
251
268
  dw_mcp/workspaces.py
252
269
  tests/test_argument_updates.py
253
270
  tests/test_arguments.py
271
+ tests/test_assemble_and_score_target_lufs.py
272
+ tests/test_assess.py
273
+ tests/test_assessment_rules.py
254
274
  tests/test_assets.py
275
+ tests/test_attention_slicing.py
255
276
  tests/test_audio_utils.py
256
277
  tests/test_best_of_n_template.py
257
278
  tests/test_borders.py
@@ -260,7 +281,9 @@ tests/test_catalog_shape.py
260
281
  tests/test_catalog_structure.py
261
282
  tests/test_chain.py
262
283
  tests/test_cli.py
284
+ tests/test_component_name_errors.py
263
285
  tests/test_component_pruning.py
286
+ tests/test_component_type_errors.py
264
287
  tests/test_compose_text.py
265
288
  tests/test_concat_videos.py
266
289
  tests/test_config_objects.py
@@ -272,16 +295,20 @@ tests/test_device_helpers.py
272
295
  tests/test_device_portability.py
273
296
  tests/test_dialogue_short_voices.py
274
297
  tests/test_diffusion_upscale.py
298
+ tests/test_dissolve_frame_errors.py
275
299
  tests/test_dissolve_videos.py
276
300
  tests/test_docs_links.py
301
+ tests/test_download_watch.py
277
302
  tests/test_elision.py
278
303
  tests/test_events.py
279
304
  tests/test_examples.py
280
305
  tests/test_for_each.py
281
306
  tests/test_gather.py
307
+ tests/test_grade.py
282
308
  tests/test_h3_adapters.py
283
309
  tests/test_h3_context_ir.py
284
310
  tests/test_h3_schedule.py
311
+ tests/test_h3_vram_ceiling.py
285
312
  tests/test_hf_placement.py
286
313
  tests/test_host_memory.py
287
314
  tests/test_host_memory_projection.py
@@ -302,7 +329,9 @@ tests/test_library_sources.py
302
329
  tests/test_list_images.py
303
330
  tests/test_locations.py
304
331
  tests/test_lora_alpha.py
332
+ tests/test_lora_disable.py
305
333
  tests/test_ltx2_diffusion_decode.py
334
+ tests/test_ltx2_extend_clip.py
306
335
  tests/test_ltx2_ic_loras.py
307
336
  tests/test_ltx_prompt_library.py
308
337
  tests/test_mcp_assets.py
@@ -323,13 +352,18 @@ tests/test_media_frames.py
323
352
  tests/test_media_info.py
324
353
  tests/test_mix_audio.py
325
354
  tests/test_model_cache.py
355
+ tests/test_modular_output_properties.py
326
356
  tests/test_modular_pipeline.py
327
357
  tests/test_modular_progress.py
358
+ tests/test_mps_fallback_warning.py
359
+ tests/test_mps_rope_precision.py
360
+ tests/test_null_media.py
328
361
  tests/test_observed_cost.py
329
362
  tests/test_offload_placement.py
330
363
  tests/test_output_references.py
331
364
  tests/test_pair_audio.py
332
365
  tests/test_pair_audio_fit.py
366
+ tests/test_parallel_loading_default.py
333
367
  tests/test_phase_events.py
334
368
  tests/test_pipeline_caching.py
335
369
  tests/test_pipeline_components.py
@@ -347,23 +381,30 @@ tests/test_reference_limits.py
347
381
  tests/test_reference_names.py
348
382
  tests/test_repl_commands.py
349
383
  tests/test_repl_ergonomics.py
350
- tests/test_repl_hierarchical.py
351
- tests/test_repl_reorganization.py
352
384
  tests/test_repl_worker.py
353
385
  tests/test_rerun_new_seed.py
354
386
  tests/test_resize_bucket.py
355
387
  tests/test_result.py
388
+ tests/test_result_fps.py
356
389
  tests/test_result_output_naming.py
357
390
  tests/test_runs.py
358
391
  tests/test_scalar_result_validation.py
359
392
  tests/test_scheduler_config.py
360
393
  tests/test_schema.py
361
394
  tests/test_security.py
395
+ tests/test_security_auth.py
396
+ tests/test_security_decoder_bombs.py
397
+ tests/test_security_input_caps.py
398
+ tests/test_security_ssrf.py
399
+ tests/test_security_symlinks.py
400
+ tests/test_security_trust_gate.py
401
+ tests/test_security_web_headers.py
362
402
  tests/test_segment.py
363
403
  tests/test_select.py
364
404
  tests/test_select_validation.py
365
405
  tests/test_serve_main.py
366
406
  tests/test_server.py
407
+ tests/test_server_assess.py
367
408
  tests/test_server_downloads.py
368
409
  tests/test_server_exports.py
369
410
  tests/test_server_guides.py
@@ -371,6 +412,9 @@ tests/test_server_info.py
371
412
  tests/test_server_jobs.py
372
413
  tests/test_server_mcp.py
373
414
  tests/test_server_workspaces.py
415
+ tests/test_shot_span_preflight.py
416
+ tests/test_shots.py
417
+ tests/test_slice_preflight.py
374
418
  tests/test_speech_generation.py
375
419
  tests/test_stabilize.py
376
420
  tests/test_step.py
@@ -382,6 +426,7 @@ tests/test_task_discovery.py
382
426
  tests/test_task_domains.py
383
427
  tests/test_task_signature_errors.py
384
428
  tests/test_teacache.py
429
+ tests/test_template_defaults.py
385
430
  tests/test_template_subfolders.py
386
431
  tests/test_tensor_image.py
387
432
  tests/test_text_generation.py
@@ -392,9 +437,15 @@ tests/test_updater.py
392
437
  tests/test_validate_arguments.py
393
438
  tests/test_variable_constraints.py
394
439
  tests/test_variables.py
440
+ tests/test_video_extensions.py
441
+ tests/test_video_size_errors.py
395
442
  tests/test_video_utils.py
443
+ tests/test_voice_attribution.py
444
+ tests/test_vram_estimate.py
445
+ tests/test_vram_inheritance.py
396
446
  tests/test_worker.py
397
447
  tests/test_worker_execute.py
448
+ tests/test_worker_job_peak_rss.py
398
449
  tests/test_workflow.py
399
450
  tests/test_workflow_sources.py
400
451
  tests/test_workflow_step_cache.py
@@ -28,7 +28,10 @@ imageio-ffmpeg>=0.6.0
28
28
  av>=18.1.0
29
29
  soundfile>=0.14.0
30
30
  matplotlib>=3.11.1
31
+ pyloudnorm>=0.2.0
32
+ scipy>=1.18.1
31
33
  speechbrain>=1.0.3
34
+ demucs>=4.1.0
32
35
  qrcode>=8.2
33
36
  requests>=2.34.2
34
37
  aiohttp>=3.14.3
@@ -1,8 +1,11 @@
1
1
  from .settings import resolve_path, load_settings
2
2
  from .log_setup import setup_logging
3
+ import functools
3
4
  import os
4
5
  import re
5
6
  import logging
7
+ import subprocess
8
+ import sys
6
9
  import warnings
7
10
  from dotenv import load_dotenv
8
11
 
@@ -20,14 +23,35 @@ if "PYTORCH_MPS_HIGH_WATERMARK_RATIO" not in os.environ:
20
23
  if "PYTORCH_CUDA_ALLOC_CONF" not in os.environ:
21
24
  os.environ["PYTORCH_CUDA_ALLOC_CONF"] = "expandable_segments:True"
22
25
 
23
- # Load sharded checkpoints in parallel - a pure cold-start win
26
+
27
+ def _parallel_loading_default(platform):
28
+ """Whether diffusers loads a sharded checkpoint on several threads.
29
+
30
+ A pure cold-start win on CUDA. On MPS the loader threads each copy their
31
+ tensors onto the device at once, and that segfaulted LTX-2.5's SDNQ
32
+ transformer load (exit 139, four threads inside copy_ to mps) where the
33
+ serial load succeeded in 39s. diffusers reads the variable once at import,
34
+ before dw can ask torch for a device, so this goes by platform: macOS has
35
+ no CUDA, and its accelerator is always MPS."""
36
+ return "false" if platform == "darwin" else "true"
37
+
38
+
24
39
  if "HF_ENABLE_PARALLEL_LOADING" not in os.environ:
25
- os.environ["HF_ENABLE_PARALLEL_LOADING"] = "true"
40
+ os.environ["HF_ENABLE_PARALLEL_LOADING"] = _parallel_loading_default(sys.platform)
26
41
 
27
42
  # Suppress all common library warnings before any imports
28
43
  warnings.filterwarnings("ignore", category=FutureWarning)
29
44
  warnings.filterwarnings("ignore", category=UserWarning)
30
45
  warnings.filterwarnings("ignore", category=DeprecationWarning)
46
+ # ...except torch's notice that an op the MPS backend lacks ran on the CPU. With
47
+ # PYTORCH_ENABLE_MPS_FALLBACK set (the fp4-fp8-for-torch-mps autoload sets it)
48
+ # that is otherwise a step that got several times slower with nothing to say why.
49
+ # Later filters take precedence, so this one wins over the blanket ignore above
50
+ warnings.filterwarnings(
51
+ "default",
52
+ message=r".*not currently supported on the MPS backend and will fall back",
53
+ category=UserWarning,
54
+ )
31
55
 
32
56
  # Eager (but guarded) import of torch. This module's own top-level code needs
33
57
  # torch's exceptions/types unconditionally to detect its absence gracefully
@@ -299,10 +323,11 @@ def device_memory_stats():
299
323
  """
300
324
  Snapshot of allocator memory usage for the device dw is configured for.
301
325
 
302
- Only CUDA exposes free/total figures (via torch.cuda.mem_get_info); MPS
303
- has no equivalent API, so its snapshot reports zeroed, "known" values
304
- instead. CPU, or a CUDA/MPS backend that isn't actually available despite
305
- being the configured device type, results in an "unavailable" snapshot.
326
+ CUDA exposes free/total via torch.cuda.mem_get_info. MPS reports
327
+ allocated (tensors), reserved (everything the Metal driver holds) and
328
+ total (Metal's recommended working set); free is total minus reserved.
329
+ CPU, or a CUDA/MPS backend that isn't actually available despite being
330
+ the configured device type, results in an "unavailable" snapshot.
306
331
 
307
332
  Returns:
308
333
  dict with keys:
@@ -310,10 +335,10 @@ def device_memory_stats():
310
335
  device_name (str or None)
311
336
  allocated_mb (float)
312
337
  reserved_mb (float)
313
- free_mb (float or None): None only when CUDA's mem_get_info call
314
- itself fails
315
- total_mb (float or None): None only when CUDA's mem_get_info call
316
- itself fails
338
+ free_mb (float or None): None only when the backend's capacity
339
+ probe itself fails
340
+ total_mb (float or None): None only when the backend's capacity
341
+ probe itself fails
317
342
  """
318
343
  stats = {
319
344
  "available": False,
@@ -344,15 +369,59 @@ def device_memory_stats():
344
369
  and hasattr(torch.backends, "mps")
345
370
  and torch.backends.mps.is_available()
346
371
  ):
347
- # MPS doesn't provide detailed memory stats like CUDA
372
+ # Unified memory: 'reserved' is everything the Metal driver holds for
373
+ # this process, and the ceiling is Metal's recommended working set -
374
+ # the figure past which an allocation starts to page
348
375
  stats["available"] = True
349
- stats["device_name"] = "Apple Silicon (MPS)"
350
- stats["free_mb"] = 0.0
351
- stats["total_mb"] = 0.0
376
+ stats["device_name"] = f"{_apple_chip_name()} (MPS)"
377
+ stats["allocated_mb"] = torch.mps.current_allocated_memory() / 1024 / 1024
378
+ stats["reserved_mb"] = torch.mps.driver_allocated_memory() / 1024 / 1024
379
+ try:
380
+ total = torch.mps.recommended_max_memory() / 1024 / 1024
381
+ stats["total_mb"] = total
382
+ stats["free_mb"] = max(total - stats["reserved_mb"], 0.0)
383
+ except (RuntimeError, AttributeError):
384
+ pass
352
385
 
353
386
  return stats
354
387
 
355
388
 
389
+ @functools.lru_cache(maxsize=1)
390
+ def _apple_chip_name():
391
+ """The chip's marketing name ('Apple M5 Pro'), so a reading from an 8 GB M1
392
+ and one from a 128 GB M4 Max are not reported as the same device."""
393
+ try:
394
+ result = subprocess.run(
395
+ ["sysctl", "-n", "machdep.cpu.brand_string"],
396
+ capture_output=True,
397
+ text=True,
398
+ timeout=2,
399
+ check=True,
400
+ )
401
+ return result.stdout.strip() or "Apple Silicon"
402
+ except (OSError, subprocess.SubprocessError):
403
+ return "Apple Silicon"
404
+
405
+
406
+ def device_capacity_gb(device=None):
407
+ """How much memory the accelerator can hold, in GiB - Metal's recommended
408
+ working set on MPS, the card's total on CUDA - or None where there is no
409
+ accelerator or the probe fails. Used where a check needs a ceiling for a
410
+ device no curated 'cost' entry describes."""
411
+ if not _TORCH_AVAILABLE:
412
+ return None
413
+ try:
414
+ device_type = get_device_type(device)
415
+ if device_type == "mps":
416
+ return torch.mps.recommended_max_memory() / 1024**3
417
+ if device_type == "cuda":
418
+ index = torch.device(device or get_device()).index or 0
419
+ return torch.cuda.get_device_properties(index).total_memory / 1024**3
420
+ except (RuntimeError, AttributeError, AssertionError):
421
+ return None
422
+ return None
423
+
424
+
356
425
  def startup(log_level=None):
357
426
  if not _TORCH_AVAILABLE:
358
427
  raise ImportError(