☰
ArtCraft AI 图像生成桌面应用实战指南:三步拉起、看懂机制并改第一行代码
2026/10/19 1:24:58 网站建设 项目流程

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.js20 以上,推荐 v24.13.0nodejs.org 或 nvm
Tauri CLI2.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

脚本内部按固定顺序启动,共六步:

  1. 检查 Node.js 是否 20 以上、cargo-tauri 是否可用。
  2. 检查node_modules/vite是否存在,缺失时自动npm install。
  3. 把 Vite 绑定到127.0.0.1,从 5193 端口开始逐个尝试,直到占到一个可用端口。
  4. 前端 socket 真正绑定后,才把这个精确的devUrl传给 Tauri。
  5. Rust 通过原生 IPC 与前端通信,不再开第二个 HTTP 端口。
  6. Ctrl+C 一次停掉全部:Vite、Rust 监听器、桌面应用。

想换起始端口,加一个环境变量:

ARTCRAFT_DEV_PORT=6200 ./script/artcraft/unix_dev.sh

Windows 用户开两个终端,分别运行(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 / CSSVite 热重载 + React Fast Refresh窗口内即时生效,不重启
Rust 代码(含依赖的 workspace crate)自动重新编译并重启进程重启,内存状态丢失
SQLx 元数据 / SQLite 迁移监听文件变化自动重载

⚠️ Rust 侧重载等于重启进程。改端口、登录或认证逻辑前,先读 docs/desktop-session-regression.md 的回归检查项。

认六个关键目录

根 Cargo.toml 是一个 39 个成员 crate 的 Cargo workspace(多个 Rust 包共享依赖与配置的集合)。新手只需先认这六个:

  1. crates/desktop/artcraft/— Tauri 主应用,窗口、配置、能力声明都在这里。
  2. crates/api_clients/— 各 AI 提供商的 Rust 客户端:fal、Grok、Sora、Midjourney、World Labs 等。
  3. artcraft-native/— 纯 Rust(egui)写的桌面应用,不经过 Web 层。
  4. frontend/apps/artcraft/— React + Vite 前端主应用,图像、视频、3D、音频页面都在src/pages/下。
  5. frontend/libs/components/— 共享组件库,promptbox、moodboard、video-editor 在其中。
  6. _database/sql/artcraft_migrations/— SQLite 任务数据库的迁移文件。

改一行文案,验证热重载

最小可动手的改点是提示词组件里的一行占位文案,改完保存即可验证全链路。

  1. 打开 frontend/libs/components/promptbox/src/lib/PromptBox2D.tsx,找到 435 行附近的placeholder="Describe your image..."。
  2. 把文案改成自己的内容,保存。
  3. 桌面窗口里的输入框占位文字即时更新,应用没有重启。

这一条路径同时验证了: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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询