agens-studio 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README-CLI.md ADDED
@@ -0,0 +1,167 @@
1
+ # Agens 创作工作台 CLI
2
+
3
+ 命令行版 AI 图片/视频创作工具,集成 Agnes AI 生成引擎 + MiMo 大模型提示词优化。
4
+
5
+ ## 功能
6
+
7
+ | 编号 | 功能 | 说明 |
8
+ |------|------|------|
9
+ | 1 | 文生图 | 文字描述 → AI 优化提示词 → 生成图片 |
10
+ | 2 | 图生图 | 上传参考图 + 描述修改 → 基于原图生成 |
11
+ | 3 | 文生视频 | 文字描述 → 生成视频 |
12
+ | 4 | 图生视频 | 参考图 + 描述动画效果 → 生成视频 |
13
+ | 5 | 多图生视频 | 多张图 → 生成过渡视频 |
14
+ | 6 | 关键帧动画 | 首帧/尾帧/中间帧 → 生成过渡动画 |
15
+ | 7 | 素材库 | 查看/搜索/管理生成的图片和视频 |
16
+ | 8 | 查看配置 | 查看当前 API 和模型配置 |
17
+ | 9 | 配置 API Key | 重新配置 API 密钥 |
18
+
19
+ ## 快速安装
20
+
21
+ ### Windows(推荐)
22
+
23
+ 1. 下载项目压缩包并解压
24
+ 2. 双击 `install.bat`
25
+ 3. 安装完成后双击 `agens.bat` 启动
26
+
27
+ ### macOS / Linux
28
+
29
+ ```bash
30
+ # 下载并解压后
31
+ chmod +x install.sh
32
+ ./install.sh
33
+ ./agens
34
+ ```
35
+
36
+ ### 已有 Node.js 环境
37
+
38
+ ```bash
39
+ # 克隆或下载项目后
40
+ npm install
41
+ npm run cli
42
+ ```
43
+
44
+ ## 首次运行
45
+
46
+ 首次启动会进入 **Setup Wizard**,引导你配置 API Key:
47
+
48
+ ```
49
+ ╔══════════════════════════════════════════╗
50
+ ║ 欢迎使用 Agens 创作工作台 CLI! ║
51
+ ║ 首次运行需要配置 API Key ║
52
+ ╚══════════════════════════════════════════╝
53
+
54
+ ── Agnes AI API Key ──
55
+ 用于图片生成和视频生成
56
+ Agnes API Key:sk-xxxxxxxxxxxx
57
+
58
+ ── MiMo 大模型 API Key ──
59
+ 用于 AI 提示词优化和识图(可选)
60
+ MiMo API Key (tp- 开头):tp-xxxxxxxxxxxx
61
+ ```
62
+
63
+ 配置保存在 `~/.agens-cli/config.json`,后续启动自动加载。
64
+
65
+ ## API Key 获取
66
+
67
+ | 服务 | 用途 | 获取地址 |
68
+ |------|------|----------|
69
+ | Agnes AI | 图片/视频生成(必需) | https://agnes-ai.com |
70
+ | MiMo | 提示词优化/识图(可选) | https://xiaomimimo.com |
71
+
72
+ ## 配置文件
73
+
74
+ 位置:`~/.agens-cli/config.json`
75
+
76
+ ```json
77
+ {
78
+ "agens_api_key": "sk-xxxxxx",
79
+ "mimo_api_key": "tp-xxxxxx",
80
+ "agens_image_base_url": "https://apihub.agnes-ai.com/v1",
81
+ "mimo_base_url": "https://token-plan-cn.xiaomimimo.com/v1"
82
+ }
83
+ ```
84
+
85
+ 优先级:配置文件 > 环境变量 > 内置默认值
86
+
87
+ ### 环境变量(替代配置文件)
88
+
89
+ ```bash
90
+ # Windows cmd
91
+ set AGENS_IMAGE_API_KEY=sk-xxxxxx
92
+ set AGENS_VIDEO_API_KEY=sk-xxxxxx
93
+ set MIMO_API_KEY=tp-xxxxxx
94
+ node cli.js
95
+
96
+ # macOS / Linux
97
+ AGENS_IMAGE_API_KEY=sk-xxx node cli.js
98
+ ```
99
+
100
+ ## 使用示例
101
+
102
+ ### 文生图
103
+
104
+ ```
105
+ 请选择功能:1
106
+ 描述你想生成的画面:一个穿着汉服的少女站在樱花树下
107
+ 是否用 AI 优化提示词 (Y/n):Y
108
+ [...] 正在优化提示词...
109
+
110
+ ═══ 优化结果 ═══
111
+ [主体] 一位身穿白色汉服的年轻少女
112
+ [场景] 满开的樱花树下,花瓣飘落
113
+ [风格] 电影级写实
114
+ ...
115
+
116
+ 比例 (1:1 / 3:4 / 4:3 / 16:9 / 9:16):9:16
117
+ 风格:[1] 写实摄影
118
+ 开始生成 (Y/n):Y
119
+
120
+ [...] 正在生成图片(Agnes agnes-image-2.1-flash)...
121
+ [...] 正在保存到本地...
122
+
123
+ ═══ 生成完成!═══
124
+ 文件:C:\...\assets\images\xxxx.png
125
+ 大小:2.3 MB
126
+ ```
127
+
128
+ ### 图生视频
129
+
130
+ ```
131
+ 请选择功能:4
132
+ 参考图片路径:C:\Users\...\my_image.png
133
+ 描述动画效果:人物轻微呼吸,头发随风轻摆
134
+
135
+ [...] 正在优化提示词...
136
+ 分辨率 (720p / 1080p):720p
137
+ 时长(秒,3-10):5
138
+
139
+ [...] 正在提交视频任务...
140
+ 任务 ID:abc123
141
+ 轮询进度...
142
+
143
+ ████████████████░░░░░░░░░░░░░░ 53%
144
+
145
+ ═══ 生成完成!═══
146
+ 文件:C:\...\assets\videos\xxxx.mp4
147
+ ```
148
+
149
+ ## 常见问题
150
+
151
+ **Q: 中文显示乱码?**
152
+ 在 cmd 中先执行 `chcp 65001` 切换到 UTF-8 编码。
153
+
154
+ **Q: 图片生成后保存卡住?**
155
+ 可能是 CDN URL 下载超时。已内置 60s 超时 + 自动重试机制。如果持续失败,检查网络连接或换用代理。
156
+
157
+ **Q: 如何修改默认配置?**
158
+ 编辑 `~/.agens-cli/config.json`,或在菜单中选 [9] 重新配置。
159
+
160
+ **Q: 生成的文件保存在哪里?**
161
+ 默认保存在项目目录下的 `assets/images/` 和 `assets/videos/`。
162
+
163
+ ## 要求
164
+
165
+ - Node.js v18+
166
+ - 网络连接(调用 Agnes / MiMo API)
167
+ - Windows 10+ / macOS 12+ / Ubuntu 20.04+
package/README.md ADDED
@@ -0,0 +1,173 @@
1
+ # agens 创作工作台
2
+
3
+ 一个**本地运行**的即梦风格 AI 创作网页,支持生图、四种视频生成模式,以及内置资产库。
4
+
5
+ - 🖼 **生图**:文生图
6
+ - 🎬 **文生视频**:纯文本生成视频
7
+ - 🎞 **图生视频**:单张图片 + 文本生成视频
8
+ - 📚 **多图生视频**:多张图片融合生成视频
9
+ - ⏯ **关键帧动画**:首帧 + 尾帧(可选中间帧)生成过渡动画
10
+ - 🗂 **资产库**:所有生成物自动保存到本地磁盘,可预览 / 保留标记 / 备注 / 删除
11
+
12
+ > 通过 Node 后端代理调用 agens 的视频/生图 API,**API Key 不暴露在浏览器**,大文件直接写入本地磁盘。
13
+
14
+ ---
15
+
16
+ ## 🚀 快速开始
17
+
18
+ ### 1. 安装依赖
19
+
20
+ ```bash
21
+ npm install
22
+ ```
23
+
24
+ ### 2. (可选)配置 agens API
25
+
26
+ 打开 `config.js`,填写你的 agens 接入信息:
27
+
28
+ ```js
29
+ agens: {
30
+ baseUrl: 'https://api.agens.xxx.com/v1', // 你的 API base URL
31
+ apiKey: 'your-api-key-here', // 你的 API Key
32
+ endpoints: {
33
+ generateImage: '/images/generations',
34
+ generateVideo: '/videos/generations',
35
+ taskStatus: '/tasks/{id}',
36
+ },
37
+ }
38
+ ```
39
+
40
+ 也可以用环境变量:
41
+ ```bash
42
+ # Windows cmd
43
+ set AGENS_BASE_URL=https://api.agens.xxx.com/v1
44
+ set AGENS_API_KEY=your-key
45
+ npm start
46
+ ```
47
+
48
+ > ⚠️ 如果不配置,应用会进入 **Mock 模式**:用占位图片和示例视频模拟整个流程,方便你先体验 UI 和功能,配好 API 后自动切换为真实调用。
49
+
50
+ ### 3. 启动
51
+
52
+ ```bash
53
+ npm start
54
+ ```
55
+
56
+ 浏览器打开 **http://localhost:5173** 即可使用。
57
+
58
+ 开发模式(改文件自动重启):
59
+ ```bash
60
+ npm run dev
61
+ ```
62
+
63
+ ---
64
+
65
+ ## 🧭 使用说明
66
+
67
+ ### 创作页
68
+ 1. 顶部选择模式(生图 / 文生视频 / 图生视频 / 多图生视频 / 关键帧动画)
69
+ 2. 填写提示词
70
+ 3. 按需上传参考图(图生 / 多图 / 关键帧模式)—— 支持点击或拖拽
71
+ 4. 调整参数(比例、时长、分辨率、风格等)
72
+ 5. 点 **生成**,右侧任务队列实时显示进度
73
+ 6. 完成后可直接预览,结果自动存入资产库
74
+
75
+ **关键帧动画**:至少上传 2 张图(首帧 + 尾帧),第 3 张及之后会作为中间帧。
76
+
77
+ ### 资产库
78
+ - 按 **全部 / 图片 / 视频** 筛选
79
+ - 搜索提示词或备注
80
+ - 鼠标悬停视频卡片自动播放预览
81
+ - 点击卡片打开详情弹窗:下载 / 标为保留(⭐)/ 编辑备注 / 删除
82
+ - "只看保留" 可过滤出重点资产
83
+
84
+ ---
85
+
86
+ ## 📁 项目结构
87
+
88
+ ```
89
+ agens/
90
+ ├── server.js # Express 入口
91
+ ├── config.js # API Key、端口、路径配置
92
+ ├── package.json
93
+ ├── src/
94
+ │ ├── routes/
95
+ │ │ ├── generate.js # POST /api/generate 生成接口
96
+ │ │ ├── task.js # GET /api/task/:id 任务状态
97
+ │ │ └── assets.js # 资产 CRUD + 图片上传
98
+ │ └── services/
99
+ │ ├── agensClient.js # ★ agens API 适配层(接入真实 API 改这里)
100
+ │ ├── taskManager.js # 异步任务轮询管理
101
+ │ └── assetStore.js # 资产落盘 + 索引
102
+ ├── public/ # 前端(原生 HTML/CSS/JS)
103
+ │ ├── index.html
104
+ │ ├── css/style.css
105
+ │ └── js/{api,create,assets,app}.js
106
+ ├── assets/{images,videos}/ # 生成物(自动创建)
107
+ ├── data/
108
+ │ ├── index.json # 资产元数据索引
109
+ │ └── uploads/ # 用户上传的参考图
110
+ └── test/e2e.js # 端到端测试
111
+ ```
112
+
113
+ ---
114
+
115
+ ## 🔌 API 端点
116
+
117
+ | 方法 | 路径 | 说明 |
118
+ |---|---|---|
119
+ | GET | `/api/health` | 健康检查,返回是否 Mock 模式 |
120
+ | POST | `/api/generate` | 提交生成任务,立即返回 `{taskId}` |
121
+ | GET | `/api/task/:id` | 查询任务状态 |
122
+ | GET | `/api/task` | 最近任务列表 |
123
+ | GET | `/api/assets` | 列资产(支持 type/search/keptOnly/page/pageSize) |
124
+ | GET | `/api/assets/:id` | 单个资产详情 |
125
+ | PUT | `/api/assets/:id` | 更新(kept 保留标记 / note 备注) |
126
+ | DELETE | `/api/assets/:id` | 删除资产(文件 + 索引) |
127
+ | POST | `/api/assets/upload` | 上传参考图(multipart) |
128
+
129
+ ---
130
+
131
+ ## 🛠 接入真实 agens API(阶段 3)
132
+
133
+ 整个项目里**只有一个文件**需要根据 agens 文档修改:`src/services/agensClient.js`。
134
+
135
+ 需要实现三个函数(已留好 TODO 注释和示例):
136
+
137
+ 1. **`generateImage({prompt, params})`** → 返回 `{url, mime, meta}`
138
+ 2. **`generateVideo({mode, prompt, imageUrls, params})`** → 返回 `{remoteTaskId}`
139
+ 3. **`getTaskStatus(remoteTaskId)`** → 返回 `{status, result}`,status 必须映射为 `pending | processing | success | failed`
140
+
141
+ 填好 `config.js` 的 `baseUrl` 和 `apiKey` 后,Mock 模式会自动失效,应用改用真实调用。
142
+
143
+ ---
144
+
145
+ ## 🧪 测试
146
+
147
+ ```bash
148
+ # 先启动服务
149
+ npm start
150
+ # 另开终端跑端到端测试(Mock 模式下验证全部 5 种生成模式 + 上传 + 校验)
151
+ node test/e2e.js
152
+ ```
153
+
154
+ ---
155
+
156
+ ## 📝 技术栈
157
+
158
+ - **后端**:Node.js (v18+) + Express 5
159
+ - **前端**:原生 HTML + CSS + JavaScript(无构建步骤、无框架)
160
+ - **存储**:本地磁盘 + 单个 JSON 索引文件(无需数据库)
161
+
162
+ ---
163
+
164
+ ## ❓ 常见问题
165
+
166
+ **Q:为什么顶部显示 "Mock 模式"?**
167
+ A:`config.js` 里没配置 `baseUrl` / `apiKey`。配好后重启即可。
168
+
169
+ **Q:重启后任务队列空了?**
170
+ A:任务状态存在内存里(单机够用)。但**资产库是持久化的**,生成物不会丢。
171
+
172
+ **Q:资产存在哪里?**
173
+ A:`assets/images/` 和 `assets/videos/`,元数据在 `data/index.json`,可以直接在文件管理器里查看原始文件。