调用liblibai文生图api需轮询task_id直至status为success并获取image_url,再下载保存;批量时遍历url数组,每请求后sleep(0.3)防限流。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你在Python里调用LiblibAI文生图API后,收到包含task_id的JSON响应,但图片URL还没生成,直接用requests.get去抓会返回404或空内容——这是因为API采用异步任务机制,必须等任务完成才能获取有效图片链接。
等待任务完成并提取图片URL
第一步:收到初始响应后,检查code字段是否为0。如果不是0,说明请求本身失败,无需轮询。
第二步:若code为0,从response.json()中提取task_id值,例如"task_id": "tk_abc123xyz"。
第三步:构造轮询URL,格式为https://api.liblib.art/v1/task/status?task_id=【你的task_id】,每次请求间隔至少1.5秒——太短会触发频率限制,返回429错误;太长则浪费等待时间。
第四步:持续GET该URL,直到响应中status字段变为"success",且data字段内出现image_url。此时URL是带24小时有效期的直链,必须在过期前下载。
下载并保存图片到本地
方法一:用requests直接流式保存
发起GET请求获取image_url返回的二进制内容,用open("output.png", "wb")写入,这一步操作起来很简单,直接把响应.content写进去就行。
方法二:用Pillow加载后二次处理再保存
如果需要添加水印、调整尺寸或转换格式,先用Image.open(io.BytesIO(response.content))加载,再调用save()方法输出PNG或JPEG。注意:不要用convert('RGB')强制转三通道,否则可能丢失透明背景。
批量保存多张图(API支持一次生成多图)
当请求体中指定num_images=5时,最终status响应里的data字段会是一个包含5个image_url的数组。你需要遍历这个列表,对每个URL单独发起GET请求,并用不同文件名保存,例如f"product_{i+1}.png"。
【务必在每次请求后加time.sleep(0.3),避免被服务端限流】
若某张图下载失败(HTTP状态码非200),记录该URL和错误码,跳过继续下一张,不要中断整个循环。
大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!











