Changelog

  • More useful metadata from the model API

    March 21, 2023

    The "get a model" API operation now returns more metadata about the model:

    • run_count: an integer indicating how many times the model has been run.
    • default_example: a prediction object created with this model, and selected by the model owner as an example of the model's inputs and outputs.
    • cover_image_url: an HTTPS URL string for an image file. This is an image uploaded by the model author, or an output file or input file from the model's default example prediction.

    Here's an example using cURL and jq to get the Salesforce blip-2 model as a JSON object and pluck out some of its properties:

    curl -s \
      -H "Authorization: Token $REPLICATE_API_TOKEN" \
      -H 'Content-Type: application/json' \
      "https://api.replicate.com/v1/models/salesforce/blip-2" \
      | jq "{owner, name, run_count, cover_image_url, default_example}"
    

    Here's what the response looks like:

    {
      "owner": "salesforce",
      "name": "blip-2",
      "run_count": 270306,
      "cover_image_url": "https://replicate.delivery/pbxt/IJEPmgAlL2zNBNDoRRKFegTEcxnlRhoQxlNjPHSZEy0pSIKn/gg_bridge.jpeg",
      "default_example": {
        "completed_at": "2023-02-13T22:26:49.396028Z",
        "created_at": "2023-02-13T22:26:48.385476Z",
        "error": null,
        "id": "uhd4lhedtvdlbnm2cyhzx65zpe",
        "input": {
          "image": "https://replicate.delivery/pbxt/IJEPmgAlL2zNBNDoRRKFegTEcxnlRhoQxlNjPHSZEy0pSIKn/gg_bridge.jpeg",
          "caption": false,
          "question": "what body of water does this bridge cross?",
          "temperature": 1
        },
        "logs": "...",
        "metrics": {
          "predict_time": 0.949567
        },
        "output": "san francisco bay",
        "started_at": "2023-02-13T22:26:48.446461Z",
        "status": "succeeded",
        "version": "4b32258c42e9efd4288bb9910bc532a69727f9acd26aa08e175713a0a857a608",
      }
    }
    

    See the "get a model" API docs for more details.

  • Get model input and output schemas via the API

    March 20, 2023

    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"
    }
    
  • See more models

    February 15, 2023

    You can now browse through all the models on Replicate. Check them out on the Explore page!

    Screenshot of a pagination interface above a bunch of latest models on Replicate

  • Improved webhook events and event filtering

    February 10, 2023

    When you create a prediction with the API, you can provide a webhook URL for us to call when your prediction is complete.

    Starting today, we now send more webhook events at different stages of the prediction lifecycle. We send requests to your webhook URL whenever there are new logs, new outputs, or the prediction has finished.

    You can change which events trigger webhook requests by specifying webhook_events_filter in the prediction request.

    • start: Emitted immediately on prediction start. This event is always sent.
    • output: Emitted each time a prediction generates an output (note that predictions can generate multiple outputs).
    • logs: Emitted each time log output is generated by a prediction.
    • completed: Emitted when the prediction reaches a terminal state (succeeded/canceled/failed). This event is always sent.

    For example, if you only wanted requests to be sent at the start and end of the prediction, you would provide:

    {
      "version": "5c7d5dc6dd8bf75c1acaa8565735e7986bc5b66206b55cca93cb72c9bf15ccaa",
      "input": {
        "text": "Alice"
      },
      "webhook": "https://example.com/my-webhook",
      "webhook_events_filter": ["start", "completed"]
    }
    

    Requests for event types output and logs will be sent at most once every 500ms.

    Requests for event types start and completed will always be sent.

    If you're using the old webhook_completed, you'll still get the same webhooks as before, but we recommend updating to use the new webhook and webhook_completed properties.

    Docs: https://replicate.com/docs/reference/http#create-prediction--webhook

  • Python example code improvements

    January 19, 2023

    We've made it even easier to start building with Replicate's API. When you click on the API tab for a model, the Python example code now has everything you need to run a prediction, including code for all of the model's inputs and outputs. These new code snippets include documentation and defaults for each input, so you can focus on coding, with less context switching between the API docs and your editor.

    To learn more about how to get started, check out our "Run a model from Python" guide.

    Python example code for andreasjansson/cantable-diffuguesion

  • Cancel long running predictions

    January 16, 2023

    Have you ever kicked off a prediction, then, after thinking about it, realized you got one of the settings wrong or wanted to tweak the prompt? Well, now you can cancel that prediction, even if you've navigated away from the page you were on or made it through the API. On the website, go to your dashboard, find the running prediction, and you'll now see it live-updating with a handy "Cancel" button.

    A running prediction showing some dancing robots in training with a cancel button underneath.

  • brew install cog

    January 10, 2023

    🍏 Hey macOS users! There's now a Homebrew formula for Cog. Use brew install cog to install it, and brew upgrade cog to upgrade to the latest version. See https://github.com/replicate/cog#install

  • Dreambooth support for img2img

    January 9, 2023

    We've added img2img support to models created with our DreamBooth API.

    This means you can optionally send both a prompt and initial image to generate new images (in addition to the other parameters specified in your DreamBooth model's API page).

    Input:

    prompt: photo of zeke playing guitar on stage at concert

    image: https://www.pexels.com/photo/man-playing-red-and-black-electric-guitar-on-stage-167382/

    base

    Output:

    zeke

    To get started building and pushing your own DreamBooth model, check out the blog post.

  • Delete predictions from the web

    January 6, 2023

    You can now manually delete a prediction on the website. You'll find a "Delete" button on the prediction detail page, e.g. https://replicate.com/p/{prediction_id}. Clicking this link will completely remove the prediction from the site, including any output data and output files associated with it.

    delete-prediction

  • API prediction data no longer stored

    January 4, 2023

    By popular request, we no longer store data for predictions made using the API.

    User data is automatically removed from predictions an hour after they finish. The prediction itself is not deleted, but the input and output data for the prediction is removed. This only applies to predictions created with the API, but not predictions created on the website.

    This is enabled for new accounts starting today, but we know that some users may be relying on prediction data to exist for more than an hour, so we've not enabled this for any existing accounts. If you want this enabled for your account, email us at team@replicate.com

  • A proper changelog

    December 6, 2022

    We now have a changelog for product updates at replicate.com/changelog. We used to use a single tweet thread as our makeshift changelog, but decided it was time to make something a bit more flexible. Stay tuned for more frequent updates here!

  • Stable diffusion has release notes

    December 2, 2022

    Stable Diffusion now has release notes so you can see what's changed: replicate.com/stability-ai/stable-diffusion/versions. It only works on Stable Diffusion at the moment. Coming soon to all models so you can set release notes on your own models and see what has changed on other people's models.

  • Higher rate limits

    November 4, 2022

    We've also increased our default rate limits. You can create 10 predictions a second, bursting up to 600 predictions a second. https://replicate.com/docs/reference/http#rate-limits

    We can support higher rates too – just email us: team@replicate.com

  • Infrastructure improvements

    November 4, 2022

    Over the past few weeks, we've made some major improvements to our infrastructure to make it more reliable and perform better. Nothing's changed from your point of view, but you'll be seeing faster response times! 🚀

  • Run your own models on Nvidia A100 GPUs

    October 19, 2022

    You can now run your own models on Nvidia A100s. Click the settings tab on your model and select the hardware option to upgrade. 🚀

  • Set a monthly spend limit

    October 17, 2022

    You can now set a monthly spend limit on your account to avoid getting a surprising bill. 🦆

    To set a limit, visit https://replicate.com/account#limits

  • Webhook support in Predictions API

    September 9, 2022

    🪝 Our API now supports webhooks, as an alternative to polling. Specify your webhook URL when creating a prediction and we'll POST to that URL when your prediction has completed! See the API docs here: https://replicate.com/docs/reference/http#create-prediction

  • Introducing model collections

    June 16, 2022

    "We've started curating collections of models that perform similar tasks. First up is an assortment of ✨style transfer✨ models that take a content image and a style reference to produce a new image, like this starry night cat. https://replicate.com/collections/style-transfer

  • Scrubbing support for progressive outputs

    March 28, 2022

    "When you run a model that changes over time, you can scrub back and forth to see the previous output. We've now added that scrubber to predictions in the example gallery, so you can see how they morphed into being: https://replicate.com/pixray/text2image/examples