让一个故事,从文字走向银幕
影策是一个开源的 AI 影视与短剧创作工作台:用自由画布组织创作,用结构化工作流管理剧本、角色、场景和分镜,并通过统一的任务系统完成图片、视频、音频与文本生成。
项目仍在快速开发,数据结构和外部接口可能调整。默认适合个人、本地或可信环境部署;未经安全配置,不要直接作为公网多人服务使用。
在线演示:https://ddcat.pronhubcn.com
账号/密码:test/test123456
- 自由画布:节点、连线、框选、缩放、小地图、撤销重做、导入导出和只读分享。
- 影视创作工作流:剧本、角色、场景、风格板、参考素材、结构化分镜和 3D 导演台。
- 多媒体生成:文本、图片、视频、音频任务,支持参考图、首尾帧、运镜、续写、局部修改和批量生成。
- 任务与素材管理:异步队列、进度与日志、取消/重试、素材库、资源引用校验和登录后的跨设备同步。
- 时间线剪辑:片段编排、拆分、修剪、字幕转写和服务端成片导出,并支持插件化编辑面板。
- 云端 Agent:支持持久化对话、画布摘要和流式事件回放;当前为只读阶段,真实环境能力以文档和验收清单为准。
- 管理与渠道:系统渠道、逻辑模型、用量/积分、功能开关、对象存储、响应拦截和管理后台。
完整功能以功能清单为准。
git clone https://github.com/ddcat-ai/open-ai-canvas.git
cd open-ai-canvas
# 使用 Git 忽略的目录保存本地开发数据和缓存
mkdir -p .local/project-workbench-debug .local/cache/go-build .local/cache/go-mod
# 终端一:后端
cd backend
CANVAS_BACKEND_ADDR=127.0.0.1:8080 \
CANVAS_BACKEND_DATA_DIR=../.local/project-workbench-debug \
GOCACHE=../.local/cache/go-build \
GOMODCACHE=../.local/cache/go-mod \
go run ./cmd/server
# 终端二:前端
cd ../web
bun install --frozen-lockfile
bun run dev打开 http://localhost:3000。首次使用时注册管理员账号,并在设置中配置模型渠道。前端默认将 /api 代理到 http://127.0.0.1:8080;如需修改代理目标,可设置 VITE_API_PROXY_TARGET。
Windows PowerShell 用户可在仓库根目录执行:
.\scripts\start-local.ps1源码热更新:
LOCAL_UID=$(id -u) LOCAL_GID=$(id -g) \
docker compose -f docker-compose.dev.yml up --build本地构建并运行 release 镜像:
docker compose -f docker-compose.local.yml up -d --build默认前端端口为 3000、后端端口为 8080;端口冲突时可通过 CANVAS_WEB_HOST_PORT 和 CANVAS_BACKEND_HOST_PORT 覆盖。
更多本地开发说明(包括时间线字幕转写)见本地开发文档。
浏览器(web/)
├─ React 工作区、画布、任务中心和素材库
├─ Zustand / localForage 本地状态与降级缓存
└─ 登录态 API、资源请求和 SSE
│
▼
后端(backend/)
├─ Gin handler -> service -> repository/model
├─ SQLite(本地)或 PostgreSQL + Redis(部署)
├─ 异步任务 worker、权限、资源存储和模型中转
└─ provider / outbound -> 外部模型渠道
前端业务 API 统一经 web/src/services/api/request.ts 调用。生产环境由 Nginx 托管前端并代理后端,公网只需暴露 web 入口;SSE 仅在明确的流式路径关闭代理缓冲。
适用于 Linux 云服务器。脚本会安装 Docker、拉取源码、生成受保护的 .env,并启动 PostgreSQL、Redis、后端和网页:
curl -fsSL https://raw.githubusercontent.com/ddcat-ai/open-ai-canvas/main/scripts/install-server.sh | sudo bash默认访问 http://服务器IP:3000。更新或排查:
cd /opt/open-ai-canvas
sudo docker compose --env-file .env \
-f docker-compose.deploy.yml -f docker-compose.build.yml ps
sudo docker compose --env-file .env \
-f docker-compose.deploy.yml -f docker-compose.build.yml logs -f --tail=200不需要源码时,可使用镜像部署脚本:
curl -fsSL https://raw.githubusercontent.com/ddcat-ai/open-ai-canvas/main/scripts/install-server-image.sh | sudo bash生产环境请在 /opt/open-ai-canvas/.env 中将 CANVAS_IMAGE_TAG 固定为具体 Release,不要使用 latest。更新流程、数据库迁移、备份和回退说明见系统更新文档。
- 首次管理员注册应在受控网络完成,公网部署保持
CANVAS_REGISTRATION_ENABLED=false。 - 设置准确的
CANVAS_CORS_ORIGINS,不要在公网使用*;使用 HTTPS 并正确转发代理头。 - 后端默认拒绝本机、私网和链路本地模型地址。开发时只通过
CANVAS_ALLOWED_PRIVATE_UPSTREAM_HOSTS精确放行可信主机,不要使用全量放行开关。 - 用户 API Key 不应出现在 URL、日志、错误上报或服务端长期明文存储中;只在可信部署和 HTTPS 链路中使用真实密钥。
- 后端
8080应留在 Compose 网络内,不要直接暴露到公网;限制.env、数据库、上传目录、备份和.settings-key的权限。 - 媒体资源可使用后端数据目录、阿里云 OSS 或腾讯云 COS;删除素材前会检查业务引用。
安全问题请按 SECURITY.md 报告,不要在公开 Issue 中粘贴密钥、Cookie、数据库或生产日志。
按改动范围运行最小验证:
# 前端
cd web && bun run lint && bun run build
# 后端
cd backend && go test ./...
# 文档站
cd docs && bun run types:checkIssue 反馈、技术讨论和产品升级建议可以在微信交流群中沟通;群内也会不定期组织 AI 学习与培训交流会。
本项目采用 MIT 协议。影策基于 basketikun/infinite-canvas 的早期版本进行二次开发,上游作者和贡献者保留其对应代码的权利与署名。
感谢以下赞助商对影策项目的支持:
| LOGO | 类型 | 赞助商名称 | 说明 | 网站 |
|---|---|---|---|---|
![]() |
商业 | ArtDance | 本项目 Seedance 模型的天使投资人。 | artbox.top |
![]() |
商业 | soonstudio | API 一站式网站,自研系统,非 New API;支持手机、短信接码,覆盖国内外几乎所有模型 API 接口,并发高、稳定性强。源于开源,步入 AI 领域,感谢开源。 | soonstudio.ai |
| 团队 | 快乐机艺术小组 | 一支跨学科的艺术创作团队,持续探索数字与艺术的全新表达形式。 | 暂无 | |
![]() |
企业 | 秘塔 | 提供 MiniMax H3 视频生成 API,支持原生 2K、音画同步和 OpenAI 兼容协议。 | metaso.cn |
![]() |
企业 | 浮瑞万相AI | 一家专注于AI视听的AI Native公司 | 暂无 |
![]() |
团队 | 喜马抓马 | 中国AI视听先锋厂牌/AI 视听全链路综合服务平台 | himadrama.com |
![]() |
企业 | 羽宇科技 | 一站式AI应用平台。提供模型算力入口、AI短剧视频制作(Studio)、企业数字员工(Agent)及内容出海(OPC)全栈解决方案。 | 暂无 |
感谢参与产品设计、开发、测试、内容和社区建设的成员。以下为紧凑展示,完整保留每位成员的头像、昵称、联系方式和个性签名:
ddCat项目发起者 · 微信:ddcat0829 [email protected] 在计算机里头没有任何黑魔法,所有的东西只不过是我现在不知道而已,总有一天我会把所有的细节、所有的内部的东西全搞明白的。 |
爱笑的毛毛虫用户名:sikongyue [email protected] 正在啃 main 分支,争取下次 merge 的时候变成蝴蝶 |
delve-s[email protected] 我亦无他,惟手熟尔 |
CyrusAuyeung[email protected] HKUST(GZ) UG |
奶大佬[email protected] 人生就是要不断的探索 |
dyh[email protected] 无 |
kyori[email protected] 励志成为未来最好用的画布仓库的贡献者 |
Bowen[email protected] 剑走偏峰,雷厉风行。 |
ken[email protected] 走自己的路 |
fish[email protected] AI 界热于助人的拖油瓶 |
QAyongID:QAyong B站:QAyong [email protected] AI 短剧合规,资产确权 |
_K37ix.[email protected] Making things that think |
Rou[email protected] 上善若水 |
vvdy/xhs:荣灵 [email protected] 就是水水 |
Dominic1556[email protected] Done is better than perfect |
宇熙[email protected] 年轻的时候不狂,老了拿什么回忆 |
影子[email protected] 年纪大佬才明白人要顺势而为。 |
Ray[email protected] AI时代的全栈落地工,欢迎找我聊需求 |
不见山谷VV:yu170718 [email protected] 空山不见人,但闻人语响 |
yep[email protected] 思考,坚持 |
汉堡爸爸VV:jxs62888 [email protected] 没什么大不了 |
bensharpVV:jiahezuiai [email protected] 在哪跌倒,就在哪睡一觉 |
daqziaVV:wangzhiwei-8234 [email protected] NullPointerException |
醒梦VV:love-is-heart-is [email protected] Always believe that good things will happen |
morrowVV:morrow0127 [email protected] 最难不过坚持 |
春秋Agent记忆核心贡献者 · VV:A13068788886 [email protected] |
































