如何在Python中访问或保存gradio_client生成的图片?
解决Gradio Client生成图片的保存与显示问题
问题场景
使用Gradio Client调用ByteDance/SDXL-Lightning生成图片后,返回临时路径无法正常操作,设置download_files=True也未生效。
解决方案
1. 显式指定下载目录(推荐)
初始化Client时同时设置download_files=True和download_dir参数,让生成的图片直接下载到本地指定目录,避免临时文件问题:
from gradio_client import Client from PIL import Image import os # 初始化客户端,指定本地下载目录并开启自动下载 client = Client("ByteDance/SDXL-Lightning", download_files=True, download_dir="./generated_images") # 生成图片 result = client.predict( "astronaut riding a horse realistic", "8-Step", api_name="/generate_image" ) # 打印本地路径 print("图片本地路径:", result) # 显示并保存图片 if os.path.exists(result): img = Image.open(result) img.show() # 重命名保存到自定义路径 img.save("./my_astronaut_horse.png") print("图片已保存为my_astronaut_horse.png")
2. 手动处理临时路径
如果仍拿到临时路径,可直接读取该路径下的文件(临时文件在本地机器上实际存在)并保存:
from PIL import Image import os # 替换为你获取到的临时路径 temp_path = "/tmp/gradio/ecfea853d51fb542f45865d58816480210e58ea3/image.png" if os.path.exists(temp_path): # 读取图片 img = Image.open(temp_path) # 显示图片 img.show() # 保存到指定位置 img.save("./saved_image.png") print("图片已成功保存")
3. 排查依赖问题
若download_files=True仍不生效,尝试升级gradio-client版本:
pip install --upgrade gradio-client
内容的提问来源于stack exchange,提问作者Dixi
相关产品推荐
相关产品推荐

