@optima-chat/comfy-cli 0.3.3 → 0.4.1
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/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +129 -28
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/download.d.ts.map +1 -1
- package/dist/commands/download.js +119 -33
- package/dist/commands/download.js.map +1 -1
- package/dist/commands/edit.d.ts.map +1 -1
- package/dist/commands/edit.js +73 -23
- package/dist/commands/edit.js.map +1 -1
- package/dist/commands/generate.d.ts.map +1 -1
- package/dist/commands/generate.js +67 -15
- package/dist/commands/generate.js.map +1 -1
- package/dist/commands/interrupt.d.ts.map +1 -1
- package/dist/commands/interrupt.js +42 -7
- package/dist/commands/interrupt.js.map +1 -1
- package/dist/commands/model.d.ts.map +1 -1
- package/dist/commands/model.js +49 -11
- package/dist/commands/model.js.map +1 -1
- package/dist/commands/node.d.ts.map +1 -1
- package/dist/commands/node.js +96 -18
- package/dist/commands/node.js.map +1 -1
- package/dist/commands/queue.d.ts.map +1 -1
- package/dist/commands/queue.js +127 -25
- package/dist/commands/queue.js.map +1 -1
- package/dist/commands/system.d.ts.map +1 -1
- package/dist/commands/system.js +48 -10
- package/dist/commands/system.js.map +1 -1
- package/dist/commands/video.d.ts.map +1 -1
- package/dist/commands/video.js +86 -25
- package/dist/commands/video.js.map +1 -1
- package/dist/commands/workflow.d.ts.map +1 -1
- package/dist/commands/workflow.js +141 -34
- package/dist/commands/workflow.js.map +1 -1
- package/dist/index.js +35 -2
- package/dist/index.js.map +1 -1
- package/dist/utils/helpText.d.ts +15 -0
- package/dist/utils/helpText.d.ts.map +1 -0
- package/dist/utils/helpText.js +37 -0
- package/dist/utils/helpText.js.map +1 -0
- package/dist/utils/output.d.ts +54 -0
- package/dist/utils/output.d.ts.map +1 -0
- package/dist/utils/output.js +76 -0
- package/dist/utils/output.js.map +1 -0
- package/package.json +1 -1
package/dist/commands/queue.js
CHANGED
|
@@ -1,23 +1,22 @@
|
|
|
1
1
|
import { ComfyAPIClient } from '../services/api.js';
|
|
2
|
-
import { success,
|
|
2
|
+
import { success, info } from '../utils/logger.js';
|
|
3
|
+
import { outputSuccess, outputError, isPrettyMode } from '../utils/output.js';
|
|
4
|
+
import { addEnhancedHelp } from '../utils/helpText.js';
|
|
3
5
|
import Table from 'cli-table3';
|
|
4
6
|
export function registerQueueCommand(program) {
|
|
5
7
|
const queueCmd = program
|
|
6
8
|
.command('queue')
|
|
7
9
|
.description('队列管理');
|
|
8
10
|
// comfy queue status
|
|
9
|
-
queueCmd
|
|
11
|
+
const statusCmd = queueCmd
|
|
10
12
|
.command('status')
|
|
11
|
-
.description('查看队列状态')
|
|
12
|
-
.option('--json', '输出 JSON 格式')
|
|
13
|
+
.description('查看队列状态 - 查看 ComfyUI 当前正在执行和等待的任务')
|
|
13
14
|
.action(async (options) => {
|
|
15
|
+
const pretty = isPrettyMode(options);
|
|
14
16
|
try {
|
|
15
17
|
const client = new ComfyAPIClient();
|
|
16
18
|
const queue = await client.getQueue();
|
|
17
|
-
if (
|
|
18
|
-
console.log(JSON.stringify(queue, null, 2));
|
|
19
|
-
}
|
|
20
|
-
else {
|
|
19
|
+
if (pretty) {
|
|
21
20
|
const running = queue.queue_running || [];
|
|
22
21
|
const pending = queue.queue_pending || [];
|
|
23
22
|
console.log(`\n📊 队列状态\n`);
|
|
@@ -51,47 +50,150 @@ export function registerQueueCommand(program) {
|
|
|
51
50
|
info('✓ 无等待任务');
|
|
52
51
|
}
|
|
53
52
|
}
|
|
53
|
+
else {
|
|
54
|
+
const running = (queue.queue_running || []).map((item, index) => ({
|
|
55
|
+
position: index + 1,
|
|
56
|
+
prompt_id: item[1] || null,
|
|
57
|
+
node_count: item[2]?.length || 0,
|
|
58
|
+
}));
|
|
59
|
+
const pending = (queue.queue_pending || []).map((item, index) => ({
|
|
60
|
+
position: index + 1,
|
|
61
|
+
prompt_id: item[1] || null,
|
|
62
|
+
node_count: item[2]?.length || 0,
|
|
63
|
+
}));
|
|
64
|
+
outputSuccess({
|
|
65
|
+
running,
|
|
66
|
+
pending,
|
|
67
|
+
running_count: running.length,
|
|
68
|
+
pending_count: pending.length,
|
|
69
|
+
});
|
|
70
|
+
}
|
|
54
71
|
}
|
|
55
72
|
catch (err) {
|
|
56
|
-
|
|
57
|
-
process.exit(1);
|
|
73
|
+
outputError('QUEUE_STATUS_FAILED', `获取队列状态失败: ${err}`, options);
|
|
58
74
|
}
|
|
59
75
|
});
|
|
76
|
+
// Add enhanced help for status command
|
|
77
|
+
addEnhancedHelp(statusCmd, {
|
|
78
|
+
examples: [
|
|
79
|
+
'# 查看队列状态(JSON 模式)',
|
|
80
|
+
'$ comfy queue status',
|
|
81
|
+
'',
|
|
82
|
+
'# Pretty 模式',
|
|
83
|
+
'$ comfy queue status --pretty',
|
|
84
|
+
],
|
|
85
|
+
outputJson: `{
|
|
86
|
+
"success": true,
|
|
87
|
+
"data": {
|
|
88
|
+
"running": [],
|
|
89
|
+
"pending": [],
|
|
90
|
+
"running_count": 0,
|
|
91
|
+
"pending_count": 0
|
|
92
|
+
}
|
|
93
|
+
}`,
|
|
94
|
+
relatedCommands: [
|
|
95
|
+
{ command: 'queue clear --confirm', description: '清空队列' },
|
|
96
|
+
{ command: 'queue delete <id>', description: '删除指定任务' },
|
|
97
|
+
{ command: 'interrupt', description: '中断当前执行' },
|
|
98
|
+
],
|
|
99
|
+
notes: [
|
|
100
|
+
'running: 正在执行的任务列表',
|
|
101
|
+
'pending: 等待执行的任务列表',
|
|
102
|
+
'每个任务包含 prompt_id 和节点数量信息',
|
|
103
|
+
],
|
|
104
|
+
});
|
|
60
105
|
// comfy queue clear
|
|
61
|
-
queueCmd
|
|
106
|
+
const clearCmd = queueCmd
|
|
62
107
|
.command('clear')
|
|
63
|
-
.description('清空队列')
|
|
64
|
-
.option('--confirm', '
|
|
108
|
+
.description('清空队列 - 清空所有等待中的任务(需要确认)')
|
|
109
|
+
.option('--confirm', '确认清空(必需)')
|
|
65
110
|
.action(async (options) => {
|
|
111
|
+
const pretty = isPrettyMode(options);
|
|
66
112
|
try {
|
|
67
113
|
if (!options.confirm) {
|
|
68
|
-
|
|
69
|
-
process.exit(1);
|
|
114
|
+
outputError('CONFIRM_REQUIRED', '请使用 --confirm 确认清空操作', options);
|
|
70
115
|
}
|
|
71
116
|
const client = new ComfyAPIClient();
|
|
72
117
|
await client.clearQueue();
|
|
73
|
-
|
|
118
|
+
if (pretty) {
|
|
119
|
+
success('队列已清空');
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
outputSuccess({ message: '队列已清空' });
|
|
123
|
+
}
|
|
74
124
|
}
|
|
75
125
|
catch (err) {
|
|
76
|
-
|
|
77
|
-
process.exit(1);
|
|
126
|
+
outputError('QUEUE_CLEAR_FAILED', `清空队列失败: ${err}`, options);
|
|
78
127
|
}
|
|
79
128
|
});
|
|
129
|
+
// Add enhanced help for clear command
|
|
130
|
+
addEnhancedHelp(clearCmd, {
|
|
131
|
+
examples: [
|
|
132
|
+
'# 清空队列(需要 --confirm)',
|
|
133
|
+
'$ comfy queue clear --confirm',
|
|
134
|
+
],
|
|
135
|
+
outputJson: `{
|
|
136
|
+
"success": true,
|
|
137
|
+
"data": {
|
|
138
|
+
"message": "队列已清空"
|
|
139
|
+
}
|
|
140
|
+
}`,
|
|
141
|
+
relatedCommands: [
|
|
142
|
+
{ command: 'queue status', description: '查看队列状态' },
|
|
143
|
+
{ command: 'queue delete <id>', description: '删除单个任务' },
|
|
144
|
+
],
|
|
145
|
+
notes: [
|
|
146
|
+
'必须使用 --confirm 选项才能执行',
|
|
147
|
+
'只清空等待中的任务,不影响正在执行的任务',
|
|
148
|
+
'此操作不可撤销',
|
|
149
|
+
],
|
|
150
|
+
});
|
|
80
151
|
// comfy queue delete
|
|
81
|
-
queueCmd
|
|
152
|
+
const deleteCmd = queueCmd
|
|
82
153
|
.command('delete')
|
|
83
|
-
.description('删除指定队列项')
|
|
84
|
-
.argument('<item_id>', '队列项 ID')
|
|
85
|
-
.action(async (itemId) => {
|
|
154
|
+
.description('删除指定队列项 - 从队列中删除指定的任务')
|
|
155
|
+
.argument('<item_id>', '队列项 ID(从 queue status 获取)')
|
|
156
|
+
.action(async (itemId, options) => {
|
|
157
|
+
const pretty = isPrettyMode(options);
|
|
86
158
|
try {
|
|
87
159
|
const client = new ComfyAPIClient();
|
|
88
160
|
await client.deleteQueueItem(itemId);
|
|
89
|
-
|
|
161
|
+
if (pretty) {
|
|
162
|
+
success(`已删除队列项: ${itemId}`);
|
|
163
|
+
}
|
|
164
|
+
else {
|
|
165
|
+
outputSuccess({
|
|
166
|
+
message: '已删除队列项',
|
|
167
|
+
item_id: itemId
|
|
168
|
+
});
|
|
169
|
+
}
|
|
90
170
|
}
|
|
91
171
|
catch (err) {
|
|
92
|
-
|
|
93
|
-
process.exit(1);
|
|
172
|
+
outputError('QUEUE_DELETE_FAILED', `删除失败: ${err}`, options);
|
|
94
173
|
}
|
|
95
174
|
});
|
|
175
|
+
// Add enhanced help for delete command
|
|
176
|
+
addEnhancedHelp(deleteCmd, {
|
|
177
|
+
examples: [
|
|
178
|
+
'# 删除指定队列项',
|
|
179
|
+
'$ comfy queue delete abc-123-def',
|
|
180
|
+
],
|
|
181
|
+
outputJson: `{
|
|
182
|
+
"success": true,
|
|
183
|
+
"data": {
|
|
184
|
+
"message": "已删除队列项",
|
|
185
|
+
"item_id": "abc-123-def"
|
|
186
|
+
}
|
|
187
|
+
}`,
|
|
188
|
+
relatedCommands: [
|
|
189
|
+
{ command: 'queue status', description: '查看队列获取 item_id' },
|
|
190
|
+
{ command: 'queue clear --confirm', description: '清空所有队列' },
|
|
191
|
+
],
|
|
192
|
+
notes: [
|
|
193
|
+
'item_id 从 queue status 命令获取',
|
|
194
|
+
'只能删除等待中的任务',
|
|
195
|
+
'正在执行的任务需要使用 interrupt 命令',
|
|
196
|
+
],
|
|
197
|
+
});
|
|
96
198
|
}
|
|
97
199
|
//# sourceMappingURL=queue.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queue.js","sourceRoot":"","sources":["../../src/commands/queue.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"queue.js","sourceRoot":"","sources":["../../src/commands/queue.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system.d.ts","sourceRoot":"","sources":["../../src/commands/system.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"system.d.ts","sourceRoot":"","sources":["../../src/commands/system.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,QAoFrD"}
|
package/dist/commands/system.js
CHANGED
|
@@ -1,23 +1,22 @@
|
|
|
1
1
|
import { ComfyAPIClient } from '../services/api.js';
|
|
2
|
-
import {
|
|
2
|
+
import { info } from '../utils/logger.js';
|
|
3
|
+
import { outputSuccess, outputError, isPrettyMode } from '../utils/output.js';
|
|
4
|
+
import { addEnhancedHelp } from '../utils/helpText.js';
|
|
3
5
|
import Table from 'cli-table3';
|
|
4
6
|
export function registerSystemCommand(program) {
|
|
5
7
|
const systemCmd = program
|
|
6
8
|
.command('system')
|
|
7
9
|
.description('系统信息');
|
|
8
10
|
// comfy system stats
|
|
9
|
-
systemCmd
|
|
11
|
+
const statsCmd = systemCmd
|
|
10
12
|
.command('stats')
|
|
11
|
-
.description('查看系统统计信息')
|
|
12
|
-
.option('--json', '输出 JSON 格式')
|
|
13
|
+
.description('查看系统统计信息 - 查看 ComfyUI 服务器的系统资源和设备状态')
|
|
13
14
|
.action(async (options) => {
|
|
15
|
+
const pretty = isPrettyMode(options);
|
|
14
16
|
try {
|
|
15
17
|
const client = new ComfyAPIClient();
|
|
16
18
|
const stats = await client.getSystemStats();
|
|
17
|
-
if (
|
|
18
|
-
console.log(JSON.stringify(stats, null, 2));
|
|
19
|
-
}
|
|
20
|
-
else {
|
|
19
|
+
if (pretty) {
|
|
21
20
|
console.log(`\n💻 系统状态\n`);
|
|
22
21
|
if (stats.system) {
|
|
23
22
|
const table = new Table({
|
|
@@ -37,11 +36,50 @@ export function registerSystemCommand(program) {
|
|
|
37
36
|
});
|
|
38
37
|
}
|
|
39
38
|
}
|
|
39
|
+
else {
|
|
40
|
+
outputSuccess(stats);
|
|
41
|
+
}
|
|
40
42
|
}
|
|
41
43
|
catch (err) {
|
|
42
|
-
|
|
43
|
-
process.exit(1);
|
|
44
|
+
outputError('SYSTEM_STATS_FAILED', `获取系统信息失败: ${err}`, options);
|
|
44
45
|
}
|
|
45
46
|
});
|
|
47
|
+
// Add enhanced help for stats command
|
|
48
|
+
addEnhancedHelp(statsCmd, {
|
|
49
|
+
examples: [
|
|
50
|
+
'# 查看系统统计信息',
|
|
51
|
+
'$ comfy system stats',
|
|
52
|
+
'',
|
|
53
|
+
'# Pretty 模式',
|
|
54
|
+
'$ comfy system stats --pretty',
|
|
55
|
+
],
|
|
56
|
+
outputJson: `{
|
|
57
|
+
"success": true,
|
|
58
|
+
"data": {
|
|
59
|
+
"system": {
|
|
60
|
+
"os": "linux",
|
|
61
|
+
"python_version": "3.10.12",
|
|
62
|
+
"pytorch_version": "2.0.1"
|
|
63
|
+
},
|
|
64
|
+
"devices": [
|
|
65
|
+
{
|
|
66
|
+
"name": "NVIDIA GeForce RTX 4090",
|
|
67
|
+
"type": "cuda",
|
|
68
|
+
"vram_total": 24564,
|
|
69
|
+
"vram_free": 18432
|
|
70
|
+
}
|
|
71
|
+
]
|
|
72
|
+
}
|
|
73
|
+
}`,
|
|
74
|
+
relatedCommands: [
|
|
75
|
+
{ command: 'queue status', description: '查看队列状态' },
|
|
76
|
+
{ command: 'model list', description: '列出可用模型' },
|
|
77
|
+
],
|
|
78
|
+
notes: [
|
|
79
|
+
'显示 ComfyUI 服务器的系统信息',
|
|
80
|
+
'包含 CPU、内存、GPU 等硬件信息',
|
|
81
|
+
'用于诊断性能问题和资源使用情况',
|
|
82
|
+
],
|
|
83
|
+
});
|
|
46
84
|
}
|
|
47
85
|
//# sourceMappingURL=system.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system.js","sourceRoot":"","sources":["../../src/commands/system.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"system.js","sourceRoot":"","sources":["../../src/commands/system.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"video.d.ts","sourceRoot":"","sources":["../../src/commands/video.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"video.d.ts","sourceRoot":"","sources":["../../src/commands/video.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAWpC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,QA2KpD"}
|
package/dist/commands/video.js
CHANGED
|
@@ -3,41 +3,50 @@ import * as fs from 'fs';
|
|
|
3
3
|
import ora from 'ora';
|
|
4
4
|
import { ComfyAPIClient } from '../services/api.js';
|
|
5
5
|
import { loadWorkflow, getBuiltinWorkflowPath, replaceVariables } from '../utils/workflow.js';
|
|
6
|
-
import { success,
|
|
6
|
+
import { success, info } from '../utils/logger.js';
|
|
7
|
+
import { outputSuccess, outputError, isPrettyMode } from '../utils/output.js';
|
|
8
|
+
import { addEnhancedHelp } from '../utils/helpText.js';
|
|
7
9
|
import { monitorProgress } from '../services/websocket.js';
|
|
8
10
|
export function registerVideoCommand(program) {
|
|
9
|
-
program
|
|
11
|
+
const cmd = program
|
|
10
12
|
.command('video')
|
|
11
|
-
.description('
|
|
13
|
+
.description('生成视频(图生视频)- 使用 Wan2.1 模型将静态图像转换为动态视频')
|
|
12
14
|
.argument('<image>', '输入图像路径')
|
|
13
|
-
.option('-p, --prompt <text>', '
|
|
15
|
+
.option('-p, --prompt <text>', '运动描述提示词(如 "camera zoom in")', '')
|
|
14
16
|
.option('-n, --negative <text>', '负向提示词', '')
|
|
15
|
-
.option('-o, --output <dir>', '输出目录', './output')
|
|
16
|
-
.option('--width <number>', '视频宽度', '512')
|
|
17
|
-
.option('--height <number>', '视频高度', '512')
|
|
18
|
-
.option('--no-wait', '
|
|
19
|
-
.option('--json', '输出 JSON 格式')
|
|
17
|
+
.option('-o, --output <dir>', '输出目录 (默认: ./output)', './output')
|
|
18
|
+
.option('--width <number>', '视频宽度 (默认: 512)', '512')
|
|
19
|
+
.option('--height <number>', '视频高度 (默认: 512)', '512')
|
|
20
|
+
.option('--no-wait', '提交任务后立即返回,不等待生成完成')
|
|
20
21
|
.action(async (image, options) => {
|
|
22
|
+
const pretty = isPrettyMode(options);
|
|
21
23
|
try {
|
|
22
24
|
// 检查图像文件是否存在
|
|
23
25
|
const imagePath = path.resolve(image);
|
|
24
26
|
if (!fs.existsSync(imagePath)) {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
+
outputError('IMAGE_NOT_FOUND', `图像文件不存在: ${imagePath}`, options);
|
|
28
|
+
}
|
|
29
|
+
if (pretty) {
|
|
30
|
+
info(`正在生成视频: "${path.basename(image)}"`);
|
|
27
31
|
}
|
|
28
|
-
info(`正在生成视频: "${path.basename(image)}"`);
|
|
29
32
|
// 先上传图像
|
|
30
|
-
const uploadSpinner = ora('正在上传图像...').start();
|
|
31
33
|
const client = new ComfyAPIClient();
|
|
32
34
|
let uploadResult;
|
|
33
|
-
|
|
35
|
+
if (pretty) {
|
|
36
|
+
const uploadSpinner = ora('正在上传图像...').start();
|
|
37
|
+
try {
|
|
38
|
+
const imageBuffer = fs.readFileSync(imagePath);
|
|
39
|
+
uploadResult = await client.uploadImage(imageBuffer, path.basename(imagePath));
|
|
40
|
+
uploadSpinner.succeed('图像上传完成');
|
|
41
|
+
}
|
|
42
|
+
catch (err) {
|
|
43
|
+
uploadSpinner.fail('图像上传失败');
|
|
44
|
+
throw err;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
34
48
|
const imageBuffer = fs.readFileSync(imagePath);
|
|
35
49
|
uploadResult = await client.uploadImage(imageBuffer, path.basename(imagePath));
|
|
36
|
-
uploadSpinner.succeed('图像上传完成');
|
|
37
|
-
}
|
|
38
|
-
catch (err) {
|
|
39
|
-
uploadSpinner.fail('图像上传失败');
|
|
40
|
-
throw err;
|
|
41
50
|
}
|
|
42
51
|
// 加载内置 workflow
|
|
43
52
|
const workflowPath = getBuiltinWorkflowPath('wan_image_to_video.json');
|
|
@@ -67,10 +76,7 @@ export function registerVideoCommand(program) {
|
|
|
67
76
|
const processedWorkflow = replaceVariables(workflow, params);
|
|
68
77
|
// 提交到 ComfyUI
|
|
69
78
|
const result = await client.submitWorkflow(processedWorkflow);
|
|
70
|
-
if (
|
|
71
|
-
console.log(JSON.stringify(result, null, 2));
|
|
72
|
-
}
|
|
73
|
-
else {
|
|
79
|
+
if (pretty) {
|
|
74
80
|
success(`视频生成任务已提交`);
|
|
75
81
|
info(`Prompt ID: ${result.prompt_id}`);
|
|
76
82
|
info(`帧数: ${params.frames}, FPS: ${params.fps}, 时长: ${(params.frames / params.fps).toFixed(1)}秒`);
|
|
@@ -102,11 +108,66 @@ export function registerVideoCommand(program) {
|
|
|
102
108
|
info(`使用 'comfy download ${result.prompt_id}' 下载结果`);
|
|
103
109
|
}
|
|
104
110
|
}
|
|
111
|
+
else {
|
|
112
|
+
outputSuccess({
|
|
113
|
+
prompt_id: result.prompt_id,
|
|
114
|
+
image: path.basename(image),
|
|
115
|
+
width: params.width,
|
|
116
|
+
height: params.height,
|
|
117
|
+
frames: params.frames,
|
|
118
|
+
fps: params.fps,
|
|
119
|
+
duration: parseFloat((params.frames / params.fps).toFixed(1)),
|
|
120
|
+
status: options.wait !== false ? 'submitted_waiting' : 'submitted',
|
|
121
|
+
});
|
|
122
|
+
}
|
|
105
123
|
}
|
|
106
124
|
catch (err) {
|
|
107
|
-
|
|
108
|
-
process.exit(1);
|
|
125
|
+
outputError('VIDEO_FAILED', `生成失败: ${err}`, options);
|
|
109
126
|
}
|
|
110
127
|
});
|
|
128
|
+
// Add enhanced help text
|
|
129
|
+
addEnhancedHelp(cmd, {
|
|
130
|
+
examples: [
|
|
131
|
+
'# 基础用法:图像转视频',
|
|
132
|
+
'$ comfy video landscape.png',
|
|
133
|
+
'',
|
|
134
|
+
'# 添加运动提示词',
|
|
135
|
+
'$ comfy video photo.jpg --prompt "camera zoom in"',
|
|
136
|
+
'',
|
|
137
|
+
'# 指定视频尺寸',
|
|
138
|
+
'$ comfy video image.png --width 720 --height 480',
|
|
139
|
+
'',
|
|
140
|
+
'# 不等待完成',
|
|
141
|
+
'$ comfy video sunset.png --no-wait',
|
|
142
|
+
'',
|
|
143
|
+
'# Pretty 模式',
|
|
144
|
+
'$ comfy video cat.png --prompt "cat walking" --pretty',
|
|
145
|
+
],
|
|
146
|
+
outputJson: `{
|
|
147
|
+
"success": true,
|
|
148
|
+
"data": {
|
|
149
|
+
"prompt_id": "abc-123-def",
|
|
150
|
+
"image": "landscape.png",
|
|
151
|
+
"width": 512,
|
|
152
|
+
"height": 512,
|
|
153
|
+
"frames": 33,
|
|
154
|
+
"fps": 8,
|
|
155
|
+
"duration": 4.1,
|
|
156
|
+
"status": "submitted_waiting"
|
|
157
|
+
}
|
|
158
|
+
}`,
|
|
159
|
+
relatedCommands: [
|
|
160
|
+
{ command: 'download <prompt_id>', description: '下载生成的视频' },
|
|
161
|
+
{ command: 'generate <prompt>', description: '生成新图像' },
|
|
162
|
+
{ command: 'edit <image> <prompt>', description: '编辑现有图像' },
|
|
163
|
+
],
|
|
164
|
+
notes: [
|
|
165
|
+
'默认使用 Wan2.1 模型,生成 4.1 秒视频(33 帧 @ 8 FPS)',
|
|
166
|
+
'图像会先上传到 ComfyUI 服务器',
|
|
167
|
+
'支持常见图像格式:PNG, JPG, JPEG',
|
|
168
|
+
'建议图像尺寸为 512x512 以获得最佳效果',
|
|
169
|
+
'视频生成时间较长,建议使用 --no-wait 立即返回',
|
|
170
|
+
],
|
|
171
|
+
});
|
|
111
172
|
}
|
|
112
173
|
//# sourceMappingURL=video.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"video.js","sourceRoot":"","sources":["../../src/commands/video.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC9F,OAAO,EAAE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"video.js","sourceRoot":"","sources":["../../src/commands/video.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC9F,OAAO,EAAE,OAAO,EAAS,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE3D,MAAM,UAAU,oBAAoB,CAAC,OAAgB;IACnD,MAAM,GAAG,GAAG,OAAO;SAChB,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,sCAAsC,CAAC;SACnD,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC;SAC7B,MAAM,CAAC,qBAAqB,EAAE,6BAA6B,EAAE,EAAE,CAAC;SAChE,MAAM,CAAC,uBAAuB,EAAE,OAAO,EAAE,EAAE,CAAC;SAC5C,MAAM,CAAC,oBAAoB,EAAE,qBAAqB,EAAE,UAAU,CAAC;SAC/D,MAAM,CAAC,kBAAkB,EAAE,gBAAgB,EAAE,KAAK,CAAC;SACnD,MAAM,CAAC,mBAAmB,EAAE,gBAAgB,EAAE,KAAK,CAAC;SACpD,MAAM,CAAC,WAAW,EAAE,mBAAmB,CAAC;SACxC,MAAM,CAAC,KAAK,EAAE,KAAa,EAAE,OAAO,EAAE,EAAE;QACvC,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;QAErC,IAAI,CAAC;YACH,aAAa;YACb,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACtC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC9B,WAAW,CAAC,iBAAiB,EAAE,YAAY,SAAS,EAAE,EAAE,OAAO,CAAC,CAAC;YACnE,CAAC;YAED,IAAI,MAAM,EAAE,CAAC;gBACX,IAAI,CAAC,YAAY,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5C,CAAC;YAED,QAAQ;YACR,MAAM,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;YACpC,IAAI,YAAY,CAAC;YAEjB,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,aAAa,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,CAAC;gBAC/C,IAAI,CAAC;oBACH,MAAM,WAAW,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;oBAC/C,YAAY,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;oBAC/E,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAClC,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAC7B,MAAM,GAAG,CAAC;gBACZ,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,WAAW,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;gBAC/C,YAAY,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;YACjF,CAAC;YAED,gBAAgB;YAChB,MAAM,YAAY,GAAG,sBAAsB,CAAC,yBAAyB,CAAC,CAAC;YACvE,MAAM,QAAQ,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;YAE5C,OAAO;YACP,MAAM,MAAM,GAAG;gBACb,WAAW,EAAE,YAAY,CAAC,IAAI;gBAC9B,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,eAAe,EAAE,OAAO,CAAC,QAAQ,IAAI,2IAA2I;gBAChL,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC;gBAC9B,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC;gBAChC,MAAM,EAAE,EAAE,EAAG,QAAQ;gBACrB,GAAG,EAAE,CAAC,EAAG,QAAQ;gBACjB,KAAK,EAAE,EAAE,EAAG,QAAQ;gBACpB,SAAS,EAAE,GAAG,EAAG,QAAQ;gBACzB,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,EAAG,OAAO;gBACnD,OAAO,EAAE,QAAQ;gBACjB,SAAS,EAAE,QAAQ;gBACnB,UAAU,EAAE,mDAAmD;gBAC/D,UAAU,EAAE,wCAAwC;gBACpD,iBAAiB,EAAE,2BAA2B;gBAC9C,SAAS,EAAE,yBAAyB;gBACpC,KAAK,EAAE,GAAG;gBACV,eAAe,EAAE,iBAAiB;aACnC,CAAC;YAEF,OAAO;YACP,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAE7D,cAAc;YACd,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;YAE9D,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,CAAC,WAAW,CAAC,CAAC;gBACrB,IAAI,CAAC,cAAc,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;gBACvC,IAAI,CAAC,OAAO,MAAM,CAAC,MAAM,UAAU,MAAM,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBAElG,yBAAyB;gBACzB,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;oBAC3B,MAAM,OAAO,GAAG,GAAG,CAAC,mBAAmB,CAAC,CAAC,KAAK,EAAE,CAAC;oBAEjD,IAAI,CAAC;wBACH,MAAM,eAAe,CACnB,MAAM,CAAC,SAAS,EAChB,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;4BAC1B,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;gCACd,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;gCACpD,OAAO,CAAC,IAAI,GAAG,QAAQ,OAAO,MAAM,OAAO,IAAI,KAAK,GAAG,CAAC;gCACxD,OAAO,CAAC,MAAM,EAAE,CAAC;4BACnB,CAAC;iCAAM,CAAC;gCACN,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC;gCACvB,OAAO,CAAC,MAAM,EAAE,CAAC;4BACnB,CAAC;wBACH,CAAC,EACD,GAAG,EAAE;4BACH,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;wBAC7B,CAAC,CACF,CAAC;wBACF,IAAI,CAAC,sBAAsB,MAAM,CAAC,SAAS,QAAQ,CAAC,CAAC;oBACvD,CAAC;oBAAC,OAAO,GAAQ,EAAE,CAAC;wBAClB,OAAO,CAAC,IAAI,CAAC,WAAW,GAAG,EAAE,OAAO,IAAI,GAAG,EAAE,CAAC,CAAC;wBAC/C,IAAI,CAAC,sBAAsB,MAAM,CAAC,SAAS,QAAQ,CAAC,CAAC;oBACvD,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,sBAAsB,MAAM,CAAC,SAAS,QAAQ,CAAC,CAAC;gBACvD,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,aAAa,CAAC;oBACZ,SAAS,EAAE,MAAM,CAAC,SAAS;oBAC3B,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;oBAC3B,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,GAAG,EAAE,MAAM,CAAC,GAAG;oBACf,QAAQ,EAAE,UAAU,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;oBAC7D,MAAM,EAAE,OAAO,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,WAAW;iBACnE,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,WAAW,CAAC,cAAc,EAAE,SAAS,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;QACvD,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,yBAAyB;IACzB,eAAe,CAAC,GAAG,EAAE;QACnB,QAAQ,EAAE;YACR,cAAc;YACd,6BAA6B;YAC7B,EAAE;YACF,WAAW;YACX,mDAAmD;YACnD,EAAE;YACF,UAAU;YACV,kDAAkD;YAClD,EAAE;YACF,SAAS;YACT,oCAAoC;YACpC,EAAE;YACF,aAAa;YACb,uDAAuD;SACxD;QACD,UAAU,EAAE;;;;;;;;;;;;EAYd;QACE,eAAe,EAAE;YACf,EAAE,OAAO,EAAE,sBAAsB,EAAE,WAAW,EAAE,SAAS,EAAE;YAC3D,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,OAAO,EAAE;YACtD,EAAE,OAAO,EAAE,uBAAuB,EAAE,WAAW,EAAE,QAAQ,EAAE;SAC5D;QACD,KAAK,EAAE;YACL,yCAAyC;YACzC,qBAAqB;YACrB,yBAAyB;YACzB,yBAAyB;YACzB,8BAA8B;SAC/B;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow.d.ts","sourceRoot":"","sources":["../../src/commands/workflow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"workflow.d.ts","sourceRoot":"","sources":["../../src/commands/workflow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASpC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,QAyPvD"}
|