AI绘画Python入门:用代码控制AI出图 StableDiffusion API完整调用教程

AI绘画Python入门:用代码控制AI出图 StableDiffusion API完整调用教程
AI绘画Python入门用代码控制AI出图StableDiffusionAPI完整调用教程

如果你需要用AI一次性生成几十张甚至几百张图——或者你需要把AI绘画嵌入到你的产品/工作流里——手动打字跑图的方式就完全不适用了。你需要Python API。这篇不讲AI绘画本身——讲的是"用代码调用AI绘画"的完整技术方案。

帮朋友做过一个电商项目——需要为一个服装品牌生成200张不同颜色/不同场景的AI产品展示图。手动在Midjourney里一张张打Prompt跑——大概要花一周。用Stable Diffusion的API+Python脚本——半小时跑完。不是在"画"——是在"调度生产"。

Python调用SD API三步走

第一步:启动SD WebUI的API模式。在启动参数里加"--api"——默认在7860端口打开API。"python launch.py --api --listen"。API文档访问http://localhost:7860/docs——所有接口一目了然。

第二步:关键API端点。 txt2img——POST到/sdapi/v1/txt2img,body包含prompt、negative_prompt、steps、cfg_scale、width、height、seed等参数。img2img——POST到/sdapi/v1/img2img,多了init_images(base64)和denoising_strength。

第三步:Python调用示例。"import requests; import base64; response = requests.post('http://localhost:7860/sdapi/v1/txt2img', json={'prompt': 'a cat', 'steps': 20}); image_data = base64.b64decode(response.json()['images'][0]); with open('output.png', 'wb') as f: f.write(image_data)"。五行代码完成一次AI出图。

自动化工作流场景

批量变体。同一个Prompt换不同的seed批量跑——每个seed生成的图都不一样——从中选最好的。"for seed in range(100): generate(prompt, seed=seed)"。

参数网格搜索。自动化测试不同cfg_scale和denoising_strength组合——找到最优参数。

与设计工具联动。Python脚本监听文件夹——设计师在Figma里导出底图→脚本自动调用img2img→风格化后存回指定文件夹——一条半自动化管线。

关于API的详细参考见Stable Diffusion WebUI官方API文档

常见问题

API返回速度太慢怎么办?

降低 steps(20-25 足够大部分场景)、降低分辨率(先 512x512 再 upscale)、开 xformers。一张图从 30 秒降到 8 秒是可以的。批量跑时开启异步队列(asyncio 或多进程),可以让 GPU 满载。

能用Python调用Midjourney吗?

Midjourney 没有官方 API。非官方方案通过 Discord bot 模拟用户操作,不稳定且违反 ToS,不推荐商用。想商用批量出图建议本地部署 SD/Flux 或用 Replicate/Fal 等合规 API。

怎么把 API 出图集成到 Web 应用里?

常见做法:前端 → 后端 API → 队列(Celery/Redis)→ SD 服务。避免让用户请求直接连 SD,因为一张图动辄几秒,直连容易超时。用队列返回任务 ID,前端轮询或 WebSocket 拿结果。

API 生成的图版权归谁?

本地部署(SD/Flux):模型权重和 Prompt 都由你控制,一般可视为你/你公司所有。云 API(Replicate/Stability/OpenAI):按各家 ToS,一般允许商用,但需注意授权范围。参考AI绘画软件全评测里对商用授权的对比。

代码控制 AI 绘画——从“一张一张手动画”到“批量调度生产”,效率差了一百倍。会写 Prompt 只是入门,会写脚本 batch Prompt 才是把 AI 变成生产力工具。

觉得有用的话分享给用Python玩AI的朋友吧。