Get model input and output schemas via the API
Posted
Every model on Replicate describes its inputs and outputs with OpenAPI Schema Objects in the openapi_schema
property. This is a structured JSON object that includes the name, description, type, and allowed values for each input or output parameter.
Today we’ve improved our API reference documentation to clarify how to get a model’s input and output schema.
See the updated docs at https://replicate.com/docs/reference/http#models.versions.get
Here’s an example of how to get the input schema for Stable Diffusion using cURL:
curl -s \
-H "Authorization: Token $REPLICATE_API_TOKEN" \
-H 'Content-Type: application/json' \
"https://api.replicate.com/v1/models/stability-ai/stable-diffusion/versions/db21e45d3f7023abc2a46ee38a23973f6dce16bb082a930b0c49861f96d1e5bf" | jq ".openapi_schema.components.schemas.Input.properties"
Using this command, we can see all the inputs to Stable Diffusion, including their types, description, min and max values, etc:
{
"seed": {
"type": "integer",
"title": "Seed",
"x-order": 7,
"description": "Random seed. Leave blank to randomize the seed"
},
"prompt": {
"type": "string",
"title": "Prompt",
"default": "a vision of paradise. unreal engine",
"x-order": 0,
"description": "Input prompt"
},
"scheduler": {
"allOf": [
{
"$ref": "#/components/schemas/scheduler"
}
],
"default": "DPMSolverMultistep",
"x-order": 6,
"description": "Choose a scheduler."
},
"num_outputs": {
"type": "integer",
"title": "Num Outputs",
"default": 1,
"maximum": 4,
"minimum": 1,
"x-order": 3,
"description": "Number of images to output."
},
"guidance_scale": {
"type": "number",
"title": "Guidance Scale",
"default": 7.5,
"maximum": 20,
"minimum": 1,
"x-order": 5,
"description": "Scale for classifier-free guidance"
},
"negative_prompt": {
"type": "string",
"title": "Negative Prompt",
"x-order": 2,
"description": "Specify things to not see in the output"
},
"image_dimensions": {
"allOf": [
{
"$ref": "#/components/schemas/image_dimensions"
}
],
"default": "768x768",
"x-order": 1,
"description": "pixel dimensions of output image"
},
"num_inference_steps": {
"type": "integer",
"title": "Num Inference Steps",
"default": 50,
"maximum": 500,
"minimum": 1,
"x-order": 4,
"description": "Number of denoising steps"
}
}
And here’s a command to the get the output schema:
curl -s \
-H "Authorization: Token $REPLICATE_API_TOKEN" \
-H 'Content-Type: application/json' \
"https://api.replicate.com/v1/models/stability-ai/stable-diffusion/versions/db21e45d3f7023abc2a46ee38a23973f6dce16bb082a930b0c49861f96d1e5bf" | jq ".openapi_schema.components.schemas.Output"
From this command, we can see that Stable Diffusion output format is a list of URL strings:
{
"type": "array",
"items": {
"type": "string",
"format": "uri"
},
"title": "Output"
}