{"_id":"@birdapi/velinstyle-motion","_rev":"2-ef963091ae0e02b2f930ddbf43a30a68","name":"@birdapi/velinstyle-motion","dist-tags":{"latest":"1.4.0"},"versions":{"1.3.0":{"name":"@birdapi/velinstyle-motion","version":"1.3.0","keywords":["velinstyle","motion","animation","image-to-video","pixverse"],"author":{"name":"SkyliteDesign"},"license":"MIT","_id":"@birdapi/velinstyle-motion@1.3.0","maintainers":[{"name":"skylitedesign","email":"mail@skylite.design"}],"homepage":"https://velinstyle.info/docs/guides/velin-motion-clips.html","bugs":{"url":"https://github.com/SkyliteDesign/velinstyle/issues"},"dist":{"shasum":"26684b277eb52128e10e3810b829054ac662e118","tarball":"https://registry.npmjs.org/@birdapi/velinstyle-motion/-/velinstyle-motion-1.3.0.tgz","fileCount":21,"integrity":"sha512-bU7ItEIUJ+GIqzsDzfx6YBKecvCbVZuL+qFmZV9kVkWsMSlvt42z61OUDX21iUAU/Dn8p4Y1plKHv+/vjfmRmQ==","signatures":[{"sig":"MEYCIQCFtJTu6tS72Gni4/+4PytAllPxTYtswRIG1ql9RzVrJwIhAKVdW2AowFa9mz+G6JTQSEyvhQBajzpEwZw8WaPRvHk4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85787},"main":"./src/index.js","type":"module","engines":{"node":">=18"},"exports":{".":"./src/index.js","./presets":"./src/registry/presets.json"},"gitHead":"75afcfdc93e56893db076dba58d474700751169e","_npmUser":{"name":"skylitedesign","email":"mail@skylite.design"},"repository":{"url":"git+https://github.com/SkyliteDesign/velinstyle.git","type":"git","directory":"packages/velinstyle-motion"},"_npmVersion":"11.6.2","description":"Velin Motion Clip Pipeline — local image→clip engine + pluggable AI providers (PixVerse first)","directories":{},"_nodeVersion":"22.20.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/velinstyle-motion_1.3.0_1786300737351_0.78898220117253","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@birdapi/velinstyle-motion","version":"1.4.0","description":"Velin Motion Clip Pipeline — local image→clip engine + pluggable AI providers (PixVerse first)","type":"module","main":"./src/index.js","exports":{".":"./src/index.js","./presets":"./src/registry/presets.json"},"repository":{"type":"git","url":"git+https://github.com/SkyliteDesign/velinstyle.git","directory":"packages/velinstyle-motion"},"homepage":"https://velinstyle.info/docs/guides/velin-motion-clips.html","author":{"name":"SkyliteDesign"},"license":"MIT","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"keywords":["velinstyle","motion","animation","image-to-video","pixverse"],"engines":{"node":">=18"},"gitHead":"0b4fe40b8033088dfc8fde9ce602cf9b4bd50ff8","_id":"@birdapi/velinstyle-motion@1.4.0","bugs":{"url":"https://github.com/SkyliteDesign/velinstyle/issues"},"_nodeVersion":"22.20.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-loKUcdoR0fP14qYXVNFAZPTQi+Kmfj+ChpxhKTTvBA0ptVpR6t3H+F+aqJxUKYzKzJIzFHAMQTu14Du1i6M0WQ==","shasum":"eb9d7abc80f546e306a292bb4a948ac83d69221f","tarball":"https://registry.npmjs.org/@birdapi/velinstyle-motion/-/velinstyle-motion-1.4.0.tgz","fileCount":22,"unpackedSize":92875,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIGXwOf/vyx/NmrV6PDBfWVO2gUbfEROSrrMtINT7gj04AiEA+NOWn/xN43OElX9ReLoQdJC2MF1lf8a6Yd5+wv9ugMw="}]},"_npmUser":{"name":"skylitedesign","email":"mail@skylite.design"},"directories":{},"maintainers":[{"name":"skylitedesign","email":"mail@skylite.design"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/velinstyle-motion_1.4.0_1788362003739_0.6144856994385555"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-09T18:38:57.152Z","modified":"2026-09-02T15:13:24.067Z","1.3.0":"2026-08-09T18:38:57.485Z","1.4.0":"2026-09-02T15:13:23.881Z"},"bugs":{"url":"https://github.com/SkyliteDesign/velinstyle/issues"},"author":{"name":"SkyliteDesign"},"license":"MIT","homepage":"https://velinstyle.info/docs/guides/velin-motion-clips.html","keywords":["velinstyle","motion","animation","image-to-video","pixverse"],"repository":{"type":"git","url":"git+https://github.com/SkyliteDesign/velinstyle.git","directory":"packages/velinstyle-motion"},"description":"Velin Motion Clip Pipeline — local image→clip engine + pluggable AI providers (PixVerse first)","maintainers":[{"name":"skylitedesign","email":"mail@skylite.design"}],"readme":"# @birdapi/velinstyle-motion\r\n\r\n**Velin Motion Clip Pipeline** — image → short motion clip.\r\n\r\n- **Local** (default): CSS / Web Animations HTML clips — free, offline, reproducible\r\n- **AI** (optional): pluggable providers — first partner: **PixVerse** (credits + API key)\r\n\r\nThis package is separate from the DOM Motion Design System (`@birdapi/velinstyle/motion` / `core/motion`).\r\n\r\nShip with **`@birdapi/velinstyle@1.4.0`** (export `@birdapi/velinstyle/motion-clip`).\r\n\r\n## CLI (via VelinStyle)\r\n\r\n```bash\r\nvelinstyle motion providers\r\nvelinstyle motion setup pixverse\r\nvelinstyle motion create atelier.webp\r\nvelinstyle motion create hero.png --preset cinematic --yes\r\nvelinstyle motion create logo.png --ai --yes   # needs PIXVERSE_API_KEY; dry: VELIN_MOTION_DRY_RUN=1\r\nvelinstyle motion atelier ./assets --count 10 --preset atelier --yes\r\nvelinstyle motion transition a.webp b.webp --yes\r\nvelinstyle motion sequence 01.webp 02.webp 03.webp --provider pixverse --yes\r\nvelinstyle motion usage                 # local job stats + live PixVerse balance (if key set)\r\nvelinstyle motion setup pixverse --yes  # connection + credit totals via GET /account/balance\r\n```\r\n\r\n## PixVerse partner\r\n\r\nPixVerse is an **external** AI video platform. VelinStyle does not sell credits and does not host PixVerse.\r\n\r\n| | |\r\n|--|--|\r\n| Setup | `velinstyle motion setup pixverse` — open PixVerse account · copy account link · enter API key |\r\n| Account | [PixVerse account](https://motivaiprivatelimited.sjv.io/c/7581758/3947666/49478) |\r\n| API docs | https://docs.platform.pixverse.ai/ |\r\n| Live balance | `GET /openapi/v2/account/balance` → `credit_monthly` + `credit_package` (shown by `motion usage` / setup) |\r\n| Site guide | https://velinstyle.info/docs/guides/pixverse.html |\r\n\r\nYou need a **PixVerse account and API key**. The CLI opens the account page (no bare `platform.pixverse.ai` bypass). If a tracker blocker blocks the open, use **copy account link**.\r\n\r\n## Config\r\n\r\n```\r\n.velin/motion/config.json\r\n.velin/motion/.env          # PIXVERSE_API_KEY=… (gitignored via .velin/)\r\n```\r\n\r\n```json\r\n{\r\n  \"provider\": \"pixverse\",\r\n  \"api_key\": \"${PIXVERSE_API_KEY}\",\r\n  \"model\": \"v6\",\r\n  \"quality\": \"720p\",\r\n  \"default_duration\": 5,\r\n  \"output_dir\": \"./motion-output\",\r\n  \"pixverse\": { \"setup_completed\": false }\r\n}\r\n```\r\n\r\nNever store plaintext API keys in `config.json`. Prefer `PIXVERSE_API_KEY` env or `.velin/motion/.env`. Keys are never logged, printed in `--json`, or written to job manifests.\r\n\r\n`--yes` + AI without a key → hard error (CI-safe). Affiliate browser opens only during explicit setup / first-time gate when `setup_completed` is false.\r\n\r\n**Image inputs:** non-empty `.webp` / `.png` / `.jpg` / `.jpeg` with valid raster magic bytes.\r\n\r\n## Programmatic\r\n\r\n```js\r\nimport { createMotionClip, listClipPresets } from '@birdapi/velinstyle-motion';\r\n\r\nawait createMotionClip({\r\n  image: 'atelier.webp',\r\n  preset: 'soft-zoom',\r\n  yes: true,\r\n});\r\n```\r\n\r\n## Providers\r\n\r\nAdd another backend under `src/ai/providers/` and `registerAiProvider(...)`.  \r\nPixVerse implements `imageToVideo`, `transition`, `multiTransition` (capabilities-driven).\r\n\r\nFramework guide: [`docs/guides/velin-motion-clips.md`](../../docs/guides/velin-motion-clips.md)\r\n","readmeFilename":"README.md"}