makaron-cli 0.15.2 → 0.15.4
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.md
CHANGED
|
@@ -246,7 +246,7 @@ npx makaron-cli composition export --project <projectId> --snapshot <snapshotId>
|
|
|
246
246
|
npx makaron-cli composition status <jobId> --wait
|
|
247
247
|
```
|
|
248
248
|
|
|
249
|
-
`materialize` is the preferred high-level command for Remotion-to-MP4. It defaults to `--wait`, `--publish`, and the `
|
|
249
|
+
`materialize` is the preferred high-level command for Remotion-to-MP4. It defaults to `--wait`, `--publish`, and the `source` profile, preserving the composition's dimensions when the MP4 is added back to the project timeline. Use `--no-publish` when you need only a file URL. Use `--profile fast_720p` only when a 720-short-side export is acceptable.
|
|
250
250
|
|
|
251
251
|
For a run that produced an animated composition, materialize before picking the video URL:
|
|
252
252
|
|
|
@@ -262,7 +262,7 @@ npx makaron-cli materialize --project <projectId> --design-json composition.json
|
|
|
262
262
|
cat composition.json | npx makaron-cli materialize --project <projectId> --design-json - --pick url
|
|
263
263
|
```
|
|
264
264
|
|
|
265
|
-
This JSON-to-MP4 path uses the same defaults as timeline materialize: `--wait`, `--publish`, and `
|
|
265
|
+
This JSON-to-MP4 path uses the same defaults as timeline materialize: `--wait`, `--publish`, and `source`. Add `--no-publish` when another agent needs the MP4 URL without adding a timeline video.
|
|
266
266
|
|
|
267
267
|
The completed export reports `duration_seconds`, `render_seconds`, and `realtime_ratio` so agents can compare video length against export time. Do not apply provider-video ETA rules to Remotion materialize; with a warm exporter it is often near video length to tens of seconds, while cold starts can be longer.
|
|
268
268
|
|
|
@@ -384,7 +384,7 @@ npx makaron-cli edit --image photo.jpg --out result.jpg "make it dramatic"
|
|
|
384
384
|
npx makaron-cli edit --image-model gpt-image-2.5-flare --background transparent --out sticker.png "a magenta star sticker"
|
|
385
385
|
```
|
|
386
386
|
|
|
387
|
-
Options: `--image`, `--image-model gemini|gemini-lite|qwen
|
|
387
|
+
Options: `--image`, `--image-model gemini|gemini-lite|qwen-spicy|openai|gpt-image-2.5-flare|gpt-image-2.5-sunburst|wan2.7-image`, `--ref <file>` (up to 3), `--aspect <ratio>`, `--background auto|opaque|transparent`, `--out <path>`. Qwen Spicy supports 0–3 input images; legacy `qwen` requests map to it. Pony and WAI are retired. Transparent output routes strictly to GPT Image 2.5 Flare and is returned only when the provider supplies real PNG/WebP alpha.
|
|
388
388
|
|
|
389
389
|
`wan2.7-image` uses Alibaba international for fast, approximately 1K generation and editing (default 6 credits/image). Failed or timed-out Wan requests are not automatically retried or switched to another model. Face identity can change. Example: `makaron edit --image portrait.jpg --image-model wan2.7-image --aspect 16:9 --out stadium.jpg "Place this woman in a baseball stadium, preserving her face."`
|
|
390
390
|
|
package/bin/makaron.mjs
CHANGED
|
@@ -1160,7 +1160,7 @@ async function exportComposition(baseUrl, headers, opts = {}) {
|
|
|
1160
1160
|
designPath: opts.designPath,
|
|
1161
1161
|
design: opts.design,
|
|
1162
1162
|
outputType: opts.outputType || 'video',
|
|
1163
|
-
renderProfile: opts.renderProfile || '
|
|
1163
|
+
renderProfile: opts.renderProfile || 'source',
|
|
1164
1164
|
publish: opts.publish === true,
|
|
1165
1165
|
name: opts.name,
|
|
1166
1166
|
};
|
|
@@ -1936,7 +1936,7 @@ Usage:
|
|
|
1936
1936
|
Options:
|
|
1937
1937
|
--image <file|url> Base image to edit. Omit for text-to-image.
|
|
1938
1938
|
--ref <file|url> Additional reference image. Repeatable, up to 3.
|
|
1939
|
-
--image-model <id> gemini, gemini-lite, qwen
|
|
1939
|
+
--image-model <id> gemini, gemini-lite, qwen-spicy, openai, gpt-image-2.5-flare, gpt-image-2.5-sunburst, or wan2.7-image. Legacy qwen maps to qwen-spicy.
|
|
1940
1940
|
--skill <id> enhance, creative, wild, or captions.
|
|
1941
1941
|
--aspect <ratio> Output aspect ratio, for example 1:1, 16:9, or 9:16.
|
|
1942
1942
|
--background <mode> auto, opaque, or transparent.
|
|
@@ -1948,7 +1948,7 @@ Notes:
|
|
|
1948
1948
|
and fails instead of returning an opaque fallback.
|
|
1949
1949
|
|
|
1950
1950
|
Examples:
|
|
1951
|
-
makaron edit --image portrait.jpg --image-model qwen --out result.jpg "cinematic warm light"
|
|
1951
|
+
makaron edit --image portrait.jpg --image-model qwen-spicy --out result.jpg "cinematic warm light"
|
|
1952
1952
|
makaron edit --image product.jpg --ref style.png --aspect 1:1 "use this visual style"
|
|
1953
1953
|
makaron edit --image-model gpt-image-2.5-flare --background transparent --out sticker.png "a magenta star sticker"
|
|
1954
1954
|
`);
|
|
@@ -2799,7 +2799,7 @@ if (!command || command === '--help' || command === '-h' || command === 'help')
|
|
|
2799
2799
|
await listProjects(baseUrl, headers);
|
|
2800
2800
|
} else if (command === 'materialize') {
|
|
2801
2801
|
const { headers, baseUrl } = getAuth();
|
|
2802
|
-
const opts = { wait: true, publish: true, json: false, outputType: 'video', renderProfile: '
|
|
2802
|
+
const opts = { wait: true, publish: true, json: false, outputType: 'video', renderProfile: 'source', pick: null, quiet: false };
|
|
2803
2803
|
for (let i = 1; i < args.length; i++) {
|
|
2804
2804
|
if (args[i] === '--project' && args[i + 1]) opts.projectId = args[++i];
|
|
2805
2805
|
else if (args[i] === '--media' && args[i + 1]) opts.mediaIndex = Number(args[++i]);
|
|
@@ -2827,7 +2827,7 @@ if (!command || command === '--help' || command === '-h' || command === 'help')
|
|
|
2827
2827
|
const { headers, baseUrl } = getAuth();
|
|
2828
2828
|
const sub = args[1];
|
|
2829
2829
|
if (sub === 'export') {
|
|
2830
|
-
const opts = { wait: false, publish: false, json: false, outputType: 'video', renderProfile: '
|
|
2830
|
+
const opts = { wait: false, publish: false, json: false, outputType: 'video', renderProfile: 'source', pick: null, quiet: false };
|
|
2831
2831
|
for (let i = 2; i < args.length; i++) {
|
|
2832
2832
|
if (args[i] === '--project' && args[i + 1]) opts.projectId = args[++i];
|
|
2833
2833
|
else if (args[i] === '--media' && args[i + 1]) opts.mediaIndex = Number(args[++i]);
|
|
@@ -3043,7 +3043,7 @@ if (!command || command === '--help' || command === '-h' || command === 'help')
|
|
|
3043
3043
|
else promptParts.push(args[i]);
|
|
3044
3044
|
}
|
|
3045
3045
|
editArgs.editPrompt = promptParts.join(' ');
|
|
3046
|
-
if (!editArgs.editPrompt) { console.error('Usage: makaron edit [--image <file|url>] [--image-model gemini|gemini-lite|qwen
|
|
3046
|
+
if (!editArgs.editPrompt) { console.error('Usage: makaron edit [--image <file|url>] [--image-model gemini|gemini-lite|qwen-spicy|openai|gpt-image-2.5-flare|gpt-image-2.5-sunburst|wan2.7-image] [--ref <file>] [--aspect <ratio>] [--background auto|opaque|transparent] [--out <file>] "prompt"'); process.exit(1); }
|
|
3047
3047
|
process.stderr.write('🎨 Generating...\n');
|
|
3048
3048
|
const result = await callMcpTool(baseUrl, headers, 'makaron_edit_image', editArgs);
|
|
3049
3049
|
saveMcpImage(result, outputPath);
|
package/package.json
CHANGED
package/skills/makaron/SKILL.md
CHANGED
|
@@ -315,7 +315,7 @@ npx makaron-cli edit --image photo.jpg --out result.jpg "make it dramatic"
|
|
|
315
315
|
npx makaron-cli edit --image-model gpt-image-2.5-flare --background transparent --out sticker.png "a magenta star sticker"
|
|
316
316
|
```
|
|
317
317
|
|
|
318
|
-
Options: `--image`, `--image-model gemini|gemini-lite|qwen
|
|
318
|
+
Options: `--image`, `--image-model gemini|gemini-lite|qwen-spicy|openai|gpt-image-2.5-flare|gpt-image-2.5-sunburst|wan2.7-image`, `--ref <file>` (up to 3), `--aspect <ratio>`, `--background auto|opaque|transparent`, `--out <path>`. Qwen Spicy supports 0–3 input images; legacy `qwen` requests map to it. Pony and WAI are retired. Transparent output routes strictly to GPT Image 2.5 Flare and fails instead of returning an opaque fallback. Wan 2.7 Image is an explicit fast ~1K route; do not automatically retry failures/timeouts, and do not promise exact face preservation.
|
|
319
319
|
|
|
320
320
|
### `video` — Standalone video tools (no project timeline)
|
|
321
321
|
|
|
@@ -452,7 +452,7 @@ npx makaron-cli materialize --project <projectId> --design-json composition.json
|
|
|
452
452
|
npx makaron-cli responses get <runId> --materialize --wait --pick first_video_url
|
|
453
453
|
```
|
|
454
454
|
|
|
455
|
-
`materialize` defaults to `--wait`, `--publish`, and `
|
|
455
|
+
`materialize` defaults to `--wait`, `--publish`, and `source`, preserving composition dimensions when the MP4 is added back to the timeline. Use `--no-publish` when you need only a file URL, or `--profile fast_720p` when a 720-short-side export is acceptable. The completed export reports `duration_seconds`, `render_seconds`, and `realtime_ratio`; use those metrics instead of provider-video ETA rules.
|
|
456
456
|
|
|
457
457
|
For JSON-to-MP4, pass a Makaron/Remotion composition JSON with `--design-json`. This is the correct CLI path when another agent already has the composition JSON and only needs the exported video:
|
|
458
458
|
|
|
@@ -11,7 +11,7 @@ If adult intent is ambiguous, ask one short question before choosing this lane.
|
|
|
11
11
|
| Adult request | Route |
|
|
12
12
|
|---|---|
|
|
13
13
|
| Agent-driven work or a persistent Makaron project | `makaron chat` with Agent model `grok-4.6` |
|
|
14
|
-
| Standalone image generation or editing | `makaron edit` with image model `qwen` |
|
|
14
|
+
| Standalone image generation or editing | `makaron edit` with image model `qwen-spicy` |
|
|
15
15
|
| Standalone video generation | `makaron video create` with video model `wan-3.0-prime` |
|
|
16
16
|
|
|
17
17
|
For project-based work, keep the complete request in one `chat` job. Because
|
|
@@ -20,20 +20,20 @@ brief:
|
|
|
20
20
|
|
|
21
21
|
```bash
|
|
22
22
|
npx makaron-cli chat --project <id|auto> --agent-model grok-4.6 --json \
|
|
23
|
-
-b "<complete adult request; use qwen for still images and wan-3.0-prime for video>"
|
|
23
|
+
-b "<complete adult request; use qwen-spicy for still images and wan-3.0-prime for video>"
|
|
24
24
|
```
|
|
25
25
|
|
|
26
26
|
For explicit raw-tool work without a project timeline:
|
|
27
27
|
|
|
28
28
|
```bash
|
|
29
|
-
npx makaron-cli edit --image-model qwen --image <file-or-url> --out <path> "<prompt>"
|
|
29
|
+
npx makaron-cli edit --image-model qwen-spicy --image <file-or-url> --out <path> "<prompt>"
|
|
30
30
|
npx makaron-cli video create --video-model wan-3.0-prime --script "<shot script>" --duration <seconds>
|
|
31
31
|
```
|
|
32
32
|
|
|
33
33
|
## Keep the exception scoped
|
|
34
34
|
|
|
35
|
-
- Do not force SFW jobs onto Grok, Qwen, or Wan 3.0 Prime.
|
|
36
|
-
- Never put `qwen` or `wan-3.0-prime` in `--agent-model`.
|
|
35
|
+
- Do not force SFW jobs onto Grok, Qwen Spicy, or Wan 3.0 Prime.
|
|
36
|
+
- Never put `qwen-spicy` or `wan-3.0-prime` in `--agent-model`.
|
|
37
37
|
- Do not pass `--image-model` or `--video-model` to `makaron chat`; it rejects
|
|
38
38
|
those flags. State those preferences in the chat brief or use the standalone
|
|
39
39
|
commands.
|