MkImage
了解如何部署 MkImage - 基于 TanStarter 构建的 AI 生图网站
MkImage 是一个基于 TanStarter 模板开发的 AI 生图网站。源码可在 mkfast-app 获取。
由于 MkImage 基于 TanStarter 模板开发,配置和部署流程与模板基本一致。请参考 快速开始、环境配置 和 网站部署 文档完成基础设置。
本文档重点介绍 MkImage 特有的额外配置。
AI 生图模型服务商
MkImage 支持两个 AI 生图服务商。你需要注册账号并在其管理后台生成 API Key。
Fal.ai 是一个快速的 AI 模型推理平台。
IMAGE_MODEL_PROVIDER='fal'
FAL_KEY='your-fal-api-key'APIMart 是一个提供多种 AI 模型访问的 API 市场。
- 在 apimart.com 创建账号
- 进入管理后台的 API Keys 管理页面
- 生成新的 API Key
- 复制密钥并设置为
APIMART_KEY环境变量
IMAGE_MODEL_PROVIDER='apimart'
APIMART_KEY='your-apimart-api-key'其他生图相关配置
| 变量 | 说明 |
|---|---|
| IMAGE_MODEL_PROVIDER | 生图服务商:fal 或 apimart |
| VITE_SHOW_IMAGE_PROVIDER | 在生成页面显示服务商选择器(true/false) |
| VITE_ENABLE_IMAGE_GENERATION | 启用生图功能(true/false) |
存储(Cloudflare R2)
MkImage 使用 Cloudflare R2 来存储提示词数据和提示词预览图片。你需要配置 R2 来导入和展示这些内容。
创建 Cloudflare R2 存储桶
- 在 cloudflare.com 创建 Cloudflare 账户
- 创建新的 R2 存储桶:
- 选择全局唯一的存储桶名称(例如
mkimage) - 选择靠近目标受众的区域
- 选择全局唯一的存储桶名称(例如
启用公共访问
允许对存储桶的公共访问:
Settings>Public Development URL,点击Enable- 将公共访问 URL 保存为
R2_PUBLIC_URL - 为存储桶的公共访问设置自定义域名(推荐使用自定义域名以提高安全性)
创建 API 令牌
创建新的 API 令牌:
Storage & databases>R2 object storage>API Tokens>Manage,点击Create User API Token- 将权限设置为对存储桶的
Object Read & Write - 创建 API 令牌,获取
Access Key ID和Secret Access Key
设置环境变量
设置以下环境变量:
R2_BUCKET_NAME='your-bucket-name'
R2_ACCESS_KEY_ID='your-access-key-id'
R2_SECRET_ACCESS_KEY='your-secret-access-key'
R2_PUBLIC_URL='https://your-r2-public-url.com'导入内置提示词
MkImage 内置了一套提示词数据集,你可以将其导入到数据库中。导入脚本会将提示词数据和预览图片同步到 D1 数据库和 R2 存储。
常用参数
同步脚本支持以下可选参数:
| 参数 | 说明 |
|---|---|
--limit=<n> | 只导入前 N 条记录(适合测试) |
--skip-images | 跳过图片下载/上传(仅导入文本) |
--force | 强制重新导入已存在的提示词 |
--dry-run | 预览变更,不写入 DB/R2 |
--concurrency=<n> | 并行导入数量(默认:10) |
更新提示词
未来更新提示词数据集:
# 拉取最新数据集
pnpm prompt:download
# 先同步到本地验证
pnpm prompts:sync:local
# 确认无误后同步到生产环境
pnpm prompts:sync:remote已存在的提示词默认会被跳过,只有新提示词和缺失的图片会被导入,除非你传入 --force 参数。
环境变量汇总
以下是在 TanStarter 基础配置之上,MkImage 需要额外配置的所有环境变量:
# 生图服务商 (apimart 或 fal)
IMAGE_MODEL_PROVIDER='apimart'
VITE_SHOW_IMAGE_PROVIDER='false'
VITE_ENABLE_IMAGE_GENERATION='true'
# Fal
FAL_KEY=''
# APIMart
APIMART_KEY=''
# 存储 (R2) - 用于提示词和提示词图片
R2_BUCKET_NAME=''
R2_ACCESS_KEY_ID=''
R2_SECRET_ACCESS_KEY=''
R2_PUBLIC_URL=''
TanStarter 文档