Python自动化图像创作:调用阿里万象绘图api,生成图片

余汉波看波涛 2024-02-24 02:12:17

下面的代码是一个使用 Python 编写的脚本,用于调用阿里云的 Stable Diffusion 模型(通过 Dashscope 库)来生成图像。这个脚本显示了如何使用 Dashscope 的 API,根据用户提供的提示语句生成图像,并将它们保存到指定的路径。

from http import HTTPStatusfrom urllib.parse import urlparse, unquotefrom pathlib import Pathfrom pathlib import PurePosixPathimport requestsimport dashscope# 阿里SD,500张,用完需再申请https://help.aliyun.com/zh/dashscope/developer-reference/getting-started-with-stable-diffusion-models?spm=5176.28197632.0.0.97d87e06OPIVDX&disableWebsiteRedirect=truedashscope.api_key = ''# model = "dashscope.ImageSynthesis.Models.wanx_v1"def generate_and_save_images(prompt, n, size, save_path): rsp = dashscope.ImageSynthesis.call(model=dashscope.ImageSynthesis.Models.wanx_v1, prompt=prompt, n=n, size=size) if rsp.status_code == HTTPStatus.OK: print(rsp.output) print(rsp.usage) for result in rsp.output.results: file_name = PurePosixPath(unquote(urlparse(result.url).path)).parts[-1] save_file_path = Path(save_path) / file_name with open(save_file_path, 'wb+') as f: f.write(requests.get(result.url).content) else: print('Failed, status_code: %s, code: %s, message: %s' % (rsp.status_code, rsp.code, rsp.message))if __name__ == '__main__': prompt = "a dog and a cat" n = 4 size = '1024*1024' save_path = 'D:\\wenjian\\临时' generate_and_save_images(prompt, n, size, save_path)代码解析导入所需库: 使用http库处理HTTP状态。 urllib.parse用于解析和处理URL。 pathlib用于文件路径操作。 requests用于处理HTTP请求。 导入dashscope用于调用Stable Diffusion模型。设置API密钥和模型: 需要将dashscope.api_key设置为有效的API密钥。定义generate_and_save_images函数: 函数接受提示语句、生成数量、图像尺寸和保存路径作为参数。 使用Dashscope的ImageSynthesis.call方法调用Stable Diffusion模型。 根据返回的状态码处理结果,正确时保存生成的图像,错误时打印错误信息。图像保存逻辑: 从返回的URL中提取文件名,并在指定路径保存图像。脚本主体: 设置参数并调用generate_and_save_images函数。

代码的实际应用

这个脚本可以广泛应用于需要自动生成图像的场景,如:

内容创作:为社交媒体、广告或网站自动生成图像内容。艺术创作:用于数字艺术和设计领域,根据创意提示生成图像。数据可视化:将抽象数据转换为直观的图像。应用场景商业营销:用于快速生成营销材料中的视觉内容。个人娱乐:为个人项目或兴趣生成定制图像。
0 阅读:0

余汉波看波涛

简介:感谢大家的关注