Skip to content
Switch branches/tags
Go to file
Cannot retrieve contributors at this time


The Runway Model SDK follows semantic versioning. Be aware that breaking changes may be introduced in minor version updates until a stable 1.0.0 release occurs per SemVer spec #4.

  1. Major version zero (0.y.z) is for initial development. Anything may change at any time. The public API should not be considered stable.

Until version 1.0.0, expect that minor version changes may introduce breaking changes. We will take care not to introduce new behavior, features, or breaking changes in patch releases. If you require stability and reproducible behavior you may pin to a version or version range of the model SDK like runway-python>=0.2.0 or runway-python>=0.2,<0.3.


  • Fixed support for hot-reloading when running the model server with debug=True.


  • Drop Python 2 support.
  • Add ability to specify output format with the X-Runway-Output-Format header.
  • Add 32-bit depth support for the image data type with the EXR format.


  • Fix issue when extracting tar archives that include non-ASCII filenames.


  • Speed up downloads for runway.file and data types by using segmented file transfer.


  • Add support for nearest-neighbor color matching for segmentation input.


  • Log initialization time when running model.


  • Do not set default value vector data type if none provided.


  • Added default option to the runway.file data type.


  • Added support for streaming inference via WebSockets.


  • Add default_output_format option in runway.image data type.
  • Convert runway.image input to the specified number of channels.


  • Add as an alias to runway.file(is_directory=True).
  • Remove range restrictions from image_point, image_landmarks, and image_bounding_box data types.


  • Set default port to 9000.


  • Add image_landmarks data type.


  • Make segmentation serialize as a 3-channel color map when used as an output field, instead of a 1-channel label map.


  • Remove default values for min, max, and step parameters of number data type.
  • Rename type field of image_point.to_dict() response from point to image_point.


  • Add image_point data type.
  • Add image_bounding_box data type.


  • Add boolean data type.



  • Use PNG as default serialization format for images.


  • Remove name keyword argument from all runway.data_types. #13
  • Add description keyword argument to all runway.data_types and runway.command(). #12
  • Create abstract runway.data_types.BaseType class that defines a common interface for all runway.data_types.


  • Add support for all remote filetypes over HTTP (we are currently only supporting tarballs)
  • Add extneison argument to the file type and enforce that during deserialization
  • Rename is_folder to is_directory


  • Move / meta endpoint to /meta and specify GET as the only allowed method (its still available via / for backwards compatibility).
  • /healthcheck endpoint now returns JSON (e.g. { "status": "RUNNING" })
  • Limit /healthcheck to only allow HTTP methods.
  • Add modelSDKVersion to manifest at GET /meta.
  • Add millisRunning to manifest at GET /meta.
  • Add millisSinceLastCommand to manifest at GET /meta.
  • Add GPU to manifest at GET /meta so that a model's GPU accessibility can be determined at runtime.
  • Add undocumented millis_running() and millis_since_last_command() to RunwayModel.
  • Add default parameter to vector data type.
  • Model server now wraps common server error codes in JSON responses (e.g. 401, 403, 404, 405, 500).
  • Model server now sniffs the body of POST for JSON even if content-type: application/json is not sent in the request header. #1
  • Model server now returns content-type: application/json. #6
  • Add RW_NO_SERVE environment variable and no_serve keyword argument to These settings prevent from starting the Flask server so that mock HTTP requests can be made via app.test_client(). See Testing Flask Applications for more details.
  • Add model tests in tests/
  • Minor change to docs/ so that JavaScript HTTP -> HTTPS redirect only occurs when the protocol is actually http:.