手把手教你用阿里云函数计算部署 AI 绘图服务:Flux + ComfyUI 完整实操指南

简介: 本文介绍如何用阿里云函数计算(FC)零运维部署AI生图服务,以Flux模型为例,涵盖NAS挂载、GPU配置、API调用及成本优化。免服务器管理,按需付费,冷启动后5秒出图,单张成本仅0.02–0.2元。新用户享免费额度,15分钟快速上手。

最近在做一个内容创作类项目,后端需要集成 AI 图片生成能力。评估了几套方案:自建 GPU 服务器、租用 GPU 云主机、直接调 SaaS API。最后选了阿里云的函数计算(FC)方案,核心原因很简单——不想管服务器。

如果你对快速部署 AI 推理服务感兴趣,可以通过链接了解:快速部署AI推理服务,新用户有免费额度,足够跑完本文的所有实验。

本文会从零开始,在函数计算上部署一套完整的 AI 生图服务,包括环境配置、模型部署、API 调用和成本优化。

为什么选函数计算做 AI 推理?

部署 AI 模型有几种常见方案:

方案 优点 缺点 适合场景
自建 GPU 服务器 完全可控 运维负担重,硬件成本高 长期大规模训练任务
GPU 云主机 弹性比自建好 仍需管理实例,闲置浪费 持续高负载推理
SaaS API 调用 零运维 成本随调用量线性增长,定制受限 标准场景快速接入
函数计算 + GPU 免运维,按需付费,弹性伸缩 冷启动有一定延迟 间歇性 AI 推理任务

我的需求是「零散的任务型调用」——用户点一下生成,几秒后返回结果,请求之间可能有几小时的空窗期。这种情况下,函数计算的按量付费优势非常明显:

  • 没有请求时不产生费用:GPU 实例完全释放
  • 来请求自动拉起:实例级别的弹性分配 GPU 资源
  • Flux 模型生图成本约 0.02 - 0.2 元 / 张:开发测试阶段几乎零成本

环境准备

1. 阿里云账号与函数计算开通

如果还没有账号,可以走这个链接快速注册:快速注册阿里云,新用户有免费试用额度。

登录后,在控制台搜索「函数计算 FC」,进入首页按引导开通服务。首次开通免费,不需要预充值。关键点:

  • 服务角色:选择 AliyunFCDefaultRole(FC 默认角色),有基础的资源访问权限
  • 日志服务 SLS:建议顺手开通,后续排查冷启动、调用异常都靠它

2. 开通 NAS 文件存储(强烈推荐)

AI 模型文件是重量级的——Flux 完整模型包约 23GB。如果不挂载 NAS,每次函数实例冷启动都要重新从 HuggingFace 拉取模型,冷启动可能长达 10-15 分钟,还会产生较高的公网流量费用。

在 FC 控制台左侧「应用」→「文件存储 NAS」中开通,按量付费,存 50GB 月均也就几块钱。

核心实操:部署 Flux 生图服务

Step 1:通过应用中心一键部署

函数计算的应用中心预置了大量 AI 应用模板,我们要用的「AI 生图 - Flux」就在其中。

进入路径:函数计算控制台 → 创建应用 → 选择「AI 生图 - Flux」模板

在创建页面,重点关注以下配置:

基础信息

应用名称:flux-image-generator
部署地域:华东 1(杭州)   # 选离你用户最近的

GPU 规格(这是性价比的关键选择)

实例类型:GPU 实例
GPU 显存:16GB(A10 推荐)
系统内存:32GB
vCPU:8 核

这个配置是我实测下来性价比最高的。16GB 显存刚好承载 Flux 模型的推理,8 核 vCPU 保证图像预处理和编码阶段不会成为瓶颈。如果输出分辨率需要到 1024×1024,可以考虑 24GB 显存的规格,但单价会上涨。

存储持久化

# NAS 挂载配置(在应用配置页「存储」tab 中设置)
nasConfig:
  mountPoints:
    - serverAddr: "${your-nas-id}.cn-hangzhou.nas.aliyuncs.com:/flux-models"
      mountDir: /mnt/stable-diffusion-models

/mnt/stable-diffusion-models 指向 NAS,Flux 的模型文件、VAE、CLIP 会自动缓存到这里。

别忘了这一项:不配 NAS 的话每次冷启动都要重新下载 23GB 的模型文件,不仅慢还烧公网流量费,血的教训。

Step 2:部署与等待

点击「创建并部署」,后台会做三件事:

  1. 在所选地域创建函数计算服务
  2. 分配 GPU 实例并拉取 Flux 模型(首次约 3-5 分钟)
  3. 创建 HTTP 触发器并生成访问端点

部署成功后在「应用详情」页面可以看到:

  • HTTP 触发器地址:形如 https://xxx-xxx.cn-hangzhou.fc.aliyuncs.com/2016-08-15/proxy/...
  • 函数名称:后续 SDK 调用时需要
  • 日志仓库:排查问题时从这里入手

Step 3:通过 API 调用生成图像

FC 为你的应用自动创建了 HTTP 触发器。可以用标准 HTTP POST 与之交互。

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 调用封装

    参数说明:
      prompt           - 正向提示词(支持自然语言)
      negative_prompt  - 负向提示词(排除不需要的元素)
      width/height     - 输出尺寸(默认 512×512)
      steps            - 采样步数,20-25 即可,过多边际收益极低
      cfg_scale        - 提示词引导强度,推荐 5.0-7.5
      seed             - 随机种子,-1 表示随机
    """
    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,  # 冷启动可能 60s+,设长超时
    )
    resp.raise_for_status()

    result = resp.json()
    if result.get("status") == "success":
        return base64.b64decode(result["image"])
    else:
        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"

    print(f"[*] Prompt: {prompt}")
    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 秒内就能返回——这就是 GPU 实例预热后的效果。

踩坑实录与优化

坑 1:冷启动 60 秒用户体验很差

GPU 实例初始化 + 模型加载需要时间,冷启动是 Serverless GPU 的天生短板。

解决方案

  • 预留实例:在函数配置中购买一个预留实例,提前保持 GPU 实例存活,彻底消除冷启动
  • 客户端超时设置充足:至少 120 秒,生产环境建议搭配异步调用 + 回调通知
  • 利用 FC 的异步模式:提交任务后立即返回 taskId,生图完成后通过 HTTP 回调通知结果

坑 2:采样步数设太高,一张图跑一分钟

Flux 模型的 num_inference_steps 默认可能设到 50,但对于绝大多数场景 20-25 步质量已经足够。

建议配置

真实拍摄风格:20 步
艺术/插画风格:25 步
极致细节(不推荐):30 步

每多 10 步,推理时间基本翻倍。除非确实有细节要求,否则没必要。

坑 3:模型文件忘记挂 NAS

这个前面提过了,但值得再强调。Flux 模型包约 23GB,如果每次冷启动都从公网下载:

  • 冷启动时间:10-15 分钟
  • 公网流量费:23GB × 0.8 元/GB ≈ 18.4 元 / 次

一天冷启动几次,流量费就比 NAS 月费还高了。NAS 挂载不是可选项,是必选项。

进阶:快速上手 AI 语音克隆(GPT-Sovits)

AI 生图部署流程跑通之后,部署其他 AI 应用的模式完全一样。这里快速演示 GPT-Sovits 语音合成。

在应用中心选「AI 语音生成 - GPT-Sovits」模板,复制同样的部署流程:

  1. 选模板 → 配 GPU(16GB 显存) → 挂 NAS
  2. 上传 1 分钟清晰语音样本到 NAS 目录
  3. 部署完成后通过 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:
    """
    语音合成调用

    成本参考:
    - 冷启动生成 8s 语音 ≈ 0.045 元
    - 活跃调用生成 3s 语音 ≈ 0.017 元
    """
    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)

语音生成成本极低,活跃调用时 3 秒语音不到 2 分钱。适合有声内容批量生产、客服语音合成、虚拟主播配音等场景。

成本管控与性能优化

1. 实例并发度

FC 默认一个实例同时只处理一个请求。如果调用量上来了,可以调高并发度:

# 函数配置中修改
instanceConcurrency: 5  # 单实例并发处理 5 个请求

2. 资源释放策略

timeout: 300        # 单次执行超时上限
idleTimeout: 60     # 实例空闲 60 秒后释放

请求稀疏的场景下,缩短 idle timeout 可以避免 GPU 实例空转浪费。

3. 预留实例 vs 按量实例

非预留实例:按 GPU 实际使用时长计费(含冷启动),单价略高
预留实例:  预付一定周期的 GPU 实例费用,单价更低

简单决策准则:如果你每天的实际 GPU 使用超过 6-8 小时,预留实例更省钱;低于这个阈值,按量更划算。

4. 成本监控

在 FC 控制台「监控」面板紧盯三个指标:

  • 日总调用次数
  • 平均 GPU 执行时长
  • 日累计费用

建议设置日消费告警(比如 50 元/天),避免意外跑飞。

函数计算 AI 应用矩阵

除了生图和语音,FC 应用中心还支持:

AI 应用类型 底层模型 典型场景
文生图 Stable Diffusion / ComfyUI 电商商品图、创意设计
对话大模型 通义千问(开源) 智能客服、文本摘要
AI 编码助手 通义灵码 实时代码补全、重构建议
多模态识别 多模态模型 教育评测、内容审核

所有应用都遵循同一套部署模式:「选模板 → 配资源 → 挂 NAS → 部署 → 调 API」。学会一个,其他全通用。

总结

把 Flux 部署在函数计算上跑了一个星期,最大的感受是:AI 推理部署的门槛确实被拉低了很多。以前需要自己买显卡、装 CUDA、调 Docker 镜像,现在三分钟点几下就行。

当然,Serverless 不是万能药。如果你的 AI 推理需要 7×24 持续运行且 QPS 很高,传统 GPU 云主机可能整体成本更低。但对于原型验证、低频生产调用、开发测试环境——函数计算几乎是最优解。

整套流程跑下来,从环境准备到 API 接入,熟练的话 15 分钟就能完成。如果你也想试试,可以用这个邀请链接开始:AI推理极简部署方案篇,新用户注册后有免费试用额度,正好跑通本文的所有实验。


相关实践学习
【玩转ComfyUI】基于函数计算一键部署AI生图平台ComfyUI
本次实验将带大家通过使用阿里云产品函数计算FC,快速使用ComfyUI实现更高质量的图像生成。
从 0 入门函数计算
在函数计算的架构中,开发者只需要编写业务代码,并监控业务运行情况就可以了。这将开发者从繁重的运维工作中解放出来,将精力投入到更有意义的开发任务上。
相关文章
|
21天前
|
人工智能 弹性计算 开发者
2026年阿里云618大促云服务器选购指南:活动价格与省钱攻略
2026阿里云618大促开启!主题“AI加速季,智惠生产力”,轻量服务器低至38元/年,ECS实例99元起,叠加满减券至高减1728元。涵盖新人秒杀、企业专享、AI组合套餐,附选型指南与避坑攻略,助力大家低成本高效上云!
294 3
|
21天前
|
人工智能 运维 物联网
零门槛玩转 AI 生图:用阿里云函数计算一键部署 ComfyUI,5 分钟生成你的专属毛绒萌宠
阿里云函数计算推出一键部署ComfyUI方案,内置Flux模型与毛绒萌宠LoRA,支持超写实毛绒玩具风格AI生图。Serverless GPU按量付费、免运维、不开机不花钱,单张图低至0.02元,5分钟极速部署,零门槛体验前沿AIGC。
|
20天前
|
人工智能 JSON 运维
阿里云百炼 + Qwen3.7 实战:手把手构建一个支持工具调用的 AI Agent
本文记录使用阿里云百炼平台+Qwen3.7-Max构建企业级AI运维助手的全过程:依托其原生Function Calling、128K上下文与多工具并行调用能力,实现稳定、合规、低成本的Agent落地,含完整代码、踩坑解析与成本实测。
|
2月前
|
人工智能 自然语言处理 NoSQL
大模型应用成本管控:基于 Token Plan 的多模型路由网关设计实践
本文介绍一种LLM应用成本管控方案:通过网关层实现“模型路由+订阅配额管理”,根据任务复杂度(如关键词、长度)动态调度至轻量/旗舰模型,并用Redis实现月度Token额度控制与自动降级。实践后成本降低约60%,保障预算确定性与服务稳定性。(239字)
|
2月前
|
存储 人工智能 安全
企业内部 AI 助理落地:从架构设计到私有化的完整实践
为满足数据合规要求,公司基于OpenClaw框架私有化部署AI助理平台,支持知识库问答、工单辅助及Web/钉钉/企微多端接入;采用Qwen-7B本地模型+百炼API混合推理,结合BGE向量库与意图路由策略,在保障安全前提下实现降本增效。(239字)
|
21天前
|
人工智能 弹性计算 Serverless
2026 年企业 AI Agent 落地:从 Demo 到生产的四个关键跨越
本文剖析AI Agent从Demo到生产落地的四大关键跨越:长时任务支持、多Agent协同、GPU弹性伸缩与全链路可观测性,并结合Google ADK、Anthropic MCP等新协议,给出务实解法与平台选型建议。
1009 0
|
21天前
|
运维 Serverless API
从零搭建多Agent协同系统:Google ADK 框架实战
本文介绍如何用Google ADK框架+阿里云AgentRun,从零搭建多Agent协同系统:将复杂任务拆解为专业Agent(如VibeCoder生成代码、CodeReviewer审查),通过A2A协议实现标准化协作与调度,兼顾工程性与易部署性。(239字)
|
弹性计算 Serverless 数据库
2026年 | 5月云大使推广奖励规则
关联周期不分用户类型延至90天,购大模型/Agent产品可最长关联365天;老用户产品首购返利升至25%;单客户实付封顶20万元;后付费订单纳入返利;云大使企业认证亦可入驻。
|
19天前
|
存储 人工智能 Serverless
Serverless AI Agent 实战:用阿里云 AgentRun + Google ADK 搭建多智能体协同工作流
本文详解如何在阿里云AgentRun上快速搭建基于Google A2A协议的多Agent竞品分析系统:搜索、分析、报告三个专业Agent通过Serverless架构协同工作,内置百炼大模型与NAS共享存储,开箱即用、按量计费,显著降低多Agent落地门槛。
|
15天前
|
弹性计算 安全 应用服务中间件
云服务器部署实战:ECS上从零搭建生产级Web服务全记录
本文手把手教你将本地Web项目部署到阿里云ECS服务器:从安全组配置、SSH初始化、Nginx反向代理,到应用进程管理(systemd)、安全加固(fail2ban/防火墙)及日志监控,全程覆盖Linux云服务器生产级部署要点,助新手快速实现“代码→公网服务”闭环。