Skip to main content

mfluxible

A minimal streaming HTTP API for image generation on Apple Silicon, built on mflux. Runs most of the image models mflux supports — fifteen checkpoints across Z-Image, FLUX.1, FLUX.2 Klein, Qwen-Image, Krea-2 and ERNIE-Image — one model per server process, configured at startup (see Models; Z-Image-Turbo is the default).

Rather than a full node-graph tool (ComfyUI) or a proprietary format (Draw Things), this exposes a small API in the same spirit as a chat-completions endpoint: each denoising step streams as a "thinking" event while generation happens, with optional in-progress preview images (Draw Things-style), followed by the final image.

Layout

mfluxible/          the model + HTTP API (FastAPI), and the detection sidecar
clients/            everything that talks to it: terminal scripts, a browser harness, an MCP tool
Caddyfile.example   optional: a reverse proxy that puts a bearer token in front of the API

Two packages are published from here, and they stay separate so that neither install drags in the other's dependencies:

install what it is
mfluxible pip install mfluxible the server, its mfluxible-vlm-worker sidecar, and the browser harness. Apple Silicon only — mflux and MLX are
mfluxible-mcp uvx mfluxible-mcp the MCP tool. Talks HTTP to a running server, so it needs no mflux, no MLX and no PyTorch, and can live on a different machine

Quickstart

Requires Python 3.11+ on Apple Silicon.

pip install mfluxible
mfluxible-server

That listens on 127.0.0.1:8420; --host, --port and --config are the flags, and mfluxible-server --help lists them. Everything else is configured with environment variables or a config file.

Running from a checkout instead

Dependencies are managed with uvbrew install uv, or see its installation docs.

uv venv --python 3.11
uv pip install -e .

uv run mfluxible-server --host 127.0.0.1 --port 8420

uv venv creates .venv/ in the repo root; uv pip install and uv run both find it there, so nothing needs activating. uvicorn mfluxible.server:app works too and is the way to reach any uvicorn option mfluxible-server doesn't expose — the config file is applied when the package is imported, so both routes behave identically.

Note that pyproject.toml here is a packaging manifest, not a uv project: it sets [tool.uv] managed = false, so uv run keeps using .venv and writes no lock file. That is what lets a machine running only clients/stream_client.py install requests and nothing else.

The model loads on startup, before the server accepts any requests. On first run this downloads its weights from Hugging Face — expect a sizable one-time download — then quantizes them and caches the quantized copy (see Model cache); both only happen once.

The default model is Z-Image-Turbo (Tongyi-MAI/Z-Image-Turbo). To run something else, set MFLUXIBLE_MODEL (or model in a config file) before starting the server — fifteen checkpoints across Z-Image, FLUX.1, FLUX.2 Klein, Qwen-Image, Krea-2 and ERNIE-Image are supported; only the model you select is ever downloaded. See Models for the full table, what differs between them, and roughly how much memory each needs — 8.6 GB to 31 GB of weights at the default quantization, about half that at MFLUXIBLE_QUANTIZE=4.

Once it's running:

curl -N -X POST http://127.0.0.1:8420/mfluxible/v1/images/generations \
  -H 'Content-Type: application/json' \
  -d '{"prompt": "a puffin on a cliff at sunset", "preview_every": 2}'

or use one of the clients for something more visual.

Documentation

  • Clients — the bundled terminal scripts, the browser harness, and pointing a third-party frontend (OpenAI-compatible, or SillyTavern) at the server.
  • MCP tool — generating images from an MCP client: what the tool does, how to register it with each tested client, and its own environment variables.
  • API — every endpoint: the native streaming endpoint and its SSE event schema, image-to-image and fractional start, the OpenAI-compatible /v1 endpoints, and the AUTOMATIC1111-shaped txt2img shim SillyTavern needs.
  • Server — running it: how a synchronous mflux call is streamed out of an async server, environment variables (memory, model cache, LoRAs, CORS), the models it can run, binding to the network, authentication, and troubleshooting.
  • Contributing — for developers: the weight-free test suite and CI, what it takes to add another mflux model, and how a release is cut.
  • Changelog — what changed in each version.

License

Apache 2.0.

Release files for mfluxible 0.9.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mfluxible 0.9.0
File Size Uploaded
mfluxible-0.9.0.tar.gz 192.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for mfluxible 0.9.0
File Interpreter ABI Platform
mfluxible-0.9.0-py3-none-any.whl Python 3 none any Details

Total release size: 295.6 kB

Release files / mfluxible-0.9.0.tar.gz

Download URL mfluxible-0.9.0.tar.gz
Size 192.6 kB
Tags Source
SHA-256 checksum
How to use checksums
c8a283008faebaae9eab4bf16c245f3c11c974cc6f6c74bc475f539dca473a4d
BLAKE2b-256 checksum
How to use checksums
515cfd0ff1fefe70452edf24384d3f58cf4ad420357fd9144f6adc406cf03f30
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 17, 2026.

Transparency log

Release files / mfluxible-0.9.0-py3-none-any.whl

Download URL mfluxible-0.9.0-py3-none-any.whl
Size 103.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
69605d62f598b3fed851e9c0a5895b3b2ef71617cbdaf0d6e82d54516abe19e4
BLAKE2b-256 checksum
How to use checksums
c12e4d1bff785ce803499ae91dac5e9b03269affc5f973836fcc794f5777516b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 17, 2026.

Transparency log

Release history Release notifications | RSS feed

0.9.1

2 release files

This release

0.9.0 This release

2 release 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