Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

CodeQL

diffusers-workflow

A declarative workflow engine and web UI for the Hugging Face Diffusers library. Define image/video generation pipelines in JSON — with full access to the configuration diffusers exposes — and run them from the command line, an interactive REPL, or a browser.

Python 3.10-3.14 | CUDA (NVIDIA) | MPS (Apple Silicon) | CPU

The workflow browser: every workflow as a card with its description, output kinds, and variables

Features

  • Web UI — browse and run workflows, edit them in introspection-driven forms, watch jobs stream live progress, manage generated output and the models on disk. python -m dw.serve and open a browser. See Server & Web UI.
  • Declarative JSON workflows with variable substitution and cross-step data flow
  • Multi-step pipelines — chain text-to-image, image-to-video, inpainting, ControlNet
  • Reproducible by construction — outputs embed their full workflow definition and seed; any image in the gallery reopens as the exact workflow that made it
  • Long-video chaining — run a video pipeline once per segment and stitch the segments into one clip, with audio-driven length and frame-to-frame continuity
  • Quantization — BitsAndBytes, TorchAO, GGUF, SDNQ, optimum-quanto
  • Inference acceleration — TeaCache, FirstBlockCache, FasterCache, MagCache, TaylorSeerCache
  • Prompt weighting — A1111-style (word:1.5) syntax with long prompt support
  • LoRA and IP-Adapter support
  • Composable workflows from multiple JSON files with builtin: references
  • Utility tasks — upscaling, face restoration, segmentation, captioning, frame interpolation, QR codes, and more
  • Interactive REPL with persistent GPU model caching (2-4x faster iteration)
  • Cross-platform — CUDA, MPS (Apple Silicon), and CPU

Installation

Linux / macOS

bash ./install.sh
source ./activate
python -m dw.test

Windows

.\install.ps1
.\venv\scripts\activate
python -m dw.test

The install scripts detect your Python version, create a virtual environment, and install all dependencies including platform-specific packages (bitsandbytes on CUDA, fp4-fp8-for-torch-mps on macOS).

The Web UI

python -m dw.serve
# diffusers-workflow server on http://127.0.0.1:8765

Everything the engine does, in a browser backed by a persistent GPU worker — models stay loaded between runs.

A form-based editor with the real pipeline signatures. Forms and argument autocomplete are generated by introspecting diffusers itself, so every knob a pipeline exposes is available — with its documentation — without leaving the browser. A split view puts the JSON beside the form, both editable; validation catches schema errors and argument typos (by checking the pipeline's actual call signature) before any model loads.

The editor: introspection-driven forms beside live JSON in Monaco

A gallery where every image is a recipe. Outputs embed their workflow and seed; open as workflow drops the definition into the editor with the seed pinned, ready to reproduce or riff on.

The gallery with generated images and videos

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.

The model manager listing cached models with sizes

Jobs queue, stream progress live (per denoising step), cancel cooperatively, and persist to a searchable history. See Server & Web UI for the pages and the HTTP API.

Usage

Run a Workflow

python -m dw.run examples/flux/FluxDev.json
python -m dw.run examples/flux/FluxDev.json prompt="a cat" num_images_per_prompt=4

Validate a Workflow

python -m dw.validate examples/flux/FluxDev.json

Interactive REPL

python -m dw.repl
dw> workflow load flux/FluxDev
dw> arg set prompt="a beautiful sunset"
dw> workflow run
[... models load once ...]

dw> arg set prompt="a starry night"
dw> workflow run
Reusing loaded models from cache
[... 2-4x faster ...]

dw> memory show
dw> ?               # show all command groups

See REPL Commands and Worker Guide.

Workflow Examples

Simple Image Generation

{
    "id": "flux_example",
    "variables": {
        "prompt": "an apple",
        "num_images_per_prompt": 1
    },
    "steps": [
        {
            "name": "main",
            "pipeline": {
                "configuration": {
                    "component_type": "FluxPipeline",
                    "offload": "sequential"
                },
                "from_pretrained_arguments": {
                    "model_name": "black-forest-labs/FLUX.1-dev",
                    "torch_dtype": "torch.bfloat16"
                },
                "arguments": {
                    "prompt": "variable:prompt",
                    "num_inference_steps": 25,
                    "num_images_per_prompt": "variable:num_images_per_prompt",
                    "guidance_scale": 3.5
                }
            },
            "result": {
                "content_type": "image/jpeg"
            }
        }
    ]
}

Override variables from the command line:

python -m dw.run flux_example.json prompt="an orange" num_images_per_prompt=4

Multi-Step Workflow (Image to Video)

Chain steps using previous_result:step_name to pass outputs between steps:

{
    "id": "img2vid",
    "steps": [
        {
            "name": "image_generation",
            "pipeline": {
                "configuration": {
                    "component_type": "StableDiffusion3Pipeline",
                    "offload": "model"
                },
                "from_pretrained_arguments": {
                    "model_name": "stabilityai/stable-diffusion-3.5-large",
                    "torch_dtype": "torch.bfloat16"
                },
                "arguments": {
                    "prompt": "a luminous owl in a neon forest",
                    "num_inference_steps": 25,
                    "guidance_scale": 4.5
                }
            },
            "result": { "content_type": "image/png" }
        },
        {
            "name": "video",
            "pipeline": {
                "configuration": {
                    "component_type": "CogVideoXImageToVideoPipeline",
                    "offload": "sequential",
                    "vae": { "configuration": { "enable_slicing": true, "enable_tiling": true } }
                },
                "from_pretrained_arguments": {
                    "model_name": "THUDM/CogVideoX-5b-I2V",
                    "torch_dtype": "torch.bfloat16"
                },
                "arguments": {
                    "image": "previous_result:image_generation",
                    "prompt": "The owl blinks slowly",
                    "num_inference_steps": 50,
                    "num_frames": 49,
                    "guidance_scale": 6
                }
            },
            "result": { "content_type": "video/mp4" }
        }
    ]
}

Inference Acceleration

Speed up generation with built-in diffusers caching or TeaCache:

"configuration": {
    "component_type": "FluxPipeline",
    "cache": { "type": "first_block", "threshold": 0.05 }
}
"configuration": {
    "component_type": "FluxPipeline",
    "teacache": { "rel_l1_thresh": 0.6 }
}

Prompt Weighting

Use A1111-style syntax for per-token weighting:

"configuration": {
    "component_type": "FluxPipeline",
    "prompt_weighting": true
}
a (photorealistic:1.4) portrait with (bright red hair:1.3) and [freckles]

JSON Schema

Interactive schema browser: View Schema

See examples/ for more workflow files.

Documentation

Guides

Reference

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

diffusers_workflow-0.4.0a4.tar.gz (3.7 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

diffusers_workflow-0.4.0a4-py3-none-any.whl (3.7 MB view details)

Uploaded Python 3

File details

Details for the file diffusers_workflow-0.4.0a4.tar.gz.

File metadata

  • Download URL: diffusers_workflow-0.4.0a4.tar.gz
  • Upload date:
  • Size: 3.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for diffusers_workflow-0.4.0a4.tar.gz
Algorithm Hash digest
SHA256 0817c06b825dc32b635153f65dcecf00d5bec90005132eabd2923d935bfbd959
MD5 a20ea578a1337257a1b3e9c95a353481
BLAKE2b-256 b16f17dae13f1cc49d32746220246c62077138409254c2ad8d5cc3fee549a42d

See more details on using hashes here.

Provenance

The following attestation bundles were made for diffusers_workflow-0.4.0a4.tar.gz:

Publisher: ci.yml on dkackman/diffusers-workflow

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file diffusers_workflow-0.4.0a4-py3-none-any.whl.

File metadata

File hashes

Hashes for diffusers_workflow-0.4.0a4-py3-none-any.whl
Algorithm Hash digest
SHA256 29b395ae3e55763c0d8bb71f5e1bbbc2a0ce8e9d7de6011b7b0390457c36f9ba
MD5 1d01f317e4af96c74bddcf9c9d51d4f2
BLAKE2b-256 dd3ac1e80e26c8283ffc2df7da5979fe7ea2b63806f8f21cc9c1c487f936c998

See more details on using hashes here.

Provenance

The following attestation bundles were made for diffusers_workflow-0.4.0a4-py3-none-any.whl:

Publisher: ci.yml on dkackman/diffusers-workflow

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.4.0a4 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page