How it works
The Lumenfall extension registers as an image generation provider inside llms.py. Once installed, you can generate images from any terminal with a single command:- Registers as a provider once added to
~/.llms/llms.jsonandLUMENFALL_API_KEYis set - Routes all image requests through Lumenfall’s unified API
- Caches generated images to disk and displays local file paths
Prerequisites
- llms.py installed
- A Lumenfall API key (get one here)
Installation
Configuration
1. Set your API key
The API key is configured via theLUMENFALL_API_KEY environment variable. To make it available in every shell session, add it to your shell profile:
2. Register the provider
Add Lumenfall to theproviders section of ~/.llms/llms.json:
Generate images
Basic generation
Using different models
Edit images
Image editing is also supported through Lumenfall.Even image editing models that usually can’t be used in a conversational interface, like Seedream-4.5, can be used with turn based editing.
Web UI
llms.py includes a built-in web UI where all Lumenfall functionality - image generation and editing - works the same as on the CLI. Start it with:http://localhost:8000 in your browser.
Available models
Lumenfall strives to offer every image model that exists, backend by multiple providers. You can find our current selection in the model catalog. For models that are available on other providers in llmspy, the first match is used. See “Routing” below to control this.Routing with other providers
llms.py uses the first matching provider for a given model. To ensure all image requests go through Lumenfall, list it first in yourproviders config - before any other providers that may also serve image models (e.g. Google, OpenAI, or OpenRouter):
Known limitations
- Provider forcing not supported. Lumenfall providers cannot be forced by prepending the provider in the model (e.g.
replicate/gemini-3-pro-image) as usual.