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 uv — brew 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.

Metadata

Release files for mfluxible 0.9.2

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.2
File Size Uploaded
mfluxible-0.9.2.tar.gz 223.4 kB Details

Built distribution (wheel)

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

Total release size: 345.5 kB

Release files / mfluxible-0.9.2.tar.gz

Download URL mfluxible-0.9.2.tar.gz
Size 223.4 kB
Tags Source
SHA-256 checksum
How to use checksums
3fe4f5ba404c3a8a9d6a889124162d843b092b30e6ca0abe093c6a831d449625
BLAKE2b-256 checksum
How to use checksums
7188f088d7dbf1bc27607cd4a8d2d858b53d519bf1c2e78643cc728477ce7a2c
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 23, 2026.

Transparency log

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

Download URL mfluxible-0.9.2-py3-none-any.whl
Size 122.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6a22d56443f254888e098d91ab365380f2ec3d9560fb05ef6aa2923bf37430b8
BLAKE2b-256 checksum
How to use checksums
1e21ffee5dd8b648f1c05bf418f940044fd7eb5121fd5a59155b70142d69964c
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 23, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.9.2 This release

2 release files

0.9.1

2 release files

0.9.0

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