InvokeAI 本地运行 2 种方式:源码安装 vs Docker 容器化,怎么选
【免费下载链接】InvokeAIInvoke is a leading creative engine for Stable Diffusion models, empowering professionals, artists, and enthusiasts to generate and create visual media using the latest AI-driven technologies. The solution offers an industry leading WebUI, and serves as the foundation for multiple commercial products.项目地址: https://gitcode.com/GitHub_Trending/in/InvokeAI
InvokeAI 是基于 Stable Diffusion 的图像生成引擎,装完在浏览器里出图。本文回答一个问题:从源码直接装,还是用 Docker 跑?适合想在自己机器上把 InvokeAI 跑起来的开发者。
先选路:两种方式怎么选
| 场景 | 结论 | 原因 |
|---|---|---|
| macOS 用户 | 优先本地装 | 容器方案无法使用 Mac 的 GPU,文档明确不推荐 |
| 想改代码、跑 main 分支 | 源码安装 | 容器里不方便动代码 |
| 同一套环境要在多台机器/服务器间迁移 | Docker | 环境封装在镜像里,数据靠卷迁移 |
| 担心依赖污染现有 Python 环境 | Docker | 依赖全部隔离在容器内 |
机器上已有 Python 3.12 和uv,且只在这台机器用 | 源码安装 | 省掉镜像构建那几分钟 |
一句话建议:个人固定开发机直接源码装;要复用到别处的部署,走 Docker。
开工前的共同准备
两种路径都要先满足这几项,一次检查到位能省掉后面大量排错:
- 系统:Linux 最省事;Windows 走 WSL2;macOS 仅限本地安装路径。
- GPU(可选但强烈推荐):NVIDIA 需装好驱动;AMD 需要 ROCm 环境。纯 CPU 也能跑,但出图慢。
- Python:本地方案要求 3.12,
pyproject.toml里写死了>=3.12, <3.13,3.11 或 3.13 都不行。 - 存储:模型动辄几个 GB,给运行目录
~/invokeai预留几十 GB。 - 网络:拉包和下载模型都要联网,首次启动耗时长主要耗在模型上。
方案 A:源码安装
先 clone 仓库到本地:
git clone https://gitcode.com/GitHub_Trending/in/InvokeAI cd InvokeAI创建并激活虚拟环境。这里用uv代替 venv,它会顺带装好一个可移植的 Python 3.12,系统里装没装 Python 都行:
uv venv --relocatable --prompt invoke --python 3.12 --python-preference only-managed .venv source .venv/bin/activate # Linux/macOS;Windows 用 .venv\Scripts\activate以可编辑模式把包装进环境,依赖全部由 pyproject 解析:
uv pip install -e . --python 3.12 --python-preference only-managed说明两点:NVIDIA 30xx 及更新的卡直接装即可;16xx/20xx 老卡改装invokeai[xformers]。启动时如需指定 torch 后端,NVIDIA 传--torch-backend=cu130,无 GPU 的 x86_64 传--torch-backend=cpu。
最后启动服务,--root指向你的数据目录:
invokeai-web --root ~/invokeai方案 B:Docker 容器化
容器路线分两档:图省事直接用官方镜像,要改配置再走 compose 构建。
单条命令拉官方镜像并挂上 GPU:
docker run --runtime=nvidia --gpus=all --publish 9090:9090 ghcr.io/invoke-ai/invokeai加--volume /本地路径:/invokeai可以把模型和生成图持久化到宿主机。
compose 路线会构建镜像,多花几分钟,但能自定义。把INVOKEAI_ROOT(宿主数据目录)和GPU_DRIVER(cuda或rocm)写进.env,然后执行run.sh:
cd docker cp .env.sample .env ./run.sh停容器用docker compose down——run.sh跟的是日志流,Ctrl+C 只退出日志不退出容器。
如何验证跑起来了
判断标准就三条,全中才算成功:
- 终端:启动日志走完模型扫描,出现 uvicorn 监听 9090 端口的信息,且没有未捕获的 traceback。
- 浏览器:打开
http://localhost:9090,能看到登录/工作区界面。 - 功能:进 Model Manager 页下载一个基础模型,跑一次文生图,出图即通。
首次启动慢是正常的,时间都花在装模型和预热上。
常见问题
Q1:Docker 里 GPU 没被识别?宿主机上 Docker 必须能访问 GPU:NVIDIA 装 container toolkit 并用docker run --gpus all nvidia/cuda ... nvidia-smi验证,AMD 走 ROCm 的 Docker 配置。容器内nvidia-smi能看到卡,Invoke 才用得上。
Q2:本地方案报 Python 版本不匹配?3.12 是硬性区间。系统 Python 是 3.11 或 3.13 都没关系,uv venv命令里的--python 3.12会单独拉一个 3.12,不用动系统环境。
Q3:macOS 上容器方案为什么慢?macOS 的 Docker 跑在虚拟机里,拿不到 Metal GPU,官方文档直接建议改用本地安装。这不是网络问题,是架构限制。
Q4:9090 端口被别的程序占了?本地方案改启动参数即可;Docker 方案在.env里设INVOKEAI_PORT,容器内外端口由 compose 的 ports 映射统一处理。
附录:参数速查与常用路径
| 项目 | 值 / 说明 |
|---|---|
| Web 端口 | 9090 |
| Python 版本 | 3.12(>=3.12, <3.13) |
| 数据目录 | ~/invokeai(INVOKEAI_ROOT控制) |
GPU_DRIVER | cuda/rocm,仅 Docker.env使用 |
INVOKEAI_PORT | 改 Web 端口 |
CONTAINER_UID | 宿主机用户 UID,解决卷内文件权限 |
| torch 后端 | NVIDIA 用cu130,无卡 x86_64 用cpu |
| 容器停止 | docker compose down |
更多细节看仓库文档:安装指南、手动安装、Docker 部署说明。
【免费下载链接】InvokeAIInvoke is a leading creative engine for Stable Diffusion models, empowering professionals, artists, and enthusiasts to generate and create visual media using the latest AI-driven technologies. The solution offers an industry leading WebUI, and serves as the foundation for multiple commercial products.项目地址: https://gitcode.com/GitHub_Trending/in/InvokeAI
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考