ArtCraft AI 图像生成桌面应用实战指南:三步拉起、看懂机制并改第一行代码
【免费下载链接】artcraftArtCraft is an intentional crafting engine for artists, designers, and filmmakers项目地址: https://gitcode.com/GitHub_Trending/ar/artcraft
克隆 ArtCraft 仓库后执行一条 bash 脚本,一个可以生成 AI 图像、编辑图像、并且能直接改源码的桌面应用就出现在你面前。ArtCraft 是 Rust + Tauri 写的 AI 创作应用:前端 React,后端 Rust,两层之间用原生 IPC(让 Web 层与 Rust 层直接对话的通道)通信。这份指南按四件事推进:装好三样依赖、拉起开发环境、看懂端口与进程分工、完成第一次代码修改,全程约 10 分钟。
装好三样依赖并核对版本
源码构建只依赖三样组件,版本都有明确下限,对照下表逐项确认。
| 组件 | 版本要求 | 获取方式 |
|---|---|---|
| Rust | 最新稳定版 | rustup |
| Node.js | 20 以上,推荐 v24.13.0 | nodejs.org 或 nvm |
| Tauri CLI | 2.10.0+ | cargo install tauri-cli --version "^2" --locked |
💡 前端的 Nx 和 Vite 由 npm 在工程内本地安装,不需要全局装。完整清单见 _docs/dev_setup.md。
执行启动脚本,把开发环境拉起来
Mac 和 Linux 只需一条命令;Windows 需要两个终端各跑一个脚本。
git clone https://gitcode.com/GitHub_Trending/ar/artcraft cd artcraft ./script/artcraft/unix_dev.sh脚本内部按固定顺序启动,共六步:
- 检查 Node.js 是否 20 以上、cargo-tauri 是否可用。
- 检查
node_modules/vite是否存在,缺失时自动npm install。 - 把 Vite 绑定到
127.0.0.1,从 5193 端口开始逐个尝试,直到占到一个可用端口。 - 前端 socket 真正绑定后,才把这个精确的
devUrl传给 Tauri。 - Rust 通过原生 IPC 与前端通信,不再开第二个 HTTP 端口。
- Ctrl+C 一次停掉全部:Vite、Rust 监听器、桌面应用。
想换起始端口,加一个环境变量:
ARTCRAFT_DEV_PORT=6200 ./script/artcraft/unix_dev.shWindows 用户开两个终端,分别运行(powershell):
.\script\artcraft\windows_frontend_dev.ps1 .\script\artcraft\windows_rust_dev.ps1看懂端口与进程的分工
运行时只有三类进程、一个端口:Vite、Rust 监听器、桌面窗口。
- Vite 独占一个回环端口(默认从 5193 开始找),HTTP 与热更新 WebSocket 共用它。
- Rust 侧不监听额外端口,全部走 IPC;原生 HTTP 桥会归一化回环源,避免自动选端口后登录或媒体加载失败。
- 监听器只管理自己拉起的进程:Rust 监听器退出时它会关掉 Vite 并透传退出码,不会按名字或端口去杀别的应用。
三类改动的反馈方式各不相同:
| 你改了什么 | 反馈方式 | 结果 |
|---|---|---|
| JS / TS / React / CSS | Vite 热重载 + React Fast Refresh | 窗口内即时生效,不重启 |
| Rust 代码(含依赖的 workspace crate) | 自动重新编译并重启 | 进程重启,内存状态丢失 |
| SQLx 元数据 / SQLite 迁移 | 监听文件变化 | 自动重载 |
⚠️ Rust 侧重载等于重启进程。改端口、登录或认证逻辑前,先读 docs/desktop-session-regression.md 的回归检查项。
认六个关键目录
根 Cargo.toml 是一个 39 个成员 crate 的 Cargo workspace(多个 Rust 包共享依赖与配置的集合)。新手只需先认这六个:
crates/desktop/artcraft/— Tauri 主应用,窗口、配置、能力声明都在这里。crates/api_clients/— 各 AI 提供商的 Rust 客户端:fal、Grok、Sora、Midjourney、World Labs 等。artcraft-native/— 纯 Rust(egui)写的桌面应用,不经过 Web 层。frontend/apps/artcraft/— React + Vite 前端主应用,图像、视频、3D、音频页面都在src/pages/下。frontend/libs/components/— 共享组件库,promptbox、moodboard、video-editor 在其中。_database/sql/artcraft_migrations/— SQLite 任务数据库的迁移文件。
改一行文案,验证热重载
最小可动手的改点是提示词组件里的一行占位文案,改完保存即可验证全链路。
- 打开 frontend/libs/components/promptbox/src/lib/PromptBox2D.tsx,找到 435 行附近的
placeholder="Describe your image..."。 - 把文案改成自己的内容,保存。
- 桌面窗口里的输入框占位文字即时更新,应用没有重启。
这一条路径同时验证了:Vite 在监听文件、热更新通道正常、组件被正确引用。想再验证 Rust 侧,改crates/desktop/artcraft/下任意一个.rs文件,等它重新编译并重启即可。
💡 回滚只需把文案改回去,热重载会再刷一次。
快问快答:五个高频问题
问:端口 5193 被占用了怎么办?答:脚本会自动尝试后续端口;也可以手动设ARTCRAFT_DEV_PORT指定起点。
问:前端依赖没装,脚本会挂吗?答:不会。脚本检查到node_modules/vite缺失就自动执行npm install,你也可在frontend/下手动装。
问:第一次 Rust 编译特别慢?答:正常。依赖全部编完后,后续增量编译快很多。
问:不想连数据库,只想检查 Rust 代码?答:
SQLX_OFFLINE=true cargo check -p artcraft问:怎么产出可安装的分发包?答:执行 script/artcraft/unix_build.sh,它设置VITE_ENVIRONMENT_TYPE=production和SQLX_OFFLINE=true后跑cargo tauri build。📦 产物在crates/desktop/artcraft/target/release/目录。
问:npm install报 ENOTEMPTY 错误?答:多半是 pnpm 残留文件与 npm 冲突。清掉frontend/下的node_modules与 pnpm 相关文件后重装,启动脚本的预检会直接提示。
下一步动作与文档入口
下一步做两件事:在 Prompt 框输入一句提示词,生成你的第一张图;然后改一处 Rust 代码,看整个应用重启一遍。继续深入时,入口是这三个:
- _docs/dev_setup.md — 完整环境清单与启动器行为说明
- docs/desktop-session-regression.md — 改端口、登录逻辑前的回归检查项
- script/artcraft/ — 开发、构建、预览的全部脚本
【免费下载链接】artcraftArtCraft is an intentional crafting engine for artists, designers, and filmmakers项目地址: https://gitcode.com/GitHub_Trending/ar/artcraft
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考