Production code on a pinned replicate-python 1.0.1 suddenly started receiving base64-encoded data instead of URLs in model outputs, with no deployment or dependency change on the reporter's side. Maintainer nickstenning explained the sequencing mistake: the 1.0 client sends Prefer: wait, and Replicate finished rolling out server support for it, which changed the output format for data URLs. Replicate rolled the API behavior back and wrote up the incident on their blog. In 1.0.0+, run() returns a FileOutput file-like object by default, and you can pass use_file_output=False to get raw model output.
replicate.run output changed from URL to base64 data URLs without a client change
If your pinned replicate-python 1.0.x code suddenly gets base64 data where URLs used to be, the API-side rollout of Prefer: wait support changed the sync output format under you. Replicate rolled that behavior back, so current responses should look normal again. For 1.0.0 and later, remember that run() returns a FileOutput file-like object by default, and pass use_file_output=False if you want the raw model output. The team documented the whole incident on the Replicate blog under data URLs in the sync API. Source: https://github.com/replicate/replicate-python/issues/382
Source: https://github.com/replicate/replicate-python/issues/382