@docyrus/animaguru 0.16.2 → 0.18.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.md +84 -16
- package/dist/animaguru.js +2491 -1922
- package/package.json +1 -1
- package/skills/animaguru/SKILL.md +15 -4
- package/skills/animaguru/references/cloud.md +2 -2
- package/skills/animaguru-video/SKILL.md +2 -2
- package/templates/video/AGENTS.md +1 -1
- package/templates/video/README.md +1 -1
- package/templates/video/scripts/audio-mix.mjs +3 -2
- package/templates/video/scripts/audio-vo.mjs +1 -1
package/README.md
CHANGED
|
@@ -114,7 +114,7 @@ animaguru files list PROJECT_ID
|
|
|
114
114
|
animaguru files export PROJECT_ID --output forest-cast.zip
|
|
115
115
|
```
|
|
116
116
|
|
|
117
|
-
`jobs wait` waits for the specified job only. A drawing may queue follow-up animation jobs; inspect `jobs list` and wait for those before exporting. Jobs continue on the server if the CLI exits. `files export` refuses to overwrite a file. `projects rename PROJECT_ID --name "New name"` and `projects delete PROJECT_ID --yes` manage the library. `projects move PROJECT_ID --to OTHER_PROJECT_ID --characters SLUG,SLUG --assets ASSET_ID --avatars GROUP_ID` moves characters (with all their animations), saved assets and the project's own avatars to another project you can write to, without regenerating anything (CLI 0.16.0). `models PROJECT_ID --
|
|
117
|
+
`jobs wait` waits for the specified job only. A drawing may queue follow-up animation jobs; inspect `jobs list` and wait for those before exporting. Jobs continue on the server if the CLI exits. `files export` refuses to overwrite a file. `projects rename PROJECT_ID --name "New name"` and `projects delete PROJECT_ID --yes` manage the library. `projects move PROJECT_ID --to OTHER_PROJECT_ID --characters SLUG,SLUG --assets ASSET_ID --avatars GROUP_ID` moves characters (with all their animations), saved assets and the project's own avatars to another project you can write to, without regenerating anything (CLI 0.16.0). `models PROJECT_ID --video-model heygen/heygen-video-1` sets the defaults for future jobs. Image generation follows staff-managed main and backup routes and has no user model selector.
|
|
118
118
|
|
|
119
119
|
Generation and reference imports require `--yes`, which authorizes credit spending. Read estimates from `projects get` before submitting. Estimates are ranges; actual provider usage is recorded to your own balance. Paid generation needs configured production provider bindings and secrets.
|
|
120
120
|
|
|
@@ -124,21 +124,21 @@ List valid identifiers with `animaguru catalog`. Set models on a single generati
|
|
|
124
124
|
|
|
125
125
|
```sh
|
|
126
126
|
animaguru generate PROJECT_ID --name "Knight" --description "A blue knight" \
|
|
127
|
-
--
|
|
127
|
+
--video-model heygen/heygen-video-1 \
|
|
128
128
|
--actions idle,walk --yes
|
|
129
129
|
```
|
|
130
130
|
|
|
131
|
-
`generate`, `jobs submit`, and `files import` accept both `--
|
|
131
|
+
`generate`, `jobs submit`, and `files import` accept both `--video-model`. The video selection is used when the job includes an animation. Image models are selected centrally by staff, with automatic backup routing; users and agents cannot override them. Video overrides apply to that job and the animations it explicitly queues; they do not change project defaults. `jobs submit` flags take precedence over `videoModel` fields in its JSON file. Model identifiers are validated before a job is queued. Jobs return and retain the selected model identifiers, even if project defaults change while they wait.
|
|
132
132
|
|
|
133
133
|
Set defaults for all future jobs in a project:
|
|
134
134
|
|
|
135
135
|
```sh
|
|
136
|
-
animaguru models PROJECT_ID --
|
|
136
|
+
animaguru models PROJECT_ID --video-model pruna/p-video-2-pro
|
|
137
137
|
# Either selection can be changed independently:
|
|
138
138
|
animaguru models PROJECT_ID --video-model heygen/heygen-video-1
|
|
139
139
|
# Or choose them when creating a project:
|
|
140
140
|
animaguru projects create --name "Forest cast" \
|
|
141
|
-
--
|
|
141
|
+
--video-model heygen/heygen-video-1
|
|
142
142
|
```
|
|
143
143
|
|
|
144
144
|
An omitted model uses the saved project selection, then the service default. Credit estimates and supported quality settings follow the selected video provider. Reference or redraw operations use the existing GPT Image fallback when the selected image model does not support edits. Configured provider secrets are required for actual generation.
|
|
@@ -154,8 +154,17 @@ animaguru projects create --name "Adventure assets"
|
|
|
154
154
|
animaguru assets list PROJECT_ID
|
|
155
155
|
|
|
156
156
|
animaguru assets generate PROJECT_ID --type image --name "Forest" \
|
|
157
|
-
--prompt "A moonlit watercolor forest" --
|
|
158
|
-
|
|
157
|
+
--prompt "A moonlit watercolor forest" --aspect-ratio 3:2 --yes
|
|
158
|
+
|
|
159
|
+
# Keep a character the same from scene to scene by following a saved character sheet.
|
|
160
|
+
animaguru assets generate PROJECT_ID --type image --name "Marie in the lab" \
|
|
161
|
+
--prompt "Marie from Image 1, same face, hair and coat, measuring a glowing vial at her bench" \
|
|
162
|
+
--references CHARACTER_SHEET_SHA --aspect-ratio 16:9 --yes
|
|
163
|
+
|
|
164
|
+
# Change only the right half of a saved scene; the rest stays as it is.
|
|
165
|
+
animaguru assets generate PROJECT_ID --type image --name "Marie, night" \
|
|
166
|
+
--prompt "Replace the window view with a starry night sky" \
|
|
167
|
+
--references SCENE_SHA --mask 0.5,0,0.5,1 --yes
|
|
159
168
|
|
|
160
169
|
animaguru assets generate PROJECT_ID --type video --name "Forest breeze" \
|
|
161
170
|
--prompt "Leaves drift slowly in the breeze" --reference IMAGE_BLOB_SHA \
|
|
@@ -212,16 +221,50 @@ animaguru assets generate PROJECT_ID --type video --model fal/minimax-h3-max \
|
|
|
212
221
|
|
|
213
222
|
`--end-reference` can be used without `--reference`; the video then ends on that image. `--soundtrack` takes a music, speech or SFX asset's `file` SHA and replaces the generated sound; the video must be at least 2 seconds. Text-to-video takes `--aspect-ratio` 21:9, 16:9 (default), 4:3, 1:1, 3:4 or 9:16. Extensions take a video asset's SHA as `--source` (1.6–60 seconds, up to 50 MB), bill `--seconds` of new footage, offer 2K, and keep the source's shape unless `--aspect-ratio` crops it. `--extend-output continuation` returns only a 1.625-second overlap and the new footage. Extensions take up to three comma-separated `--audio-references` (2–15 seconds each, 15 seconds in total); refer to them in the prompt as Audio 1, Audio 2 and so on. `--prompt-expansion` is `disabled` (default), `balanced` or `quality`; for extensions, any value other than `disabled` turns expansion on. Each model's `videoProfiles` entry in `catalog` lists its workflows, resolutions and options. The server needs `AI_PROVIDER_KEY_FAL`.
|
|
214
223
|
|
|
215
|
-
|
|
224
|
+
CLI 0.18.0 adds MiniMax H3 Max's eight other workflows (`fal/minimax-h3-max`, not Turbo):
|
|
225
|
+
|
|
226
|
+
```sh
|
|
227
|
+
# Keep Marie the same across scenes: reference images, a clip and audio, named in the prompt.
|
|
228
|
+
animaguru assets generate PROJECT_ID --type video --model fal/minimax-h3-max \
|
|
229
|
+
--workflow reference-to-video --name "Marie at the market" \
|
|
230
|
+
--prompt "Image 1 is Marie. She walks through the market in Video 1's style, humming Audio 1" \
|
|
231
|
+
--references CHARACTER_SHEET_SHA,MARKET_SHA --reference-videos CLIP_SHA --audio-references SONG_SHA \
|
|
232
|
+
--seconds 6.5 --resolution 768p --dry-run
|
|
233
|
+
# Make the face in an image say saved speech; the video lasts as long as the speech.
|
|
234
|
+
animaguru assets generate PROJECT_ID --type video --model fal/minimax-h3-max \
|
|
235
|
+
--workflow lip-sync --name "Marie explains" --reference PORTRAIT_SHA --soundtrack SPEECH_SHA \
|
|
236
|
+
--transcribe --resolution 768p --dry-run
|
|
237
|
+
# Orbit the camera half way around a still scene.
|
|
238
|
+
animaguru assets generate PROJECT_ID --type video --model fal/minimax-h3-max \
|
|
239
|
+
--workflow camera-controls --name "Product reveal" --reference PRODUCT_SHA \
|
|
240
|
+
--camera "0,0,10,1;1,180,10,1.2" --seconds 6 --dry-run
|
|
241
|
+
# Film in a preset look.
|
|
242
|
+
animaguru assets generate PROJECT_ID --type video --model fal/minimax-h3-max \
|
|
243
|
+
--workflow style --style vhs --damage light --name "Home video" \
|
|
244
|
+
--prompt "A birthday party in a backyard, 1989" --aspect-ratio 4:3 --dry-run
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
- `reference-to-video` keeps the subjects or look of up to nine `--references` images, three `--reference-videos` (2–15 seconds each, 15 in total) and three `--audio-references`, twelve files in all. Name them in the prompt as Image 1, Video 1, Audio 1 and so on. It can also open on `--reference`, end on `--end-reference`, and pass `--middle-reference` at `--middle-seconds`; a middle image needs both of the others and 480p or 768p. `--aspect-ratio auto` (default) follows the inputs.
|
|
248
|
+
- `lip-sync` makes the face in `--reference` (an image between 2:5 and 5:2) say `--soundtrack`, speech of 5 seconds to 15 minutes. It takes no prompt and goes up to 2K. `--transcribe` transcribes the speech to guide the mouth. Past 15 seconds it costs 1.2× per second.
|
|
249
|
+
- `camera-controls` moves the camera around `--reference` along `--camera` keyframes `time,azimuth,elevation,distance`. `time` runs from 0 at the start to 1 at the end, and the angles are in degrees (elevation −90 to 90). Use 2–12 keyframes, separated by semicolons. Without a prompt the scene stays still and only the camera moves.
|
|
250
|
+
- `insert-video` adds a new scene of `--seconds` (5–13) to `--source`, starting `--insert-at` seconds in and handing back to the source at `--resume-at`. The prompt, `--references` and `--reference-videos` guide the scene. It renders at 480p or 768p, and `--no-color-match` turns off matching the source's colors.
|
|
251
|
+
- `recast` puts the people in `--references` (one photo each, up to four, left to right) in place of the people in `--source` (5–30 seconds), at 768p or 1080p. Pass `--subject-consent` only after each person in the photos agreed to appear. `--enhance-realism` blends them in more naturally.
|
|
252
|
+
- `relight` relights `--source` (up to 15 seconds) from `--lighting`, an image of a sphere lit the way you want. It takes no prompt, keeps the source's shape unless `--aspect-ratio` crops it, and goes up to 2K.
|
|
253
|
+
- `3d-to-video` turns `--source`, a 3D render up to 15 seconds long, into realistic footage. It follows up to eight `--references`, or draws its own (`--generated-references`, 1–8, default 2). It takes no seed and costs at least 5 seconds.
|
|
254
|
+
- `style` films in a preset look: `vhs` (with `--damage light|medium|heavy`), `retro-toon-70s`, `low-poly`, `hand-drawn` or `16bit-pixel`. It renders at 768p for 5–15 whole seconds, from the prompt with `--aspect-ratio`, or from `--reference` as the first frame.
|
|
255
|
+
|
|
256
|
+
H3 takes fractions of a second (`--seconds 6.5`). Lip-sync, recast, relight and 3d-to-video last as long as their speech or video, and `--seconds` doesn't apply to them. Reference images, clips and audio past fal's included allowance add to the cost; so do the references 3d-to-video draws. Their `--dry-run` asks the server, which measures the saved files. `--resolution` and `--mode` default to the first the workflow offers.
|
|
216
257
|
|
|
217
|
-
|
|
258
|
+
Images have a full background by default; `--transparent` requests a cutout. CLI 0.17.0 adds `--references`, `--mask` and the 16:9 and 9:16 shapes. `--aspect-ratio` is 1:1 (default, 1024×1024), 3:2 (1536×1024), 2:3 (1024×1536), 16:9 (1536×864) or 9:16 (864×1536). `--references` takes up to four comma-separated blob SHAs of this project's images (including attached uploads) or sprite art, and the new image follows them: generate a character sheet once, then reference it in every scene to keep the character consistent. Refer to them in the prompt as Image 1, Image 2 and so on, and say what to take from each. Each reference adds a little to the estimate. `--mask` edits only part of Image 1, the first reference: give up to eight rectangles as `x,y,width,height` fractions of its size from the top left, separated by semicolons (`0,0,1,0.4` is the top 40%). The rest of the image is kept, and the result keeps Image 1's shape, which must be one of the five above. Gemini speech's `--prompt` is the verbatim transcript, and `--delivery` controls how it sounds without being spoken. Gemini speech supports both `gemini-3.8-flash-tts` and `gemini-3.8-flash-lite-tts`. Music uses Lyria. Google audio requires the server's `AI_PROVIDER_KEY_GOOGLE` secret; no provider keys are stored in the CLI.
|
|
259
|
+
|
|
260
|
+
Preview a validated request and its estimated credits with `--dry-run`, without spending credits; most dry runs work offline without signing in:
|
|
218
261
|
|
|
219
262
|
```sh
|
|
220
263
|
animaguru assets generate PROJECT_ID --type music --name "Theme" \
|
|
221
264
|
--prompt "A gentle instrumental theme" --dry-run
|
|
222
265
|
```
|
|
223
266
|
|
|
224
|
-
Dry-run estimates use the CLI's bundled rates and do not check server configuration, remaining credits or reference ownership; the server performs those checks before actual generation. Omit `--dry-run` and pass `--yes` to submit. Actual provider usage determines the charge. Asset requests can also be supplied as JSON using the web API's shared schema:
|
|
267
|
+
Dry-run estimates use the CLI's bundled rates and do not check server configuration, remaining credits or reference ownership; the server performs those checks before actual generation. The exceptions are H3 Max's lip-sync, recast, relight, 3d-to-video, reference-to-video and insert-video: their prices depend on the saved files' lengths and shapes, so their dry runs are signed-in server estimates. Omit `--dry-run` and pass `--yes` to submit. Actual provider usage determines the charge. Asset requests can also be supplied as JSON using the web API's shared schema:
|
|
225
268
|
|
|
226
269
|
```json
|
|
227
270
|
{"type":"speech","name":"Welcome","prompt":"Welcome, traveler.","model":"gemini-3.8-flash-lite-tts","voice":"Kore","delivery":"Warm and welcoming"}
|
|
@@ -351,6 +394,30 @@ animaguru motion get skeleton-list-swipe --write animations/launch/src/scenes
|
|
|
351
394
|
|
|
352
395
|
Then call the entry function from `Film.build()`, for example `skeletonListSwipe(this, { at: 4 })`. `--write` refuses to replace an existing scene (pass `--force`) and keeps shared modules that already exist.
|
|
353
396
|
|
|
397
|
+
## Brand kits
|
|
398
|
+
|
|
399
|
+
Use saved personal or team brands across films. `brands list`, `create` and `research` use the selected cloud workspace; `--workspace personal` or `--workspace TEAM_ID` overrides it for that command. Commands taking a brand ID check access to that brand's workspace.
|
|
400
|
+
|
|
401
|
+
```sh
|
|
402
|
+
animaguru brands list
|
|
403
|
+
animaguru brands get BRAND_ID
|
|
404
|
+
animaguru brands create --name "Penny" --website https://penny.example.com
|
|
405
|
+
animaguru brands create --file brand-fields.json
|
|
406
|
+
animaguru brands research https://penny.example.com --name "Penny"
|
|
407
|
+
animaguru brands upload BRAND_ID --file logo.svg --kind logo --yes
|
|
408
|
+
animaguru brands update BRAND_ID --file brand-patch.json
|
|
409
|
+
animaguru brands download BRAND_ID --output ./my-film-workspace
|
|
410
|
+
animaguru brands download BRAND_ID --file BRAND_FILE_ID --output ./my-film-workspace
|
|
411
|
+
```
|
|
412
|
+
|
|
413
|
+
Manual creation accepts a JSON object with `name`, `website`, `tagline`, `colors`, `fonts` and Markdown `guide`; `--name`, `--website` and `--tagline` override it. Omitted colors and fonts use neutral defaults. Colors use six-digit hex values: `primary`, `background`, `text`, optional `accent` and named `palette` entries. Fonts have `heading` and `body` objects with a CSS `family`. New kits start without file references. `research` instead researches the supplied official HTTPS website asynchronously; inspect `brands get BRAND_ID` until `status` is `ready` or `failed`. Keep the returned brand ID when polling. Both creation commands accept `--request-id UUID` to retry the same creation without duplicating it.
|
|
414
|
+
|
|
415
|
+
Uploads support SVG, PNG, JPEG, WebP, GIF, web fonts, audio and video up to 32 MiB per file. The media type is inferred from the extension or supplied with `--mime-type`. An upload returns the saved file ID; `--kind logo` labels its role. To make it the primary logo, update with a JSON patch such as `{"logo":"bf_…"}`; additional media use `{"assets":["bf_…"]}`. File references must belong to that brand. Updates wait until research finishes.
|
|
416
|
+
|
|
417
|
+
Downloads save a shared `branding/` directory under `--output`, including `brand.json`, `brand-guide.md` and all media with paths ready for the film exporter. `--file BRAND_FILE_ID` saves only that media file. Existing files require `--force`; symbolic links are refused. Refresh the download after changing the saved kit. Listing, reading, manual creation, uploads, updates and downloads spend no generation credits.
|
|
418
|
+
|
|
419
|
+
MCP provides `list_brands`, `get_brand`, `create_brand`, `research_brand`, `update_brand`, `upload_brand_image` and `download_brand`. Read tools require `projects.read`; creation, research, updates and uploads require `projects.write` and workspace write access. `upload_brand_image` takes `brand_id` and `image: {name, kind, url}` for a public HTTPS image up to 32 MiB, or `{name, kind, data, mimeType}` for standard base64 up to 8 MiB. `download_brand` returns text files and 15-minute signed file links that recheck workspace access. Pass `file_id` to get only one file's link.
|
|
420
|
+
|
|
354
421
|
## Asset library
|
|
355
422
|
|
|
356
423
|
CLI 0.15.0 adds `animaguru library`. Pro and Team accounts (and members of a team on the Team plan) can search AnimaGuru's asset library: ready-made sprites with animation sheets, images, video clips, music, voice-over speech and sound effects. Search uses natural language and keywords together. Importing into a project or downloading spends no credits, so check the library before generating a common asset.
|
|
@@ -442,12 +509,13 @@ Only one YouTube command may run at a time. Normal cancellation releases its loc
|
|
|
442
509
|
|
|
443
510
|
## Cloud sync and versions
|
|
444
511
|
|
|
445
|
-
CLI 0.11.0 adds `animaguru cloud` for Individual Pro and Team plans. It
|
|
512
|
+
CLI 0.11.0 adds `animaguru cloud` for Individual Pro and Team plans. It syncs a video workspace, or a standalone video project, with an AnimaGuru project's animations and keeps every version. Use it to continue on another computer, work with your team and return to earlier versions. The studio shows the synced films on the project's **Animations** tab, next to its assets and Animator drafts. Syncing a personal project needs your own Individual Pro or Team plan. A team's projects need the team owner's Team plan, and every member can then save and download their animations.
|
|
446
513
|
|
|
447
514
|
```sh
|
|
448
515
|
animaguru auth login
|
|
449
|
-
animaguru workspaces use TEAM_ID # optional: create the
|
|
450
|
-
animaguru cloud link # creates a
|
|
516
|
+
animaguru workspaces use TEAM_ID # optional: create the project in a team
|
|
517
|
+
animaguru cloud link # creates a project named after this folder and syncs with it
|
|
518
|
+
animaguru cloud link --project PROJECT_ID # or: sync with an existing project (prj_…)
|
|
451
519
|
animaguru cloud push -m "First cut" # saves a version
|
|
452
520
|
animaguru cloud status # unsaved changes, and whether the cloud is newer
|
|
453
521
|
animaguru cloud pull # brings in versions saved elsewhere
|
|
@@ -455,7 +523,7 @@ animaguru cloud versions # newest first, with who saved each
|
|
|
455
523
|
animaguru cloud restore VERSION --path animations/intro/src
|
|
456
524
|
animaguru cloud push # saves the restored files as the newest version
|
|
457
525
|
animaguru cloud clone PROJECT_ID my-films # another computer; run npm install afterwards
|
|
458
|
-
animaguru cloud list
|
|
526
|
+
animaguru cloud list # projects with synced animations
|
|
459
527
|
```
|
|
460
528
|
|
|
461
529
|
Run the commands anywhere inside the workspace; `--dir PATH` chooses another folder. What is not synced:
|
|
@@ -465,7 +533,7 @@ Run the commands anywhere inside the workspace; `--dir PATH` chooses another fol
|
|
|
465
533
|
- anything matched by `.gitignore` or `.animaguruignore`;
|
|
466
534
|
- symbolic links.
|
|
467
535
|
|
|
468
|
-
Each version is a Git commit in the project's own Cloudflare Artifacts
|
|
536
|
+
Each version is a Git commit in the project's own animations repository on Cloudflare Artifacts. Where a file is stored depends on its type, not its size:
|
|
469
537
|
|
|
470
538
|
- **Media** (images except SVG, video, audio and ZIP bundles) is uploaded once by SHA-256 at any size, however many versions use it, and Git keeps a small pointer. Media counts toward the plan's media storage: 20 GB for Individual Pro and 100 GB for each team.
|
|
471
539
|
- **Work files** (code, configs, briefs, JSON, SVG, fonts and everything else) are stored in Git at any size up to Artifacts' 32 MB per-file limit. A larger work file stops the push and is named; add it to `.animaguruignore` or move it.
|
|
@@ -479,7 +547,7 @@ The sync store lives in `.animaguru/sync/`, separate from any Git repository you
|
|
|
479
547
|
|
|
480
548
|
`restore` makes the folder, or the `--path` files and folders, match an earlier version without rewriting history. Push afterwards to save the result as the newest version. Replacing unsaved changes requires `--yes` and keeps backups.
|
|
481
549
|
|
|
482
|
-
Cloud files are never written into ignored or secret paths, through links, or outside the folder. If a plan ends,
|
|
550
|
+
Cloud files are never written into ignored or secret paths, through links, or outside the folder. If a plan ends, synced animations stay readable: list, versions, pull, clone and download still work, but pushing waits until the plan is active again. `cloud unlink` stops syncing a folder without touching the cloud. `cloud delete PROJECT_ID --yes` deletes the project's animations with all their versions, Animator drafts and stored files; the project and its assets stay. A project's **Animations** tab in the studio lists its films, versions and their files, with downloads.
|
|
483
551
|
|
|
484
552
|
## One brand, many animations
|
|
485
553
|
|