site/docs/providers/modelslab.md
The modelslab provider supports text-to-image generation via the ModelsLab API, with access to first-party and community models.
Create an API key at ModelsLab
Set the environment variable:
export MODELSLAB_API_KEY=your_api_key_here
modelslab:image:<model_name>
Text to Image:
modelslab:image:nano-banana-2 - Google Nano Banana 2, fast 1024x1024 generation with natural language editingmodelslab:image:seedream-5.0-lite - Bytedance Seedream 5.0 Lite, fast and lightweightmodelslab:image:flux - Flux, high-quality image generationmodelslab:image:sdxl - Stable Diffusion XL:::info
Browse the full model catalog for community fine-tunes and additional models.
:::
| Variable | Description |
|---|---|
MODELSLAB_API_KEY | Your ModelsLab API key |
providers:
- id: modelslab:image:flux
config:
width: 1024
height: 1024
| Parameter | Type | Default | Description |
|---|---|---|---|
apiKey | string | - | API key (or use MODELSLAB_API_KEY env) |
width | number | 512 | Image width in pixels |
height | number | 512 | Image height in pixels |
num_inference_steps | number | 30 | Number of denoising steps |
guidance_scale | number | 7.5 | How closely to follow the prompt |
samples | number | 1 | Number of images to generate |
seed | number | - | Random seed for reproducibility |
negative_prompt | string | - | What to avoid in the image |
safety_checker | string | no | Enable safety filter (yes or no) |
enhance_prompt | string | no | Auto-enhance the prompt (yes or no) |
providers:
- id: modelslab:image:flux
config:
width: 1024
height: 1024
num_inference_steps: 50
guidance_scale: 7.5
negative_prompt: 'blurry, low quality'
seed: 42
prompts:
- 'Generate an image of: {{subject}}'
tests:
- vars:
subject: 'a mountain landscape at sunset'
ModelsLab uses an async generation pattern. When an image request returns status: "processing", the provider automatically polls the fetch endpoint every 3 seconds until the image is ready (up to 3 minutes).
ModelsLab uses key-in-body authentication. The API key is sent as the key field in the JSON request body rather than as a Bearer token header.