阿里云PAI-Stable Diffusion开源代码浅析之(一)所有api的入参如何看

简介: 阿里云PAI-Stable Diffusion开源代码浅析之所有api的入参如何看

1. 需求

PAI基于开源Stable-Diffusion做了eas的封装,客户想用API版本做内部业务的调用,需要该API的所有参数的接口文档。

这里衍生一下类似的问题应该如何找到API的所有可用的入参(接口文档)。

现状及话术:pai-eas-sd模型额外支持的参数,类似的最佳实践都是基于开源来做的,可以让客户根据eas的配置json中的启动命令,参考开源的github来找源码分析所有可用的入参,pai在这个基础上做了额外的封装,额外支持的参数可以参考上述文档。

2. pai-eas-sd实例类型

image.png

image.png

3. 开源sd的api入参分析

看一下API版本的脚本启动命令:

"script": "./webui.sh --listen --port 8000 --skip-version-check --no-hashing --no-download-sd-model --skip-prepare-environment --api-log --time-log --nowebui"

结合github上的源码:https://github.com/AUTOMATIC1111/stable-diffusion-webui

git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git

我们找到webui.py的入口,main方法中cmd_opts接收了shell脚本的后面的入参,cmd_opts具体的实现在

modules.cmd_args.py

image.png

可以直接从这个parser对象中找到指定参数的含义,上面命令中API版本和WEBUI版本比较关键的差异就是参数 --nowebui,根据代码的判断结果在指定了该参数后会调用 api_only的方法

image.png

api_only方法中主要是通过python的FastAPI框架搭建起来的服务端,其中create_api方法中封装的主要是这个类:

from modules.api.api import Api

image.png

从这个类的init方法我们可以看出,这个类接受两个参数,第一个是FastAPI的类app,第二个看着是队列相关的,可以暂时不深究。类中的add_api_route方法做了一层封装,将不同的path,endpoint注册到app中,除了两个核心的参数之外还有比较常见的参数,接受POST还是GET方法,以及响应体的数据类。

image.png

image.png

这里我们主要以文生图的模型为例,即text to image,对应的path是/sdapi/v1/txt2img,我们通过endpoint绑定的方法可以看到这个path在这个服务中的handler为text2imgapi方法,那接下来我们只需要看这个方法的入参即可找到这个API的所有可用参数。

image.png

StableDiffusionTxt2ImgProcessingAPI的构造方法:

image.png

PydanticModelGenerator类的入参和部分逻辑:

merge_class_params获取了入参的这个个类及其所有父类__init__方法的参数

并通过列表推导式的方式将参数通过ModelDef封装并添加到数组容器_model_def中

除此之外还有additional_fields,应该是额外的一些配置,通过遍历的方式也添加到数组容器_model_def中

image.png

所以我们需要重点关心StableDiffusionProcessingTxt2Img以及它除object之外所有父类的参数都有哪些,通过点击跳转我们就可以看到如下的参数,基本都可以和webui上对上,通过json的方式传递到api来调整推理即可。

image.png

4. 阿里云PAI-eas-API额外支持的参数

https://help.aliyun.com/zh/pai/use-cases/deploy-stable-diffusion-api-service-with-pai-eas?spm=a2c4g.11174283.0.i2#1c133de448x5k

相关实践学习
使用PAI+LLaMA Factory微调Qwen2-VL模型,搭建文旅领域知识问答机器人
使用PAI和LLaMA Factory框架,基于全参方法微调 Qwen2-VL模型,使其能够进行文旅领域知识问答,同时通过人工测试验证了微调的效果。
机器学习概览及常见算法
机器学习(Machine Learning, ML)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
相关文章
|
4月前
|
API 微服务
阿里云微服务引擎 MSE 及 API 网关 2025 年 9 月产品动态
阿里云微服务引擎 MSE 及 API 网关 2025 年 9 月产品动态。
337 43
|
5月前
|
人工智能 运维 监控
阿里云 API 聚合实战:破解接口碎片化难题,3 类场景方案让业务响应提速 60%
API聚合破解接口碎片化困局,助力开发者降本增效。通过统一中间层整合微服务、第三方接口与AI模型,实现调用次数减少60%、响应提速70%。阿里云实测:APISIX+函数计算+ARMS监控组合,支撑百万级并发,故障定位效率提升90%。
466 0
|
5月前
|
运维 Cloud Native 应用服务中间件
阿里云微服务引擎 MSE 及 API 网关 2025 年 9 月产品动态
阿里云微服务引擎 MSE 面向业界主流开源微服务项目, 提供注册配置中心和分布式协调(原生支持 Nacos/ZooKeeper/Eureka )、云原生网关(原生支持Higress/Nginx/Envoy,遵循Ingress标准)、微服务治理(原生支持 Spring Cloud/Dubbo/Sentinel,遵循 OpenSergo 服务治理规范)能力。API 网关 (API Gateway),提供 APl 托管服务,覆盖设计、开发、测试、发布、售卖、运维监测、安全管控、下线等 API 生命周期阶段。帮助您快速构建以 API 为核心的系统架构.满足新技术引入、系统集成、业务中台等诸多场景需要。
528 142
|
5月前
|
人工智能 自然语言处理 安全
探索 API 的无限可能:阿里云的卓越引领
API是数字化时代的“万能钥匙”,阿里云凭借云控制API、API网关、OpenAPI Explorer等产品,构建全方位API生态,助力企业高效集成、安全管控与创新升级,推动电商、制造等行业智能化转型,引领未来科技浪潮。
224 10
|
5月前
|
人工智能 API 监控
告别多接口拼凑!阿里云 API 模型聚合实现技术能力协同跃迁
API聚合整合400+国内外AI模型,统一接口、屏蔽差异,降低开发与维护成本,提升效率与系统稳定性,助力开发者高效应对多API调用困境。
604 0
API 微服务
133 0
|
5月前
|
人工智能 API 开发者
图文教程:阿里云百炼API-KEY获取方法,亲测全流程
本文详细介绍了如何获取阿里云百炼API-KEY,包含完整流程与截图指引。需先开通百炼平台及大模型服务,再通过控制台创建并复制API-KEY。目前平台提供千万tokens免费额度,适合开发者快速上手使用。
4367 5
|
4月前
|
人工智能 自然语言处理 测试技术
Apipost智能搜索:只需用业务语言描述需求,就能精准定位目标接口,API 搜索的下一代形态!
在大型项目中,API 数量庞大、命名不一,导致“找接口”耗时费力。传统工具依赖关键词搜索,难以应对语义模糊或命名不规范的场景。Apipost AI 智能搜索功能,支持自然语言查询,如“和用户登录有关的接口”,系统可理解语义并精准匹配目标接口。无论是新人上手、模糊查找还是批量定位,都能大幅提升检索效率,降低协作成本。从关键词到语义理解,智能搜索让开发者少花时间找接口,多专注核心开发,真正实现高效协作。
|
4月前
|
缓存 监控 前端开发
顺企网 API 开发实战:搜索 / 详情接口从 0 到 1 落地(附 Elasticsearch 优化 + 错误速查)
企业API开发常陷参数、缓存、错误处理三大坑?本指南拆解顺企网双接口全流程,涵盖搜索优化、签名验证、限流应对,附可复用代码与错误速查表,助你2小时高效搞定开发,提升响应速度与稳定性。
|
4月前
|
JSON 算法 API
Python采集淘宝商品评论API接口及JSON数据返回全程指南
Python采集淘宝商品评论API接口及JSON数据返回全程指南

相关产品

  • 人工智能平台 PAI