{ "id": "flux_local", "name": "FLUX (local, MLX)", "category": "generate", "description": "Prompt -> image entirely on this Mac via mflux (MLX). Covers FLUX.1, FLUX.2 klein, Z-Image Turbo and Qwen-Image, with LoRA support. flux2-klein-4b/schnell-4bit/z-image-turbo are ungated. Z-Image Turbo is the pick for anatomy (correct hands at baseline). Cannot load SD/SDXL LoRAs - those need ComfyUI (comfyui_sd).", "accepts": [], "produces": [ "image" ], "resources": "gpu", "entry": "run.py", "python": "venvs/mflux/bin/python", "params_schema": { "type": "object", "properties": { "prompt": { "type": "string", "default": "", "description": "What to generate" }, "model": { "type": "string", "enum": [ "flux2-klein-4b", "flux2-klein-9b", "schnell", "schnell-4bit", "dev", "krea-dev", "z-image-turbo", "z-image", "qwen" ], "default": "flux2-klein-4b", "description": "flux2-klein-4b + schnell-4bit + z-image-turbo are UNGATED (work out of the box). schnell/dev/krea-dev/klein-9b need an HF license accept + token. z-image-turbo = Alibaba Z-Image (DiT): best anatomy/hands, few-step (6-10), 4-bit ~6GB. qwen = Qwen-Image. NOTE these are DIFFERENT ARCHITECTURES \u2014 a LoRA only works on its own." }, "steps": { "type": "integer", "default": 4, "minimum": 1, "maximum": 50, "description": "klein/schnell: 2-4; dev/krea-dev: 20-28" }, "width": { "type": "integer", "default": 1024, "minimum": 256, "maximum": 2048 }, "height": { "type": "integer", "default": 1024, "minimum": 256, "maximum": 2048 }, "seed": { "type": "integer", "default": 42, "description": "Fixed seed = reproducible A/B tests" }, "quantize": { "type": "string", "enum": [ "none", "8", "4" ], "default": "8", "description": "FLUX.1: 4 or 8. Z-Image/Qwen: 3-8 (4 recommended, ~6GB). Ignored for klein." }, "guidance": { "type": "number", "default": 3.5, "minimum": 0, "maximum": 10, "description": "dev/krea-dev only" }, "lora": { "type": [ "string", "array" ], "default": "", "description": "LoRA file(s): full path, or a bare name resolved against MB_LORA_DIRS (localmodels/Lora, civit-lib/{sd15,sdxl}/Lora). Accepts 'name=0.7' shorthand. MUST match the model's architecture \u2014 a mismatched LoRA is a SILENT no-op, not an error." }, "lora_weight": { "type": [ "number", "array" ], "default": 0.8, "minimum": 0, "maximum": 2, "description": "LoRA strength, scalar or per-LoRA list. 0.6-1.0 is the useful range." } } } }