-
Notifications
You must be signed in to change notification settings - Fork 224
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
replicate.run returning FileOutput objects #377
Comments
Use:
|
I am having the same issue. I am getting a file output and am unsure how to parse. The example code does not work for presenting an image.
I get these outputs:
I did get it to display an image with:
|
It appears that the FileOutput class was only added last month and is a completely new addition. Likely the cause of the problems here. Here is a link to the commit: e7f699f Link to file: https://github.com/replicate/replicate-python/blob/main/replicate/helpers.py |
I got it to output the correct delivery url when I downgraded my replicate version to 0.32.1 (before the FileOutput commit). Just install the older version then restart your kernel. |
this testing code does not work:
|
@xuyannus Try removing .url from output[0] and just doing:
I also downgraded to v0.32.1 to get mine to work. https://pypi.org/project/replicate/0.32.1/ |
Thanks for the feedback all, we'll get the examples in the README fixed. As mentioned in the issue the URL can be accessed via the import replicate
output = replicate.run(
"black-forest-labs/flux-schnell",
input={"prompt": "an african grey parrot sitting in the jungle on a branch, pointillism"}
)
print(output[0].url)
The import replicate
output = replicate.run(
"stability-ai/stable-diffusion:db21e45d3f7023abc2a46ee38a23973f6dce16bb082a930b0c49861f96d1e5bf",
input={"text": "an astronaut riding a horse"}
)
with open("local_image.jpg", "wb") as file:
file.write(output[0]) |
FYI: This breaking change caused all our API integrations with replicate to stop working… @aron the documentation on the model pages also have no mention of the FileOutput: https://replicate.com/black-forest-labs/flux-1.1-pro/api |
The technical team is very bad. There is no consistency, everything stops working out of nowhere. Now, I'm getting another problem. The "url" field returns in base64 and not the URL itself. |
@paulocoutinhox I am getting the same issue. Our inference API has stopped working. @aron Can you guys please check this asap? |
I was not able to fix the problem with the latest package version. Same problems with the base64. Clearly more needs to be worked out on the backend side. For now I have been able to get it to work as intended in the code examples by downgrading to version 0.23.1 https://pypi.org/project/replicate/0.32.1/ Hope this helps and gets resolved in the latest versions. For now just downgrade to v0.23.1 unless it causes other issues. |
Hi @user-will, Im using this: output = replicate.run(model_path, input=replicate_input)
# get the output format for file extension
output_format = flux_model_task.output_format.lower()
# download and save the generated image
for output_item in output:
unique_file_name = f"{uuid.uuid4()}.{output_format}"
file_content = ContentFile(output_item.read())
flux_model_task.output_image.save(unique_file_name, file_content, save=True)
# mark the task as processed
flux_model_task.status = GenerationStatus.PROCESSED
flux_model_task.save()
logger.info(f"Generated image saved: {unique_file_name}") |
@aron Neither [output] = replicate.run(
"black-forest-labs/flux-schnell",
input={"prompt": "astronaut riding a rocket like a horse"},
use_file_output=False)
print(output)
# BASE64 data output = replicate.run(
"black-forest-labs/flux-schnell",
input={"prompt": "an african grey parrot sitting in the jungle on a branch, pointillism"}
)
print(output[0].url)
#BASE64 data Downgrading to version 0.34.1 works for now. The documentation does not reference the new API, which is very confusing: https://replicate.com/black-forest-labs/flux-1.1-pro/api |
I'd update the release notes on 1.0.0 to note its Here's a quick example of how to do it for sync API #389 |
My solution is working on new versions too. Thanks. |
So now it looks like the output is no longer a list, and if you try to use output[0].url or iterate on it, lets you know FileOutput is not Subscribable. Easy enough to do output.url now that we know, I'm still doing it with output = [output.url] to keep it as a str list in case the pipelines add a num_images batch option, but it's fine. I now have most of the main Replicate APIs integrated into my app at AEIONic.com with all the bells & whistles.. |
When I run the code examples in the README, I get back
replicate.helpers.FileOutput
objects. I expected to get URLs.Steps to reproduce:
pip install replicate== 1.0.2
export REPLICATE_API_TOKEN=...
python3
Looks like the new types were introduced in version 1.0.1.
The text was updated successfully, but these errors were encountered: