diffusers-workflow 0.4.0b7__tar.gz → 0.6.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 (546) hide show
  1. {diffusers_workflow-0.4.0b7/diffusers_workflow.egg-info → diffusers_workflow-0.6.0}/PKG-INFO +46 -14
  2. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/README.md +36 -12
  3. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0/diffusers_workflow.egg-info}/PKG-INFO +46 -14
  4. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/diffusers_workflow.egg-info/SOURCES.txt +137 -39
  5. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/diffusers_workflow.egg-info/entry_points.txt +0 -1
  6. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/diffusers_workflow.egg-info/requires.txt +9 -1
  7. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/__init__.py +83 -14
  8. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/adapter_compatibility.py +65 -21
  9. diffusers_workflow-0.6.0/dw/argument_media.py +322 -0
  10. diffusers_workflow-0.6.0/dw/argument_warnings.py +216 -0
  11. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/arguments.py +211 -315
  12. diffusers_workflow-0.6.0/dw/assessment_rules.py +193 -0
  13. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/assets.py +33 -31
  14. diffusers_workflow-0.6.0/dw/audio_qc.py +426 -0
  15. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/cache_blocks.py +2 -1
  16. diffusers_workflow-0.6.0/dw/content_types.py +208 -0
  17. diffusers_workflow-0.6.0/dw/dissolve_frame_errors.py +117 -0
  18. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/docs/ACCELERATION.md +11 -65
  19. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/docs/AGENT_LOOP.md +9 -0
  20. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/docs/DEPENDENCIES.md +2 -2
  21. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/docs/MCP.md +22 -17
  22. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/docs/RECIPES_24GB.md +12 -1
  23. diffusers_workflow-0.6.0/dw/docs/RELEASING.md +511 -0
  24. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/docs/REMOTE.md +21 -2
  25. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/docs/SECURITY.md +61 -14
  26. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/docs/SERVER.md +32 -9
  27. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/docs/TASKS.md +537 -17
  28. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/docs/TESTING.md +15 -6
  29. diffusers_workflow-0.6.0/dw/docs/WORKER_GUIDE.md +46 -0
  30. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/docs/WORKFLOW_GUIDE.md +329 -29
  31. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/docs/WORKSPACES.md +36 -21
  32. diffusers_workflow-0.6.0/dw/download_watch.py +335 -0
  33. diffusers_workflow-0.6.0/dw/dsp.py +612 -0
  34. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/elision.py +28 -9
  35. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/events.py +54 -11
  36. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/for_each.py +21 -34
  37. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/host_memory_projection.py +72 -17
  38. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/hub_cache.py +114 -0
  39. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/introspection.py +192 -229
  40. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/kernel_availability.py +5 -8
  41. diffusers_workflow-0.6.0/dw/library.py +717 -0
  42. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/locations.py +169 -39
  43. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/log_setup.py +3 -2
  44. diffusers_workflow-0.6.0/dw/media.py +851 -0
  45. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/media_frames.py +104 -125
  46. diffusers_workflow-0.6.0/dw/media_types.py +192 -0
  47. diffusers_workflow-0.6.0/dw/output_extraction.py +249 -0
  48. diffusers_workflow-0.6.0/dw/pipeline_ownership.py +308 -0
  49. diffusers_workflow-0.6.0/dw/pipeline_processors/adapters.py +164 -0
  50. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/pipeline_processors/chain.py +62 -20
  51. diffusers_workflow-0.6.0/dw/pipeline_processors/components.py +828 -0
  52. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/pipeline_processors/config_objects.py +50 -2
  53. diffusers_workflow-0.6.0/dw/pipeline_processors/pipeline.py +853 -0
  54. diffusers_workflow-0.6.0/dw/pipeline_processors/placement.py +369 -0
  55. diffusers_workflow-0.6.0/dw/pipeline_processors/progress.py +236 -0
  56. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/pipeline_processors/remote.py +1 -1
  57. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/plan.py +256 -183
  58. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/previous_results.py +47 -42
  59. diffusers_workflow-0.6.0/dw/probe_paths.py +66 -0
  60. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/prompts.py +30 -25
  61. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/realize.py +33 -21
  62. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/reference_limits.py +13 -11
  63. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/reference_names.py +3 -6
  64. diffusers_workflow-0.6.0/dw/references.py +140 -0
  65. diffusers_workflow-0.6.0/dw/result.py +848 -0
  66. diffusers_workflow-0.6.0/dw/run.py +268 -0
  67. diffusers_workflow-0.6.0/dw/runs.py +894 -0
  68. diffusers_workflow-0.6.0/dw/scalar_result_validation.py +136 -0
  69. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/schema.py +1 -1
  70. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/security.py +36 -139
  71. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/serve.py +108 -51
  72. diffusers_workflow-0.6.0/dw/server/admission.py +425 -0
  73. diffusers_workflow-0.6.0/dw/server/app.py +238 -0
  74. diffusers_workflow-0.6.0/dw/server/assess.py +135 -0
  75. diffusers_workflow-0.6.0/dw/server/catalog.py +434 -0
  76. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/catalog_shape.py +9 -9
  77. diffusers_workflow-0.6.0/dw/server/deps.py +189 -0
  78. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/exports.py +21 -17
  79. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/guides.py +60 -7
  80. diffusers_workflow-0.6.0/dw/server/http_security.py +187 -0
  81. diffusers_workflow-0.6.0/dw/server/job_history.py +437 -0
  82. diffusers_workflow-0.6.0/dw/server/job_record.py +281 -0
  83. diffusers_workflow-0.6.0/dw/server/jobs.py +898 -0
  84. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/mcp_mount.py +2 -5
  85. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/netinfo.py +9 -1
  86. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/observed_cost.py +29 -1
  87. diffusers_workflow-0.6.0/dw/server/outputs.py +400 -0
  88. diffusers_workflow-0.6.0/dw/server/routes/__init__.py +46 -0
  89. diffusers_workflow-0.6.0/dw/server/routes/assets.py +443 -0
  90. diffusers_workflow-0.6.0/dw/server/routes/files.py +159 -0
  91. diffusers_workflow-0.6.0/dw/server/routes/gallery.py +385 -0
  92. diffusers_workflow-0.6.0/dw/server/routes/jobs.py +765 -0
  93. diffusers_workflow-0.6.0/dw/server/routes/library.py +706 -0
  94. diffusers_workflow-0.6.0/dw/server/routes/media.py +566 -0
  95. diffusers_workflow-0.6.0/dw/server/routes/system.py +416 -0
  96. diffusers_workflow-0.4.0b7/dw/server/ui/assets/cssMode-xQCqMuag.js → diffusers_workflow-0.6.0/dw/server/ui/assets/cssMode-CjZLP_Pe.js +1 -1
  97. diffusers_workflow-0.4.0b7/dw/server/ui/assets/editor.api-Bfiq9hmW.js → diffusers_workflow-0.6.0/dw/server/ui/assets/editor.api-DXlBngV6.js +1 -1
  98. diffusers_workflow-0.4.0b7/dw/server/ui/assets/freemarker2-BwDnlSuz.js → diffusers_workflow-0.6.0/dw/server/ui/assets/freemarker2-CtKALOjK.js +1 -1
  99. diffusers_workflow-0.4.0b7/dw/server/ui/assets/handlebars-Beb1we4G.js → diffusers_workflow-0.6.0/dw/server/ui/assets/handlebars-teGPbQUB.js +1 -1
  100. diffusers_workflow-0.4.0b7/dw/server/ui/assets/html-Yw-qdTCH.js → diffusers_workflow-0.6.0/dw/server/ui/assets/html-DfSymt9C.js +1 -1
  101. diffusers_workflow-0.4.0b7/dw/server/ui/assets/htmlMode-Dbp7eBPO.js → diffusers_workflow-0.6.0/dw/server/ui/assets/htmlMode-Cr3jQp_U.js +1 -1
  102. diffusers_workflow-0.4.0b7/dw/server/ui/assets/index-CsXMC8a8.css → diffusers_workflow-0.6.0/dw/server/ui/assets/index-3Vw6WAPW.css +1 -1
  103. diffusers_workflow-0.6.0/dw/server/ui/assets/index-J5rsq_M9.js +43 -0
  104. diffusers_workflow-0.4.0b7/dw/server/ui/assets/javascript-BNzP7yQZ.js → diffusers_workflow-0.6.0/dw/server/ui/assets/javascript-BeSdrNYj.js +1 -1
  105. diffusers_workflow-0.4.0b7/dw/server/ui/assets/jsonMode-DxIEESAg.js → diffusers_workflow-0.6.0/dw/server/ui/assets/jsonMode-DJLaxAu8.js +1 -1
  106. diffusers_workflow-0.4.0b7/dw/server/ui/assets/liquid-CeQTai1N.js → diffusers_workflow-0.6.0/dw/server/ui/assets/liquid-D5XtXQ2P.js +1 -1
  107. diffusers_workflow-0.4.0b7/dw/server/ui/assets/lspLanguageFeatures-DKVB_UCB.js → diffusers_workflow-0.6.0/dw/server/ui/assets/lspLanguageFeatures-BJkK4mNN.js +1 -1
  108. diffusers_workflow-0.4.0b7/dw/server/ui/assets/mdx-Bczl_PHr.js → diffusers_workflow-0.6.0/dw/server/ui/assets/mdx-CIThOdKr.js +1 -1
  109. diffusers_workflow-0.4.0b7/dw/server/ui/assets/monaco-Bu2OB6wI.js → diffusers_workflow-0.6.0/dw/server/ui/assets/monaco-CYXGxb41.js +4 -4
  110. diffusers_workflow-0.4.0b7/dw/server/ui/assets/python-CeTsj82v.js → diffusers_workflow-0.6.0/dw/server/ui/assets/python-BlzkzsC6.js +1 -1
  111. diffusers_workflow-0.4.0b7/dw/server/ui/assets/razor-CN7JaWqc.js → diffusers_workflow-0.6.0/dw/server/ui/assets/razor-DeSKNqSl.js +1 -1
  112. diffusers_workflow-0.4.0b7/dw/server/ui/assets/tsMode-CoSEMx-L.js → diffusers_workflow-0.6.0/dw/server/ui/assets/tsMode-BCUw0fMr.js +1 -1
  113. diffusers_workflow-0.4.0b7/dw/server/ui/assets/typescript-CcsolRTO.js → diffusers_workflow-0.6.0/dw/server/ui/assets/typescript-3N0ou1YS.js +1 -1
  114. diffusers_workflow-0.4.0b7/dw/server/ui/assets/workers-DLaycdy4.js → diffusers_workflow-0.6.0/dw/server/ui/assets/workers-C91O0to6.js +1 -1
  115. diffusers_workflow-0.4.0b7/dw/server/ui/assets/xml-QEwuyn1w.js → diffusers_workflow-0.6.0/dw/server/ui/assets/xml-DmIqin7X.js +1 -1
  116. diffusers_workflow-0.4.0b7/dw/server/ui/assets/yaml-BB4U5D-R.js → diffusers_workflow-0.6.0/dw/server/ui/assets/yaml-BQg2lXI1.js +1 -1
  117. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/index.html +2 -2
  118. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/settings.py +9 -0
  119. diffusers_workflow-0.6.0/dw/shot_span_preflight.py +118 -0
  120. diffusers_workflow-0.6.0/dw/shots.py +420 -0
  121. diffusers_workflow-0.6.0/dw/slice_preflight.py +173 -0
  122. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/step.py +24 -1
  123. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/step_cache.py +283 -30
  124. diffusers_workflow-0.6.0/dw/step_value_checks.py +312 -0
  125. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/subfolders.py +3 -6
  126. diffusers_workflow-0.6.0/dw/task_domains.py +483 -0
  127. diffusers_workflow-0.6.0/dw/tasks/assess.py +854 -0
  128. diffusers_workflow-0.6.0/dw/tasks/audio_dynamics.py +423 -0
  129. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/tasks/audio_transcription.py +53 -5
  130. diffusers_workflow-0.6.0/dw/tasks/audio_utils.py +882 -0
  131. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/tasks/compose_text.py +1 -1
  132. diffusers_workflow-0.6.0/dw/tasks/concat_videos.py +383 -0
  133. diffusers_workflow-0.6.0/dw/tasks/dissolve_videos.py +309 -0
  134. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/tasks/gather.py +8 -4
  135. diffusers_workflow-0.6.0/dw/tasks/grade.py +97 -0
  136. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/tasks/image_utils.py +39 -1
  137. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/tasks/interpolate_frames.py +10 -2
  138. diffusers_workflow-0.6.0/dw/tasks/join_into_song.py +461 -0
  139. diffusers_workflow-0.6.0/dw/tasks/joins.py +581 -0
  140. diffusers_workflow-0.6.0/dw/tasks/loop_bed.py +850 -0
  141. diffusers_workflow-0.6.0/dw/tasks/pair_audio.py +367 -0
  142. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/tasks/segment.py +15 -4
  143. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/tasks/select.py +14 -36
  144. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/tasks/speech_generation.py +4 -2
  145. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/tasks/stabilize.py +10 -2
  146. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/tasks/task.py +187 -37
  147. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/tasks/video_utils.py +127 -212
  148. diffusers_workflow-0.6.0/dw/tasks/voice_attribution.py +811 -0
  149. diffusers_workflow-0.6.0/dw/trust.py +277 -0
  150. diffusers_workflow-0.6.0/dw/type_helpers.py +235 -0
  151. diffusers_workflow-0.6.0/dw/type_references.py +267 -0
  152. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/validate.py +2 -1
  153. diffusers_workflow-0.6.0/dw/validation.py +835 -0
  154. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/variable_constraints.py +63 -38
  155. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/variables.py +79 -21
  156. diffusers_workflow-0.6.0/dw/video_extensions.py +134 -0
  157. diffusers_workflow-0.6.0/dw/video_size_errors.py +114 -0
  158. diffusers_workflow-0.6.0/dw/vram_estimate.py +413 -0
  159. diffusers_workflow-0.6.0/dw/vram_inheritance.py +159 -0
  160. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/worker.py +278 -222
  161. diffusers_workflow-0.4.0b7/dw/repl_worker.py → diffusers_workflow-0.6.0/dw/worker_manager.py +40 -4
  162. diffusers_workflow-0.6.0/dw/worker_protocol.py +235 -0
  163. diffusers_workflow-0.6.0/dw/workflow.py +996 -0
  164. diffusers_workflow-0.6.0/dw/workflow_run.py +972 -0
  165. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/workflow_schema.json +15 -34
  166. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/workflows/test.json +1 -1
  167. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/workspace.py +16 -69
  168. diffusers_workflow-0.6.0/dw/writers.py +376 -0
  169. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw_mcp/assets.py +122 -20
  170. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw_mcp/authoring.py +30 -38
  171. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw_mcp/catalog.py +90 -14
  172. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw_mcp/client.py +46 -5
  173. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw_mcp/diagnose.py +24 -11
  174. diffusers_workflow-0.6.0/dw_mcp/exports.py +84 -0
  175. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw_mcp/guides.py +3 -1
  176. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw_mcp/media.py +78 -8
  177. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw_mcp/prompts.py +2 -1
  178. diffusers_workflow-0.6.0/dw_mcp/server.py +204 -0
  179. diffusers_workflow-0.6.0/dw_mcp/tools_authoring.py +233 -0
  180. diffusers_workflow-0.6.0/dw_mcp/tools_catalog.py +432 -0
  181. diffusers_workflow-0.6.0/dw_mcp/tools_jobs.py +231 -0
  182. diffusers_workflow-0.6.0/dw_mcp/tools_media.py +382 -0
  183. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw_mcp/workspaces.py +10 -5
  184. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/pyproject.toml +28 -3
  185. diffusers_workflow-0.6.0/tests/test_admission.py +651 -0
  186. diffusers_workflow-0.6.0/tests/test_arch_metrics.py +183 -0
  187. diffusers_workflow-0.6.0/tests/test_arch_report.py +95 -0
  188. diffusers_workflow-0.6.0/tests/test_argument_updates.py +64 -0
  189. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_arguments.py +152 -49
  190. diffusers_workflow-0.6.0/tests/test_assemble_and_score_target_lufs.py +126 -0
  191. diffusers_workflow-0.6.0/tests/test_assess.py +926 -0
  192. diffusers_workflow-0.6.0/tests/test_assessment_rules.py +293 -0
  193. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_assets.py +18 -1
  194. diffusers_workflow-0.6.0/tests/test_attention_slicing.py +31 -0
  195. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_audio_utils.py +527 -70
  196. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_best_of_n_template.py +0 -10
  197. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_borders.py +0 -6
  198. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_cache_blocks.py +5 -5
  199. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_catalog_structure.py +105 -7
  200. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_chain.py +26 -1
  201. diffusers_workflow-0.6.0/tests/test_cli.py +495 -0
  202. diffusers_workflow-0.6.0/tests/test_component_name_errors.py +142 -0
  203. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_component_pruning.py +1 -1
  204. diffusers_workflow-0.6.0/tests/test_component_type_errors.py +335 -0
  205. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_concat_videos.py +371 -6
  206. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_config_objects.py +130 -1
  207. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_configuration_schema.py +4 -0
  208. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_device_helpers.py +56 -6
  209. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_device_portability.py +4 -3
  210. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_dialogue_short_voices.py +0 -10
  211. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_diffusion_upscale.py +1 -11
  212. diffusers_workflow-0.6.0/tests/test_dissolve_frame_errors.py +237 -0
  213. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_dissolve_videos.py +162 -1
  214. diffusers_workflow-0.6.0/tests/test_download_watch.py +265 -0
  215. diffusers_workflow-0.6.0/tests/test_dsp.py +60 -0
  216. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_elision.py +118 -32
  217. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_events.py +159 -34
  218. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_examples.py +3 -4
  219. diffusers_workflow-0.6.0/tests/test_find_loop_bed.py +920 -0
  220. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_for_each.py +2 -2
  221. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_gather.py +22 -82
  222. diffusers_workflow-0.6.0/tests/test_grade.py +265 -0
  223. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_h3_schedule.py +35 -7
  224. diffusers_workflow-0.6.0/tests/test_h3_vram_ceiling.py +250 -0
  225. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_host_memory.py +13 -23
  226. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_host_memory_projection.py +47 -10
  227. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_hub_cache.py +133 -1
  228. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_image_utils.py +0 -8
  229. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_integration.py +55 -7
  230. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_interpolate_frames.py +1 -1
  231. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_introspection.py +55 -1
  232. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_job_history_wal.py +1 -1
  233. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_job_progress.py +1 -1
  234. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_job_warnings.py +1 -1
  235. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_jobs_listing.py +1 -1
  236. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_jobs_reused.py +2 -1
  237. diffusers_workflow-0.6.0/tests/test_join_into_song.py +500 -0
  238. diffusers_workflow-0.6.0/tests/test_library_path.py +749 -0
  239. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_library_sources.py +80 -24
  240. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_list_images.py +1 -18
  241. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_locations.py +29 -4
  242. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_lora_alpha.py +5 -5
  243. diffusers_workflow-0.6.0/tests/test_lora_disable.py +174 -0
  244. diffusers_workflow-0.6.0/tests/test_ltx2_extend_clip.py +35 -0
  245. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_ltx2_ic_loras.py +70 -7
  246. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_ltx_prompt_library.py +2 -1
  247. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_mcp_assets.py +266 -9
  248. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_mcp_authoring.py +62 -20
  249. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_mcp_catalog.py +132 -14
  250. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_mcp_client.py +16 -14
  251. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_mcp_diagnose.py +50 -59
  252. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_mcp_exports.py +55 -16
  253. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_mcp_guides.py +0 -16
  254. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_mcp_media.py +111 -55
  255. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_mcp_models.py +0 -58
  256. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_mcp_prompts.py +3 -136
  257. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_mcp_server.py +124 -42
  258. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_mcp_workspaces.py +47 -0
  259. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_media_audio.py +4 -4
  260. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_media_frames.py +49 -11
  261. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_media_info.py +209 -1
  262. diffusers_workflow-0.6.0/tests/test_media_layering.py +152 -0
  263. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_mix_audio.py +19 -1
  264. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_model_cache.py +5 -37
  265. diffusers_workflow-0.6.0/tests/test_modular_output_properties.py +183 -0
  266. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_modular_pipeline.py +4 -4
  267. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_modular_progress.py +21 -3
  268. diffusers_workflow-0.6.0/tests/test_mps_fallback_warning.py +28 -0
  269. diffusers_workflow-0.6.0/tests/test_mps_rope_precision.py +64 -0
  270. diffusers_workflow-0.6.0/tests/test_null_media.py +107 -0
  271. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_observed_cost.py +65 -2
  272. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_offload_placement.py +3 -3
  273. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_output_references.py +0 -4
  274. diffusers_workflow-0.6.0/tests/test_pair_audio.py +300 -0
  275. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_pair_audio_fit.py +79 -9
  276. diffusers_workflow-0.6.0/tests/test_parallel_loading_default.py +51 -0
  277. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_phase_events.py +11 -11
  278. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_pipeline_caching.py +444 -86
  279. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_pipeline_components.py +194 -15
  280. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_plan.py +151 -7
  281. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_plugin_skills.py +136 -8
  282. diffusers_workflow-0.6.0/tests/test_prepare_pipeline.py +150 -0
  283. diffusers_workflow-0.6.0/tests/test_previous_result_walker_parity.py +107 -0
  284. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_previous_results.py +23 -14
  285. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_prompt_references.py +14 -2
  286. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_prompts.py +10 -41
  287. diffusers_workflow-0.6.0/tests/test_real_models.py +178 -0
  288. diffusers_workflow-0.6.0/tests/test_realize.py +616 -0
  289. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_recenter_crop.py +7 -1
  290. diffusers_workflow-0.6.0/tests/test_reference_sets.py +36 -0
  291. diffusers_workflow-0.6.0/tests/test_references.py +90 -0
  292. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_rerun_new_seed.py +20 -0
  293. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_resize_bucket.py +1 -10
  294. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_result.py +442 -98
  295. diffusers_workflow-0.6.0/tests/test_result_fps.py +189 -0
  296. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_result_output_naming.py +1 -1
  297. diffusers_workflow-0.6.0/tests/test_rule_parity.py +313 -0
  298. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_runs.py +451 -1
  299. diffusers_workflow-0.6.0/tests/test_scalar_result_validation.py +378 -0
  300. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_scheduler_config.py +1 -1
  301. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_schema.py +4 -11
  302. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_security.py +6 -27
  303. diffusers_workflow-0.6.0/tests/test_security_auth.py +451 -0
  304. diffusers_workflow-0.6.0/tests/test_security_decoder_bombs.py +209 -0
  305. diffusers_workflow-0.6.0/tests/test_security_input_caps.py +244 -0
  306. diffusers_workflow-0.6.0/tests/test_security_ssrf.py +772 -0
  307. diffusers_workflow-0.6.0/tests/test_security_symlinks.py +681 -0
  308. diffusers_workflow-0.6.0/tests/test_security_trust_gate.py +992 -0
  309. diffusers_workflow-0.6.0/tests/test_security_web_headers.py +307 -0
  310. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_segment.py +87 -1
  311. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_select.py +0 -5
  312. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_select_validation.py +1 -1
  313. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_serve_main.py +7 -0
  314. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_server.py +943 -175
  315. diffusers_workflow-0.6.0/tests/test_server_assess.py +282 -0
  316. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_server_exports.py +75 -1
  317. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_server_guides.py +61 -1
  318. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_server_info.py +65 -16
  319. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_server_jobs.py +235 -14
  320. diffusers_workflow-0.6.0/tests/test_server_library_path.py +551 -0
  321. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_server_workspaces.py +175 -44
  322. diffusers_workflow-0.6.0/tests/test_shaping_logs.py +57 -0
  323. diffusers_workflow-0.6.0/tests/test_shot_span_preflight.py +175 -0
  324. diffusers_workflow-0.6.0/tests/test_shots.py +1219 -0
  325. diffusers_workflow-0.6.0/tests/test_slice_preflight.py +189 -0
  326. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_speech_generation.py +0 -17
  327. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_stabilize.py +2 -2
  328. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_step.py +46 -0
  329. diffusers_workflow-0.6.0/tests/test_step_cache.py +880 -0
  330. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_strip_exif_and_watermark.py +38 -12
  331. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_task.py +20 -28
  332. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_task_discovery.py +1 -1
  333. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_task_domains.py +34 -5
  334. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_task_signature_errors.py +91 -10
  335. diffusers_workflow-0.6.0/tests/test_template_defaults.py +59 -0
  336. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_template_subfolders.py +4 -23
  337. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_tensor_image.py +0 -11
  338. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_text_generation.py +0 -9
  339. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_text_sections.py +7 -1
  340. diffusers_workflow-0.6.0/tests/test_transcribe_audio.py +260 -0
  341. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_type_helpers.py +2 -10
  342. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_validate_arguments.py +126 -0
  343. diffusers_workflow-0.6.0/tests/test_validation.py +415 -0
  344. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_variable_constraints.py +89 -2
  345. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_variables.py +50 -1
  346. diffusers_workflow-0.6.0/tests/test_video_extensions.py +107 -0
  347. diffusers_workflow-0.6.0/tests/test_video_size_errors.py +206 -0
  348. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_video_utils.py +337 -9
  349. diffusers_workflow-0.6.0/tests/test_voice_attribution.py +784 -0
  350. diffusers_workflow-0.6.0/tests/test_vram_estimate.py +420 -0
  351. diffusers_workflow-0.6.0/tests/test_vram_inheritance.py +435 -0
  352. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_worker.py +85 -108
  353. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_worker_execute.py +208 -55
  354. diffusers_workflow-0.6.0/tests/test_worker_job_peak_rss.py +56 -0
  355. diffusers_workflow-0.6.0/tests/test_worker_manager.py +210 -0
  356. diffusers_workflow-0.6.0/tests/test_worker_messages.py +246 -0
  357. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_workflow.py +293 -37
  358. diffusers_workflow-0.6.0/tests/test_workflow_snapshot.py +98 -0
  359. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_workflow_step_cache.py +526 -54
  360. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_workflow_trust.py +161 -10
  361. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_workspace.py +0 -5
  362. diffusers_workflow-0.4.0b7/dw/content_types.py +0 -105
  363. diffusers_workflow-0.4.0b7/dw/docs/RELEASING.md +0 -81
  364. diffusers_workflow-0.4.0b7/dw/docs/REPL_COMMANDS.md +0 -121
  365. diffusers_workflow-0.4.0b7/dw/docs/REPL_WORKER_GUIDE.md +0 -51
  366. diffusers_workflow-0.4.0b7/dw/media_audio.py +0 -217
  367. diffusers_workflow-0.4.0b7/dw/media_info.py +0 -256
  368. diffusers_workflow-0.4.0b7/dw/pipeline_processors/pipeline.py +0 -2289
  369. diffusers_workflow-0.4.0b7/dw/repl.py +0 -338
  370. diffusers_workflow-0.4.0b7/dw/repl_commands.py +0 -846
  371. diffusers_workflow-0.4.0b7/dw/result.py +0 -1585
  372. diffusers_workflow-0.4.0b7/dw/run.py +0 -162
  373. diffusers_workflow-0.4.0b7/dw/runs.py +0 -419
  374. diffusers_workflow-0.4.0b7/dw/scalar_result_validation.py +0 -78
  375. diffusers_workflow-0.4.0b7/dw/select_validation.py +0 -115
  376. diffusers_workflow-0.4.0b7/dw/server/app.py +0 -4160
  377. diffusers_workflow-0.4.0b7/dw/server/jobs.py +0 -1526
  378. diffusers_workflow-0.4.0b7/dw/server/ui/assets/index-DqbiZNFq.js +0 -43
  379. diffusers_workflow-0.4.0b7/dw/task_domains.py +0 -264
  380. diffusers_workflow-0.4.0b7/dw/tasks/audio_utils.py +0 -1658
  381. diffusers_workflow-0.4.0b7/dw/tasks/concat_videos.py +0 -237
  382. diffusers_workflow-0.4.0b7/dw/tasks/dissolve_videos.py +0 -215
  383. diffusers_workflow-0.4.0b7/dw/tasks/pair_audio.py +0 -189
  384. diffusers_workflow-0.4.0b7/dw/teacache.py +0 -381
  385. diffusers_workflow-0.4.0b7/dw/teacache_models.json +0 -99
  386. diffusers_workflow-0.4.0b7/dw/type_helpers.py +0 -80
  387. diffusers_workflow-0.4.0b7/dw/vram_estimate.py +0 -116
  388. diffusers_workflow-0.4.0b7/dw/workflow.py +0 -1774
  389. diffusers_workflow-0.4.0b7/dw/workflow_sources.py +0 -307
  390. diffusers_workflow-0.4.0b7/dw_mcp/exports.py +0 -43
  391. diffusers_workflow-0.4.0b7/dw_mcp/server.py +0 -1332
  392. diffusers_workflow-0.4.0b7/tests/test_argument_updates.py +0 -250
  393. diffusers_workflow-0.4.0b7/tests/test_cli.py +0 -219
  394. diffusers_workflow-0.4.0b7/tests/test_pair_audio.py +0 -117
  395. diffusers_workflow-0.4.0b7/tests/test_realize.py +0 -343
  396. diffusers_workflow-0.4.0b7/tests/test_repl_commands.py +0 -60
  397. diffusers_workflow-0.4.0b7/tests/test_repl_ergonomics.py +0 -113
  398. diffusers_workflow-0.4.0b7/tests/test_repl_hierarchical.py +0 -119
  399. diffusers_workflow-0.4.0b7/tests/test_repl_reorganization.py +0 -144
  400. diffusers_workflow-0.4.0b7/tests/test_repl_worker.py +0 -112
  401. diffusers_workflow-0.4.0b7/tests/test_scalar_result_validation.py +0 -103
  402. diffusers_workflow-0.4.0b7/tests/test_step_cache.py +0 -469
  403. diffusers_workflow-0.4.0b7/tests/test_teacache.py +0 -310
  404. diffusers_workflow-0.4.0b7/tests/test_transcribe_audio.py +0 -104
  405. diffusers_workflow-0.4.0b7/tests/test_workflow_sources.py +0 -174
  406. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/LICENSE +0 -0
  407. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/MANIFEST.in +0 -0
  408. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/diffusers_workflow.egg-info/dependency_links.txt +0 -0
  409. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/diffusers_workflow.egg-info/top_level.txt +0 -0
  410. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/cache_blocks.json +0 -0
  411. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/community_pipelines/pipeline_flux_rf_inversion.py +0 -0
  412. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/docs/IP_ADAPTER.md +0 -0
  413. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/docs/LORAS.md +0 -0
  414. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/docs/PROMPT_WEIGHTING.md +0 -0
  415. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/docs/QUANTIZATION.md +0 -0
  416. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/docs/SECURITY_QUICKREF.md +0 -0
  417. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/host_memory.py +0 -0
  418. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/prompt_schema.json +0 -0
  419. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/prompt_weighting.py +0 -0
  420. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/__init__.py +0 -0
  421. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/enhancers.py +0 -0
  422. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/sysinfo.py +0 -0
  423. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/abap-08VXUWAP.js +0 -0
  424. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/apex-BWPQTe0t.js +0 -0
  425. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/azcli-Bc_sGQ0U.js +0 -0
  426. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/bat-i0X4ZdIN.js +0 -0
  427. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/bicep-B5-_aFwp.js +0 -0
  428. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/cameligo-DMUM7wLl.js +0 -0
  429. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/clojure-Cm7r79vr.js +0 -0
  430. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/codicon-Brq4_Ui5.ttf +0 -0
  431. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/coffee-Ba7i2nA0.js +0 -0
  432. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/cpp-C7h46wYY.js +0 -0
  433. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/csharp-BKxtCVv1.js +0 -0
  434. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/csp-bTuwJoIa.js +0 -0
  435. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/css-DIMkf-bt.js +0 -0
  436. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/css.worker-B3ciXF_0.js +0 -0
  437. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/cypher-CVaqCwHa.js +0 -0
  438. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/dart-onAF5SnQ.js +0 -0
  439. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/dockerfile-DZFCIeNp.js +0 -0
  440. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/ecl-D05T4iGw.js +0 -0
  441. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/editor-jjEx9u7D.css +0 -0
  442. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/editor.worker-q-txB4vs.js +0 -0
  443. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/elixir-6RTg0lbw.js +0 -0
  444. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/flow9-C5_-GSwl.js +0 -0
  445. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/fsharp-C8Ef5oNN.js +0 -0
  446. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/go-C-y9NEjX.js +0 -0
  447. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/graphql-fmXr3nnJ.js +0 -0
  448. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/hcl-CpzslTdj.js +0 -0
  449. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/html.worker-C93Ht9o9.js +0 -0
  450. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/ini-sBoK_t0W.js +0 -0
  451. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/java-BEtHBSE6.js +0 -0
  452. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/json.worker-B2V3pomh.js +0 -0
  453. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/julia-Bri6UV-V.js +0 -0
  454. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/kotlin-BOotOW0E.js +0 -0
  455. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/less-B9JPFI3C.js +0 -0
  456. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/lexon-CfSJPG6W.js +0 -0
  457. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/lua-CsQS60Ue.js +0 -0
  458. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/m3-D-oSqn_W.js +0 -0
  459. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/markdown-Cimd5fb3.js +0 -0
  460. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/mips-CIPQ_RoX.js +0 -0
  461. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/monaco--ixms01u.css +0 -0
  462. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/msdax-DauUninz.js +0 -0
  463. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/mysql-SOo6toE5.js +0 -0
  464. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/objective-c-FvmIjYaQ.js +0 -0
  465. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/pascal-DrH0SRf2.js +0 -0
  466. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/pascaligo-D-ptJ9y-.js +0 -0
  467. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/perl-oz_6vUea.js +0 -0
  468. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/pgsql-DTj74zXo.js +0 -0
  469. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/php-nr791fC2.js +0 -0
  470. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/pla-CopQ2nXW.js +0 -0
  471. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/postiats-43DmfD33.js +0 -0
  472. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/powerquery-D3hlyOfw.js +0 -0
  473. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/powershell-DmHpPYUd.js +0 -0
  474. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/protobuf-C531GsRP.js +0 -0
  475. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/pug-Z5eAx3Zn.js +0 -0
  476. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/qsharp-DkqhCAOL.js +0 -0
  477. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/r-BwWrilGY.js +0 -0
  478. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/redis-ClamHrr6.js +0 -0
  479. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/redshift-DT7zqm-g.js +0 -0
  480. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/restructuredtext-BYgofb2h.js +0 -0
  481. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/ruby-DezsRK8O.js +0 -0
  482. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/rust-DdL9SqIa.js +0 -0
  483. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/sb-CcwsVR0C.js +0 -0
  484. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/scala-DHpiXF5c.js +0 -0
  485. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/scheme-BeGwcela.js +0 -0
  486. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/scss-gp-XZpBa.js +0 -0
  487. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/shell-CC2rA5mh.js +0 -0
  488. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/solidity-BEEn4gHE.js +0 -0
  489. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/sophia-CRfGWb83.js +0 -0
  490. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/sparql-D_Lu-MrJ.js +0 -0
  491. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/sql-NEE52Syq.js +0 -0
  492. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/st-DbInun42.js +0 -0
  493. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/swift-Bxkupp3x.js +0 -0
  494. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/systemverilog-Bz4Y3fRF.js +0 -0
  495. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/tcl-DISqw1ZD.js +0 -0
  496. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/ts.worker-D7T1-Ig5.js +0 -0
  497. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/twig-De2hgUGE.js +0 -0
  498. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/typespec-B8J7ngcE.js +0 -0
  499. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/vb-DV3o63ZY.js +0 -0
  500. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/ui/assets/wgsl-DpFanUEy.js +0 -0
  501. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/server/updater.py +0 -0
  502. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/tasks/background_remover.py +0 -0
  503. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/tasks/borders.py +0 -0
  504. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/tasks/depth_estimator.py +0 -0
  505. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/tasks/diffusion_upscale.py +0 -0
  506. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/tasks/format_messages.py +0 -0
  507. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/tasks/image_to_text.py +0 -0
  508. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/tasks/judge.py +0 -0
  509. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/tasks/model_cache.py +0 -0
  510. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/tasks/qr_code.py +0 -0
  511. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/tasks/restore_faces.py +0 -0
  512. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/tasks/rife_model.py +0 -0
  513. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/tasks/tensor_image.py +0 -0
  514. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/tasks/text_generation.py +0 -0
  515. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/tasks/text_sections.py +0 -0
  516. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/tasks/upscale.py +0 -0
  517. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/tasks/zoe_depth.py +0 -0
  518. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/test.py +0 -0
  519. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw/workflows/h3_context_ir.json +0 -0
  520. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw_mcp/__init__.py +0 -0
  521. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw_mcp/__main__.py +0 -0
  522. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/dw_mcp/models.py +0 -0
  523. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/setup.cfg +0 -0
  524. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_catalog_shape.py +0 -0
  525. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_compose_text.py +0 -0
  526. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_content_types.py +0 -0
  527. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_depth_estimator.py +0 -0
  528. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_device.py +0 -0
  529. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_docs_links.py +0 -0
  530. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_h3_adapters.py +0 -0
  531. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_h3_context_ir.py +0 -0
  532. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_hf_placement.py +0 -0
  533. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_image_to_text.py +0 -0
  534. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_judge.py +0 -0
  535. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_kernel_availability.py +0 -0
  536. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_ltx2_diffusion_decode.py +0 -0
  537. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_mcp_main.py +0 -0
  538. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_prompt_library.py +0 -0
  539. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_prompt_parser.py +0 -0
  540. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_prompt_weighting.py +0 -0
  541. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_reference_limits.py +0 -0
  542. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_reference_names.py +0 -0
  543. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_server_downloads.py +0 -0
  544. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_server_mcp.py +0 -0
  545. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.0}/tests/test_subfolders.py +0 -0
  546. {diffusers_workflow-0.4.0b7 → diffusers_workflow-0.6.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.6.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
@@ -56,12 +59,13 @@ Requires-Dist: jsonschema>=4.26.0
56
59
  Requires-Dist: concurrent-log-handler>=0.9.29
57
60
  Requires-Dist: python-dotenv>=1.2.3
58
61
  Requires-Dist: packaging>=26.3
62
+ Requires-Dist: filelock>=3.12
63
+ Requires-Dist: httpx>=0.28.1
59
64
  Provides-Extra: server
60
65
  Requires-Dist: fastapi>=0.141.1; extra == "server"
61
66
  Requires-Dist: uvicorn[standard]>=0.52.4; extra == "server"
62
67
  Provides-Extra: mcp
63
68
  Requires-Dist: mcp>=2.1.1; extra == "mcp"
64
- Requires-Dist: httpx>=0.28.1; extra == "mcp"
65
69
  Provides-Extra: dev
66
70
  Requires-Dist: pytest>=9.1.1; extra == "dev"
67
71
  Requires-Dist: pytest-cov>=7.1.0; extra == "dev"
@@ -73,6 +77,10 @@ Requires-Dist: httpx>=0.28.1; extra == "dev"
73
77
  Requires-Dist: ruff>=0.15.0; extra == "dev"
74
78
  Requires-Dist: build; extra == "dev"
75
79
  Requires-Dist: mcp>=2.1.1; extra == "dev"
80
+ Requires-Dist: pylint>=3.3; extra == "dev"
81
+ Requires-Dist: import-linter>=2.15; extra == "dev"
82
+ Requires-Dist: networkx>=3.0; extra == "dev"
83
+ Requires-Dist: pygount>=3.2; extra == "dev"
76
84
  Dynamic: license-file
77
85
 
78
86
  [![CodeQL](https://github.com/dkackman/diffusers-workflow/actions/workflows/github-code-scanning/codeql/badge.svg)](https://github.com/dkackman/diffusers-workflow/actions/workflows/github-code-scanning/codeql)
@@ -85,7 +93,7 @@ diffusers-workflow wraps the [Hugging Face Diffusers library](https://github.com
85
93
  in an engine that runs image, video and audio generation as jobs, and puts
86
94
  two front ends on it: an **MCP server**, so Claude Code (or any MCP client)
87
95
  can author, run and inspect generations; and a **web UI** for doing the same
88
- by hand. A CLI and REPL sit underneath for when you want neither.
96
+ by hand. A CLI sits underneath for when you want neither.
89
97
 
90
98
  **Python 3.10-3.14 | CUDA (NVIDIA) | MPS (Apple Silicon) | CPU**
91
99
 
@@ -109,8 +117,8 @@ source ./activate
109
117
  .\venv\scripts\activate
110
118
  ```
111
119
 
112
- `python -m dw.test` confirms torch and diffusers import and shows which
113
- accelerator was found.
120
+ `python -m dw.test` runs a small built-in workflow end to end - it downloads
121
+ SD 1.5 (a few GB) and generates one image on whichever accelerator was found.
114
122
 
115
123
  **2. Start the engine.** Leave it running; everything else talks to it.
116
124
 
@@ -160,7 +168,7 @@ once; without it the run fails partway through with a 401/403 from the Hub.
160
168
 
161
169
  ## Drive it from an agent
162
170
 
163
- Then just ask. The agent has 58 tools covering the whole surface — the
171
+ Then just ask. The agent has 59 tools covering the whole surface — the
164
172
  workflow catalog, the real diffusers pipeline signatures, the job queue, the
165
173
  gallery, the model cache:
166
174
 
@@ -199,6 +207,23 @@ and outputs — so two agents, or an agent and you in the browser, share the GPU
199
207
  without saving over each other. An agent calls `use_workspace` once and the
200
208
  rest of the session lands there.
201
209
 
210
+ **Feedback from a session.** At the end of a working session, ask the agent
211
+ what got in its way: bugs, gaps, misleading skill text, tools it reached for
212
+ and couldn't find. Have it file each one as an issue on
213
+ `dkackman/diffusers-workflow` with the `field-report` label, for example:
214
+
215
+ > File each bug or gap you hit as an issue on dkackman/diffusers-workflow
216
+ > with the label `field-report`.
217
+
218
+ The label marks a report as coming from real use, not from the automated test
219
+ loop. The agent loop (see [Agent Loop](docs/AGENT_LOOP.md)) picks the report up
220
+ like any other issue when you filed it yourself; a report filed under any
221
+ other GitHub login is parked for the maintainer to review first (relabelled
222
+ `owner:don` + `status:needs-approval`), since the loop must not act
223
+ unattended on third-party text in a public repo, and is only handed to the
224
+ loop, or not, after that review. The label is also what feature planning
225
+ reads as evidence of demand.
226
+
202
227
  The complete tool reference, client configuration for other MCP hosts, and the
203
228
  troubleshooting table: [MCP Server](docs/MCP.md). Workspaces in depth:
204
229
  [Workspaces](docs/WORKSPACES.md).
@@ -236,16 +261,24 @@ pages and the HTTP API.
236
261
 
237
262
  ## The command line
238
263
 
239
- The engine also runs standalone, with no server involved:
264
+ `dw.run` is a thin client of `dw.serve`: it queues a job over HTTP, prints
265
+ its progress, and reports the run directory the server wrote to - start the
266
+ server first.
240
267
 
241
268
  ```bash
269
+ python -m dw.serve
242
270
  python -m dw.run workflows/templates/text-to-image.json
243
271
  python -m dw.run workflows/templates/text-to-image.json prompt="a cat" num_images_per_prompt=4
244
272
  python -m dw.validate workflows/models/flux-dev.json
245
273
  ```
246
274
 
247
- An interactive REPL (`python -m dw.repl`) keeps models resident between runs
248
- for 2-4x faster iteration. See [REPL Commands](docs/REPL_COMMANDS.md).
275
+ `dw.run` takes `WORKFLOW [name=value ...] [--server URL] [--workspace NAME]
276
+ [--token TOKEN]` - `--server` defaults to `DW_MCP_URL`, else
277
+ `http://127.0.0.1:8765`; `--token` to `DW_API_TOKEN`. Where the output lands,
278
+ which workspace's `prompts:`/`asset:` references resolve, and the output
279
+ layout are all `dw.serve` flags now (`--workspace`, `--output-dir`,
280
+ `--prompt-dir`, `--asset-dir`, `--output-layout` on the server) - `dw.run`
281
+ only says which server and which of its workspaces to run in.
249
282
 
250
283
  ## What's underneath
251
284
 
@@ -264,8 +297,8 @@ file from someone else the way you'd treat a `.py` script — see
264
297
  [Trust model](docs/SECURITY.md#trust-model).
265
298
 
266
299
  Under the hood the engine also handles: quantization (BitsAndBytes, TorchAO,
267
- GGUF, SDNQ, optimum-quanto); inference acceleration (TeaCache,
268
- FirstBlockCache, FasterCache, MagCache, TaylorSeerCache); LoRA and IP-Adapter;
300
+ GGUF, SDNQ, optimum-quanto); inference acceleration
301
+ (FirstBlockCache, FasterCache, MagCache, TaylorSeerCache); LoRA and IP-Adapter;
269
302
  A1111-style prompt weighting; long-video chaining with audio-driven length;
270
303
  step-output caching, so re-running a fixed-seed workflow finishes instantly;
271
304
  and utility tasks for upscaling, face restoration, segmentation, captioning,
@@ -281,7 +314,7 @@ frame interpolation and more.
281
314
  - [Workspaces](docs/WORKSPACES.md) — Where your content lives, run directories, and several workspaces on one server
282
315
  - [Workflow Guide](docs/WORKFLOW_GUIDE.md) — JSON structure, variables, steps, data flow
283
316
  - [Quantization](docs/QUANTIZATION.md) — BitsAndBytes, TorchAO, GGUF, SDNQ
284
- - [Inference Acceleration](docs/ACCELERATION.md) — torch.compile, FirstBlockCache, MagCache, TaylorSeer, TeaCache
317
+ - [Inference Acceleration](docs/ACCELERATION.md) — torch.compile, FirstBlockCache, MagCache, TaylorSeer
285
318
  - [Fast on 24GB](docs/RECIPES_24GB.md) — Recommended speed/memory configurations per model family
286
319
  - [LoRA](docs/LORAS.md) — Loading and stacking LoRA adapters
287
320
  - [IP-Adapter](docs/IP_ADAPTER.md) — Image-prompt conditioning
@@ -291,8 +324,7 @@ frame interpolation and more.
291
324
 
292
325
  ### Reference
293
326
 
294
- - [REPL Commands](docs/REPL_COMMANDS.md) — Interactive REPL command reference
295
- - [Worker Guide](docs/REPL_WORKER_GUIDE.md) — GPU persistence and troubleshooting
327
+ - [Worker Guide](docs/WORKER_GUIDE.md) — GPU persistence and troubleshooting
296
328
  - [Dependencies](docs/DEPENDENCIES.md) — Installation details
297
329
  - [Security](docs/SECURITY.md) — Security model
298
330
  - [Testing](docs/TESTING.md) — Running the test suite
@@ -8,7 +8,7 @@ diffusers-workflow wraps the [Hugging Face Diffusers library](https://github.com
8
8
  in an engine that runs image, video and audio generation as jobs, and puts
9
9
  two front ends on it: an **MCP server**, so Claude Code (or any MCP client)
10
10
  can author, run and inspect generations; and a **web UI** for doing the same
11
- by hand. A CLI and REPL sit underneath for when you want neither.
11
+ by hand. A CLI sits underneath for when you want neither.
12
12
 
13
13
  **Python 3.10-3.14 | CUDA (NVIDIA) | MPS (Apple Silicon) | CPU**
14
14
 
@@ -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).
@@ -159,16 +176,24 @@ pages and the HTTP API.
159
176
 
160
177
  ## The command line
161
178
 
162
- The engine also runs standalone, with no server involved:
179
+ `dw.run` is a thin client of `dw.serve`: it queues a job over HTTP, prints
180
+ its progress, and reports the run directory the server wrote to - start the
181
+ server first.
163
182
 
164
183
  ```bash
184
+ python -m dw.serve
165
185
  python -m dw.run workflows/templates/text-to-image.json
166
186
  python -m dw.run workflows/templates/text-to-image.json prompt="a cat" num_images_per_prompt=4
167
187
  python -m dw.validate workflows/models/flux-dev.json
168
188
  ```
169
189
 
170
- An interactive REPL (`python -m dw.repl`) keeps models resident between runs
171
- for 2-4x faster iteration. See [REPL Commands](docs/REPL_COMMANDS.md).
190
+ `dw.run` takes `WORKFLOW [name=value ...] [--server URL] [--workspace NAME]
191
+ [--token TOKEN]` - `--server` defaults to `DW_MCP_URL`, else
192
+ `http://127.0.0.1:8765`; `--token` to `DW_API_TOKEN`. Where the output lands,
193
+ which workspace's `prompts:`/`asset:` references resolve, and the output
194
+ layout are all `dw.serve` flags now (`--workspace`, `--output-dir`,
195
+ `--prompt-dir`, `--asset-dir`, `--output-layout` on the server) - `dw.run`
196
+ only says which server and which of its workspaces to run in.
172
197
 
173
198
  ## What's underneath
174
199
 
@@ -187,8 +212,8 @@ file from someone else the way you'd treat a `.py` script — see
187
212
  [Trust model](docs/SECURITY.md#trust-model).
188
213
 
189
214
  Under the hood the engine also handles: quantization (BitsAndBytes, TorchAO,
190
- GGUF, SDNQ, optimum-quanto); inference acceleration (TeaCache,
191
- FirstBlockCache, FasterCache, MagCache, TaylorSeerCache); LoRA and IP-Adapter;
215
+ GGUF, SDNQ, optimum-quanto); inference acceleration
216
+ (FirstBlockCache, FasterCache, MagCache, TaylorSeerCache); LoRA and IP-Adapter;
192
217
  A1111-style prompt weighting; long-video chaining with audio-driven length;
193
218
  step-output caching, so re-running a fixed-seed workflow finishes instantly;
194
219
  and utility tasks for upscaling, face restoration, segmentation, captioning,
@@ -204,7 +229,7 @@ frame interpolation and more.
204
229
  - [Workspaces](docs/WORKSPACES.md) — Where your content lives, run directories, and several workspaces on one server
205
230
  - [Workflow Guide](docs/WORKFLOW_GUIDE.md) — JSON structure, variables, steps, data flow
206
231
  - [Quantization](docs/QUANTIZATION.md) — BitsAndBytes, TorchAO, GGUF, SDNQ
207
- - [Inference Acceleration](docs/ACCELERATION.md) — torch.compile, FirstBlockCache, MagCache, TaylorSeer, TeaCache
232
+ - [Inference Acceleration](docs/ACCELERATION.md) — torch.compile, FirstBlockCache, MagCache, TaylorSeer
208
233
  - [Fast on 24GB](docs/RECIPES_24GB.md) — Recommended speed/memory configurations per model family
209
234
  - [LoRA](docs/LORAS.md) — Loading and stacking LoRA adapters
210
235
  - [IP-Adapter](docs/IP_ADAPTER.md) — Image-prompt conditioning
@@ -214,8 +239,7 @@ frame interpolation and more.
214
239
 
215
240
  ### Reference
216
241
 
217
- - [REPL Commands](docs/REPL_COMMANDS.md) — Interactive REPL command reference
218
- - [Worker Guide](docs/REPL_WORKER_GUIDE.md) — GPU persistence and troubleshooting
242
+ - [Worker Guide](docs/WORKER_GUIDE.md) — GPU persistence and troubleshooting
219
243
  - [Dependencies](docs/DEPENDENCIES.md) — Installation details
220
244
  - [Security](docs/SECURITY.md) — Security model
221
245
  - [Testing](docs/TESTING.md) — Running the test suite
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: diffusers-workflow
3
- Version: 0.4.0b7
3
+ Version: 0.6.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
@@ -56,12 +59,13 @@ Requires-Dist: jsonschema>=4.26.0
56
59
  Requires-Dist: concurrent-log-handler>=0.9.29
57
60
  Requires-Dist: python-dotenv>=1.2.3
58
61
  Requires-Dist: packaging>=26.3
62
+ Requires-Dist: filelock>=3.12
63
+ Requires-Dist: httpx>=0.28.1
59
64
  Provides-Extra: server
60
65
  Requires-Dist: fastapi>=0.141.1; extra == "server"
61
66
  Requires-Dist: uvicorn[standard]>=0.52.4; extra == "server"
62
67
  Provides-Extra: mcp
63
68
  Requires-Dist: mcp>=2.1.1; extra == "mcp"
64
- Requires-Dist: httpx>=0.28.1; extra == "mcp"
65
69
  Provides-Extra: dev
66
70
  Requires-Dist: pytest>=9.1.1; extra == "dev"
67
71
  Requires-Dist: pytest-cov>=7.1.0; extra == "dev"
@@ -73,6 +77,10 @@ Requires-Dist: httpx>=0.28.1; extra == "dev"
73
77
  Requires-Dist: ruff>=0.15.0; extra == "dev"
74
78
  Requires-Dist: build; extra == "dev"
75
79
  Requires-Dist: mcp>=2.1.1; extra == "dev"
80
+ Requires-Dist: pylint>=3.3; extra == "dev"
81
+ Requires-Dist: import-linter>=2.15; extra == "dev"
82
+ Requires-Dist: networkx>=3.0; extra == "dev"
83
+ Requires-Dist: pygount>=3.2; extra == "dev"
76
84
  Dynamic: license-file
77
85
 
78
86
  [![CodeQL](https://github.com/dkackman/diffusers-workflow/actions/workflows/github-code-scanning/codeql/badge.svg)](https://github.com/dkackman/diffusers-workflow/actions/workflows/github-code-scanning/codeql)
@@ -85,7 +93,7 @@ diffusers-workflow wraps the [Hugging Face Diffusers library](https://github.com
85
93
  in an engine that runs image, video and audio generation as jobs, and puts
86
94
  two front ends on it: an **MCP server**, so Claude Code (or any MCP client)
87
95
  can author, run and inspect generations; and a **web UI** for doing the same
88
- by hand. A CLI and REPL sit underneath for when you want neither.
96
+ by hand. A CLI sits underneath for when you want neither.
89
97
 
90
98
  **Python 3.10-3.14 | CUDA (NVIDIA) | MPS (Apple Silicon) | CPU**
91
99
 
@@ -109,8 +117,8 @@ source ./activate
109
117
  .\venv\scripts\activate
110
118
  ```
111
119
 
112
- `python -m dw.test` confirms torch and diffusers import and shows which
113
- accelerator was found.
120
+ `python -m dw.test` runs a small built-in workflow end to end - it downloads
121
+ SD 1.5 (a few GB) and generates one image on whichever accelerator was found.
114
122
 
115
123
  **2. Start the engine.** Leave it running; everything else talks to it.
116
124
 
@@ -160,7 +168,7 @@ once; without it the run fails partway through with a 401/403 from the Hub.
160
168
 
161
169
  ## Drive it from an agent
162
170
 
163
- Then just ask. The agent has 58 tools covering the whole surface — the
171
+ Then just ask. The agent has 59 tools covering the whole surface — the
164
172
  workflow catalog, the real diffusers pipeline signatures, the job queue, the
165
173
  gallery, the model cache:
166
174
 
@@ -199,6 +207,23 @@ and outputs — so two agents, or an agent and you in the browser, share the GPU
199
207
  without saving over each other. An agent calls `use_workspace` once and the
200
208
  rest of the session lands there.
201
209
 
210
+ **Feedback from a session.** At the end of a working session, ask the agent
211
+ what got in its way: bugs, gaps, misleading skill text, tools it reached for
212
+ and couldn't find. Have it file each one as an issue on
213
+ `dkackman/diffusers-workflow` with the `field-report` label, for example:
214
+
215
+ > File each bug or gap you hit as an issue on dkackman/diffusers-workflow
216
+ > with the label `field-report`.
217
+
218
+ The label marks a report as coming from real use, not from the automated test
219
+ loop. The agent loop (see [Agent Loop](docs/AGENT_LOOP.md)) picks the report up
220
+ like any other issue when you filed it yourself; a report filed under any
221
+ other GitHub login is parked for the maintainer to review first (relabelled
222
+ `owner:don` + `status:needs-approval`), since the loop must not act
223
+ unattended on third-party text in a public repo, and is only handed to the
224
+ loop, or not, after that review. The label is also what feature planning
225
+ reads as evidence of demand.
226
+
202
227
  The complete tool reference, client configuration for other MCP hosts, and the
203
228
  troubleshooting table: [MCP Server](docs/MCP.md). Workspaces in depth:
204
229
  [Workspaces](docs/WORKSPACES.md).
@@ -236,16 +261,24 @@ pages and the HTTP API.
236
261
 
237
262
  ## The command line
238
263
 
239
- The engine also runs standalone, with no server involved:
264
+ `dw.run` is a thin client of `dw.serve`: it queues a job over HTTP, prints
265
+ its progress, and reports the run directory the server wrote to - start the
266
+ server first.
240
267
 
241
268
  ```bash
269
+ python -m dw.serve
242
270
  python -m dw.run workflows/templates/text-to-image.json
243
271
  python -m dw.run workflows/templates/text-to-image.json prompt="a cat" num_images_per_prompt=4
244
272
  python -m dw.validate workflows/models/flux-dev.json
245
273
  ```
246
274
 
247
- An interactive REPL (`python -m dw.repl`) keeps models resident between runs
248
- for 2-4x faster iteration. See [REPL Commands](docs/REPL_COMMANDS.md).
275
+ `dw.run` takes `WORKFLOW [name=value ...] [--server URL] [--workspace NAME]
276
+ [--token TOKEN]` - `--server` defaults to `DW_MCP_URL`, else
277
+ `http://127.0.0.1:8765`; `--token` to `DW_API_TOKEN`. Where the output lands,
278
+ which workspace's `prompts:`/`asset:` references resolve, and the output
279
+ layout are all `dw.serve` flags now (`--workspace`, `--output-dir`,
280
+ `--prompt-dir`, `--asset-dir`, `--output-layout` on the server) - `dw.run`
281
+ only says which server and which of its workspaces to run in.
249
282
 
250
283
  ## What's underneath
251
284
 
@@ -264,8 +297,8 @@ file from someone else the way you'd treat a `.py` script — see
264
297
  [Trust model](docs/SECURITY.md#trust-model).
265
298
 
266
299
  Under the hood the engine also handles: quantization (BitsAndBytes, TorchAO,
267
- GGUF, SDNQ, optimum-quanto); inference acceleration (TeaCache,
268
- FirstBlockCache, FasterCache, MagCache, TaylorSeerCache); LoRA and IP-Adapter;
300
+ GGUF, SDNQ, optimum-quanto); inference acceleration
301
+ (FirstBlockCache, FasterCache, MagCache, TaylorSeerCache); LoRA and IP-Adapter;
269
302
  A1111-style prompt weighting; long-video chaining with audio-driven length;
270
303
  step-output caching, so re-running a fixed-seed workflow finishes instantly;
271
304
  and utility tasks for upscaling, face restoration, segmentation, captioning,
@@ -281,7 +314,7 @@ frame interpolation and more.
281
314
  - [Workspaces](docs/WORKSPACES.md) — Where your content lives, run directories, and several workspaces on one server
282
315
  - [Workflow Guide](docs/WORKFLOW_GUIDE.md) — JSON structure, variables, steps, data flow
283
316
  - [Quantization](docs/QUANTIZATION.md) — BitsAndBytes, TorchAO, GGUF, SDNQ
284
- - [Inference Acceleration](docs/ACCELERATION.md) — torch.compile, FirstBlockCache, MagCache, TaylorSeer, TeaCache
317
+ - [Inference Acceleration](docs/ACCELERATION.md) — torch.compile, FirstBlockCache, MagCache, TaylorSeer
285
318
  - [Fast on 24GB](docs/RECIPES_24GB.md) — Recommended speed/memory configurations per model family
286
319
  - [LoRA](docs/LORAS.md) — Loading and stacking LoRA adapters
287
320
  - [IP-Adapter](docs/IP_ADAPTER.md) — Image-prompt conditioning
@@ -291,8 +324,7 @@ frame interpolation and more.
291
324
 
292
325
  ### Reference
293
326
 
294
- - [REPL Commands](docs/REPL_COMMANDS.md) — Interactive REPL command reference
295
- - [Worker Guide](docs/REPL_WORKER_GUIDE.md) — GPU persistence and troubleshooting
327
+ - [Worker Guide](docs/WORKER_GUIDE.md) — GPU persistence and troubleshooting
296
328
  - [Dependencies](docs/DEPENDENCIES.md) — Installation details
297
329
  - [Security](docs/SECURITY.md) — Security model
298
330
  - [Testing](docs/TESTING.md) — Running the test suite