🧪 Skills

MFlux Skill for OpenClaw

Local image generation using Apple MLX via mflux — FLUX.2 Klein 4B (fast, Apache 2.0) and Z-Image Turbo (quality) models

v0.1.0
❤️ 0
⬇️ 130
👁 1
Share

Description


description: Local image generation using Apple MLX via mflux — FLUX.2 Klein 4B (fast, Apache 2.0) and Z-Image Turbo (quality) models

SKILL.md — mflux

Name

mflux

Description

Generate images locally using Apple Silicon via the mflux MLX implementation. Supports FLUX.2-klein-4B (default, fastest 4-step generation, Apache 2.0 licensed) and Z-Image-Turbo (6B, highest quality). All processing is on-device — no cloud, no API keys, no data leaving your Mac.

Requirements

  • Apple Silicon Mac (M1 or later)
  • Python 3.10+
  • macOS 13.5+
  • Recommended: 16GB+ RAM (8GB works with quantization)

Installation

1. Install mflux (via uv - recommended)

uv tool install --upgrade mflux --prerelease=allow

With faster downloads (optional):

uv tool install --upgrade mflux --with hf_transfer --prerelease=allow

2. Alternative: Install via pip

pip install -U mflux

3. Verify installation

mflux-generate --help
mflux-generate-z-image-turbo --help
mflux-generate-flux2 --help

Python API Usage

Quick Start — FLUX.2 Klein 4B (Default, Fastest)

from mflux.models.flux2.variants import Flux2Klein
from mflux.models.common.config import ModelConfig

model = Flux2Klein(model_config=ModelConfig.flux2_klein_4b())
image = model.generate_image(
    prompt="A serene Japanese garden with cherry blossoms, golden afternoon light",
    num_inference_steps=4,  # Only 4 steps needed!
    width=1024,
    height=768,
    seed=42,
)
image.save("garden.png")

Z-Image Turbo (Highest Quality)

from mflux.models.z_image import ZImage
from mflux.models.common.config import ModelConfig

model = ZImage(
    model_config=ModelConfig.z_image_turbo(),
    model_path="filipstrand/Z-Image-Turbo-mflux-4bit",  # 4-bit quantized
)
image = model.generate_image(
    prompt="A majestic eagle soaring over snow-capped mountains at sunset",
    num_inference_steps=9,
    width=1280,
    height=720,
    seed=42,
)
image.save("eagle.png")

With Quantization (Lower RAM)

from mflux.models.flux2.variants import Flux2Klein
from mflux.models.common.config import ModelConfig

model = Flux2Klein(
    model_config=ModelConfig.flux2_klein_4b(),
    quantize=8,  # 8-bit quantization
)
# ... generate image

Image-to-Image

from PIL import Image
from mflux.models.flux2.variants import Flux2Klein

model = Flux2Klein(model_config=ModelConfig.flux2_klein_4b())
image = model.generate_image(
    prompt="Transform into a watercolor painting",
    num_inference_steps=4,
    init_image=Image.open("source.jpg"),
    init_image_strength=0.3,  # 0.0-1.0, higher = more change
)
image.save("watercolor.png")

FLUX.2 Image Editing

from mflux.models.flux2.variants import Flux2KleinEdit
from mflux.models.common.config import ModelConfig

model = Flux2KleinEdit(model_config=ModelConfig.flux2_klein_4b())
image = model.generate_image(
    prompt="Make the person wear sunglasses",
    image_paths=["person.jpg", "sunglasses.jpg"],
    num_inference_steps=4,
    seed=42,
)
image.save("edited.png")

LoRA Support

from mflux.models.flux2.variants import Flux2Klein
from mflux.models.common.config import ModelConfig

model = Flux2Klein(
    model_config=ModelConfig.flux2_klein_4b(),
    lora_paths=["path/to/lora.safetensors"],
    lora_scales=[0.8],
)
# ... generate image

Supported Models

Model CLI Command Size Steps Speed Quality License
FLUX.2-klein-4b (default) mflux-generate-flux2 4B 4 ⚡ Fastest ⭐⭐⭐⭐ Apache 2.0
FLUX.2-klein-9b mflux-generate-flux2 9B 4 ⚡ Fast ⭐⭐⭐⭐⭐ Apache 2.0
Z-Image-Turbo mflux-generate-z-image-turbo 6B 9 ⚡ Fast ⭐⭐⭐⭐⭐ Custom
Z-Image (base) mflux-generate-z-image 6B 50 🐢 Slow ⭐⭐⭐⭐⭐ Custom
FLUX.2-klein-base-4b mflux-generate-flux2 4B 50 🐢 Slowest ⭐⭐⭐⭐⭐ Apache 2.0
Qwen-Image mflux-generate-qwen 20B 20 🐢 Slow ⭐⭐⭐⭐⭐⭐ Custom

CLI Reference

Generate with FLUX.2 Klein

# Default 4B model, 4 steps
mflux-generate-flux2 \
  --prompt "A photorealistic portrait of a wise old sailor" \
  --width 1024 \
  --height 768 \
  --steps 4 \
  --seed 42

# 9B model for higher quality
mflux-generate-flux2 \
  --model flux2-klein-9b \
  --prompt "A cyberpunk cityscape with neon lights" \
  --steps 4

# Base model (non-distilled, more steps)
mflux-generate-flux2 \
  --model flux2-klein-base-4b \
  --prompt "A detailed oil painting of a forest" \
  --steps 50 \
  --guidance 1.5

Generate with Z-Image Turbo

mflux-generate-z-image-turbo \
  --prompt "A minimalist logo design for a coffee shop" \
  --width 1280 \
  --height 720 \
  --steps 9 \
  --seed 42

# With LoRA
mflux-generate-z-image-turbo \
  --prompt "Art nouveau style portrait of a woman" \
  --steps 9 \
  --lora-paths "renderartist/Art-Nouveau-Style" \
  --lora-scales 0.7

With Quantization

mflux-generate-flux2 \
  --prompt "A serene landscape" \
  --quantize 8  # 8-bit quantization (reduces RAM)

# Or 4-bit for lowest RAM
mflux-generate-flux2 \
  --prompt "A serene landscape" \
  --quantize 4

Parameters

Parameter Type Default Description
prompt str required Text description of image
width int 1024 Image width in pixels
height int 768 Image height in pixels
num_inference_steps int 4 (Klein), 9 (Z-Image) Number of denoising steps
seed int random Random seed for reproducibility
quantize int None Quantization level (4, 8)
guidance float 1.0 (Klein) / 4.0 (Z-Image) Guidance scale (base models only)
lora_paths list None List of LoRA file paths
lora_scales list None LoRA blending scales
init_image PIL.Image None Source image for img2img
init_image_strength float 0.3 Strength of transformation

Aspect Ratios (Recommended Sizes)

Aspect Ratio Dimensions Use Case
1:1 1024×1024 Profile photos, icons
4:3 1024×768 Photo standard
16:9 1024×576 or 1280×720 Landscape, videos
3:4 768×1024 Portrait orientation
9:16 720×1280 Mobile vertical
21:9 1280×550 Cinematic widescreen

Performance & RAM Guide

Configuration RAM Speed Best For
FLUX.2-klein-4b, q=8 ~5 GB ~8 sec 8GB Macs
FLUX.2-klein-4b, q=4 ~4 GB ~5 sec Low RAM
FLUX.2-klein-4b, q=None ~8 GB ~15 sec Quality on 16GB
FLUX.2-klein-9b, q=8 ~12 GB ~20 sec Best quality 16GB
Z-Image-Turbo, q=4 ~5 GB ~12 sec All-around 8GB

Model Weights

Models are downloaded automatically on first use:

  • FLUX.2-klein-4b: ~15GB
  • FLUX.2-klein-9b: ~32GB
  • Z-Image-Turbo quantized: ~8GB

Cache location: ~/.cache/huggingface/

Comparison: When to Use Which

Choose FLUX.2-klein-4b when:

  • Speed is priority (4 steps, ~5-8 sec)
  • Apache 2.0 license needed (commercial use)
  • Generating many images fast
  • 8GB+ RAM available

Choose Z-Image-Turbo when:

  • Quality is priority
  • Realism matters most
  • You have 16GB+ RAM
  • Time per image acceptable

Choose FLUX.2-klein-9b when:

  • Best quality from Apache-licensed model
  • 16GB+ RAM available
  • Commercial use required

Error Handling

Error Cause Fix
OutOfMemoryError Not enough RAM Use quantization (q=8, q=4)
ValueError: Model not found First run / cache issue

Reviews (0)

Sign in to write a review.

No reviews yet. Be the first to review!

Comments (0)

Sign in to join the discussion.

No comments yet. Be the first to share your thoughts!

Compatible Platforms

Pricing

Free

Related Configs