@docyrus/animaguru 0.16.2 → 0.17.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 +48 -14
- package/dist/animaguru.js +2144 -1871
- 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,7 +221,7 @@ 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
|
-
Images have a full background by default; `--transparent` requests a cutout. 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.
|
|
224
|
+
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.
|
|
216
225
|
|
|
217
226
|
Preview a validated request and its estimated credits offline with `--dry-run`, without signing in or spending credits:
|
|
218
227
|
|
|
@@ -351,6 +360,30 @@ animaguru motion get skeleton-list-swipe --write animations/launch/src/scenes
|
|
|
351
360
|
|
|
352
361
|
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
362
|
|
|
363
|
+
## Brand kits
|
|
364
|
+
|
|
365
|
+
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.
|
|
366
|
+
|
|
367
|
+
```sh
|
|
368
|
+
animaguru brands list
|
|
369
|
+
animaguru brands get BRAND_ID
|
|
370
|
+
animaguru brands create --name "Penny" --website https://penny.example.com
|
|
371
|
+
animaguru brands create --file brand-fields.json
|
|
372
|
+
animaguru brands research https://penny.example.com --name "Penny"
|
|
373
|
+
animaguru brands upload BRAND_ID --file logo.svg --kind logo --yes
|
|
374
|
+
animaguru brands update BRAND_ID --file brand-patch.json
|
|
375
|
+
animaguru brands download BRAND_ID --output ./my-film-workspace
|
|
376
|
+
animaguru brands download BRAND_ID --file BRAND_FILE_ID --output ./my-film-workspace
|
|
377
|
+
```
|
|
378
|
+
|
|
379
|
+
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.
|
|
380
|
+
|
|
381
|
+
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.
|
|
382
|
+
|
|
383
|
+
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.
|
|
384
|
+
|
|
385
|
+
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.
|
|
386
|
+
|
|
354
387
|
## Asset library
|
|
355
388
|
|
|
356
389
|
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 +475,13 @@ Only one YouTube command may run at a time. Normal cancellation releases its loc
|
|
|
442
475
|
|
|
443
476
|
## Cloud sync and versions
|
|
444
477
|
|
|
445
|
-
CLI 0.11.0 adds `animaguru cloud` for Individual Pro and Team plans. It
|
|
478
|
+
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
479
|
|
|
447
480
|
```sh
|
|
448
481
|
animaguru auth login
|
|
449
|
-
animaguru workspaces use TEAM_ID # optional: create the
|
|
450
|
-
animaguru cloud link # creates a
|
|
482
|
+
animaguru workspaces use TEAM_ID # optional: create the project in a team
|
|
483
|
+
animaguru cloud link # creates a project named after this folder and syncs with it
|
|
484
|
+
animaguru cloud link --project PROJECT_ID # or: sync with an existing project (prj_…)
|
|
451
485
|
animaguru cloud push -m "First cut" # saves a version
|
|
452
486
|
animaguru cloud status # unsaved changes, and whether the cloud is newer
|
|
453
487
|
animaguru cloud pull # brings in versions saved elsewhere
|
|
@@ -455,7 +489,7 @@ animaguru cloud versions # newest first, with who saved each
|
|
|
455
489
|
animaguru cloud restore VERSION --path animations/intro/src
|
|
456
490
|
animaguru cloud push # saves the restored files as the newest version
|
|
457
491
|
animaguru cloud clone PROJECT_ID my-films # another computer; run npm install afterwards
|
|
458
|
-
animaguru cloud list
|
|
492
|
+
animaguru cloud list # projects with synced animations
|
|
459
493
|
```
|
|
460
494
|
|
|
461
495
|
Run the commands anywhere inside the workspace; `--dir PATH` chooses another folder. What is not synced:
|
|
@@ -465,7 +499,7 @@ Run the commands anywhere inside the workspace; `--dir PATH` chooses another fol
|
|
|
465
499
|
- anything matched by `.gitignore` or `.animaguruignore`;
|
|
466
500
|
- symbolic links.
|
|
467
501
|
|
|
468
|
-
Each version is a Git commit in the project's own Cloudflare Artifacts
|
|
502
|
+
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
503
|
|
|
470
504
|
- **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
505
|
- **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 +513,7 @@ The sync store lives in `.animaguru/sync/`, separate from any Git repository you
|
|
|
479
513
|
|
|
480
514
|
`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
515
|
|
|
482
|
-
Cloud files are never written into ignored or secret paths, through links, or outside the folder. If a plan ends,
|
|
516
|
+
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
517
|
|
|
484
518
|
## One brand, many animations
|
|
485
519
|
|