Live Mac demo with reproducible receipts

Ideogram4 NF4 on Apple Silicon

Ideogram4's 9.3B image transformer and modified Qwen3-VL text encoder, running locally through MLX with custom NF4 Metal kernels. The live generator is a public route to one Mac; the code, receipts, and install notes are here.

Live demo link is not configured on this copy of the page.

Latte art spelling NF4, generated by the NF4 MLX route
Recorded run, seed 42, 512 x 512, 20 steps. The receipt hash is listed below.
ModelIdeogram4 NF4 weights under the Ideogram 4 Non-Commercial License.
RuntimeMLX custom NF4 Metal kernels on Apple Silicon.
Live demoOne active generation with a small public queue.
Public cap512 px max dimension, 20 steps max.

Route details

The point of the demo is the route. These are official bitsandbytes NF4 weights loaded directly into MLX, not a hosted image API and not a conversion to another quant stack.

official bitsandbytes NF4 weightsCheckpoint: ideogram-ai/ideogram-4-nf4, revision f6643478.
MLX custom NF4 Metal kernelsNF4 quantize, dequantize, and quantized matmul primitives in the local MLX fork.
not MFLUX, not PyTorch/MPS, not a remote GPUReceipts record route identity, model revision, backend, seed, resolution, and output hash.

Receipts

A few generated images from the same route. The live demo writes matching JSON receipts for new public runs.

Latte art spelling NF4

Latte NF4

Recorded route, 512 x 512, 20 steps, seed 42. Peak memory 11.55 GB.

20260613T165202_nf4-mlx-metal_512x512_seed42.png
sha256 2176225a6aeef6c042baf03a047014cb92e067ed45aadc78ceaae5492c70ec39
NF4 text inside an Apple silhouette

Apple silhouette

1024 x 1024 hero run. Generated by the same NF4/MLX code path on Apple Silicon.

hero_nf4_apple_1024x1024.png
Generated product-style NF4 cassette

Product prompt

Recorded route, 512 x 512, 20 steps, seed 42. Receipt records gradio-subprocess-generate.py.

20260613T153233_nf4-mlx-metal_512x512_seed42.png

Live demo limits

This is a public link to one local Mac. It keeps a small queue and bounded controls, while still letting you choose image size and up to 20 sampling steps.

1one active generation at a time
10public queue slots
512512 px max public dimension
2020 steps max public preset

Run it yourself

The dependency trap is stock MLX shadowing the NF4 fork. Install project dependencies first, then install the NF4 fork last.

git clone https://github.com/lyonsno/mlx-ideogram4.git
cd mlx-ideogram4
pip install -e .
pip install --force-reinstall --no-deps git+https://github.com/lyonsno/mlx.git@nf4
hf auth login
python generate.py --prompt "a red cat sitting on a blue couch" --output cat.png

If you hit `KeyError: 'nf4'`, reinstall the NF4 fork last so it wins over stock MLX pulled by transitive dependencies.