Run a model from Python

Learn how to run a model on Replicate from within your Python code. It could be an app, a notebook, an evaluation script, or anywhere else you want to use machine learning.

Install the Python library

We maintain an open-source Python client for the API. Install it with pip:

pip install replicate


Authenticate by setting your token in an environment variable:

export REPLICATE_API_TOKEN=<token>

Find your API token on the account page.

Run predictions

You can run any public model on Replicate from your Python code. The following example runs stability-ai/stable-diffusion:

$ python
>>> import replicate
>>> model = replicate.models.get("stability-ai/stable-diffusion")
>>> version = model.versions.get("27b93a2413e7f36cd83da926f3656280b2931564ff050bf9575f1fdf9bcd7478")
>>> version.predict(prompt="a 19th century portrait of a wombat gentleman")

Some models, like replicate/resnet in the following example, receive images as inputs. To pass a file as an input, use a file handle or URL:

>>> model = replicate.models.get("replicate/resnet")
>>> version = model.versions.get("dd782a3d531b61af491d1026434392e8afb40bfb53b8af35f727e80661489767")
>>> version.predict(image=open("mystery.jpg", "rb"))
# or...
>>> model.predict(image="")

URLs are more efficient if your file is already in the cloud somewhere, or it is a large file. Files are output as URLs.

Some models output progressively, as the model is running. They will return an iterator, and you can iterate over that output:

>>> model = replicate.models.get("pixray/text2image")
>>> version = model.versions.get("5c347a4bfa1d4523a58ae614c2194e15f2ae682b57e3797a5bb468920aa70ebf")
>>> for image in version.predict(prompts="robots talking to robots"):
...    print(image)

Next steps

Read the full Python client documentation on GitHub.

You can also run models with the raw HTTP API. Refer to the HTTP API reference for more details.