diffusers-workflow 0.4.0a3__tar.gz → 0.4.0a8__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.4.0a3/diffusers_workflow.egg-info → diffusers_workflow-0.4.0a8}/PKG-INFO +57 -24
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/README.md +8 -4
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8/diffusers_workflow.egg-info}/PKG-INFO +57 -24
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/diffusers_workflow.egg-info/SOURCES.txt +26 -21
- diffusers_workflow-0.4.0a8/diffusers_workflow.egg-info/requires.txt +55 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/arguments.py +25 -1
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/hub_cache.py +27 -1
- diffusers_workflow-0.4.0a8/dw/prompt_schema.json +48 -0
- diffusers_workflow-0.4.0a8/dw/prompts.py +145 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/repl.py +1 -1
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/repl_commands.py +1 -1
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/run.py +11 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/security.py +63 -23
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/serve.py +22 -2
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/app.py +238 -5
- diffusers_workflow-0.4.0a8/dw/server/enhancers.py +129 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/jobs.py +15 -0
- diffusers_workflow-0.4.0a3/dw/server/ui/assets/cssMode-CEh6hWi2.js → diffusers_workflow-0.4.0a8/dw/server/ui/assets/cssMode-4JQhrTTm.js +1 -1
- diffusers_workflow-0.4.0a3/dw/server/ui/assets/editor.api-CExg3_mM.js → diffusers_workflow-0.4.0a8/dw/server/ui/assets/editor.api-B_68laXH.js +1 -1
- diffusers_workflow-0.4.0a3/dw/server/ui/assets/freemarker2-DH6orYh2.js → diffusers_workflow-0.4.0a8/dw/server/ui/assets/freemarker2-C4IxK8gs.js +1 -1
- diffusers_workflow-0.4.0a3/dw/server/ui/assets/handlebars-CbrMVW4Q.js → diffusers_workflow-0.4.0a8/dw/server/ui/assets/handlebars-BArDGhF4.js +1 -1
- diffusers_workflow-0.4.0a3/dw/server/ui/assets/html-YDNPZw2M.js → diffusers_workflow-0.4.0a8/dw/server/ui/assets/html-8yKFx0-x.js +1 -1
- diffusers_workflow-0.4.0a3/dw/server/ui/assets/htmlMode-B_zSGWO2.js → diffusers_workflow-0.4.0a8/dw/server/ui/assets/htmlMode-BwXG6XFP.js +1 -1
- diffusers_workflow-0.4.0a8/dw/server/ui/assets/index-BY3Mtj4M.js +17 -0
- diffusers_workflow-0.4.0a8/dw/server/ui/assets/index-Bug26k2P.css +1 -0
- diffusers_workflow-0.4.0a3/dw/server/ui/assets/javascript-dYuBvioq.js → diffusers_workflow-0.4.0a8/dw/server/ui/assets/javascript-B3mqpFQQ.js +1 -1
- diffusers_workflow-0.4.0a3/dw/server/ui/assets/jsonMode-CUqLM39V.js → diffusers_workflow-0.4.0a8/dw/server/ui/assets/jsonMode-C1m5Z8Ha.js +1 -1
- diffusers_workflow-0.4.0a3/dw/server/ui/assets/liquid-D6vxBzMv.js → diffusers_workflow-0.4.0a8/dw/server/ui/assets/liquid-Cs5oVPJ1.js +1 -1
- diffusers_workflow-0.4.0a3/dw/server/ui/assets/lspLanguageFeatures-1WJ2palX.js → diffusers_workflow-0.4.0a8/dw/server/ui/assets/lspLanguageFeatures-CnroSKaf.js +1 -1
- diffusers_workflow-0.4.0a3/dw/server/ui/assets/mdx-SHQb6vmD.js → diffusers_workflow-0.4.0a8/dw/server/ui/assets/mdx-BGAIyUWE.js +1 -1
- diffusers_workflow-0.4.0a3/dw/server/ui/assets/monaco-CP-s5rcP.js → diffusers_workflow-0.4.0a8/dw/server/ui/assets/monaco-ab9gu2Wi.js +4 -4
- diffusers_workflow-0.4.0a3/dw/server/ui/assets/python-x0_EGHq9.js → diffusers_workflow-0.4.0a8/dw/server/ui/assets/python-XsfASqaE.js +1 -1
- diffusers_workflow-0.4.0a3/dw/server/ui/assets/razor-BZC4LQDP.js → diffusers_workflow-0.4.0a8/dw/server/ui/assets/razor-C-1xVmcy.js +1 -1
- diffusers_workflow-0.4.0a3/dw/server/ui/assets/tsMode-BTfA6SbD.js → diffusers_workflow-0.4.0a8/dw/server/ui/assets/tsMode-BDa9GeVq.js +1 -1
- diffusers_workflow-0.4.0a3/dw/server/ui/assets/typescript-CWA4MsNk.js → diffusers_workflow-0.4.0a8/dw/server/ui/assets/typescript-VE9GZNZf.js +1 -1
- diffusers_workflow-0.4.0a3/dw/server/ui/assets/workers-CWU0uvj5.js → diffusers_workflow-0.4.0a8/dw/server/ui/assets/workers-C_2pIPh_.js +1 -1
- diffusers_workflow-0.4.0a3/dw/server/ui/assets/xml-KmfTm3rg.js → diffusers_workflow-0.4.0a8/dw/server/ui/assets/xml-BJp06vju.js +1 -1
- diffusers_workflow-0.4.0a3/dw/server/ui/assets/yaml-nFO_dDS6.js → diffusers_workflow-0.4.0a8/dw/server/ui/assets/yaml-EI9SS79i.js +1 -1
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/index.html +2 -2
- diffusers_workflow-0.4.0a8/dw/server/updater.py +119 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/workflow.py +13 -1
- diffusers_workflow-0.4.0a8/pyproject.toml +120 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/tests/test_arguments.py +19 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/tests/test_docs_links.py +8 -6
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/tests/test_examples.py +7 -6
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/tests/test_hub_cache.py +46 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/tests/test_previous_results.py +18 -0
- diffusers_workflow-0.4.0a8/tests/test_prompts.py +227 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/tests/test_security.py +60 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/tests/test_server.py +255 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/tests/test_text_sections.py +1 -1
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/tests/test_workflow.py +20 -0
- diffusers_workflow-0.4.0a3/diffusers_workflow.egg-info/requires.txt +0 -24
- diffusers_workflow-0.4.0a3/dw/server/ui/assets/index-B7-VcYS-.css +0 -1
- diffusers_workflow-0.4.0a3/dw/server/ui/assets/index-D_EiPU3b.js +0 -13
- diffusers_workflow-0.4.0a3/pyproject.toml +0 -66
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/LICENSE +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/MANIFEST.in +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/diffusers_workflow.egg-info/dependency_links.txt +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/diffusers_workflow.egg-info/entry_points.txt +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/diffusers_workflow.egg-info/top_level.txt +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/__init__.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/cache_blocks.json +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/cache_blocks.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/community_pipelines/pipeline_flux_rf_inversion.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/events.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/introspection.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/log_setup.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/pipeline_processors/chain.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/pipeline_processors/config_objects.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/pipeline_processors/pipeline.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/pipeline_processors/remote.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/previous_results.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/prompt_weighting.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/repl_worker.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/result.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/schema.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/__init__.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/abap-08VXUWAP.js +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/apex-BWPQTe0t.js +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/azcli-Bc_sGQ0U.js +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/bat-i0X4ZdIN.js +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/bicep-B5-_aFwp.js +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/cameligo-DMUM7wLl.js +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/clojure-Cm7r79vr.js +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/codicon-Brq4_Ui5.ttf +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/coffee-Ba7i2nA0.js +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/cpp-C7h46wYY.js +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/csharp-BKxtCVv1.js +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/csp-bTuwJoIa.js +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/css-DIMkf-bt.js +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/css.worker-B3ciXF_0.js +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/cypher-CVaqCwHa.js +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/dart-onAF5SnQ.js +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/dockerfile-DZFCIeNp.js +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/ecl-D05T4iGw.js +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/editor-jjEx9u7D.css +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/editor.worker-q-txB4vs.js +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/elixir-6RTg0lbw.js +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/flow9-C5_-GSwl.js +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/fsharp-C8Ef5oNN.js +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/go-C-y9NEjX.js +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/graphql-fmXr3nnJ.js +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/hcl-CpzslTdj.js +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/html.worker-C93Ht9o9.js +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/ini-sBoK_t0W.js +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/java-BEtHBSE6.js +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/json.worker-B2V3pomh.js +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/julia-Bri6UV-V.js +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/kotlin-BOotOW0E.js +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/less-B9JPFI3C.js +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/lexon-CfSJPG6W.js +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/lua-CsQS60Ue.js +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/m3-D-oSqn_W.js +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/markdown-Cimd5fb3.js +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/mips-CIPQ_RoX.js +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/monaco--ixms01u.css +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/msdax-DauUninz.js +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/mysql-SOo6toE5.js +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/objective-c-FvmIjYaQ.js +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/pascal-DrH0SRf2.js +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/pascaligo-D-ptJ9y-.js +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/perl-oz_6vUea.js +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/pgsql-DTj74zXo.js +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/php-nr791fC2.js +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/pla-CopQ2nXW.js +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/postiats-43DmfD33.js +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/powerquery-D3hlyOfw.js +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/powershell-DmHpPYUd.js +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/protobuf-C531GsRP.js +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/pug-Z5eAx3Zn.js +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/qsharp-DkqhCAOL.js +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/r-BwWrilGY.js +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/redis-ClamHrr6.js +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/redshift-DT7zqm-g.js +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/restructuredtext-BYgofb2h.js +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/ruby-DezsRK8O.js +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/rust-DdL9SqIa.js +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/sb-CcwsVR0C.js +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/scala-DHpiXF5c.js +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/scheme-BeGwcela.js +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/scss-gp-XZpBa.js +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/shell-CC2rA5mh.js +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/solidity-BEEn4gHE.js +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/sophia-CRfGWb83.js +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/sparql-D_Lu-MrJ.js +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/sql-NEE52Syq.js +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/st-DbInun42.js +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/swift-Bxkupp3x.js +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/systemverilog-Bz4Y3fRF.js +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/tcl-DISqw1ZD.js +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/ts.worker-D7T1-Ig5.js +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/twig-De2hgUGE.js +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/typespec-B8J7ngcE.js +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/vb-DV3o63ZY.js +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/server/ui/assets/wgsl-DpFanUEy.js +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/settings.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/step.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/tasks/audio_utils.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/tasks/background_remover.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/tasks/borders.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/tasks/concat_videos.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/tasks/depth_estimator.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/tasks/diffusion_upscale.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/tasks/format_messages.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/tasks/gather.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/tasks/image_to_text.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/tasks/image_utils.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/tasks/interpolate_frames.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/tasks/model_cache.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/tasks/pair_audio.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/tasks/qr_code.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/tasks/restore_faces.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/tasks/rife_model.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/tasks/segment.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/tasks/task.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/tasks/tensor_image.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/tasks/text_generation.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/tasks/text_sections.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/tasks/upscale.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/tasks/video_utils.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/tasks/zoe_depth.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/teacache.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/teacache_models.json +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/test.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/type_helpers.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/validate.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/variables.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/worker.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/workflow_schema.json +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/workflows/augment_prompt.json +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/workflows/describe_image.json +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/workflows/h3_context_ir.json +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/dw/workflows/test.json +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/setup.cfg +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/tests/test_argument_updates.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/tests/test_audio_utils.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/tests/test_borders.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/tests/test_cache_blocks.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/tests/test_chain.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/tests/test_component_pruning.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/tests/test_concat_videos.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/tests/test_config_objects.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/tests/test_configuration_schema.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/tests/test_depth_estimator.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/tests/test_device.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/tests/test_device_helpers.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/tests/test_diffusion_upscale.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/tests/test_events.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/tests/test_gather.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/tests/test_image_to_text.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/tests/test_image_utils.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/tests/test_integration.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/tests/test_interpolate_frames.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/tests/test_introspection.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/tests/test_list_images.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/tests/test_model_cache.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/tests/test_modular_pipeline.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/tests/test_pair_audio.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/tests/test_pipeline_caching.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/tests/test_pipeline_components.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/tests/test_prompt_parser.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/tests/test_prompt_weighting.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/tests/test_repl_commands.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/tests/test_repl_ergonomics.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/tests/test_repl_hierarchical.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/tests/test_repl_reorganization.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/tests/test_resize_bucket.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/tests/test_result.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/tests/test_scheduler_config.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/tests/test_schema.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/tests/test_segment.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/tests/test_step.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/tests/test_strip_exif_and_watermark.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/tests/test_task.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/tests/test_task_discovery.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/tests/test_teacache.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/tests/test_tensor_image.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/tests/test_text_generation.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/tests/test_type_helpers.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/tests/test_variables.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/tests/test_video_utils.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/tests/test_worker.py +0 -0
- {diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/tests/test_worker_execute.py +0 -0
{diffusers_workflow-0.4.0a3/diffusers_workflow.egg-info → diffusers_workflow-0.4.0a8}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: diffusers-workflow
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.0a8
|
|
4
4
|
Summary: Declarative workflow engine and web UI for Hugging Face Diffusers
|
|
5
5
|
Author: dkackman
|
|
6
6
|
License: Apache-2.0
|
|
@@ -16,27 +16,56 @@ Classifier: Programming Language :: Python :: 3.14
|
|
|
16
16
|
Requires-Python: >=3.10
|
|
17
17
|
Description-Content-Type: text/markdown
|
|
18
18
|
License-File: LICENSE
|
|
19
|
-
Requires-Dist: torch>=2.
|
|
20
|
-
Requires-Dist:
|
|
21
|
-
Requires-Dist:
|
|
22
|
-
Requires-Dist:
|
|
23
|
-
Requires-Dist:
|
|
24
|
-
Requires-Dist:
|
|
25
|
-
Requires-Dist:
|
|
26
|
-
Requires-Dist:
|
|
27
|
-
Requires-Dist:
|
|
28
|
-
Requires-Dist:
|
|
29
|
-
Requires-Dist:
|
|
30
|
-
Requires-Dist:
|
|
31
|
-
Requires-Dist:
|
|
19
|
+
Requires-Dist: torch>=2.13.0
|
|
20
|
+
Requires-Dist: torchvision>=0.28.0
|
|
21
|
+
Requires-Dist: diffusers>=0.40.0
|
|
22
|
+
Requires-Dist: transformers>=5.16.1
|
|
23
|
+
Requires-Dist: accelerate>=1.14.0
|
|
24
|
+
Requires-Dist: peft>=0.20.0
|
|
25
|
+
Requires-Dist: safetensors>=0.8.0
|
|
26
|
+
Requires-Dist: huggingface-hub>=1.29.0
|
|
27
|
+
Requires-Dist: sentencepiece>=0.2.2
|
|
28
|
+
Requires-Dist: protobuf>=7.36.0
|
|
29
|
+
Requires-Dist: ftfy>=6.3.1
|
|
30
|
+
Requires-Dist: torchsde>=0.2.6
|
|
31
|
+
Requires-Dist: torchao>=0.18.0
|
|
32
|
+
Requires-Dist: optimum-quanto>=0.2.7
|
|
33
|
+
Requires-Dist: sdnq>=0.2.5
|
|
34
|
+
Requires-Dist: gguf>=0.19.0
|
|
35
|
+
Requires-Dist: bitsandbytes>=0.50.2; sys_platform == "linux"
|
|
36
|
+
Requires-Dist: controlnet-aux>=0.0.10
|
|
37
|
+
Requires-Dist: opencv-python-headless>=5.0.0.93
|
|
38
|
+
Requires-Dist: kornia>=0.8.3
|
|
39
|
+
Requires-Dist: spandrel>=0.4.2
|
|
40
|
+
Requires-Dist: facexlib>=0.3.0
|
|
41
|
+
Requires-Dist: numpy>=2.5.2
|
|
42
|
+
Requires-Dist: Pillow>=12.3.0
|
|
43
|
+
Requires-Dist: piexif>=1.1.3
|
|
44
|
+
Requires-Dist: imageio>=2.37.4
|
|
45
|
+
Requires-Dist: imageio-ffmpeg>=0.6.0
|
|
46
|
+
Requires-Dist: av>=18.1.0
|
|
47
|
+
Requires-Dist: soundfile>=0.14.0
|
|
48
|
+
Requires-Dist: matplotlib>=3.11.1
|
|
49
|
+
Requires-Dist: qrcode>=8.2
|
|
50
|
+
Requires-Dist: requests>=2.34.2
|
|
51
|
+
Requires-Dist: aiohttp>=3.14.3
|
|
52
|
+
Requires-Dist: beautifulsoup4>=4.15.0
|
|
53
|
+
Requires-Dist: jsonschema>=4.26.0
|
|
54
|
+
Requires-Dist: concurrent-log-handler>=0.9.29
|
|
55
|
+
Requires-Dist: python-dotenv>=1.2.3
|
|
56
|
+
Requires-Dist: packaging>=26.3
|
|
32
57
|
Provides-Extra: server
|
|
33
|
-
Requires-Dist: fastapi; extra == "server"
|
|
34
|
-
Requires-Dist: uvicorn[standard]; extra == "server"
|
|
58
|
+
Requires-Dist: fastapi>=0.141.1; extra == "server"
|
|
59
|
+
Requires-Dist: uvicorn[standard]>=0.52.4; extra == "server"
|
|
35
60
|
Provides-Extra: dev
|
|
36
|
-
Requires-Dist: pytest; extra == "dev"
|
|
37
|
-
Requires-Dist: pytest-cov; extra == "dev"
|
|
38
|
-
Requires-Dist:
|
|
39
|
-
Requires-Dist:
|
|
61
|
+
Requires-Dist: pytest>=9.1.1; extra == "dev"
|
|
62
|
+
Requires-Dist: pytest-cov>=7.1.0; extra == "dev"
|
|
63
|
+
Requires-Dist: pytest-xdist>=3.8.0; extra == "dev"
|
|
64
|
+
Requires-Dist: pytest-timeout>=2.4.0; extra == "dev"
|
|
65
|
+
Requires-Dist: pytest-mock>=3.15.1; extra == "dev"
|
|
66
|
+
Requires-Dist: pytest-asyncio>=1.4.0; extra == "dev"
|
|
67
|
+
Requires-Dist: httpx>=0.28.1; extra == "dev"
|
|
68
|
+
Requires-Dist: black>=26.5.1; extra == "dev"
|
|
40
69
|
Requires-Dist: build; extra == "dev"
|
|
41
70
|
Dynamic: license-file
|
|
42
71
|
|
|
@@ -63,6 +92,7 @@ A declarative workflow engine and web UI for the [Hugging Face Diffusers library
|
|
|
63
92
|
- **Quantization** — BitsAndBytes, TorchAO, GGUF, SDNQ, optimum-quanto
|
|
64
93
|
- **Inference acceleration** — TeaCache, FirstBlockCache, FasterCache, MagCache, TaylorSeerCache
|
|
65
94
|
- **Prompt weighting** — A1111-style `(word:1.5)` syntax with long prompt support
|
|
95
|
+
- **Prompt library** — store prompts once in `prompts/` and reference them from any workflow as `prompt:name` or `prompt:folder/name`, with a web UI for browsing, editing, and AI-enhancing them
|
|
66
96
|
- **LoRA and IP-Adapter** support
|
|
67
97
|
- **Composable workflows** from multiple JSON files with `builtin:` references
|
|
68
98
|
- **Utility tasks** — upscaling, face restoration, segmentation, captioning, frame interpolation, QR codes, and more
|
|
@@ -106,6 +136,8 @@ Everything the engine does, in a browser backed by a persistent GPU worker — m
|
|
|
106
136
|
|
|
107
137
|

|
|
108
138
|
|
|
139
|
+
**A prompt library shared by every workflow.** Store a prompt once, reference it anywhere as `prompt:name` — the Prompts page browses, edits, and filters the library, and an *Enhance with AI* panel expands an idea into a full prompt with a local language model.
|
|
140
|
+
|
|
109
141
|
**A model manager for the disk your models actually consume.** The Hugging Face hub cache, inventoried: sizes, revisions, last-used dates, free space — download new models by id with live progress, delete with one click.
|
|
110
142
|
|
|
111
143
|

|
|
@@ -117,14 +149,14 @@ Jobs queue, stream progress live (per denoising step), cancel cooperatively, and
|
|
|
117
149
|
### Run a Workflow
|
|
118
150
|
|
|
119
151
|
```bash
|
|
120
|
-
python -m dw.run
|
|
121
|
-
python -m dw.run
|
|
152
|
+
python -m dw.run workflows/flux/FluxDev.json
|
|
153
|
+
python -m dw.run workflows/flux/FluxDev.json prompt="a cat" num_images_per_prompt=4
|
|
122
154
|
```
|
|
123
155
|
|
|
124
156
|
### Validate a Workflow
|
|
125
157
|
|
|
126
158
|
```bash
|
|
127
|
-
python -m dw.validate
|
|
159
|
+
python -m dw.validate workflows/flux/FluxDev.json
|
|
128
160
|
```
|
|
129
161
|
|
|
130
162
|
### Interactive REPL
|
|
@@ -284,7 +316,7 @@ a (photorealistic:1.4) portrait with (bright red hair:1.3) and [freckles]
|
|
|
284
316
|
|
|
285
317
|
**Interactive schema browser:** [View Schema](https://json-schema.app/view/%23?url=https%3A%2F%2Fraw.githubusercontent.com%2Fdkackman%2Fdiffusers-workflow%2Frefs%2Fheads%2Fmaster%2Fdw%2Fworkflow_schema.json)
|
|
286
318
|
|
|
287
|
-
See [
|
|
319
|
+
See [workflows/](workflows/) for more workflow files.
|
|
288
320
|
|
|
289
321
|
## Documentation
|
|
290
322
|
|
|
@@ -298,6 +330,7 @@ See [examples/](examples/) for more workflow files.
|
|
|
298
330
|
- [LoRA](docs/LORAS.md) — Loading and stacking LoRA adapters
|
|
299
331
|
- [IP-Adapter](docs/IP_ADAPTER.md) — Image-prompt conditioning
|
|
300
332
|
- [Prompt Weighting](docs/PROMPT_WEIGHTING.md) — A1111-style syntax
|
|
333
|
+
- [Prompt References](docs/WORKFLOW_GUIDE.md#prompt-references) — The stored prompt library and `prompt:` references
|
|
301
334
|
- [Tasks](docs/TASKS.md) — Image processing, ControlNet preprocessors, utilities
|
|
302
335
|
|
|
303
336
|
### Reference
|
|
@@ -21,6 +21,7 @@ A declarative workflow engine and web UI for the [Hugging Face Diffusers library
|
|
|
21
21
|
- **Quantization** — BitsAndBytes, TorchAO, GGUF, SDNQ, optimum-quanto
|
|
22
22
|
- **Inference acceleration** — TeaCache, FirstBlockCache, FasterCache, MagCache, TaylorSeerCache
|
|
23
23
|
- **Prompt weighting** — A1111-style `(word:1.5)` syntax with long prompt support
|
|
24
|
+
- **Prompt library** — store prompts once in `prompts/` and reference them from any workflow as `prompt:name` or `prompt:folder/name`, with a web UI for browsing, editing, and AI-enhancing them
|
|
24
25
|
- **LoRA and IP-Adapter** support
|
|
25
26
|
- **Composable workflows** from multiple JSON files with `builtin:` references
|
|
26
27
|
- **Utility tasks** — upscaling, face restoration, segmentation, captioning, frame interpolation, QR codes, and more
|
|
@@ -64,6 +65,8 @@ Everything the engine does, in a browser backed by a persistent GPU worker — m
|
|
|
64
65
|
|
|
65
66
|

|
|
66
67
|
|
|
68
|
+
**A prompt library shared by every workflow.** Store a prompt once, reference it anywhere as `prompt:name` — the Prompts page browses, edits, and filters the library, and an *Enhance with AI* panel expands an idea into a full prompt with a local language model.
|
|
69
|
+
|
|
67
70
|
**A model manager for the disk your models actually consume.** The Hugging Face hub cache, inventoried: sizes, revisions, last-used dates, free space — download new models by id with live progress, delete with one click.
|
|
68
71
|
|
|
69
72
|

|
|
@@ -75,14 +78,14 @@ Jobs queue, stream progress live (per denoising step), cancel cooperatively, and
|
|
|
75
78
|
### Run a Workflow
|
|
76
79
|
|
|
77
80
|
```bash
|
|
78
|
-
python -m dw.run
|
|
79
|
-
python -m dw.run
|
|
81
|
+
python -m dw.run workflows/flux/FluxDev.json
|
|
82
|
+
python -m dw.run workflows/flux/FluxDev.json prompt="a cat" num_images_per_prompt=4
|
|
80
83
|
```
|
|
81
84
|
|
|
82
85
|
### Validate a Workflow
|
|
83
86
|
|
|
84
87
|
```bash
|
|
85
|
-
python -m dw.validate
|
|
88
|
+
python -m dw.validate workflows/flux/FluxDev.json
|
|
86
89
|
```
|
|
87
90
|
|
|
88
91
|
### Interactive REPL
|
|
@@ -242,7 +245,7 @@ a (photorealistic:1.4) portrait with (bright red hair:1.3) and [freckles]
|
|
|
242
245
|
|
|
243
246
|
**Interactive schema browser:** [View Schema](https://json-schema.app/view/%23?url=https%3A%2F%2Fraw.githubusercontent.com%2Fdkackman%2Fdiffusers-workflow%2Frefs%2Fheads%2Fmaster%2Fdw%2Fworkflow_schema.json)
|
|
244
247
|
|
|
245
|
-
See [
|
|
248
|
+
See [workflows/](workflows/) for more workflow files.
|
|
246
249
|
|
|
247
250
|
## Documentation
|
|
248
251
|
|
|
@@ -256,6 +259,7 @@ See [examples/](examples/) for more workflow files.
|
|
|
256
259
|
- [LoRA](docs/LORAS.md) — Loading and stacking LoRA adapters
|
|
257
260
|
- [IP-Adapter](docs/IP_ADAPTER.md) — Image-prompt conditioning
|
|
258
261
|
- [Prompt Weighting](docs/PROMPT_WEIGHTING.md) — A1111-style syntax
|
|
262
|
+
- [Prompt References](docs/WORKFLOW_GUIDE.md#prompt-references) — The stored prompt library and `prompt:` references
|
|
259
263
|
- [Tasks](docs/TASKS.md) — Image processing, ControlNet preprocessors, utilities
|
|
260
264
|
|
|
261
265
|
### Reference
|
{diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8/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.4.
|
|
3
|
+
Version: 0.4.0a8
|
|
4
4
|
Summary: Declarative workflow engine and web UI for Hugging Face Diffusers
|
|
5
5
|
Author: dkackman
|
|
6
6
|
License: Apache-2.0
|
|
@@ -16,27 +16,56 @@ Classifier: Programming Language :: Python :: 3.14
|
|
|
16
16
|
Requires-Python: >=3.10
|
|
17
17
|
Description-Content-Type: text/markdown
|
|
18
18
|
License-File: LICENSE
|
|
19
|
-
Requires-Dist: torch>=2.
|
|
20
|
-
Requires-Dist:
|
|
21
|
-
Requires-Dist:
|
|
22
|
-
Requires-Dist:
|
|
23
|
-
Requires-Dist:
|
|
24
|
-
Requires-Dist:
|
|
25
|
-
Requires-Dist:
|
|
26
|
-
Requires-Dist:
|
|
27
|
-
Requires-Dist:
|
|
28
|
-
Requires-Dist:
|
|
29
|
-
Requires-Dist:
|
|
30
|
-
Requires-Dist:
|
|
31
|
-
Requires-Dist:
|
|
19
|
+
Requires-Dist: torch>=2.13.0
|
|
20
|
+
Requires-Dist: torchvision>=0.28.0
|
|
21
|
+
Requires-Dist: diffusers>=0.40.0
|
|
22
|
+
Requires-Dist: transformers>=5.16.1
|
|
23
|
+
Requires-Dist: accelerate>=1.14.0
|
|
24
|
+
Requires-Dist: peft>=0.20.0
|
|
25
|
+
Requires-Dist: safetensors>=0.8.0
|
|
26
|
+
Requires-Dist: huggingface-hub>=1.29.0
|
|
27
|
+
Requires-Dist: sentencepiece>=0.2.2
|
|
28
|
+
Requires-Dist: protobuf>=7.36.0
|
|
29
|
+
Requires-Dist: ftfy>=6.3.1
|
|
30
|
+
Requires-Dist: torchsde>=0.2.6
|
|
31
|
+
Requires-Dist: torchao>=0.18.0
|
|
32
|
+
Requires-Dist: optimum-quanto>=0.2.7
|
|
33
|
+
Requires-Dist: sdnq>=0.2.5
|
|
34
|
+
Requires-Dist: gguf>=0.19.0
|
|
35
|
+
Requires-Dist: bitsandbytes>=0.50.2; sys_platform == "linux"
|
|
36
|
+
Requires-Dist: controlnet-aux>=0.0.10
|
|
37
|
+
Requires-Dist: opencv-python-headless>=5.0.0.93
|
|
38
|
+
Requires-Dist: kornia>=0.8.3
|
|
39
|
+
Requires-Dist: spandrel>=0.4.2
|
|
40
|
+
Requires-Dist: facexlib>=0.3.0
|
|
41
|
+
Requires-Dist: numpy>=2.5.2
|
|
42
|
+
Requires-Dist: Pillow>=12.3.0
|
|
43
|
+
Requires-Dist: piexif>=1.1.3
|
|
44
|
+
Requires-Dist: imageio>=2.37.4
|
|
45
|
+
Requires-Dist: imageio-ffmpeg>=0.6.0
|
|
46
|
+
Requires-Dist: av>=18.1.0
|
|
47
|
+
Requires-Dist: soundfile>=0.14.0
|
|
48
|
+
Requires-Dist: matplotlib>=3.11.1
|
|
49
|
+
Requires-Dist: qrcode>=8.2
|
|
50
|
+
Requires-Dist: requests>=2.34.2
|
|
51
|
+
Requires-Dist: aiohttp>=3.14.3
|
|
52
|
+
Requires-Dist: beautifulsoup4>=4.15.0
|
|
53
|
+
Requires-Dist: jsonschema>=4.26.0
|
|
54
|
+
Requires-Dist: concurrent-log-handler>=0.9.29
|
|
55
|
+
Requires-Dist: python-dotenv>=1.2.3
|
|
56
|
+
Requires-Dist: packaging>=26.3
|
|
32
57
|
Provides-Extra: server
|
|
33
|
-
Requires-Dist: fastapi; extra == "server"
|
|
34
|
-
Requires-Dist: uvicorn[standard]; extra == "server"
|
|
58
|
+
Requires-Dist: fastapi>=0.141.1; extra == "server"
|
|
59
|
+
Requires-Dist: uvicorn[standard]>=0.52.4; extra == "server"
|
|
35
60
|
Provides-Extra: dev
|
|
36
|
-
Requires-Dist: pytest; extra == "dev"
|
|
37
|
-
Requires-Dist: pytest-cov; extra == "dev"
|
|
38
|
-
Requires-Dist:
|
|
39
|
-
Requires-Dist:
|
|
61
|
+
Requires-Dist: pytest>=9.1.1; extra == "dev"
|
|
62
|
+
Requires-Dist: pytest-cov>=7.1.0; extra == "dev"
|
|
63
|
+
Requires-Dist: pytest-xdist>=3.8.0; extra == "dev"
|
|
64
|
+
Requires-Dist: pytest-timeout>=2.4.0; extra == "dev"
|
|
65
|
+
Requires-Dist: pytest-mock>=3.15.1; extra == "dev"
|
|
66
|
+
Requires-Dist: pytest-asyncio>=1.4.0; extra == "dev"
|
|
67
|
+
Requires-Dist: httpx>=0.28.1; extra == "dev"
|
|
68
|
+
Requires-Dist: black>=26.5.1; extra == "dev"
|
|
40
69
|
Requires-Dist: build; extra == "dev"
|
|
41
70
|
Dynamic: license-file
|
|
42
71
|
|
|
@@ -63,6 +92,7 @@ A declarative workflow engine and web UI for the [Hugging Face Diffusers library
|
|
|
63
92
|
- **Quantization** — BitsAndBytes, TorchAO, GGUF, SDNQ, optimum-quanto
|
|
64
93
|
- **Inference acceleration** — TeaCache, FirstBlockCache, FasterCache, MagCache, TaylorSeerCache
|
|
65
94
|
- **Prompt weighting** — A1111-style `(word:1.5)` syntax with long prompt support
|
|
95
|
+
- **Prompt library** — store prompts once in `prompts/` and reference them from any workflow as `prompt:name` or `prompt:folder/name`, with a web UI for browsing, editing, and AI-enhancing them
|
|
66
96
|
- **LoRA and IP-Adapter** support
|
|
67
97
|
- **Composable workflows** from multiple JSON files with `builtin:` references
|
|
68
98
|
- **Utility tasks** — upscaling, face restoration, segmentation, captioning, frame interpolation, QR codes, and more
|
|
@@ -106,6 +136,8 @@ Everything the engine does, in a browser backed by a persistent GPU worker — m
|
|
|
106
136
|
|
|
107
137
|

|
|
108
138
|
|
|
139
|
+
**A prompt library shared by every workflow.** Store a prompt once, reference it anywhere as `prompt:name` — the Prompts page browses, edits, and filters the library, and an *Enhance with AI* panel expands an idea into a full prompt with a local language model.
|
|
140
|
+
|
|
109
141
|
**A model manager for the disk your models actually consume.** The Hugging Face hub cache, inventoried: sizes, revisions, last-used dates, free space — download new models by id with live progress, delete with one click.
|
|
110
142
|
|
|
111
143
|

|
|
@@ -117,14 +149,14 @@ Jobs queue, stream progress live (per denoising step), cancel cooperatively, and
|
|
|
117
149
|
### Run a Workflow
|
|
118
150
|
|
|
119
151
|
```bash
|
|
120
|
-
python -m dw.run
|
|
121
|
-
python -m dw.run
|
|
152
|
+
python -m dw.run workflows/flux/FluxDev.json
|
|
153
|
+
python -m dw.run workflows/flux/FluxDev.json prompt="a cat" num_images_per_prompt=4
|
|
122
154
|
```
|
|
123
155
|
|
|
124
156
|
### Validate a Workflow
|
|
125
157
|
|
|
126
158
|
```bash
|
|
127
|
-
python -m dw.validate
|
|
159
|
+
python -m dw.validate workflows/flux/FluxDev.json
|
|
128
160
|
```
|
|
129
161
|
|
|
130
162
|
### Interactive REPL
|
|
@@ -284,7 +316,7 @@ a (photorealistic:1.4) portrait with (bright red hair:1.3) and [freckles]
|
|
|
284
316
|
|
|
285
317
|
**Interactive schema browser:** [View Schema](https://json-schema.app/view/%23?url=https%3A%2F%2Fraw.githubusercontent.com%2Fdkackman%2Fdiffusers-workflow%2Frefs%2Fheads%2Fmaster%2Fdw%2Fworkflow_schema.json)
|
|
286
318
|
|
|
287
|
-
See [
|
|
319
|
+
See [workflows/](workflows/) for more workflow files.
|
|
288
320
|
|
|
289
321
|
## Documentation
|
|
290
322
|
|
|
@@ -298,6 +330,7 @@ See [examples/](examples/) for more workflow files.
|
|
|
298
330
|
- [LoRA](docs/LORAS.md) — Loading and stacking LoRA adapters
|
|
299
331
|
- [IP-Adapter](docs/IP_ADAPTER.md) — Image-prompt conditioning
|
|
300
332
|
- [Prompt Weighting](docs/PROMPT_WEIGHTING.md) — A1111-style syntax
|
|
333
|
+
- [Prompt References](docs/WORKFLOW_GUIDE.md#prompt-references) — The stored prompt library and `prompt:` references
|
|
301
334
|
- [Tasks](docs/TASKS.md) — Image processing, ControlNet preprocessors, utilities
|
|
302
335
|
|
|
303
336
|
### Reference
|
{diffusers_workflow-0.4.0a3 → diffusers_workflow-0.4.0a8}/diffusers_workflow.egg-info/SOURCES.txt
RENAMED
|
@@ -17,7 +17,9 @@ dw/hub_cache.py
|
|
|
17
17
|
dw/introspection.py
|
|
18
18
|
dw/log_setup.py
|
|
19
19
|
dw/previous_results.py
|
|
20
|
+
dw/prompt_schema.json
|
|
20
21
|
dw/prompt_weighting.py
|
|
22
|
+
dw/prompts.py
|
|
21
23
|
dw/repl.py
|
|
22
24
|
dw/repl_commands.py
|
|
23
25
|
dw/repl_worker.py
|
|
@@ -44,7 +46,9 @@ dw/pipeline_processors/pipeline.py
|
|
|
44
46
|
dw/pipeline_processors/remote.py
|
|
45
47
|
dw/server/__init__.py
|
|
46
48
|
dw/server/app.py
|
|
49
|
+
dw/server/enhancers.py
|
|
47
50
|
dw/server/jobs.py
|
|
51
|
+
dw/server/updater.py
|
|
48
52
|
dw/server/ui/index.html
|
|
49
53
|
dw/server/ui/assets/abap-08VXUWAP.js
|
|
50
54
|
dw/server/ui/assets/apex-BWPQTe0t.js
|
|
@@ -60,45 +64,45 @@ dw/server/ui/assets/csharp-BKxtCVv1.js
|
|
|
60
64
|
dw/server/ui/assets/csp-bTuwJoIa.js
|
|
61
65
|
dw/server/ui/assets/css-DIMkf-bt.js
|
|
62
66
|
dw/server/ui/assets/css.worker-B3ciXF_0.js
|
|
63
|
-
dw/server/ui/assets/cssMode-
|
|
67
|
+
dw/server/ui/assets/cssMode-4JQhrTTm.js
|
|
64
68
|
dw/server/ui/assets/cypher-CVaqCwHa.js
|
|
65
69
|
dw/server/ui/assets/dart-onAF5SnQ.js
|
|
66
70
|
dw/server/ui/assets/dockerfile-DZFCIeNp.js
|
|
67
71
|
dw/server/ui/assets/ecl-D05T4iGw.js
|
|
68
72
|
dw/server/ui/assets/editor-jjEx9u7D.css
|
|
69
|
-
dw/server/ui/assets/editor.api-
|
|
73
|
+
dw/server/ui/assets/editor.api-B_68laXH.js
|
|
70
74
|
dw/server/ui/assets/editor.worker-q-txB4vs.js
|
|
71
75
|
dw/server/ui/assets/elixir-6RTg0lbw.js
|
|
72
76
|
dw/server/ui/assets/flow9-C5_-GSwl.js
|
|
73
|
-
dw/server/ui/assets/freemarker2-
|
|
77
|
+
dw/server/ui/assets/freemarker2-C4IxK8gs.js
|
|
74
78
|
dw/server/ui/assets/fsharp-C8Ef5oNN.js
|
|
75
79
|
dw/server/ui/assets/go-C-y9NEjX.js
|
|
76
80
|
dw/server/ui/assets/graphql-fmXr3nnJ.js
|
|
77
|
-
dw/server/ui/assets/handlebars-
|
|
81
|
+
dw/server/ui/assets/handlebars-BArDGhF4.js
|
|
78
82
|
dw/server/ui/assets/hcl-CpzslTdj.js
|
|
79
|
-
dw/server/ui/assets/html-
|
|
83
|
+
dw/server/ui/assets/html-8yKFx0-x.js
|
|
80
84
|
dw/server/ui/assets/html.worker-C93Ht9o9.js
|
|
81
|
-
dw/server/ui/assets/htmlMode-
|
|
82
|
-
dw/server/ui/assets/index-
|
|
83
|
-
dw/server/ui/assets/index-
|
|
85
|
+
dw/server/ui/assets/htmlMode-BwXG6XFP.js
|
|
86
|
+
dw/server/ui/assets/index-BY3Mtj4M.js
|
|
87
|
+
dw/server/ui/assets/index-Bug26k2P.css
|
|
84
88
|
dw/server/ui/assets/ini-sBoK_t0W.js
|
|
85
89
|
dw/server/ui/assets/java-BEtHBSE6.js
|
|
86
|
-
dw/server/ui/assets/javascript-
|
|
90
|
+
dw/server/ui/assets/javascript-B3mqpFQQ.js
|
|
87
91
|
dw/server/ui/assets/json.worker-B2V3pomh.js
|
|
88
|
-
dw/server/ui/assets/jsonMode-
|
|
92
|
+
dw/server/ui/assets/jsonMode-C1m5Z8Ha.js
|
|
89
93
|
dw/server/ui/assets/julia-Bri6UV-V.js
|
|
90
94
|
dw/server/ui/assets/kotlin-BOotOW0E.js
|
|
91
95
|
dw/server/ui/assets/less-B9JPFI3C.js
|
|
92
96
|
dw/server/ui/assets/lexon-CfSJPG6W.js
|
|
93
|
-
dw/server/ui/assets/liquid-
|
|
94
|
-
dw/server/ui/assets/lspLanguageFeatures-
|
|
97
|
+
dw/server/ui/assets/liquid-Cs5oVPJ1.js
|
|
98
|
+
dw/server/ui/assets/lspLanguageFeatures-CnroSKaf.js
|
|
95
99
|
dw/server/ui/assets/lua-CsQS60Ue.js
|
|
96
100
|
dw/server/ui/assets/m3-D-oSqn_W.js
|
|
97
101
|
dw/server/ui/assets/markdown-Cimd5fb3.js
|
|
98
|
-
dw/server/ui/assets/mdx-
|
|
102
|
+
dw/server/ui/assets/mdx-BGAIyUWE.js
|
|
99
103
|
dw/server/ui/assets/mips-CIPQ_RoX.js
|
|
100
104
|
dw/server/ui/assets/monaco--ixms01u.css
|
|
101
|
-
dw/server/ui/assets/monaco-
|
|
105
|
+
dw/server/ui/assets/monaco-ab9gu2Wi.js
|
|
102
106
|
dw/server/ui/assets/msdax-DauUninz.js
|
|
103
107
|
dw/server/ui/assets/mysql-SOo6toE5.js
|
|
104
108
|
dw/server/ui/assets/objective-c-FvmIjYaQ.js
|
|
@@ -113,10 +117,10 @@ dw/server/ui/assets/powerquery-D3hlyOfw.js
|
|
|
113
117
|
dw/server/ui/assets/powershell-DmHpPYUd.js
|
|
114
118
|
dw/server/ui/assets/protobuf-C531GsRP.js
|
|
115
119
|
dw/server/ui/assets/pug-Z5eAx3Zn.js
|
|
116
|
-
dw/server/ui/assets/python-
|
|
120
|
+
dw/server/ui/assets/python-XsfASqaE.js
|
|
117
121
|
dw/server/ui/assets/qsharp-DkqhCAOL.js
|
|
118
122
|
dw/server/ui/assets/r-BwWrilGY.js
|
|
119
|
-
dw/server/ui/assets/razor-
|
|
123
|
+
dw/server/ui/assets/razor-C-1xVmcy.js
|
|
120
124
|
dw/server/ui/assets/redis-ClamHrr6.js
|
|
121
125
|
dw/server/ui/assets/redshift-DT7zqm-g.js
|
|
122
126
|
dw/server/ui/assets/restructuredtext-BYgofb2h.js
|
|
@@ -136,15 +140,15 @@ dw/server/ui/assets/swift-Bxkupp3x.js
|
|
|
136
140
|
dw/server/ui/assets/systemverilog-Bz4Y3fRF.js
|
|
137
141
|
dw/server/ui/assets/tcl-DISqw1ZD.js
|
|
138
142
|
dw/server/ui/assets/ts.worker-D7T1-Ig5.js
|
|
139
|
-
dw/server/ui/assets/tsMode-
|
|
143
|
+
dw/server/ui/assets/tsMode-BDa9GeVq.js
|
|
140
144
|
dw/server/ui/assets/twig-De2hgUGE.js
|
|
141
|
-
dw/server/ui/assets/typescript-
|
|
145
|
+
dw/server/ui/assets/typescript-VE9GZNZf.js
|
|
142
146
|
dw/server/ui/assets/typespec-B8J7ngcE.js
|
|
143
147
|
dw/server/ui/assets/vb-DV3o63ZY.js
|
|
144
148
|
dw/server/ui/assets/wgsl-DpFanUEy.js
|
|
145
|
-
dw/server/ui/assets/workers-
|
|
146
|
-
dw/server/ui/assets/xml-
|
|
147
|
-
dw/server/ui/assets/yaml-
|
|
149
|
+
dw/server/ui/assets/workers-C_2pIPh_.js
|
|
150
|
+
dw/server/ui/assets/xml-BJp06vju.js
|
|
151
|
+
dw/server/ui/assets/yaml-EI9SS79i.js
|
|
148
152
|
dw/tasks/audio_utils.py
|
|
149
153
|
dw/tasks/background_remover.py
|
|
150
154
|
dw/tasks/borders.py
|
|
@@ -206,6 +210,7 @@ tests/test_pipeline_components.py
|
|
|
206
210
|
tests/test_previous_results.py
|
|
207
211
|
tests/test_prompt_parser.py
|
|
208
212
|
tests/test_prompt_weighting.py
|
|
213
|
+
tests/test_prompts.py
|
|
209
214
|
tests/test_repl_commands.py
|
|
210
215
|
tests/test_repl_ergonomics.py
|
|
211
216
|
tests/test_repl_hierarchical.py
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
torch>=2.13.0
|
|
2
|
+
torchvision>=0.28.0
|
|
3
|
+
diffusers>=0.40.0
|
|
4
|
+
transformers>=5.16.1
|
|
5
|
+
accelerate>=1.14.0
|
|
6
|
+
peft>=0.20.0
|
|
7
|
+
safetensors>=0.8.0
|
|
8
|
+
huggingface-hub>=1.29.0
|
|
9
|
+
sentencepiece>=0.2.2
|
|
10
|
+
protobuf>=7.36.0
|
|
11
|
+
ftfy>=6.3.1
|
|
12
|
+
torchsde>=0.2.6
|
|
13
|
+
torchao>=0.18.0
|
|
14
|
+
optimum-quanto>=0.2.7
|
|
15
|
+
sdnq>=0.2.5
|
|
16
|
+
gguf>=0.19.0
|
|
17
|
+
controlnet-aux>=0.0.10
|
|
18
|
+
opencv-python-headless>=5.0.0.93
|
|
19
|
+
kornia>=0.8.3
|
|
20
|
+
spandrel>=0.4.2
|
|
21
|
+
facexlib>=0.3.0
|
|
22
|
+
numpy>=2.5.2
|
|
23
|
+
Pillow>=12.3.0
|
|
24
|
+
piexif>=1.1.3
|
|
25
|
+
imageio>=2.37.4
|
|
26
|
+
imageio-ffmpeg>=0.6.0
|
|
27
|
+
av>=18.1.0
|
|
28
|
+
soundfile>=0.14.0
|
|
29
|
+
matplotlib>=3.11.1
|
|
30
|
+
qrcode>=8.2
|
|
31
|
+
requests>=2.34.2
|
|
32
|
+
aiohttp>=3.14.3
|
|
33
|
+
beautifulsoup4>=4.15.0
|
|
34
|
+
jsonschema>=4.26.0
|
|
35
|
+
concurrent-log-handler>=0.9.29
|
|
36
|
+
python-dotenv>=1.2.3
|
|
37
|
+
packaging>=26.3
|
|
38
|
+
|
|
39
|
+
[:sys_platform == "linux"]
|
|
40
|
+
bitsandbytes>=0.50.2
|
|
41
|
+
|
|
42
|
+
[dev]
|
|
43
|
+
pytest>=9.1.1
|
|
44
|
+
pytest-cov>=7.1.0
|
|
45
|
+
pytest-xdist>=3.8.0
|
|
46
|
+
pytest-timeout>=2.4.0
|
|
47
|
+
pytest-mock>=3.15.1
|
|
48
|
+
pytest-asyncio>=1.4.0
|
|
49
|
+
httpx>=0.28.1
|
|
50
|
+
black>=26.5.1
|
|
51
|
+
build
|
|
52
|
+
|
|
53
|
+
[server]
|
|
54
|
+
fastapi>=0.141.1
|
|
55
|
+
uvicorn[standard]>=0.52.4
|
|
@@ -3,6 +3,7 @@ import copy
|
|
|
3
3
|
import logging
|
|
4
4
|
from inspect import Parameter, signature
|
|
5
5
|
from .type_helpers import load_type_from_name, load_constant_from_name, has_method
|
|
6
|
+
from .prompts import PROMPT_PREFIX, fetch_prompt
|
|
6
7
|
from diffusers.utils import load_image, load_video
|
|
7
8
|
from .security import (
|
|
8
9
|
validate_path,
|
|
@@ -92,6 +93,11 @@ def realize_args(arg, base_dir=None):
|
|
|
92
93
|
# conventions below - what it holds is the value, not a file to load
|
|
93
94
|
if is_constant_reference(v):
|
|
94
95
|
arg[k] = fetch_constant(v)
|
|
96
|
+
# A stored prompt resolves the same way - to its text, under any
|
|
97
|
+
# name, before the media conventions could mistake it for a file.
|
|
98
|
+
# The workflow's directory anchors prompt-library discovery
|
|
99
|
+
elif is_prompt_reference(v):
|
|
100
|
+
arg[k] = fetch_prompt(v, base_dir=base_dir)
|
|
95
101
|
# An explicit media reference loads under any argument name - the
|
|
96
102
|
# key conventions below only cover arguments named like their media
|
|
97
103
|
elif is_media_reference(v):
|
|
@@ -140,6 +146,9 @@ def realize_args(arg, base_dir=None):
|
|
|
140
146
|
if is_constant_reference(item):
|
|
141
147
|
arg[i] = fetch_constant(item)
|
|
142
148
|
continue
|
|
149
|
+
if is_prompt_reference(item):
|
|
150
|
+
arg[i] = fetch_prompt(item, base_dir=base_dir)
|
|
151
|
+
continue
|
|
143
152
|
if is_media_reference(item):
|
|
144
153
|
arg[i] = fetch_media(item, base_dir)
|
|
145
154
|
continue
|
|
@@ -152,6 +161,11 @@ def is_constant_reference(value):
|
|
|
152
161
|
return isinstance(value, str) and value.startswith(CONSTANT_PREFIX)
|
|
153
162
|
|
|
154
163
|
|
|
164
|
+
def is_prompt_reference(value):
|
|
165
|
+
"""Whether a value references a stored prompt in the prompt library."""
|
|
166
|
+
return isinstance(value, str) and value.startswith(PROMPT_PREFIX)
|
|
167
|
+
|
|
168
|
+
|
|
155
169
|
def fetch_constant(reference):
|
|
156
170
|
"""Read the value a 'constant:' reference names.
|
|
157
171
|
|
|
@@ -703,12 +717,22 @@ def media_arguments(object_type, artifact):
|
|
|
703
717
|
arguments["sample_rate"] = sample_rate
|
|
704
718
|
return arguments
|
|
705
719
|
|
|
720
|
+
if audio is None and hasattr(artifact, "ndim") and artifact.ndim <= 3:
|
|
721
|
+
# A step that generates audio alone - a music pipeline, a slice_audio
|
|
722
|
+
# task - produces the waveform itself rather than an AudioVideo. It
|
|
723
|
+
# carries no rate of its own, so the reference declares 'sample_rate'
|
|
724
|
+
# alongside 'from_previous_result'
|
|
725
|
+
audio = torch.as_tensor(as_channels_samples(artifact))
|
|
726
|
+
|
|
706
727
|
if audio is None:
|
|
707
728
|
raise ValueError(
|
|
708
729
|
f"{object_type.__name__} holds audio, but the step it names produced "
|
|
709
730
|
f"none - reference a step that generates a soundtrack"
|
|
710
731
|
)
|
|
711
|
-
|
|
732
|
+
arguments = {"audio": audio}
|
|
733
|
+
if sample_rate is not None:
|
|
734
|
+
arguments["sample_rate"] = sample_rate
|
|
735
|
+
return arguments
|
|
712
736
|
|
|
713
737
|
|
|
714
738
|
def validate_media_location(location, base_dir=None):
|
|
@@ -17,6 +17,16 @@ import uuid
|
|
|
17
17
|
from huggingface_hub import constants, scan_cache_dir
|
|
18
18
|
from huggingface_hub.utils import CacheNotFound
|
|
19
19
|
|
|
20
|
+
try:
|
|
21
|
+
# Xet-backed downloads aggregate into two bars built from our tracker
|
|
22
|
+
# class: reconstruction (file bytes written) and transfer (network
|
|
23
|
+
# bytes). Only reconstruction matches the file-size total the manager
|
|
24
|
+
# reports against - counting both would double the progress - and the
|
|
25
|
+
# transfer bar is recognizable by the bar_format it is created with
|
|
26
|
+
from huggingface_hub.utils._xet_progress_reporting import XET_TRANSFER_BAR_FORMAT
|
|
27
|
+
except ImportError: # older huggingface_hub - no xet aggregation
|
|
28
|
+
XET_TRANSFER_BAR_FORMAT = None
|
|
29
|
+
|
|
20
30
|
logger = logging.getLogger("dw")
|
|
21
31
|
|
|
22
32
|
|
|
@@ -250,13 +260,20 @@ def _tracker_class(manager, entry, cancel_event):
|
|
|
250
260
|
def __init__(self, *args, **kwargs):
|
|
251
261
|
self.n = 0
|
|
252
262
|
self.total = kwargs.get("total")
|
|
263
|
+
# The xet transfer bar still ticks (cancellation works through
|
|
264
|
+
# it) but its network bytes stay out of the shared counters
|
|
265
|
+
self._counted = (
|
|
266
|
+
XET_TRANSFER_BAR_FORMAT is None
|
|
267
|
+
or kwargs.get("bar_format") != XET_TRANSFER_BAR_FORMAT
|
|
268
|
+
)
|
|
253
269
|
|
|
254
270
|
def update(self, n=1):
|
|
255
271
|
if cancel_event.is_set():
|
|
256
272
|
raise DownloadCancelled()
|
|
257
273
|
if n:
|
|
258
274
|
self.n += n
|
|
259
|
-
|
|
275
|
+
if self._counted:
|
|
276
|
+
manager._add_progress(entry, n)
|
|
260
277
|
return True
|
|
261
278
|
|
|
262
279
|
def close(self):
|
|
@@ -271,6 +288,15 @@ def _tracker_class(manager, entry, cancel_event):
|
|
|
271
288
|
def set_postfix(self, *args, **kwargs):
|
|
272
289
|
pass
|
|
273
290
|
|
|
291
|
+
def set_postfix_str(self, *args, **kwargs):
|
|
292
|
+
pass
|
|
293
|
+
|
|
294
|
+
@property
|
|
295
|
+
def format_dict(self):
|
|
296
|
+
# What tqdm exposes for rate rendering; huggingface_hub reads
|
|
297
|
+
# 'rate' from it when composing the xet speed postfix
|
|
298
|
+
return {"n": self.n, "total": self.total, "elapsed": 0, "rate": None}
|
|
299
|
+
|
|
274
300
|
def __enter__(self):
|
|
275
301
|
return self
|
|
276
302
|
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "prompt_schema.json",
|
|
4
|
+
"title": "Stored prompt",
|
|
5
|
+
"description": "One prompt in the prompt library - the text a workflow loads with a 'prompt:' reference, plus the metadata the library pages show.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"required": ["text"],
|
|
8
|
+
"additionalProperties": false,
|
|
9
|
+
"properties": {
|
|
10
|
+
"text": {
|
|
11
|
+
"type": "string",
|
|
12
|
+
"minLength": 1,
|
|
13
|
+
"description": "The prompt text itself - what a 'prompt:' reference resolves to. May not begin with a reference prefix ('previous_result:', 'variable:', 'constant:', 'prompt:')."
|
|
14
|
+
},
|
|
15
|
+
"description": {
|
|
16
|
+
"type": "string",
|
|
17
|
+
"description": "Short summary shown on the prompt's library card."
|
|
18
|
+
},
|
|
19
|
+
"intended_model": {
|
|
20
|
+
"type": "string",
|
|
21
|
+
"description": "The model or model family the prompt was written for, such as 'minimax-h3'. Informational - the engine ignores it, but the library badges and filters by it and the enhancer uses it to preselect a preset."
|
|
22
|
+
},
|
|
23
|
+
"negative_prompt": {
|
|
24
|
+
"type": "string",
|
|
25
|
+
"description": "A negative prompt paired with the text, for models that take one."
|
|
26
|
+
},
|
|
27
|
+
"tags": {
|
|
28
|
+
"type": "array",
|
|
29
|
+
"items": { "type": "string" },
|
|
30
|
+
"description": "Free-form labels for filtering the library."
|
|
31
|
+
},
|
|
32
|
+
"enhanced": {
|
|
33
|
+
"type": "object",
|
|
34
|
+
"additionalProperties": false,
|
|
35
|
+
"description": "Provenance when the text came from the AI enhancer - which model expanded which idea.",
|
|
36
|
+
"properties": {
|
|
37
|
+
"model": {
|
|
38
|
+
"type": "string",
|
|
39
|
+
"description": "The LLM that generated the text."
|
|
40
|
+
},
|
|
41
|
+
"idea": {
|
|
42
|
+
"type": "string",
|
|
43
|
+
"description": "The idea the text was expanded from."
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|