手把手教你用阿里云函数计算部署 AI 绘图服务:Flux + ComfyUI 完整实操指南
最近在做一个内容创作类项目,后端需要集成 AI 图片生成能力。评估了几套方案:自建 GPU 服务器、租用 GPU 云主机、直接调 SaaS API。最后用了阿里云的函数计算方案,核心原因很简单——不想管服务器。
本文会从零开始,在函数计算上部署一套完整的 AI 生图服务,包括环境配置、模型部署、API 调用。
为什么选函数计算做 AI 推理?
部署 AI 模型有几种常见方案:
| 方案 | 优点 | 缺点 | 适合场景 |
|---|---|---|---|
| 自建 GPU 服务器 | 完全可控 | 运维负担重,硬件成本高 | 长期大规模训练任务 |
| GPU 云主机 | 弹性比自建好 | 仍需管理实例,闲置浪费 | 持续高负载推理 |
| SaaS API 调用 | 零运维 | 成本随量增长,定制受限 | 标准场景快速接入 |
| 函数计算 + GPU | 免运维,按需付费,弹性伸缩 | 冷启动有一定延迟 | 间歇性 AI 推理任务 |
我的需求是零散的任务型调用——用户点一下生成,几秒后返回结果,请求之间可能有几小时空窗期。函数计算的按量付费模式刚好匹配:没有请求时不产生 GPU 费用,来请求自动弹性分配资源。Flux 模型单张生图成本约 0.02-0.2 元。
环境准备
1. 开通函数计算服务
登录阿里云控制台搜索「函数计算 FC」,按引导开通。关键点:
- 服务角色:选
AliyunFCDefaultRole - 日志服务 SLS:建议顺手开通,后续排查问题全靠它
2. 开通 NAS 文件存储(强烈推荐)
Flux 完整模型包约 23GB,如果不挂载 NAS,每次函数实例冷启动都要从公网重新下载模型——冷启动 10-15 分钟,公网流量费约十几块一次。NAS 按量付费,50GB 月均几块钱。
核心实操:部署 Flux 生图服务
Step 1:通过应用中心一键部署
函数计算应用中心预置了「AI 生图 - Flux」模板。
路径:函数计算控制台 → 创建应用 → 选择「AI 生图 - Flux」
GPU 配置(实测最优):
实例类型:GPU 实例
GPU 显存:16GB(A10)
系统内存:32GB
vCPU:8 核
16GB 显存刚好跑 Flux 推理。分辨率需要 1024×1024 的话考虑 24GB 规格。
NAS 挂载:
nasConfig:
mountPoints:
- serverAddr: "${your-nas-id}.cn-hangzhou.nas.aliyuncs.com:/flux-models"
mountDir: /mnt/stable-diffusion-models
把 FLUX 模型文件、VAE、CLIP 等都指向 NAS 目录,首次下载后持久化。
Step 2:部署与获取端点
点击「创建并部署」,首次部署约 3-5 分钟(拉模型)。成功后页面显示:
- HTTP 触发器地址
- 函数名称
- 日志仓库位置
Step 3:API 调用生图
Python 示例:
import requests
import base64
from datetime import datetime
ENDPOINT = "https://your-function-url.cn-hangzhou.fc.aliyuncs.com/..."
def generate_image(
prompt: str,
negative_prompt: str = "",
width: int = 512,
height: int = 512,
steps: int = 20,
cfg_scale: float = 7.0,
seed: int = -1
) -> bytes:
"""
Flux 生图 API 封装
参数:
steps - 采样步数,20-25 足够
cfg_scale - 提示词引导强度,5.0-7.5 推荐
"""
payload = {
"prompt": prompt,
"negative_prompt": negative_prompt,
"width": width,
"height": height,
"num_inference_steps": steps,
"guidance_scale": cfg_scale,
"seed": seed,
}
resp = requests.post(
ENDPOINT, json=payload,
headers={"Content-Type": "application/json"},
timeout=120 # 冷启动预留
)
resp.raise_for_status()
result = resp.json()
if result.get("status") == "success":
return base64.b64decode(result["image"])
raise RuntimeError(f"Generation failed: {result.get('error')}")
if __name__ == "__main__":
prompt = (
"a majestic chinese dragon soaring through clouds, "
"golden scales reflecting sunlight, dramatic lighting, 8k"
)
negative = "blurry, low quality, distorted, text, watermark"
image_bytes = generate_image(prompt, negative)
filename = f"flux_out_{datetime.now().strftime('%Y%m%d_%H%M%S')}.png"
with open(filename, "wb") as f:
f.write(image_bytes)
print(f"Saved: {filename}")
curl 快速测试:
curl -X POST "https://your-function-url.cn-hangzhou.fc.aliyuncs.com/..." \
-H "Content-Type: application/json" \
-d '{"prompt":"a serene mountain lake at sunset, oil painting style","width":512,"height":512,"num_inference_steps":20}' \
-o sunset.png
首次冷启动约 60 秒,后续调用 5 秒内返回。
踩坑与优化
坑 1:冷启动 60 秒体验差
GPU 实例初始化 + 模型加载不可避免。解决方向:
- 预留实例:提前保持 GPU 存活,消除冷启动
- 客户端超时设 120 秒
- 生产环境用异步调用 + 回调通知
坑 2:采样步数过多拖慢推理
Flux 模型 20-25 步质量已足够。30 步以上边际收益极低,推理时间却翻倍。
坑 3:没挂 NAS 导致冷启动灾难
前面提过——23GB 模型每次从公网下载,冷启动 10-15 分钟 + 高额流量费。挂 NAS 是硬性的前置条件。
进阶:GPT-Sovits 语音克隆
应用中心选「AI 语音生成 - GPT-Sovits」模板,部署流程与 Flux 完全一致:
- 选模板 → 配 GPU → 挂 NAS
- 上传 1 分钟清晰语音样本
- 部署后通过 HTTP API 调用
import requests
import base64
VOICE_ENDPOINT = "https://your-sovits-url.cn-hangzhou.fc.aliyuncs.com/..."
def text_to_speech(text: str, speaker: str = "default", lang: str = "zh") -> bytes:
resp = requests.post(
VOICE_ENDPOINT,
json={"text": text, "speaker_id": speaker, "language": lang},
timeout=120,
)
resp.raise_for_status()
result = resp.json()
if result.get("status") == "success":
return base64.b64decode(result["audio"])
raise RuntimeError(f"Synthesis failed: {result.get('error')}")
audio = text_to_speech("你好,欢迎使用阿里云函数计算的 AI 语音服务")
with open("greeting.wav", "wb") as f:
f.write(audio)
冷启动生成 8 秒语音约 0.045 元,活跃调用 3 秒语音约 0.017 元。有声内容批量生产、客服语音合成等场景非常实用。
成本控制要点
- 设置实例并发度:单实例并发处理多个请求,减少实例数量
- 设短 idle timeout:稀疏请求场景下避免 GPU 空转
- 日消费告警:控制台设 50 元/天告警,防止意外
- 预留 vs 按量计算:日 GPU 使用超 6-8 小时选预留,否则按量更省
总结
把 Flux 部署在函数计算上跑了一周,最大感触是 AI 部署门槛确实在快速降低。以前需要买显卡、装 CUDA、调 Docker 镜像,现在几分钟就能拉起推理服务。
Serverless 有自己的适用边界:持续高 QPS 场景传统 GPU 主机可能更经济,但对原型验证、低频调用、测试开发来说,函数计算是最优解。
整套部署流程从环境到 API 接入,熟练的话 15 分钟内就能完成。
声明:本文实验基于阿里云函数计算服务完成。如需亲自尝试,可通过链接注册:点击查看函数计算部署服务一键部署,新用户有免费试用额度。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)