基于 FastAPI 的多模态推理服务,支持两种运行模式:
- MODE=txt2img:文字生成图片(HunyuanDiT 1.5B)
- MODE=vl:图像理解(Qwen2.5-VL-3B)
mkdir -p cache/hf outputsdocker run --rm -p 9000:8000 \
-e MODE=txt2img \
-e HF_HOME=/app/cache/hf \
-e HF_HUB_ENABLE_HF_TRANSFER=0 \
-v "$(pwd)/cache/hf:/app/cache/hf" \
-v "$(pwd)/outputs:/app/outputs" \
ai-service:dev-localdocker run --rm -p 9000:8000 \
-e MODE=vl \
-e HF_HOME=/app/cache/hf \
-e HF_HUB_ENABLE_HF_TRANSFER=0 \
-v "$(pwd)/cache/hf:/app/cache/hf" \
-v "$(pwd)/outputs:/app/outputs" \
ai-service:dev-local
⚠️ 每次容器只支持一种模式,首次运行会自动从 Hugging Face 下载模型(数 GB)。
curl -s http://127.0.0.1:9000/healthz输出示例:
{"ok": true, "mode": "vl"}curl -X POST http://127.0.0.1:9000/txt2img \
-H "Content-Type: application/json" \
-d '{"prompt": "a cyberpunk cat"}' \
-o outputs/cat.pngcurl -X POST http://127.0.0.1:9000/vl \
-F "image=@example.jpg" \
-F 'prompt=Describe this image'| 变量名 | 说明 | 示例值 |
|---|---|---|
MODE |
运行模式,可选 txt2img 或 vl |
txt2img |
HF_HOME |
Hugging Face 模型缓存路径 | /app/cache/hf |
HF_HUB_ENABLE_HF_TRANSFER |
是否启用 xet 加速通道(建议关闭) | 0 |
USE_FAST |
是否启用 fast processor(可选) | 1 |
ai-service/
├── src/ai_service/ # 主程序
├── cache/hf/ # 模型缓存
├── outputs/ # 输出结果
├── Dockerfile # 构建镜像
└── README.md # 当前文件
docker build -t ai-service:dev-local .浏览器打开或命令行执行:
http://127.0.0.1:9000/docs
即可查看 FastAPI 自动生成的接口文档。