Skip to main content

ModelsLab

The modelslab provider supports text-to-image generation through ModelsLab's v6 image API, using /api/v6/images/text2img. The model name is sent unchanged as model_id, so use an exact ModelsLab ID supported by that endpoint.

Setup​

  1. Create an API key at ModelsLab

  2. Set the environment variable:

    export MODELSLAB_API_KEY=your_api_key_here

Provider Format​

modelslab:image:<model_name>

Text to Image:

  • modelslab:image:seedream-5-lite-t2i - ByteDance Seedream 5 Lite, documented in ModelsLab's v6 integration guide
  • modelslab:image:flux - Flux, high-quality image generation
  • modelslab:image:sdxl - Stable Diffusion XL
info

Browse the model catalog and check each model's API version. For example, Nano Banana 2 uses gemini-3.1-t2i in a v7 example; that does not establish support through this v6 provider.

Environment Variables​

VariableDescription
MODELSLAB_API_KEYYour ModelsLab API key

Configuration​

Basic Setup​

providers:
- id: modelslab:image:flux
config:
width: 1024
height: 1024

Configuration Options​

ParameterTypeDefaultDescription
apiKeystring-API key (or use MODELSLAB_API_KEY env)
widthnumber512Image width in pixels
heightnumber512Image height in pixels
num_inference_stepsnumber30Number of denoising steps
guidance_scalenumber7.5How closely to follow the prompt
samplesnumber1Images requested upstream. Only the first is returned, so values above 1 bill extra for no additional output.
seednumber-Random seed for reproducibility
negative_promptstring-What to avoid in the image
safety_checkerstringnoEnable safety filter (yes or no)
enhance_promptstringnoAuto-enhance the prompt (yes or no)

The provider returns a Markdown image reference, ![prompt](url). To check that shape, use an assertion with type: contains and value: '!['.

Full Example​

promptfooconfig.yaml
# yaml-language-server: $schema=https://promptfoo.dev/config-schema.json
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'

Async Generation​

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).

Authentication​

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.