如何搭建SD合成服务器

AI技术
小华
2026-08-23

搭建 Stable Diffusion(SD)合成服务器,通常指把 SD 做成可被多用户/多应用远程调用的服务,用于图片生成。下面按从零到可上线的结构给你一套完整方案,涵盖硬件、软件、部署方式、接口和常见坑

一、目标定位(先明确)

你要做的是哪一类?

类型说明
✅ 本地推理服务单人或小团队用
✅ 内部 API 服务器多个业务调用
✅ 多用户 Web 服务类似“小 Midjourney”
✅ 高并发生产环境企业级

不同目标,方案差异很大。

二、硬件要求(非常关键)

1️⃣ GPU(必须)

Stable Diffusion 强烈依赖 NVIDIA GPU

场景推荐 GPU
个人/测试RTX 3060 12G
小团队RTX 4090 / A5000
企业A100 / H100
按需租用(RunPod / AutoDL)

显存建议 ≥ 8GB

12GB 以上更稳(可跑 SDXL)

2️⃣ CPU / 内存 / 磁盘

项目建议
CPU8 核以上(不重,但别太差)
内存≥ 32GB
磁盘≥ 100GB(模型很大)
系统Ubuntu 22.04(首选)

三、基础环境搭建

1️⃣ 安装 NVIDIA 驱动

nvidia-smi

若无输出,先装驱动:

sudo apt update
sudo apt install -y nvidia-driver-535

2️⃣ 安装 CUDA & cuDNN

推荐:

  • CUDA 11.8 或 12.1
  • cuDNN ≥ 8.7

验证:

nvcc --version

3️⃣ 安装 Python 环境

sudo apt install python3.10 python3-pip

建议用 conda

conda create -n sd python=3.10
conda activate sd

四、Stable Diffusion 核心部署(三种方式)


✅ 方案一:WebUI(最常用,适合快速搭建)

1️⃣ 安装 Automatic1111 WebUI

git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui
cd stable-diffusion-webui
pip install -r requirements.txt

启动:

./webui.sh --api --listen --xformers

--api:开启 API
--listen:允许远程访问

--xformers:显存优化

2️⃣ API 调用示例

POST http://服务器IP:7861/sdapi/v1/txt2img
{
"prompt": "a cat in space",
"steps": 20,
"width": 512,
"height": 512
}

✅ 适合:

  • 内部服务
  • 快速验证
  • 非高并发

✅ 方案二:ComfyUI(推荐生产 & 流程复杂)

特点

  • 节点式
  • 速度快
  • 更适合服务器
git clone https://github.com/comfyanonymous/ComfyUI
cd ComfyUI
pip install -r requirements.txt
python main.py --listen 0.0.0.0

API 示例:

POST http://IP:8188/prompt

✅ 适合:

  • 复杂工作流
  • 批量生成
  • 企业级

✅ 方案三:Diffusers(最灵活,工程化首选)

安装

pip install diffusers transformers accelerate

代码示例

from diffusers import StableDiffusionPipeline
import torch
pipe = StableDiffusionPipeline.from_pretrained(
"runwayml/stable-diffusion-v1-5",
torch_dtype=torch.float16
).to("cuda")
image = pipe("a futuristic city").images[0]
image.save("out.png")

✅ 适合:

  • 自研服务
  • 高并发
  • 精细控制

五、把 SD 做成真正的“服务器”

1️⃣ 封装成 API(FastAPI 示例)

from fastapi import FastAPI
from diffusers import StableDiffusionPipeline
import torch
app = FastAPI()
pipe = StableDiffusionPipeline.from_pretrained(
"runwayml/stable-diffusion-v1-5",
torch_dtype=torch.float16
).to("cuda")
@app.post("/generate")
def generate(prompt: str):
image = pipe(prompt).images[0]
path = "result.png"
image.save(path)
return {"path": path}

启动:

uvicorn server:app --host 0.0.0.0 --port 8000

六、模型管理(非常重要)

常见模型:

类型路径
SD1.5sd-v1-5.safetensors
SDXLsd_xl_base.safetensors
LoRAmodels/Lora
ControlNetmodels/ControlNet

✅ 建议:

  • 单独磁盘存模型
  • 用软链接
  • 多模型热切换

七、性能优化(必做)

✅ 显存优化

  • --xformers
  • float16
  • enable_attention_slicing()

✅ 并发

  • 队列
  • 限制同时生成数
  • 多进程(谨慎)

八、安全 & 运维

1️⃣ 网络安全

  • 不要裸奔 7861 / 8188
  • Nginx + 鉴权
  • 或内网访问

2️⃣ 鉴权示例

  • API Key
  • JWT
  • IP 白名单

九、常见坑(血泪总结)

❌ 显存爆炸 → 用 SD1.5 先跑
❌ 模型下载慢 → 用 hf-mirror
❌ 远程访问失败 → 检查 --listen
❌ 生成慢 → 没开 xformers

❌ 中文 prompt 差 → 配 CLIP / 翻译

十、我可以继续帮你细化

你可以直接告诉我:
1️⃣ 是 本地服务器 / 云服务器
2️⃣ 是否要 多用户 / 登录 / 计费
3️⃣ 用 SD1.5 / SDXL / 自定义模型
4️⃣ 并发量大概多少?
我可以直接给你:

  • ✅ 一套 可复制部署脚本
  • 生产级架构图
  • Docker + GPU 方案
  • 企业级 API 设计

你打算用在什么场景?

亿速云提供售前/售后服务

售前业务咨询

售后技术保障

400-100-2938

7*24小时售后电话

官方微信小程序