diffusers-workflow 0.14.0__tar.gz → 0.16.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.
- {diffusers_workflow-0.14.0/diffusers_workflow.egg-info → diffusers_workflow-0.16.0}/PKG-INFO +2 -1
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0/diffusers_workflow.egg-info}/PKG-INFO +2 -1
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/diffusers_workflow.egg-info/SOURCES.txt +47 -22
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/diffusers_workflow.egg-info/requires.txt +1 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/acceleration_warnings.py +37 -1
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/adapter_compatibility.py +16 -1
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/argument_media.py +2 -2
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/devices.py +21 -4
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/docs/ACCELERATION.md +43 -5
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/docs/ARCHITECTURE.md +16 -7
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/docs/DEPENDENCIES.md +3 -1
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/docs/MCP.md +9 -7
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/docs/QUANTIZATION.md +2 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/docs/RECIPES_24GB.md +1 -1
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/docs/RELEASING.md +198 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/docs/SECURITY.md +33 -1
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/docs/SECURITY_QUICKREF.md +1 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/docs/SERVER.md +26 -7
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/docs/TASKS.md +157 -18
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/docs/WORKFLOW_GUIDE.md +448 -17
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/hold_audio.py +52 -13
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/introspection.py +4 -1
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/locations.py +46 -51
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/media.py +27 -6
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/media_types.py +53 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/outbound.py +10 -5
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/output_extraction.py +50 -2
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/pipeline_processors/components.py +44 -149
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/pipeline_processors/h3_hold.py +18 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/pipeline_processors/h3_hold_steps.py +83 -13
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/pipeline_processors/h3_rules.py +220 -5
- diffusers_workflow-0.16.0/dw/pipeline_processors/h3_tiles.py +366 -0
- diffusers_workflow-0.16.0/dw/pipeline_processors/mag_calibration.py +158 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/pipeline_processors/pipeline.py +32 -4
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/pipeline_processors/progress.py +22 -1
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/plan.py +28 -205
- diffusers_workflow-0.16.0/dw/plan_downloads.py +346 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/roles.py +17 -7
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/script_lines.py +35 -6
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/security.py +52 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/serve.py +8 -2
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/admission.py +40 -25
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/api_models.py +16 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/deps.py +13 -1
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/job_history.py +127 -110
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/job_results.py +6 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/jobs.py +15 -1
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/observed_cost.py +13 -3
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/outputs.py +48 -6
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/routes/assets.py +0 -7
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/routes/gallery.py +16 -36
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/routes/jobs.py +38 -3
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/routes/media.py +9 -11
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/routes/system.py +4 -1
- diffusers_workflow-0.14.0/dw/server/ui/assets/cssMode-BM_j_5VW.js → diffusers_workflow-0.16.0/dw/server/ui/assets/cssMode-Cx99RWkL.js +1 -1
- diffusers_workflow-0.14.0/dw/server/ui/assets/editor.api-CEPMtaHf.js → diffusers_workflow-0.16.0/dw/server/ui/assets/editor.api-jKhYFhrF.js +1 -1
- diffusers_workflow-0.14.0/dw/server/ui/assets/freemarker2-BVTL0E_v.js → diffusers_workflow-0.16.0/dw/server/ui/assets/freemarker2-Cr_kdwwJ.js +1 -1
- diffusers_workflow-0.14.0/dw/server/ui/assets/handlebars-DN1SqR7g.js → diffusers_workflow-0.16.0/dw/server/ui/assets/handlebars-CnbOycVf.js +1 -1
- diffusers_workflow-0.14.0/dw/server/ui/assets/html-BYdDV855.js → diffusers_workflow-0.16.0/dw/server/ui/assets/html-vCIOVoPc.js +1 -1
- diffusers_workflow-0.14.0/dw/server/ui/assets/htmlMode-CktrpppH.js → diffusers_workflow-0.16.0/dw/server/ui/assets/htmlMode-B5ESZlHK.js +1 -1
- diffusers_workflow-0.16.0/dw/server/ui/assets/index-Bm_jBlG4.css +1 -0
- diffusers_workflow-0.16.0/dw/server/ui/assets/index-DIXj1Pp3.js +65 -0
- diffusers_workflow-0.14.0/dw/server/ui/assets/javascript-DvSbrt_n.js → diffusers_workflow-0.16.0/dw/server/ui/assets/javascript-DpV2UaWD.js +1 -1
- diffusers_workflow-0.14.0/dw/server/ui/assets/jsonMode-CXzErKKD.js → diffusers_workflow-0.16.0/dw/server/ui/assets/jsonMode-DaGlZZy1.js +1 -1
- diffusers_workflow-0.14.0/dw/server/ui/assets/liquid-BRCKFwoi.js → diffusers_workflow-0.16.0/dw/server/ui/assets/liquid-Ds835QKV.js +1 -1
- diffusers_workflow-0.14.0/dw/server/ui/assets/lspLanguageFeatures-njtWwPtu.js → diffusers_workflow-0.16.0/dw/server/ui/assets/lspLanguageFeatures-Cd9OxrIO.js +1 -1
- diffusers_workflow-0.14.0/dw/server/ui/assets/mdx-BUaukvEP.js → diffusers_workflow-0.16.0/dw/server/ui/assets/mdx-BozOHFIi.js +1 -1
- diffusers_workflow-0.14.0/dw/server/ui/assets/monaco-gga5ZcVz.js → diffusers_workflow-0.16.0/dw/server/ui/assets/monaco-673w9Wwq.js +4 -4
- diffusers_workflow-0.14.0/dw/server/ui/assets/python-BlUYF5iw.js → diffusers_workflow-0.16.0/dw/server/ui/assets/python-D_HjE-WC.js +1 -1
- diffusers_workflow-0.14.0/dw/server/ui/assets/razor-C_60BEWv.js → diffusers_workflow-0.16.0/dw/server/ui/assets/razor-DjEZAQZw.js +1 -1
- diffusers_workflow-0.14.0/dw/server/ui/assets/tsMode-DZ39FkiR.js → diffusers_workflow-0.16.0/dw/server/ui/assets/tsMode-B3g7-HAd.js +1 -1
- diffusers_workflow-0.14.0/dw/server/ui/assets/typescript-DRuDz-v_.js → diffusers_workflow-0.16.0/dw/server/ui/assets/typescript-Bq3yLFs6.js +1 -1
- diffusers_workflow-0.14.0/dw/server/ui/assets/workers-BWXmwymL.js → diffusers_workflow-0.16.0/dw/server/ui/assets/workers-Jt2I7Jya.js +1 -1
- diffusers_workflow-0.14.0/dw/server/ui/assets/xml-CBshcw4i.js → diffusers_workflow-0.16.0/dw/server/ui/assets/xml-BD0Sm95a.js +1 -1
- diffusers_workflow-0.14.0/dw/server/ui/assets/yaml-D1ZImLMB.js → diffusers_workflow-0.16.0/dw/server/ui/assets/yaml-BSnko3ic.js +1 -1
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/index.html +2 -2
- diffusers_workflow-0.16.0/dw/sparse_attention.py +669 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/step_cache.py +24 -2
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/task_domains.py +6 -1
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/task_problems.py +4 -3
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/tasks/assess.py +174 -16
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/tasks/audio_dynamics.py +112 -3
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/tasks/audio_transcription.py +26 -3
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/tasks/background_remover.py +12 -1
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/tasks/depth_estimator.py +27 -2
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/tasks/diffusion_upscale.py +18 -2
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/tasks/face_track.py +18 -1
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/tasks/h3_latent_upscale.py +93 -33
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/tasks/image_to_text.py +1 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/tasks/image_utils.py +49 -9
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/tasks/interpolate_frames.py +18 -2
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/tasks/judge.py +1 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/tasks/model_handlers.py +96 -9
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/tasks/pair_audio.py +17 -6
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/tasks/registry.py +57 -0
- diffusers_workflow-0.16.0/dw/tasks/remove_object.py +201 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/tasks/restore_faces.py +39 -2
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/tasks/script_check.py +424 -231
- diffusers_workflow-0.16.0/dw/tasks/script_take.py +223 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/tasks/segment.py +46 -9
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/tasks/speech_generation.py +71 -20
- diffusers_workflow-0.16.0/dw/tasks/text_generation.py +494 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/tasks/upscale.py +19 -1
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/tasks/video_handlers.py +1 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/tasks/video_utils.py +9 -28
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/tasks/voice_attribution.py +119 -5
- diffusers_workflow-0.16.0/dw/tasks/weights.py +90 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/trust.py +33 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/validation.py +11 -1
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/vram_estimate.py +121 -7
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/vram_inheritance.py +105 -16
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/worker.py +7 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/worker_manager.py +13 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/worker_protocol.py +16 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/workflow_schema.json +28 -2
- diffusers_workflow-0.16.0/dw/workflows/flux3_klein_upsample.json +33 -0
- diffusers_workflow-0.16.0/dw/workflows/flux3_klein_upsample_edit.json +51 -0
- diffusers_workflow-0.16.0/dw/workflows/h3_context_ir.json +57 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw_mcp/assets.py +7 -4
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw_mcp/catalog.py +2 -2
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw_mcp/client.py +5 -1
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw_mcp/tools_authoring.py +1 -1
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw_mcp/tools_catalog.py +1 -1
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw_mcp/tools_media.py +3 -3
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw_mcp/workspaces.py +5 -4
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/pyproject.toml +5 -1
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_admission.py +216 -1
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_api_contract.py +8 -3
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_audio_utils.py +68 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_cache_blocks.py +17 -17
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_catalog_structure.py +28 -8
- diffusers_workflow-0.16.0/tests/test_chain_h3_native.py +210 -0
- diffusers_workflow-0.16.0/tests/test_dependencies_declared.py +9 -0
- diffusers_workflow-0.16.0/tests/test_flux3_catalog.py +188 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_forget_workspace_history.py +21 -9
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_gallery_roles.py +77 -6
- diffusers_workflow-0.16.0/tests/test_guide_pointers.py +132 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_h3_context_ir.py +14 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_h3_hold_audio.py +43 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_h3_latent_upscale.py +93 -9
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_h3_refine.py +214 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_h3_rules.py +56 -0
- diffusers_workflow-0.16.0/tests/test_h3_sparse_defaults.py +45 -0
- diffusers_workflow-0.16.0/tests/test_h3_tiles.py +411 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_h3_upscaler_source.py +2 -1
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_h3_vram_ceiling.py +16 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_inherited_cost.py +57 -9
- diffusers_workflow-0.16.0/tests/test_job_history_parity.py +58 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_locations.py +82 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_lora_disable.py +12 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_mcp_client.py +15 -2
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_mcp_server.py +20 -150
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_modular_output_properties.py +45 -2
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_modular_progress.py +26 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_notes_api.py +31 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_observed_cost.py +22 -2
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_outbound.py +53 -2
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_pipeline_components.py +71 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_plan.py +213 -34
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_plugin_skills.py +64 -5
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_reference_limits.py +6 -1
- diffusers_workflow-0.16.0/tests/test_remove_object.py +353 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_roles.py +20 -1
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_script_check.py +297 -12
- diffusers_workflow-0.16.0/tests/test_seam_look.py +254 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_security_ssrf.py +22 -1
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_security_trust_gate.py +100 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_segment.py +58 -2
- diffusers_workflow-0.16.0/tests/test_separate_stems.py +212 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_serve_main.py +47 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_server.py +97 -23
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_server_jobs.py +120 -5
- diffusers_workflow-0.16.0/tests/test_sparse_attention_backends.py +111 -0
- diffusers_workflow-0.16.0/tests/test_sparse_attention_processor.py +597 -0
- diffusers_workflow-0.16.0/tests/test_sparse_attention_tiles.py +63 -0
- diffusers_workflow-0.16.0/tests/test_sparse_attention_wiring.py +699 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_step_cache.py +51 -30
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_task_domains.py +15 -0
- diffusers_workflow-0.16.0/tests/test_task_file_weights.py +340 -0
- diffusers_workflow-0.16.0/tests/test_task_weights.py +506 -0
- diffusers_workflow-0.16.0/tests/test_text_generation.py +734 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_validation.py +52 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_vram_estimate.py +106 -1
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_vram_inheritance.py +114 -3
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_worker_execute.py +33 -0
- diffusers_workflow-0.16.0/tests/test_zimage_vram.py +61 -0
- diffusers_workflow-0.14.0/dw/server/ui/assets/index-Dd1gXnAH.js +0 -64
- diffusers_workflow-0.14.0/dw/server/ui/assets/index-PRSQwOeN.css +0 -1
- diffusers_workflow-0.14.0/dw/tasks/text_generation.py +0 -169
- diffusers_workflow-0.14.0/dw/workflows/h3_context_ir.json +0 -57
- diffusers_workflow-0.14.0/tests/test_separate_stems.py +0 -105
- diffusers_workflow-0.14.0/tests/test_text_generation.py +0 -340
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/LICENSE +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/MANIFEST.in +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/README.md +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/diffusers_workflow.egg-info/dependency_links.txt +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/diffusers_workflow.egg-info/entry_points.txt +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/diffusers_workflow.egg-info/top_level.txt +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/__init__.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/argument_warnings.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/arguments.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/assessment_rules.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/assets.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/audio_qc.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/cache_blocks.json +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/cache_blocks.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/community_pipelines/pipeline_flux_rf_inversion.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/community_pipelines/pipeline_ltx2_refine.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/content_types.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/cost_scaling.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/disk_caches.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/dissolve_frame_errors.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/docs/AGENT_LOOP.md +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/docs/IP_ADAPTER.md +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/docs/LORAS.md +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/docs/PROMPT_WEIGHTING.md +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/docs/REMOTE.md +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/docs/TESTING.md +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/docs/WORKER_GUIDE.md +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/docs/WORKSPACES.md +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/download_watch.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/dsp.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/elision.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/events.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/for_each.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/guides.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/host_memory.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/host_memory_projection.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/hub_cache.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/kernel_availability.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/library.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/log_setup.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/lora_catalog.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/lora_catalog_schema.json +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/lora_hub.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/media_compare.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/media_frames.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/notes.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/path_redaction.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/pipeline_ownership.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/pipeline_processors/adapters.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/pipeline_processors/chain.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/pipeline_processors/config_objects.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/pipeline_processors/h3_guide_steps.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/pipeline_processors/h3_guides.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/pipeline_processors/placement.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/pipeline_processors/remote.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/pipeline_processors/timing.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/previous_results.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/probe_paths.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/prompt_schema.json +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/prompt_weighting.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/prompts.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/quantized_cache.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/realize.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/reference_limits.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/reference_names.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/references.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/result.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/run.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/runs.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/scalar_result_validation.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/schema.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/__init__.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/api_models_base.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/api_models_library.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/app.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/assess.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/catalog.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/catalog_shape.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/dispatch.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/enhancers.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/exports.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/guides.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/host_ram_need.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/http_security.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/inline_media.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/job_record.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/mcp_mount.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/netinfo.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/pool.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/routes/__init__.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/routes/files.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/routes/library.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/routes/loras.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/sysinfo.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/abap-08VXUWAP.js +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/apex-BWPQTe0t.js +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/azcli-Bc_sGQ0U.js +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/bat-i0X4ZdIN.js +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/bicep-B5-_aFwp.js +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/cameligo-DMUM7wLl.js +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/clojure-Cm7r79vr.js +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/codicon-DF1abBS2.ttf +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/coffee-Ba7i2nA0.js +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/cpp-C7h46wYY.js +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/csharp-BKxtCVv1.js +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/csp-bTuwJoIa.js +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/css-DIMkf-bt.js +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/css.worker-C6lDtRpF.js +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/cypher-CVaqCwHa.js +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/dart-onAF5SnQ.js +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/dockerfile-DZFCIeNp.js +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/ecl-D05T4iGw.js +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/editor-DjpsE8to.css +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/editor.worker-BmdWdrHZ.js +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/elixir-6RTg0lbw.js +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/flow9-C5_-GSwl.js +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/fsharp-C8Ef5oNN.js +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/go-C-y9NEjX.js +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/graphql-fmXr3nnJ.js +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/hcl-CpzslTdj.js +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/html.worker-C5yZDBHz.js +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/ini-sBoK_t0W.js +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/java-BEtHBSE6.js +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/json.worker-DdeUAmHa.js +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/julia-Bri6UV-V.js +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/kotlin-BOotOW0E.js +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/less-B9JPFI3C.js +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/lexon-CfSJPG6W.js +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/lua-CsQS60Ue.js +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/m3-D-oSqn_W.js +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/markdown-Cimd5fb3.js +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/mips-CIPQ_RoX.js +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/monaco-n7clI0si.css +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/msdax-DauUninz.js +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/mysql-SOo6toE5.js +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/objective-c-FvmIjYaQ.js +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/pascal-DrH0SRf2.js +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/pascaligo-D-ptJ9y-.js +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/perl-oz_6vUea.js +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/pgsql-DTj74zXo.js +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/php-nr791fC2.js +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/pla-CopQ2nXW.js +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/postiats-43DmfD33.js +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/powerquery-D3hlyOfw.js +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/powershell-DmHpPYUd.js +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/protobuf-C531GsRP.js +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/pug-Z5eAx3Zn.js +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/qsharp-DkqhCAOL.js +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/r-BwWrilGY.js +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/redis-ClamHrr6.js +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/redshift-DT7zqm-g.js +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/restructuredtext-BYgofb2h.js +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/ruby-DezsRK8O.js +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/rust-DdL9SqIa.js +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/sb-CcwsVR0C.js +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/scala-DHpiXF5c.js +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/scheme-BeGwcela.js +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/scss-gp-XZpBa.js +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/shell-CC2rA5mh.js +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/solidity-BEEn4gHE.js +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/sophia-CRfGWb83.js +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/sparql-D_Lu-MrJ.js +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/sql-NEE52Syq.js +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/st-DbInun42.js +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/swift-Bxkupp3x.js +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/systemverilog-Bz4Y3fRF.js +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/tcl-DISqw1ZD.js +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/ts.worker-DGGa2mF8.js +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/twig-De2hgUGE.js +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/typespec-B8J7ngcE.js +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/vb-DV3o63ZY.js +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/ui/assets/wgsl-DpFanUEy.js +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/updater.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/server/worker_memory.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/settings.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/shot_span_preflight.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/shots.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/slice_preflight.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/step.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/step_value_checks.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/subfolders.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/tasks/audio_handlers.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/tasks/audio_utils.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/tasks/beats.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/tasks/borders.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/tasks/compose_text.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/tasks/concat_videos.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/tasks/cuts.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/tasks/dissolve_videos.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/tasks/finish.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/tasks/finish_handlers.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/tasks/fit.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/tasks/format_messages.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/tasks/gather.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/tasks/grade.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/tasks/h3_latent_upscaler_model.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/tasks/image_ops.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/tasks/join_into_song.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/tasks/joins.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/tasks/loop_bed.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/tasks/lut.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/tasks/measure_sync.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/tasks/model_cache.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/tasks/qr_code.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/tasks/rife_model.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/tasks/select.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/tasks/stabilize.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/tasks/task.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/tasks/tensor_image.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/tasks/text_sections.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/tasks/trim.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/tasks/windows.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/tasks/zoe_depth.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/test.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/type_helpers.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/type_references.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/validate.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/variable_constraints.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/variables.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/video_extensions.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/video_size_errors.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/window_count_errors.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/workflow.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/workflow_run.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/workflows/test.json +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/workspace.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/workspace_copy.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw/writers.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw_mcp/__init__.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw_mcp/__main__.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw_mcp/authoring.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw_mcp/confine.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw_mcp/diagnose.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw_mcp/exports.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw_mcp/guides.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw_mcp/loras.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw_mcp/media.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw_mcp/models.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw_mcp/prompts.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw_mcp/server.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/dw_mcp/tools_jobs.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/setup.cfg +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_admission_capacity.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_analyze_beats.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_arch_metrics.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_arch_report.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_architecture_map.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_argument_updates.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_arguments.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_assemble_and_score_target_lufs.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_assess.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_assessment_rules.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_assets.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_attention_backend_trace.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_attention_slicing.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_best_of_n_template.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_borders.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_cache_stats.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_catalog_shape.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_catalog_speed_defaults.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_chain.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_ci_config.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_cli.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_compare_route.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_component_name_errors.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_component_pruning.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_component_type_errors.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_compose_text.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_concat_videos.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_config_objects.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_configuration_schema.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_content_types.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_depth_estimator.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_device.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_device_helpers.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_device_portability.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_dialogue_short_voices.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_diffusion_upscale.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_disk_caches.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_dissolve_frame_errors.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_dissolve_videos.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_docs_links.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_download_watch.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_dsp.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_elision.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_events.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_examples.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_face_track.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_faststart.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_find_loop_bed.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_finish.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_fit_templates.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_fit_to_model.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_for_each.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_gather.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_grade.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_guide_chain_validation.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_guides_validation.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_h3_adapters.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_h3_guides.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_h3_schedule.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_hf_placement.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_host_memory.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_host_memory_projection.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_host_ram_need.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_hub_cache.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_image_ops.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_image_to_text.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_image_utils.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_inductor_cache_default.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_ingredients_grid.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_integration.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_interpolate_frames.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_introspection.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_job_history_device.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_job_history_wal.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_job_progress.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_job_warnings.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_jobs_listing.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_jobs_reused.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_join_into_song.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_join_windows.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_judge.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_kernel_availability.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_library_path.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_library_sources.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_list_images.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_lora_alpha.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_lora_catalog.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_lora_hub.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_lora_library.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_ltx2_diffusion_decode.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_ltx2_extend_clip.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_ltx2_ic_loras.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_ltx2_refine_pipeline.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_ltx_prompt_library.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_lut.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_mcp_assets.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_mcp_authoring.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_mcp_catalog.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_mcp_confine.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_mcp_diagnose.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_mcp_exports.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_mcp_guides.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_mcp_loras.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_mcp_main.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_mcp_media.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_mcp_models.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_mcp_prompts.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_mcp_twins.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_mcp_workspaces.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_measure_sync.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_media_audio.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_media_compare.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_media_decode_threads.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_media_frames.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_media_info.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_media_layering.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_mix_audio.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_model_cache.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_modular_pipeline.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_mps_fallback_warning.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_mps_rope_precision.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_notes.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_notes_bookkeeping.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_null_media.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_numeric_coercion.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_offload_placement.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_output_references.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_pair_audio.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_pair_audio_fit.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_parallel_loading_default.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_path_redaction.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_phase_events.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_pipeline_caching.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_plan_cuts.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_prepare_pipeline.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_previous_result_walker_parity.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_previous_results.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_prompt_library.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_prompt_parser.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_prompt_references.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_prompt_weighting.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_prompts.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_quantized_cache.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_read_frame_range.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_real_models.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_realize.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_recenter_crop.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_reference_names.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_reference_skip_sets.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_references.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_rerun_lineage.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_rerun_new_seed.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_resize_bucket.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_restore_faces_helper_cache.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_restore_faces_video.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_result.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_result_fps.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_result_output_naming.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_rule_parity.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_run_manifest_roles.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_runs.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_runtime_settings.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_scalar_result_validation.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_scheduler_config.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_schema.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_security.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_security_auth.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_security_decoder_bombs.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_security_input_caps.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_security_symlinks.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_security_web_headers.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_select.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_select_validation.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_server_assess.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_server_downloads.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_server_exports.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_server_gallery_image.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_server_guides.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_server_info.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_server_library_path.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_server_loras.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_server_mcp.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_server_workspaces.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_shaping_logs.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_shot_span_preflight.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_shots.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_slice_preflight.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_speech_generation.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_stabilize.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_stars.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_step.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_step_timing.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_strip_exif_and_watermark.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_sub_workflow_resolver.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_subfolders.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_task.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_task_discovery.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_task_public_imports.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_task_registry_rules.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_task_signature_errors.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_template_defaults.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_template_subfolders.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_tensor_image.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_text_sections.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_transcribe_audio.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_trim_video.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_type_helpers.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_type_helpers_concurrency.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_ui_twins.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_unbraced_type_warning.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_updater.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_validate_arguments.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_variable_constraints.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_variables.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_video_extensions.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_video_size_errors.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_video_utils.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_voice_attribution.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_vram_guides.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_window_count_errors.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_window_video.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_worker.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_worker_job_peak_rss.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_worker_manager.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_worker_messages.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_worker_pool.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_workflow.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_workflow_run_keys.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_workflow_snapshot.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_workflow_step_cache.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_workflow_trust.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_workspace.py +0 -0
- {diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/tests/test_workspace_copy.py +0 -0
{diffusers_workflow-0.14.0/diffusers_workflow.egg-info → diffusers_workflow-0.16.0}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: diffusers-workflow
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.16.0
|
|
4
4
|
Summary: Declarative workflow engine and web UI for Hugging Face Diffusers
|
|
5
5
|
Author: dkackman
|
|
6
6
|
License: Apache-2.0
|
|
@@ -37,6 +37,7 @@ Requires-Dist: controlnet-aux>=0.0.10
|
|
|
37
37
|
Requires-Dist: opencv-python-headless>=5.0.0.93
|
|
38
38
|
Requires-Dist: kornia>=0.8.3
|
|
39
39
|
Requires-Dist: kernels>=0.17.2
|
|
40
|
+
Requires-Dist: comfy-kitchen<0.3,>=0.2.38
|
|
40
41
|
Requires-Dist: spandrel>=0.4.2
|
|
41
42
|
Requires-Dist: facexlib>=0.3.0
|
|
42
43
|
Requires-Dist: numpy>=2.5.4
|
{diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0/diffusers_workflow.egg-info}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: diffusers-workflow
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.16.0
|
|
4
4
|
Summary: Declarative workflow engine and web UI for Hugging Face Diffusers
|
|
5
5
|
Author: dkackman
|
|
6
6
|
License: Apache-2.0
|
|
@@ -37,6 +37,7 @@ Requires-Dist: controlnet-aux>=0.0.10
|
|
|
37
37
|
Requires-Dist: opencv-python-headless>=5.0.0.93
|
|
38
38
|
Requires-Dist: kornia>=0.8.3
|
|
39
39
|
Requires-Dist: kernels>=0.17.2
|
|
40
|
+
Requires-Dist: comfy-kitchen<0.3,>=0.2.38
|
|
40
41
|
Requires-Dist: spandrel>=0.4.2
|
|
41
42
|
Requires-Dist: facexlib>=0.3.0
|
|
42
43
|
Requires-Dist: numpy>=2.5.4
|
{diffusers_workflow-0.14.0 → diffusers_workflow-0.16.0}/diffusers_workflow.egg-info/SOURCES.txt
RENAMED
|
@@ -52,6 +52,7 @@ dw/output_extraction.py
|
|
|
52
52
|
dw/path_redaction.py
|
|
53
53
|
dw/pipeline_ownership.py
|
|
54
54
|
dw/plan.py
|
|
55
|
+
dw/plan_downloads.py
|
|
55
56
|
dw/previous_results.py
|
|
56
57
|
dw/probe_paths.py
|
|
57
58
|
dw/prompt_schema.json
|
|
@@ -75,6 +76,7 @@ dw/settings.py
|
|
|
75
76
|
dw/shot_span_preflight.py
|
|
76
77
|
dw/shots.py
|
|
77
78
|
dw/slice_preflight.py
|
|
79
|
+
dw/sparse_attention.py
|
|
78
80
|
dw/step.py
|
|
79
81
|
dw/step_cache.py
|
|
80
82
|
dw/step_value_checks.py
|
|
@@ -134,6 +136,8 @@ dw/pipeline_processors/h3_guides.py
|
|
|
134
136
|
dw/pipeline_processors/h3_hold.py
|
|
135
137
|
dw/pipeline_processors/h3_hold_steps.py
|
|
136
138
|
dw/pipeline_processors/h3_rules.py
|
|
139
|
+
dw/pipeline_processors/h3_tiles.py
|
|
140
|
+
dw/pipeline_processors/mag_calibration.py
|
|
137
141
|
dw/pipeline_processors/pipeline.py
|
|
138
142
|
dw/pipeline_processors/placement.py
|
|
139
143
|
dw/pipeline_processors/progress.py
|
|
@@ -192,44 +196,44 @@ dw/server/ui/assets/csharp-BKxtCVv1.js
|
|
|
192
196
|
dw/server/ui/assets/csp-bTuwJoIa.js
|
|
193
197
|
dw/server/ui/assets/css-DIMkf-bt.js
|
|
194
198
|
dw/server/ui/assets/css.worker-C6lDtRpF.js
|
|
195
|
-
dw/server/ui/assets/cssMode-
|
|
199
|
+
dw/server/ui/assets/cssMode-Cx99RWkL.js
|
|
196
200
|
dw/server/ui/assets/cypher-CVaqCwHa.js
|
|
197
201
|
dw/server/ui/assets/dart-onAF5SnQ.js
|
|
198
202
|
dw/server/ui/assets/dockerfile-DZFCIeNp.js
|
|
199
203
|
dw/server/ui/assets/ecl-D05T4iGw.js
|
|
200
204
|
dw/server/ui/assets/editor-DjpsE8to.css
|
|
201
|
-
dw/server/ui/assets/editor.api-
|
|
205
|
+
dw/server/ui/assets/editor.api-jKhYFhrF.js
|
|
202
206
|
dw/server/ui/assets/editor.worker-BmdWdrHZ.js
|
|
203
207
|
dw/server/ui/assets/elixir-6RTg0lbw.js
|
|
204
208
|
dw/server/ui/assets/flow9-C5_-GSwl.js
|
|
205
|
-
dw/server/ui/assets/freemarker2-
|
|
209
|
+
dw/server/ui/assets/freemarker2-Cr_kdwwJ.js
|
|
206
210
|
dw/server/ui/assets/fsharp-C8Ef5oNN.js
|
|
207
211
|
dw/server/ui/assets/go-C-y9NEjX.js
|
|
208
212
|
dw/server/ui/assets/graphql-fmXr3nnJ.js
|
|
209
|
-
dw/server/ui/assets/handlebars-
|
|
213
|
+
dw/server/ui/assets/handlebars-CnbOycVf.js
|
|
210
214
|
dw/server/ui/assets/hcl-CpzslTdj.js
|
|
211
|
-
dw/server/ui/assets/html-
|
|
215
|
+
dw/server/ui/assets/html-vCIOVoPc.js
|
|
212
216
|
dw/server/ui/assets/html.worker-C5yZDBHz.js
|
|
213
|
-
dw/server/ui/assets/htmlMode-
|
|
214
|
-
dw/server/ui/assets/index-
|
|
215
|
-
dw/server/ui/assets/index-
|
|
217
|
+
dw/server/ui/assets/htmlMode-B5ESZlHK.js
|
|
218
|
+
dw/server/ui/assets/index-Bm_jBlG4.css
|
|
219
|
+
dw/server/ui/assets/index-DIXj1Pp3.js
|
|
216
220
|
dw/server/ui/assets/ini-sBoK_t0W.js
|
|
217
221
|
dw/server/ui/assets/java-BEtHBSE6.js
|
|
218
|
-
dw/server/ui/assets/javascript-
|
|
222
|
+
dw/server/ui/assets/javascript-DpV2UaWD.js
|
|
219
223
|
dw/server/ui/assets/json.worker-DdeUAmHa.js
|
|
220
|
-
dw/server/ui/assets/jsonMode-
|
|
224
|
+
dw/server/ui/assets/jsonMode-DaGlZZy1.js
|
|
221
225
|
dw/server/ui/assets/julia-Bri6UV-V.js
|
|
222
226
|
dw/server/ui/assets/kotlin-BOotOW0E.js
|
|
223
227
|
dw/server/ui/assets/less-B9JPFI3C.js
|
|
224
228
|
dw/server/ui/assets/lexon-CfSJPG6W.js
|
|
225
|
-
dw/server/ui/assets/liquid-
|
|
226
|
-
dw/server/ui/assets/lspLanguageFeatures-
|
|
229
|
+
dw/server/ui/assets/liquid-Ds835QKV.js
|
|
230
|
+
dw/server/ui/assets/lspLanguageFeatures-Cd9OxrIO.js
|
|
227
231
|
dw/server/ui/assets/lua-CsQS60Ue.js
|
|
228
232
|
dw/server/ui/assets/m3-D-oSqn_W.js
|
|
229
233
|
dw/server/ui/assets/markdown-Cimd5fb3.js
|
|
230
|
-
dw/server/ui/assets/mdx-
|
|
234
|
+
dw/server/ui/assets/mdx-BozOHFIi.js
|
|
231
235
|
dw/server/ui/assets/mips-CIPQ_RoX.js
|
|
232
|
-
dw/server/ui/assets/monaco-
|
|
236
|
+
dw/server/ui/assets/monaco-673w9Wwq.js
|
|
233
237
|
dw/server/ui/assets/monaco-n7clI0si.css
|
|
234
238
|
dw/server/ui/assets/msdax-DauUninz.js
|
|
235
239
|
dw/server/ui/assets/mysql-SOo6toE5.js
|
|
@@ -245,10 +249,10 @@ dw/server/ui/assets/powerquery-D3hlyOfw.js
|
|
|
245
249
|
dw/server/ui/assets/powershell-DmHpPYUd.js
|
|
246
250
|
dw/server/ui/assets/protobuf-C531GsRP.js
|
|
247
251
|
dw/server/ui/assets/pug-Z5eAx3Zn.js
|
|
248
|
-
dw/server/ui/assets/python-
|
|
252
|
+
dw/server/ui/assets/python-D_HjE-WC.js
|
|
249
253
|
dw/server/ui/assets/qsharp-DkqhCAOL.js
|
|
250
254
|
dw/server/ui/assets/r-BwWrilGY.js
|
|
251
|
-
dw/server/ui/assets/razor-
|
|
255
|
+
dw/server/ui/assets/razor-DjEZAQZw.js
|
|
252
256
|
dw/server/ui/assets/redis-ClamHrr6.js
|
|
253
257
|
dw/server/ui/assets/redshift-DT7zqm-g.js
|
|
254
258
|
dw/server/ui/assets/restructuredtext-BYgofb2h.js
|
|
@@ -268,15 +272,15 @@ dw/server/ui/assets/swift-Bxkupp3x.js
|
|
|
268
272
|
dw/server/ui/assets/systemverilog-Bz4Y3fRF.js
|
|
269
273
|
dw/server/ui/assets/tcl-DISqw1ZD.js
|
|
270
274
|
dw/server/ui/assets/ts.worker-DGGa2mF8.js
|
|
271
|
-
dw/server/ui/assets/tsMode-
|
|
275
|
+
dw/server/ui/assets/tsMode-B3g7-HAd.js
|
|
272
276
|
dw/server/ui/assets/twig-De2hgUGE.js
|
|
273
|
-
dw/server/ui/assets/typescript-
|
|
277
|
+
dw/server/ui/assets/typescript-Bq3yLFs6.js
|
|
274
278
|
dw/server/ui/assets/typespec-B8J7ngcE.js
|
|
275
279
|
dw/server/ui/assets/vb-DV3o63ZY.js
|
|
276
280
|
dw/server/ui/assets/wgsl-DpFanUEy.js
|
|
277
|
-
dw/server/ui/assets/workers-
|
|
278
|
-
dw/server/ui/assets/xml-
|
|
279
|
-
dw/server/ui/assets/yaml-
|
|
281
|
+
dw/server/ui/assets/workers-Jt2I7Jya.js
|
|
282
|
+
dw/server/ui/assets/xml-BD0Sm95a.js
|
|
283
|
+
dw/server/ui/assets/yaml-BSnko3ic.js
|
|
280
284
|
dw/tasks/assess.py
|
|
281
285
|
dw/tasks/audio_dynamics.py
|
|
282
286
|
dw/tasks/audio_handlers.py
|
|
@@ -315,9 +319,11 @@ dw/tasks/model_handlers.py
|
|
|
315
319
|
dw/tasks/pair_audio.py
|
|
316
320
|
dw/tasks/qr_code.py
|
|
317
321
|
dw/tasks/registry.py
|
|
322
|
+
dw/tasks/remove_object.py
|
|
318
323
|
dw/tasks/restore_faces.py
|
|
319
324
|
dw/tasks/rife_model.py
|
|
320
325
|
dw/tasks/script_check.py
|
|
326
|
+
dw/tasks/script_take.py
|
|
321
327
|
dw/tasks/segment.py
|
|
322
328
|
dw/tasks/select.py
|
|
323
329
|
dw/tasks/speech_generation.py
|
|
@@ -331,8 +337,11 @@ dw/tasks/upscale.py
|
|
|
331
337
|
dw/tasks/video_handlers.py
|
|
332
338
|
dw/tasks/video_utils.py
|
|
333
339
|
dw/tasks/voice_attribution.py
|
|
340
|
+
dw/tasks/weights.py
|
|
334
341
|
dw/tasks/windows.py
|
|
335
342
|
dw/tasks/zoe_depth.py
|
|
343
|
+
dw/workflows/flux3_klein_upsample.json
|
|
344
|
+
dw/workflows/flux3_klein_upsample_edit.json
|
|
336
345
|
dw/workflows/h3_context_ir.json
|
|
337
346
|
dw/workflows/test.json
|
|
338
347
|
dw_mcp/__init__.py
|
|
@@ -379,6 +388,7 @@ tests/test_catalog_shape.py
|
|
|
379
388
|
tests/test_catalog_speed_defaults.py
|
|
380
389
|
tests/test_catalog_structure.py
|
|
381
390
|
tests/test_chain.py
|
|
391
|
+
tests/test_chain_h3_native.py
|
|
382
392
|
tests/test_ci_config.py
|
|
383
393
|
tests/test_cli.py
|
|
384
394
|
tests/test_compare_route.py
|
|
@@ -390,6 +400,7 @@ tests/test_concat_videos.py
|
|
|
390
400
|
tests/test_config_objects.py
|
|
391
401
|
tests/test_configuration_schema.py
|
|
392
402
|
tests/test_content_types.py
|
|
403
|
+
tests/test_dependencies_declared.py
|
|
393
404
|
tests/test_depth_estimator.py
|
|
394
405
|
tests/test_device.py
|
|
395
406
|
tests/test_device_helpers.py
|
|
@@ -411,12 +422,14 @@ tests/test_find_loop_bed.py
|
|
|
411
422
|
tests/test_finish.py
|
|
412
423
|
tests/test_fit_templates.py
|
|
413
424
|
tests/test_fit_to_model.py
|
|
425
|
+
tests/test_flux3_catalog.py
|
|
414
426
|
tests/test_for_each.py
|
|
415
427
|
tests/test_forget_workspace_history.py
|
|
416
428
|
tests/test_gallery_roles.py
|
|
417
429
|
tests/test_gather.py
|
|
418
430
|
tests/test_grade.py
|
|
419
431
|
tests/test_guide_chain_validation.py
|
|
432
|
+
tests/test_guide_pointers.py
|
|
420
433
|
tests/test_guides_validation.py
|
|
421
434
|
tests/test_h3_adapters.py
|
|
422
435
|
tests/test_h3_context_ir.py
|
|
@@ -426,6 +439,8 @@ tests/test_h3_latent_upscale.py
|
|
|
426
439
|
tests/test_h3_refine.py
|
|
427
440
|
tests/test_h3_rules.py
|
|
428
441
|
tests/test_h3_schedule.py
|
|
442
|
+
tests/test_h3_sparse_defaults.py
|
|
443
|
+
tests/test_h3_tiles.py
|
|
429
444
|
tests/test_h3_upscaler_source.py
|
|
430
445
|
tests/test_h3_vram_ceiling.py
|
|
431
446
|
tests/test_hf_placement.py
|
|
@@ -443,6 +458,7 @@ tests/test_integration.py
|
|
|
443
458
|
tests/test_interpolate_frames.py
|
|
444
459
|
tests/test_introspection.py
|
|
445
460
|
tests/test_job_history_device.py
|
|
461
|
+
tests/test_job_history_parity.py
|
|
446
462
|
tests/test_job_history_wal.py
|
|
447
463
|
tests/test_job_progress.py
|
|
448
464
|
tests/test_job_warnings.py
|
|
@@ -533,6 +549,7 @@ tests/test_reference_limits.py
|
|
|
533
549
|
tests/test_reference_names.py
|
|
534
550
|
tests/test_reference_skip_sets.py
|
|
535
551
|
tests/test_references.py
|
|
552
|
+
tests/test_remove_object.py
|
|
536
553
|
tests/test_rerun_lineage.py
|
|
537
554
|
tests/test_rerun_new_seed.py
|
|
538
555
|
tests/test_resize_bucket.py
|
|
@@ -550,6 +567,7 @@ tests/test_scalar_result_validation.py
|
|
|
550
567
|
tests/test_scheduler_config.py
|
|
551
568
|
tests/test_schema.py
|
|
552
569
|
tests/test_script_check.py
|
|
570
|
+
tests/test_seam_look.py
|
|
553
571
|
tests/test_security.py
|
|
554
572
|
tests/test_security_auth.py
|
|
555
573
|
tests/test_security_decoder_bombs.py
|
|
@@ -579,6 +597,10 @@ tests/test_shaping_logs.py
|
|
|
579
597
|
tests/test_shot_span_preflight.py
|
|
580
598
|
tests/test_shots.py
|
|
581
599
|
tests/test_slice_preflight.py
|
|
600
|
+
tests/test_sparse_attention_backends.py
|
|
601
|
+
tests/test_sparse_attention_processor.py
|
|
602
|
+
tests/test_sparse_attention_tiles.py
|
|
603
|
+
tests/test_sparse_attention_wiring.py
|
|
582
604
|
tests/test_speech_generation.py
|
|
583
605
|
tests/test_stabilize.py
|
|
584
606
|
tests/test_stars.py
|
|
@@ -591,9 +613,11 @@ tests/test_subfolders.py
|
|
|
591
613
|
tests/test_task.py
|
|
592
614
|
tests/test_task_discovery.py
|
|
593
615
|
tests/test_task_domains.py
|
|
616
|
+
tests/test_task_file_weights.py
|
|
594
617
|
tests/test_task_public_imports.py
|
|
595
618
|
tests/test_task_registry_rules.py
|
|
596
619
|
tests/test_task_signature_errors.py
|
|
620
|
+
tests/test_task_weights.py
|
|
597
621
|
tests/test_template_defaults.py
|
|
598
622
|
tests/test_template_subfolders.py
|
|
599
623
|
tests/test_tensor_image.py
|
|
@@ -631,4 +655,5 @@ tests/test_workflow_snapshot.py
|
|
|
631
655
|
tests/test_workflow_step_cache.py
|
|
632
656
|
tests/test_workflow_trust.py
|
|
633
657
|
tests/test_workspace.py
|
|
634
|
-
tests/test_workspace_copy.py
|
|
658
|
+
tests/test_workspace_copy.py
|
|
659
|
+
tests/test_zimage_vram.py
|
|
@@ -27,6 +27,9 @@ Each of these cost a render to find out in Don's `h3-quality` matrix:
|
|
|
27
27
|
cache's skip decision needs (`docs/ACCELERATION.md`).
|
|
28
28
|
- `attention_backend_unavailable`: a CUDA-only attention backend on a device
|
|
29
29
|
that isn't CUDA passes validate and fails at load.
|
|
30
|
+
- `sparse_attention_fallback`: the `sparse` attention backend on a device that
|
|
31
|
+
isn't CUDA. It never fails a run: it falls back to dense attention, so this
|
|
32
|
+
says the speedup is not coming, not that the job will break.
|
|
30
33
|
|
|
31
34
|
Every one is a warning and never a refusal. A value that cannot be resolved
|
|
32
35
|
before the run (a null variable, an unknown device) leaves its warning
|
|
@@ -39,6 +42,8 @@ import typing
|
|
|
39
42
|
from . import get_device_type
|
|
40
43
|
from .introspection import load_pipeline_class
|
|
41
44
|
from .references import iter_steps, render_path
|
|
45
|
+
from . import sparse_attention
|
|
46
|
+
from .sparse_attention import SPARSE_BACKEND
|
|
42
47
|
from .vram_estimate import required_vram_gb
|
|
43
48
|
|
|
44
49
|
# The fewest denoise steps a threshold cache is expected to skip any of. A
|
|
@@ -82,10 +87,11 @@ SHORT_SCHEDULE = "cache_short_schedule"
|
|
|
82
87
|
TAYLORSEER_STATE = "taylorseer_state_unestimated"
|
|
83
88
|
FULLGRAPH_WITH_CACHE = "compile_fullgraph_with_cache"
|
|
84
89
|
BACKEND_UNAVAILABLE = "attention_backend_unavailable"
|
|
90
|
+
SPARSE_FALLBACK = "sparse_attention_fallback"
|
|
85
91
|
CACHE_UNSUPPORTED = "cache_unsupported"
|
|
86
92
|
|
|
87
93
|
# The component names a cache hook attaches to, as in
|
|
88
|
-
# dw.pipeline_processors.
|
|
94
|
+
# dw.pipeline_processors.mag_calibration.get_cache_transformer
|
|
89
95
|
_CACHE_COMPONENTS = ("transformer", "transformer_ref")
|
|
90
96
|
|
|
91
97
|
|
|
@@ -258,6 +264,13 @@ def acceleration_warnings(context):
|
|
|
258
264
|
continue
|
|
259
265
|
for path, block in backends:
|
|
260
266
|
name = block.get("attention_backend")
|
|
267
|
+
if name == SPARSE_BACKEND:
|
|
268
|
+
warnings.append(
|
|
269
|
+
f"{render_path(path)}: {SPARSE_FALLBACK}: sparse attention "
|
|
270
|
+
f"needs CUDA; this server is '{context.device_type}', so "
|
|
271
|
+
f"the run uses dense attention{where}"
|
|
272
|
+
)
|
|
273
|
+
continue
|
|
261
274
|
if name not in CUDA_ONLY_ATTENTION_BACKENDS:
|
|
262
275
|
continue
|
|
263
276
|
warnings.append(
|
|
@@ -273,3 +286,26 @@ def acceleration_warnings(context):
|
|
|
273
286
|
path, _, rest = warning.partition(": ")
|
|
274
287
|
said.setdefault((path, rest.partition(": ")[0]), warning)
|
|
275
288
|
return list(said.values())
|
|
289
|
+
|
|
290
|
+
|
|
291
|
+
def available_attention_backends(device_type: str) -> list[str]:
|
|
292
|
+
"""The attention backends a server on `device_type` can run, in menu order.
|
|
293
|
+
|
|
294
|
+
`native` first, then the other `native`-family names; on CUDA, `sparse`
|
|
295
|
+
(only where the compiled kernels loaded) and the CUDA-only names. A name
|
|
296
|
+
diffusers' `AttentionBackendName` lacks is dropped, so the menu never
|
|
297
|
+
offers one the pipeline would refuse.
|
|
298
|
+
"""
|
|
299
|
+
from diffusers.models.attention_dispatch import AttentionBackendName
|
|
300
|
+
|
|
301
|
+
known = {backend.value for backend in AttentionBackendName}
|
|
302
|
+
cuda = device_type == "cuda"
|
|
303
|
+
names = ["native", "_native_flash", "_native_efficient", "_native_math"]
|
|
304
|
+
if cuda:
|
|
305
|
+
names.append("_native_cudnn")
|
|
306
|
+
names.append("flex")
|
|
307
|
+
if cuda:
|
|
308
|
+
if sparse_attention._kernels_importable():
|
|
309
|
+
names.append(SPARSE_BACKEND)
|
|
310
|
+
names.extend(sorted(CUDA_ONLY_ATTENTION_BACKENDS))
|
|
311
|
+
return [name for name in names if name == SPARSE_BACKEND or name in known]
|
|
@@ -312,6 +312,21 @@ DISABLED_MESSAGE = (
|
|
|
312
312
|
)
|
|
313
313
|
|
|
314
314
|
|
|
315
|
+
# Step-distillation loras run in 4-9 steps; a null-lora step at or past this
|
|
316
|
+
# has already been given the base model's schedule, so the warning is stale.
|
|
317
|
+
RAISED_STEPS = 10
|
|
318
|
+
|
|
319
|
+
|
|
320
|
+
def _schedule_raised(pipeline):
|
|
321
|
+
arguments = pipeline.get("arguments")
|
|
322
|
+
steps = (
|
|
323
|
+
arguments.get("num_inference_steps") if isinstance(arguments, dict) else None
|
|
324
|
+
)
|
|
325
|
+
return (
|
|
326
|
+
isinstance(steps, int) and not isinstance(steps, bool) and steps >= RAISED_STEPS
|
|
327
|
+
)
|
|
328
|
+
|
|
329
|
+
|
|
315
330
|
def _disabled_loras(steps, source_indices, written=None, supplied=()):
|
|
316
331
|
"""Every `loras` entry switched off with a null model_name, as
|
|
317
332
|
(path, message). Any pipeline, not only H3: the off switch is the
|
|
@@ -322,7 +337,7 @@ def _disabled_loras(steps, source_indices, written=None, supplied=()):
|
|
|
322
337
|
steps, source_indices, "pipeline"
|
|
323
338
|
):
|
|
324
339
|
loras = pipeline.get(LORAS_KEY)
|
|
325
|
-
if not isinstance(loras, list):
|
|
340
|
+
if not isinstance(loras, list) or _schedule_raised(pipeline):
|
|
326
341
|
continue
|
|
327
342
|
for position, lora in enumerate(loras):
|
|
328
343
|
if not isinstance(lora, dict) or lora.get(MODEL_NAME_KEY) is not None:
|
|
@@ -220,7 +220,7 @@ def _with_frame_rate(frames, location):
|
|
|
220
220
|
only looks at a real local path. A file that says neither stays a plain
|
|
221
221
|
list.
|
|
222
222
|
"""
|
|
223
|
-
from .
|
|
223
|
+
from .media_types import FrameList
|
|
224
224
|
|
|
225
225
|
if not isinstance(frames, list):
|
|
226
226
|
return frames
|
|
@@ -273,7 +273,7 @@ def local_media_file(location, what, default_suffix=""):
|
|
|
273
273
|
|
|
274
274
|
def _fetch_remote_video(url):
|
|
275
275
|
"""A video URL's frames, decoded from `local_media_file`'s copy."""
|
|
276
|
-
from .
|
|
276
|
+
from .media_types import FrameList
|
|
277
277
|
|
|
278
278
|
with local_media_file(url, "a video argument", default_suffix=".mp4") as path:
|
|
279
279
|
frames = load_video(path)
|
|
@@ -109,7 +109,7 @@ def check_device_present(device):
|
|
|
109
109
|
raise DeviceConfigError(f"{device} is not available on this machine")
|
|
110
110
|
|
|
111
111
|
|
|
112
|
-
def resolve_serve_devices(cli_value, settings_value):
|
|
112
|
+
def resolve_serve_devices(cli_value, settings_value, on_absent=None):
|
|
113
113
|
"""The devices a server runs on - `--devices`, else the `devices`
|
|
114
114
|
setting - or None when neither names any, which leaves today's single
|
|
115
115
|
device (`DW_DEVICE`, then the `device` setting, then detection) alone.
|
|
@@ -117,7 +117,14 @@ def resolve_serve_devices(cli_value, settings_value):
|
|
|
117
117
|
More than one entry runs a worker per card, so each must be a card of
|
|
118
118
|
its own. Raises DeviceConfigError for a duplicate, for an unindexed
|
|
119
119
|
`cuda` in a list of several (it would not be pinned, and would share
|
|
120
|
-
card 0), and for a device this machine does not have.
|
|
120
|
+
card 0), and for a device this machine does not have.
|
|
121
|
+
|
|
122
|
+
A list of several survives a card being pulled: an absent entry is
|
|
123
|
+
dropped and its refusal passed to `on_absent`, so a box with a card
|
|
124
|
+
out for service comes up on the rest instead of refusing to start (a
|
|
125
|
+
service manager restarting it would loop forever). Only when no entry
|
|
126
|
+
is present - or `on_absent` is None - is the first absence raised, so
|
|
127
|
+
a lone typo (`cuda:7`) still refuses."""
|
|
121
128
|
raw = cli_value if cli_value else settings_value
|
|
122
129
|
devices = parse_devices(raw)
|
|
123
130
|
if not devices:
|
|
@@ -139,9 +146,19 @@ def resolve_serve_devices(cli_value, settings_value):
|
|
|
139
146
|
"--devices with several entries must name each CUDA card by "
|
|
140
147
|
"index ('cuda:0,cuda:1'), not a bare 'cuda'"
|
|
141
148
|
)
|
|
149
|
+
present, absences = [], []
|
|
142
150
|
for device in devices:
|
|
143
|
-
|
|
144
|
-
|
|
151
|
+
try:
|
|
152
|
+
check_device_present(device)
|
|
153
|
+
except DeviceConfigError as absence:
|
|
154
|
+
absences.append(absence)
|
|
155
|
+
else:
|
|
156
|
+
present.append(device)
|
|
157
|
+
if absences and (not present or on_absent is None):
|
|
158
|
+
raise absences[0]
|
|
159
|
+
for absence in absences:
|
|
160
|
+
on_absent(str(absence))
|
|
161
|
+
return present
|
|
145
162
|
|
|
146
163
|
|
|
147
164
|
def _explicit_cuda_index(device):
|
|
@@ -159,20 +159,58 @@ Select the attention implementation diffusers uses for the duration of each pipe
|
|
|
159
159
|
}
|
|
160
160
|
```
|
|
161
161
|
|
|
162
|
-
Common values: `"flash"`, `"flash_hub"`, `"sage"`, `"sage_hub"`, `"native"`, `"flex"`. The full set is diffusers' `AttentionBackendName` enum - availability depends on what's installed (`flash-attn`, `sageattention`, etc.) and the platform. `_hub`-suffixed backends are fetched from the Hugging Face Hub kernel registry on first use, which needs the `kernels` package installed (`pip install kernels`) - it is not a dw dependency
|
|
162
|
+
Common values: `"flash"`, `"flash_hub"`, `"sage"`, `"sage_hub"`, `"native"`, `"flex"`. The full set is diffusers' `AttentionBackendName` enum - availability depends on what's installed (`flash-attn`, `sageattention`, etc.) and the platform. `_hub`-suffixed backends are fetched from the Hugging Face Hub kernel registry on first use, which needs the `kernels` package installed (`pip install kernels`) - it is not a dw dependency. The only backend a bundled workflow sets is `sparse`, the default on every MiniMax-H3 template, and it needs no `kernels` install (comfy-kitchen is a core dependency), so each bundled workflow runs on a plain install. diffusers also refuses a Hub kernel whose publisher it does not list as trusted - `sage_hub` among them, since SageAttention 2 comes from `SageAttention/sage-attention` - until `DIFFUSERS_TRUST_REMOTE_KERNELS=true`, which allows remote code from any such publisher. On an RTX 3090 `sage_hub` measured about 30% faster per MiniMax-H3 step (13.8 s against 19.2 s at 960x544x124, 54.7 s against 81.2 s at 345 frames); the local `sage` backend needs `sageattention>=2.1.1`, which PyPI does not carry.
|
|
163
163
|
|
|
164
164
|
Every MiniMax-H3 template in [templates/minimax/](../workflows/templates/minimax/)
|
|
165
165
|
exposes this as a variable: `attention_backend`, pinned on the H3 step's transformer
|
|
166
166
|
(`components.transformer`, or `components.transformer_ref` for a ref2va workflow) and
|
|
167
|
-
`
|
|
167
|
+
`"sparse"` by default (with `sparse_tau`, below). That covers the shots, chains and episodes - `dialogue-short`,
|
|
168
168
|
`shots-batch`, `music-video` and `storyboard` among them - and only their H3 steps: a
|
|
169
169
|
Z-Image still or Music3 song beside an H3 shot keeps the process default. Pass
|
|
170
|
-
`attention_backend=sage_hub` to a box with the `kernels` package and
|
|
171
|
-
`DIFFUSERS_TRUST_REMOTE_KERNELS=true` in its `.env`; on MPS
|
|
172
|
-
CUDA-only kernel fails there at load (validation warns, below). LTX-2.5 cannot use it: its transformer
|
|
170
|
+
`attention_backend=sage_hub` (or `native`) to override the default; `sage_hub` needs a box with the `kernels` package and
|
|
171
|
+
`DIFFUSERS_TRUST_REMOTE_KERNELS=true` in its `.env`; on MPS the default falls back to dense, but a CUDA-only kernel such as `sage_hub` fails there at load (validation warns, below). LTX-2.5 cannot use it: its transformer
|
|
173
172
|
passes an attention mask, and sage attention refuses one ("`attn_mask` is not supported
|
|
174
173
|
for sage attention", measured 2026-10-10), so the LTX templates expose no backend.
|
|
175
174
|
|
|
175
|
+
### `sparse` (MiniMax-H3)
|
|
176
|
+
|
|
177
|
+
`attention_backend: "sparse"` runs H3's attention through comfy-kitchen's block-sparse kernel: each query tile attends only to the key tiles that matter, so the cost of the long video-token sequence falls. It applies to the H3 transformer only, at pipeline or component level, and is the default on every H3 template (#931). Set at both levels, the component's own `attention_backend` wins, as it does for every backend: a pipeline-level `sparse` skips a component pinned to `sage_hub` (or anything else) and warns `attention_backend 'sparse' at pipeline level skips '<component>', which pins '<backend>'`. When it does install, the run logs `Using attention backend: sparse (tau <tau>) on <components>`, or `(topk <k>)` with top-k routing. `sparse_tau` (number, minimum 0, default 0.5; anything else, such as a `variable:` that resolves to a string or a bool, fails the step rather than running dense) sets how much of the attention mass a tile may drop; 0 keeps the most. Observed at Ref2VA 1344x768, seed 42: tau 1.0 ran 42.1 s/forward against 44.8 s at 0.5, and by Don's eye 1.0 gave smoother skin while 0.5 matched dense (the table below). That is one shape and one seed, not a rule that higher is always faster or smoother.
|
|
178
|
+
|
|
179
|
+
`sparse_topk` (a number strictly between 0 and 1; the H3 templates set 0.15, and a workflow that sets none routes by `sparse_tau`) switches the kernel to top-k routing: each query tile keeps that fraction of key tiles and drops the rest outright, with `sparse_tau` ignored. It is the selection lightx2v's Turbo-SLA LoRAs were trained against (85% sparsity, so `0.15`). Measured on `video-with-audio-768p`, seed 42 (#932): top-k 0.15 ran 21.1 s/forward against 23.6 s at tau 0.5, about 11% faster, and Don saw no difference on that clip, with either the Turbo-SLA LoRA or the default v1.2 turbo (so dw does not adopt the SLA LoRA). That clip has no faces, so it was checked on the H3 quality ramp's 4-reference sitcom shot at seeds 42, 7 and 1234 against tau 0.5. Don judged top-k equal or better: on the turbo L7 rung tau showed blue ghosting at seed 7 and slight smearing at all three, and on the 30-step base-model L5 rung the skin held. Top-k 0.15 is therefore the H3 templates' default; pass `sparse_topk=null` to route by `sparse_tau` instead.
|
|
180
|
+
|
|
181
|
+
| rung (minutes per job, seeds 42 / 7 / 1234) | tau 0.5 | top-k 0.15 |
|
|
182
|
+
|---|---|---|
|
|
183
|
+
| L7: ref2v 4-step turbo, int8 | 6.5 / 6.5 / 6.5 | 6.1 / 6.2 / 5.8 |
|
|
184
|
+
| L5: base model, int8, 30 steps | 26.8 / 26.6 / 26.4 | 23.9 / 25.5 / 23.9 |
|
|
185
|
+
|
|
186
|
+
**What the default buys depends on what it replaces.** Against `native` attention, which is what an H3 template ran before #931 unless `attention_backend` was set, sparse is 2.2-4.4x faster per step. Against `sage_hub`, the gain is much smaller: 6-16% depending on the shape (the second table). So sparse's main win is for a run that set no backend, and it needs no `kernels` package or `DIFFUSERS_TRUST_REMOTE_KERNELS`. A box already on `sage_hub` gains a little, at equal quality: on the H3 skill's quality-ramp rungs, Don judged faces, skin and draft-to-final staging equal under both backends across three seeds (#931 stage 3).
|
|
187
|
+
|
|
188
|
+
Measured on an RTX 3090, seed 42, s per transformer forward (one per denoise step), lower is faster:
|
|
189
|
+
|
|
190
|
+
| shape | native | `sage_hub` | sparse | sparse vs native | sparse vs `sage_hub` |
|
|
191
|
+
|---|---|---|---|---|---|
|
|
192
|
+
| T2VA 960x544, 4-step turbo, tau 1.0 | 24.3 | - | 10.8 | 2.25x | - |
|
|
193
|
+
| T2VA 1344x768, 4-step turbo, tau 1.0 | 96.1 | - | 21.9 | 4.38x | - |
|
|
194
|
+
| Ref2VA 1344x768, 8-step ref2v turbo, tau 1.0 | 108.4 | - | 42.1 | 2.58x | - |
|
|
195
|
+
| Ref2VA 1344x768, 8-step ref2v turbo, tau 0.5 (the default) | 108.4 | 51.0 | 44.1-44.8 | 2.42x | 1.16x |
|
|
196
|
+
|
|
197
|
+
Wall time, same order: 150 -> 95 s, 457 -> 158 s, 965 -> 430 s, and for the last row 965 s native, 489 s `sage_hub`, 442-450 s sparse.
|
|
198
|
+
|
|
199
|
+
Against `sage_hub` on the H3 skill's quality-ramp rungs (ep 6 cold open, 4 references, 1344x768, 124 frames; minutes per job, seeds 42 / 7 / 1234, all on the same diffusers):
|
|
200
|
+
|
|
201
|
+
| rung | `sage_hub` | sparse | sparse vs `sage_hub` |
|
|
202
|
+
|---|---|---|---|
|
|
203
|
+
| L1: ref2v 4-step turbo, int4, 5 steps | 5.5 / 5.5 / 5.5 | 5.2 / 5.2 / 5.1 | 1.06-1.08x |
|
|
204
|
+
| L7: ref2v 4-step turbo, int8, 5 steps | 7.1 / 6.9 / 7.1 | 6.5 / 6.5 / 6.5 | 1.06-1.09x |
|
|
205
|
+
| B3: base model, int8, 12 steps | 13.0 / 12.9 / 12.9 | 12.3 / 12.0 / 12.1 | 1.06-1.07x |
|
|
206
|
+
| L5: base model, int8, 30 steps | 29.7 / 29.7 / 29.7 | 26.8 / 26.6 / 26.4 | 1.11-1.12x |
|
|
207
|
+
|
|
208
|
+
The `first_block` cache on `sage_hub` (23.1 min at L5's settings) is still faster than sparse alone there; sparse with that cache is not measured. The native and tau 1.0 figures come from the #931 prototype. The `sage_hub` figure and the 44.1 s come from the engine on lem after the deploy, with a newer diffusers (jobs 94c04976d21d and 593131ca713f), so the sage comparison is between those two jobs only. The T2VA rows have no `sage_hub` run. Peak VRAM did not change. Judged by eye, tau 0.5 matched dense; tau 1.0 was smoother in skin.
|
|
209
|
+
|
|
210
|
+
It needs CUDA with compute capability 8.0 or higher. Anywhere else (MPS, CPU, an older card, an unsupported dtype or head size) the run goes dense instead of failing, and says so twice: `validate_workflow` warns `sparse_attention_fallback` when the server's device is not CUDA, and the run reports `<label>: sparse attention ran dense - <reason>` once per pipeline call. A job of one call warns once; a chained, `shots-batch` or `dialogue-short` job calls the pipeline once per segment or shot, so it warns once for each, under that segment's or shot's label. A comfy-kitchen kernel that fails on its first invocation in a call also runs that call dense, with `sparse kernel failed: <error>` as the reason; one that fails after it has run in the call fails the run, since some blocks have already run sparse.
|
|
211
|
+
|
|
212
|
+
Unlike sage, sparse **moves composition** relative to dense: the same subject, story and cuts, but different framing and set dressing. A draft and its final must therefore use the same backend; mixing `sparse` and `sage_hub` between tiers means the draft no longer predicts the final.
|
|
213
|
+
|
|
176
214
|
A component can also pin its backend persistently instead, via `set_attention_backend`:
|
|
177
215
|
|
|
178
216
|
```json
|