收起左侧

本地部署AI#sd.cpp文生图

0
回复
38
查看
[ 复制链接 ]

2

主题

7

回帖

0

牛值

江湖小虾

一、硬件环境

主机配置

项目 规格
CPU AMD Ryzen 9 7900X
主板 铭瑄 B850 AIGA
内存 32GB
独显(主卡) AMD Radeon RX 6750 GRE 12GB
计算卡(副卡) AMD Radeon Instinct MI50 16GB
电源 1000W
操作系统 飞牛 OS(fnOS)
后端 Vulkan

💡 关键说明:AMD 已停止对 MI50 的 ROCm 支持,新版镜像无法启用 LCM。目前 Vulkan 是唯一可用的最佳方案。

网络环境

  • 飞牛 NAS IP:局域网内可访问
  • 网络模式:使用外部已创建的 localNetwork 桥接网络

2.1 启动命令参数说明

以下参数说明供参考:

  • --listen-ip 0.0.0.0 --listen-port 8061 → 监听地址和端口(0.0.0.0 表示允许局域网访问)
  • --diffusion-model /app/models/boogu/boogu-edit-turbo-dit-Q4_0.gguf → 扩散模型文件路径(文生图核心模型,Turbo 模式快速生成)
  • --llm /app/models/boogu/Qwen3VL-8B-Instruct-Q4_K_M.gguf → LLM 模型路径(用于理解文字提示词)
  • --llm_vision /app/models/boogu/mmproj-Qwen3VL-8B-Instruct-Q8_0.gguf → LLM 视觉模型路径(用于图像理解/图生图)
  • --vae /app/models/boogu/boogu-vae.safetensors → VAE 模型路径(变分自编码器,负责图像解码)
  • --cfg-scale 1 → CFG Scale:提示词引导强度(1 为 Turbo 模式最低值,生成更快)
  • --steps 4 → 采样步数:Turbo 模式建议 4-8 步(速度快,画质足够)
  • --sampling-method euler → 采样方法:euler 是最基础的采样算法,稳定可靠
  • --diffusion-fa → 启用扩散模型 Flash Attention 优化(注意:仅 Vulkan 2 后端支持)
  • --backend diffusion=vulkan2,te=vulkan1,vae=vulkan1 → 后端分配:
    • diffusion=vulkan2 → 扩散模型使用 Vulkan 2(支持 Flash Attention)
    • te=vulkan1 → 文本编码器使用 Vulkan 1
    • vae=vulkan1 → VAE 解码器使用 Vulkan 1
  • --params-backend diffusion=vulkan2 → 参数后端:扩散模型参数使用 Vulkan 2 后端
  • --lora-model-dir /app/models/LoRa → LoRA 模型目录(存放额外的风格/角色微调模型)
  • -v → 启用详细日志输出(调试时 useful)

注意:command: > 使用 YAML 折叠块字符串语法,> 符号后面的内容会被当作字符串,因此注释不会被执行。

# ============================================================
# 服务定义:stable-diffusion.cpp Vulkan 版本
# ============================================================
services:
  # 服务名:sd-cpp
  sd-cpp:
    # Docker 镜像:官方 Vulkan 版本(支持 AMD GPU)
    image: ghcr.io/leejet/stable-diffusion.cpp:master-vulkan
    # 容器名称(便于后续 docker 命令操作)
    container_name: sd-cpp-vulkan
    # 容器异常退出时自动重启(除非手动 stop)
    restart: unless-stopped
    # 容器入口:运行 sd-server 可执行文件
    entrypoint: ["/sd-server"]
    # --- 端口映射 ---
    ports:
      - "8061:8061"
    # --- 网络配置 ---
    networks:
      openNetwork:
    # --- 数据持久化 ---
    volumes:
      - /vol1/1000/docker/stable-diffusion/sd-dir/models:/app/models
      - /vol1/1000/docker/stable-diffusion/sd-dir/output:/app/output
    # --- 硬件设备直通 ---
    devices:
      - /dev/kfd:/dev/kfd
      - /dev/dri:/dev/dri
    # --- 权限配置 ---
    group_add:
      - video
  
    command: >
      --listen-ip 0.0.0.0 --listen-port 8061
      --diffusion-model /app/models/boogu/boogu-edit-turbo-dit-Q4_0.gguf
      --llm /app/models/boogu/Qwen3VL-8B-Instruct-Q4_K_M.gguf
      --llm_vision /app/models/boogu/mmproj-Qwen3VL-8B-Instruct-Q8_0.gguf
      --vae /app/models/boogu/boogu-vae.safetensors
      --cfg-scale 1
      --steps 4
      --sampling-method euler
      --diffusion-fa
      --backend diffusion=vulkan2,te=vulkan1,vae=vulkan1
      --params-backend diffusion=vulkan2
      --lora-model-dir /app/models/LoRa
      -v
    # --- 安全选项 ---
    # 解除 seccomp 安全限制(GPU 相关操作需要)
    #security_opt:
      #- seccomp:unconfined
      #- label:disable
    # --- 额外权限 ---
    cap_add:
      - SYS_ADMIN
      #- SYS_PTRACE

# ============================================================
# 网络配置
# ============================================================
networks:
  openNetwork:
    external: true
    driver: bridge

三、所需模型文件

模型 文件格式 用途
boogu-edit-turbo .gguf 扩散模型(文生图核心,Turbo 模式)
Qwen3VL-8B-Instruct .gguf LLM 文字提示理解
mmproj-Qwen3VL-8B-Instruct-Q8_0 .gguf LLM 视觉理解(图生图)
boogu-vae .safetensors VAE 图像解码
LoRA 模型(可选) .safetensors 风格/角色微调

我测试了好多模型,目前这个boogu可以在较快的速度下出图质量较好。


四、使用方法

4.1 通过 fnconnect 访问

打开飞牛 fnconnect → Docker → 容器列表 → 点击 sd-cpp-vulkan 容器行右侧的端口下拉框(显示 8061:8061),点击即可在浏览器打开 API 页面。


五、注意事项

5.1 硬件相关

  • GPU 驱动:飞牛 OS 需安装 AMD GPU 驱动,确保 /dev/kfd 和 /dev/dri 设备可用
  • 显存要求:boogu 模型较大,建议至少 12GB 显存(6750 GRE 12GB 可用,MI50 16GB 可作为副卡)
  • 内存要求:建议 32GB 及以上(模型加载 + 推理过程需要大量内存)

5.2 Vulkan 后端

  • AMD GPU 使用 Vulkan 后端,--backend 参数中 te 和 vae 设为 vulkan1,diffusion 设为 vulkan2 以启用 Flash Attention
  • --diffusion-fa 参数仅在 Vulkan 2 后端有效
  • 如果只有单卡,去掉 te=vulkan1,vae=vulkan1 部分,只保留 diffusion=vulkan2

七、参考资料

资源 链接
stable-diffusion.cpp 官方仓库 https://github.com/leejet/stable-diffusion.cpp
Vulkan 官方文档 https://www.vulkan.org
AMD ROCm 文档 https://rocm.docs.amd.com
魔搭社区(模型下载) https://modelscope.cn

免责声明:本文基于个人实际测试经验编写,仅供参考。不同硬件配置可能导致结果差异,请根据自身情况调整配置。

收藏
送赞
分享
命比咖啡苦
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则