<div align="center">

# PAI-Pro

**The local AI filmmaking studio, driven from your coding agent.**

[简体中文](README.zh-CN.md) · [English](README.md)

[Try the hosted web service](https://pai.utopai.film/)

[![Utopai Studios](https://img.shields.io/badge/Utopai_Studios-4285F4?style=flat&logo=data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAXeSURBVHgB7VdpSJVpFD5edTSzzWnTMiWXaBHHomUoarSoTLJ%2B9KOBghZqSutHA6E/IqmpoYggiakgKhuKYkBIEqOgZaaMImghmjbNxBZiTMXUTK/3zPMc7/241U0dmOhPB16%2B977b2Z7zvO8V%2BSpfWIJ6OB%2BBljVixIjsxMTEpF69ekU0NDQ037t3rwLfYsyVonV413rkf5JgtG8HDRpUc/HiRY%2BqeiAaSM6fP6%2BjR4%2BuwvpU775Ajri8fVdPleedPn2aGjsg2pXQMLfbrZcvX3ZjX/kHinxR/GPdunV14eHh8dJN5Kn89/b2djcP7Urevn2rb968sdbc3Kytra0cbj916pTyDLRQKIxD6v4ZP358x9atW3Xu3LkVGA/vSvmv7k4J6Cmlrq5OYaBevXrVlNbW1urhw4c1KytLp0yZovPnz9cTJ064IyIicsaMGaNBQUHEhY3TaPRjAylnWGJgvedTngNwWlNTY4a8fv1aN2/erPCQCnjoR23hwoUKwHb4fl%2B4cEGrq6v1U967%2Bvbte5M5D6S8srLSvCYezp07p2FhYepyuQIq9rW8vDynDyP/wjcD7ScJAERD7pEjR9QHOEbh3bt31p80aZKWlpba3NixY00xvfb3PFAUQkJCHCO9xkT4RbvTa%2B%2B3gwdkZGS4EV4bePnypWCzDBw4UJBHQSglODhYHjx4IFwDu2TAgAGyZcsWOX78uMyaNUugsPNQV%2BexcEJ2794tkZGRcu3atY7U1NRmrNfMzMxqTP/mH4lkbPJcuXJFb926pYsXL9a9e/fqtGnTtKWlRefMmeN47fP20KFDBsBHjx4pUK4PHz7UGzdu6IsXLzQ7O9uJQklJifbv39%2BigRRrQkKCnjlzxqLqn4JQ5pTWURkV9OnTR58/f26H79%2B//71QA926Z8%2BeT4Z/9erVztiaNWtM2YQJE0z5smXLDMTetU4ImO/cAwcOyNOnT20AvwVlJqtWrRIc5ljK0N%2B5c0eKioqccPfr108QCZtjuMvKyqxPuXTpktTX18vjx48FkZC4uDgBZ3Cqzd8ANw4p4ERjY6Pluq2tTZKTkyUmJkYqKiqcvDLvT548sdxTVq5cKQipJCUlyYoVKwwHoO9OpMFwYgnRFZCVGREfH29OonwbuSbE5xmUtnCSoHv16pUUFhbK0qVL5fbt25Kenm7AQxXYgcOGDZP79%2B/LsWPHZOTIkWY0PT169Kjk5uYKytX2UZBC7mvFuU2jRo2KxL4wRCQI%2BCnxxwA9bN61a5flBh5oVFSURkdHW%2BnBa4WBTo5nzpxpYOvdu7eCYhUh16FDh1neiRkoctbOmzePZxXJx/IeF4QSWEQr6ZIbUSr2JdMRVAQSK8HfEDZS7fbt2/Xs2bMG4okTJ743n5%2Bfz%2B%2BP0o24kKef6QGwoCdPnnQYcMeOHQ6pbNy4UdPS0uw3jdm0aZNev35dgRcjLl5CBQUFjpE8b%2B3atSSW6K6UB%2BGwQix2g%2Bc9LBtuZgrI9T7ZsGGD1THyp8CILliwwNYBD4qqUHLI3bt3FTm28YMHD/LrmTp1aq109/CBAQ3Dhw/3AEx2MIX5ffbsmfV58fiEngNodinxBsT1arUNkFmaFi1a5HDAvn37%2BE2Qbh4hnEz0crabB5GUfGGkkA3pGe/8nJwciw7nUNNaXFxsfbyIdMmSJbpz507dtm2bLl%2B%2BnJcXw/%2BL9EBoxDdU7LOeFUD0sz99%2BnRTVFVVZcb4hAj3GYn7wCh8yJAhDgBDQ0P5zZQePsNkxowZleJHrQQeD6ExsbGxOnjwYAUPWAky7KyO8vJySxUfI4zM7NmzCTzr4z3gWb9%2BfX1XOoM%2BiILP%2BnS0fKTlh3Hjxn2DfAsMMSLCi0YQBYFBAjIxguJv3nxkQZIQx8impGX8Tmlqavpb/uNr%2BUPDvkMj995EXbeCSu1xwhIkWFNSUowvGDFGj6RER3Ch/SmfUaLQvocB%2BZMnTy5DvxIGtODdYEYwbbhH0qT7/x6fTcKkp%2BD7Kl9S/gWQAm5AIYveoQAAAABJRU5ErkJggg%3D%3D&logoColor=white)](https://www.utopaistudios.com/)
[![Discord][discord-shield]][discord-url]
[![Follow @UtopaiStudios](https://img.shields.io/badge/Follow-%40UtopaiStudios-000000?style=flat&logo=x&logoColor=white)](https://x.com/UtopaiStudios)
<br />
[![Claude Code supported](https://img.shields.io/badge/Claude_Code-supported-2EA44F?style=flat&labelColor=D97757&logo=anthropic&logoColor=white)][claude-code-url]
[![Codex supported](https://img.shields.io/badge/Codex-supported-2EA44F?style=flat&labelColor=111111&logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NCA2NCI%2BPGcgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZmZmIiBzdHJva2Utd2lkdGg9IjUuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNMzIgOGM2LjIgMCAxMS40IDMuMiAxNC4zIDguMUwzMiAyNC40IDE3LjcgMTYuMUMyMC42IDExLjIgMjUuOCA4IDMyIDhaIi8%2BPHBhdGggZD0iTTUwLjIgMTguM2M1LjQgMy4xIDguMSA4LjggNy44IDE0LjVsLTE0LjMtOC4zVjguMWMyLjUgMS4yIDQuOCAzLjEgNi41IDEwLjJaIiB0cmFuc2Zvcm09InJvdGF0ZSg2MCAzMiAzMikiLz48cGF0aCBkPSJNNTAuMiAxOC4zYzUuNCAzLjEgOC4xIDguOCA3LjggMTQuNWwtMTQuMy04LjNWOC4xYzIuNSAxLjIgNC44IDMuMSA2LjUgMTAuMloiIHRyYW5zZm9ybT0icm90YXRlKDEyMCAzMiAzMikiLz48cGF0aCBkPSJNNTAuMiAxOC4zYzUuNCAzLjEgOC4xIDguOCA3LjggMTQuNWwtMTQuMy04LjNWOC4xYzIuNSAxLjIgNC44IDMuMSA2LjUgMTAuMloiIHRyYW5zZm9ybT0icm90YXRlKDE4MCAzMiAzMikiLz48cGF0aCBkPSJNNTAuMiAxOC4zYzUuNCAzLjEgOC4xIDguOCA3LjggMTQuNWwtMTQuMy04LjNWOC4xYzIuNSAxLjIgNC44IDMuMSA2LjUgMTAuMloiIHRyYW5zZm9ybT0icm90YXRlKDI0MCAzMiAzMikiLz48cGF0aCBkPSJNNTAuMiAxOC4zYzUuNCAzLjEgOC4xIDguOCA3LjggMTQuNWwtMTQuMy04LjNWOC4xYzIuNSAxLjIgNC44IDMuMSA2LjUgMTAuMloiIHRyYW5zZm9ybT0icm90YXRlKDMwMCAzMiAzMikiLz48L2c%2BPC9zdmc%2B&logoColor=white&logoWidth=16)][codex-url]

[discord-shield]: https://img.shields.io/badge/Discord-Join-green?style=flat&logo=discord&logoColor=white
[discord-url]: https://discord.gg/hb4MkHND
[claude-code-url]: https://code.claude.com/docs/en/overview
[codex-url]: https://developers.openai.com/codex/cli

<img src="docs/assets/canvas_view.webp" alt="PAI-Pro canvas view" width="100%" />

</div>

## What's PAI-Pro?

PAI-Pro is a local-first AI filmmaking workspace built around four things:

- **Your own [Claude Code][claude-code-url] or [Codex][codex-url]**, capable agents connected to local project files, persistent context, and customized filmmaking skills. ([Setup and agents](docs/setup.md))
- **End-to-end filmmaking skills** for scripts, images, videos, and voice. ([More skill details](docs/skills.md))
- **A visual canvas and timeline** for designing scenes, managing assets, arranging shots, and keeping larger productions organized.
- **One API service for story media** across image, video, voice, and 4K upscaling, so productions do not need separate providers for each step. ([API service details](docs/api_service.md))

## Quick start

Use Claude Code or Codex to install PAI-Pro for you. Paste this into your agent:

> Clone [`https://github.com/Utopai-Research/pai-pro`](https://github.com/Utopai-Research/pai-pro), read the setup docs in [README.md](README.md) and [docs/setup.md](docs/setup.md), then install PAI-Pro for my current agent. Ask me for my `PAI_KEY`, use Docker unless I ask for local development, and start the app when setup is complete.

| Choose | Commands |
| --- | --- |
| <img src="https://cdn.jsdelivr.net/npm/simple-icons/icons/anthropic.svg" alt="Anthropic" width="16" height="16" /> **[Claude Code][claude-code-url]** | Docker: `./scripts/docker-start.sh`<br />Local: if ports are busy, run `./scripts/stop.sh` first; then `./scripts/setup --agent claude` and `./scripts/start.sh` |
| <img src="https://cdn.jsdelivr.net/gh/glincker/thesvg@main/public/icons/openai/light.svg" alt="OpenAI" width="16" height="16" /> **[Codex][codex-url]** | Docker: `PAI_DEFAULT_AGENT_ID=codex ./scripts/docker-start.sh`<br />Local: if ports are busy, run `./scripts/stop.sh` first; then `./scripts/setup --agent codex` and `PAI_DEFAULT_AGENT_ID=codex ./scripts/start.sh` |

Open Docker at <http://localhost:7588> or local at <http://localhost:7443>.

## API Service

`PAI_KEY` gives each production one service for image, image pro, video, voice, and 4K upscaling, without separate provider keys for each step. Use the <a href="https://pai-pro.utopaistudios.com/keys" target="_blank" rel="noopener noreferrer">PAI Pro Developer Platform</a> to manage keys, tasks, balance, and credits. It also supports less restrictive video moderation via asset preupload and helps support this project. Paid generations are staged first; for BYOK and exact payloads, see [API Service](docs/api_service.md).

| Capability | Quality | Time | # of references | Estimated price |
|---|---|---|---|---|
| [`generate_image`](server/cli/generate_image.js) | Great | ~10-30s | 16 imgs | $0.07 / $0.10 / $0.15 for 1K / 2K / 4K |
| [`generate_image_pro`](server/cli/generate_image_pro.js) | Best | ~3-6 min | 32 imgs | $0.26 / $0.45 / $0.77 for 1K / 2K / 4K |
| [`generate_video`](server/cli/generate_video.js) | Best | ~3-6 min | 9 imgs / 3 vids / 3 auds | $0.08/s / $0.20/s / $0.44/s for 480p / 720p / 1080p |
| [`upscaler`](server/cli/upscaler.js) | Best | 1-min example: ~4-8 min landed | 1 video | 1-min example: $1.35 for 1080p->4K, $2.35 for 720p->4K |
| [`generate_voice`](server/cli/generate_voice.js) | Good | ~5-15s | N/A | $0.01 per 500 input characters, rounded up |

## Resources

- 💬 [Discord][discord-url] — questions, ideas, support, and show & tell
- ⚙️ [API Service](docs/api_service.md) — developer platform notes, BYOK counterparts, and exact media JSON payloads
- 🎬 [Skills reference](docs/skills.md) — how filmmaking skills route agent requests
- 🚀 [Setup and agents](docs/setup.md) — choose Docker or host mode, configure Claude/Codex, and understand ports, auth, and permissions
- 🏗 [Architecture](docs/architecture.md) — viewer, CLI, canvas, and project-file layout
- ❓ [FAQ](docs/faq.md) — common setup and generation issues
- 🐛 [Issues](https://github.com/Utopai-Research/pai-pro/issues) — bug reports only
- 🤝 [Contributing](CONTRIBUTING.md) — contribution guide, proprietary-skills carve-out, and CLA flow

## License

PAI-Pro is released under the [PAI PRO Sustainable Use License](LICENSE.md), which permits personal use, non-commercial research, and internal business use. Commercial use of PAI-Pro Skills or enterprise-designated source code/Skills requires an explicit agreement; [enterprise licenses](mailto:enterprise@utopaistudios.com) are available.
