Profile
Back to NewsBack
GitHub Trending 3 min
Reader Mode
ddcat-ai/open-ai-canvas: 【影策】面向 AI 影视创作的开源无限画布工作台,集成多模态生成、分镜编排、素材管理与 Agent 工作流。

ddcat-ai/open-ai-canvas: 【影策】面向 AI 影视创作的开源无限画布工作台,集成多模态生成、分镜编排、素材管理与 Agent 工作流。

5 hours ago

影策 logo

影策

让一个故事,从文字走向银幕

GitHub · 功能 · 文档 · 安全策略

影策是一个开源的 AI 影视与短剧创作工作台:用自由画布组织创作,用结构化工作流管理剧本、角色、场景和分镜,并通过统一的任务系统完成图片、视频、音频与文本生成。

项目仍在快速开发,数据结构和外部接口可能调整。默认适合个人、本地或可信环境部署;未经安全配置,不要直接作为公网多人服务使用。

在线演示:https://yingce.tv

账号/密码:test/test123456

赞助商

感谢以下赞助商对影策项目的支持:

| LOGO | 类型 | 赞助商名称 | 说明 | 网站 | | --- | --- | --- | --- | --- | | ArtDance | 商业 | ArtDance | 本项目 Seedance 模型的天使投资人。 | artbox.top | | soonstudio | 商业 | soonstudio | API 一站式网站,自研系统,非 New API;支持手机、短信接码,覆盖国内外几乎所有模型 API 接口,并发高、稳定性强。源于开源,步入 AI 领域,感谢开源。 | soonstudio.ai | | Fluxion AI | 商业 | Fluxion AI | 面向个人开发者、技术团队与企业,通过统一 API 接入并管理全球主流 AI 模型,根据不同模型与线路,API 调用成本较官方或基准价格可降低 40%—98%。 | 注册送 $3.88 试用福利 | | 快乐机艺术小组 | 团队 | 快乐机艺术小组 | 一支跨学科的艺术创作团队,持续探索数字与艺术的全新表达形式。 | 暂无 | | 秘塔 | 企业 | 秘塔 | 提供 MiniMax H3 视频生成 API,支持原生 2K、音画同步和 OpenAI 兼容协议。 | metaso.cn | | 浮瑞万相AI | 企业 | 浮瑞万相AI | 一家专注于AI视听的AI Native公司 | 暂无 | | 喜马抓马 | 团队 | 喜马抓马 | 中国AI视听先锋厂牌/AI 视听全链路综合服务平台 | himadrama.com | | 羽宇科技 | 企业 | 羽宇科技 | 一站式AI应用平台。提供模型算力入口、AI短剧视频制作(Studio)、企业数字员工(Agent)及内容出海(OPC)全栈解决方案。 | 暂无 | | panda AI | 团队 | panda AI | API接口平台,面向个人开发者、技术团队与企业,稳定提供GPT、Gemini、grok等图片视频模型 | api.pandatk.com |

3D 预演台赞助用户

感谢以下用户赞助 3D 预演台的开发:

TripsCoder sugtex Leyi813 daoge05178 AetherNo2332

GitHub 用户:@TripsCoder · @sugtex · @Leyi813 · @daoge05178 · @AetherNo2332

| 赞助用户 | 联系方式 | | --- | --- | | vv | [email protected] | | 克里斯 | artbox.top | | 宇熙 | [email protected] | | 落羽 | [email protected] | | 今夕何在 | [email protected] | | Alpha-M·Break | [email protected] | | 不吃鸭梨 | [email protected] | | 九月 | [email protected] | | A | [email protected] |

核心能力

  • 自由画布:节点、连线、框选、缩放、小地图、撤销重做、导入导出和只读分享。
  • 影视创作工作流:剧本、角色、场景、风格板、参考素材、结构化分镜和 3D 导演台。
  • 多媒体生成:文本、图片、视频、音频任务,支持参考图、首尾帧、运镜、续写、局部修改和批量生成。
  • 任务与素材管理:异步队列、进度与日志、取消/重试、素材库、资源引用校验和登录后的跨设备同步。
  • 时间线剪辑:片段编排、拆分、修剪、字幕转写和服务端成片导出,并支持插件化编辑面板。
  • 云端 Agent:支持持久化对话、画布摘要和流式事件回放;当前为只读阶段,真实环境能力以文档和验收清单为准。
  • Agent 技能生态:内置技能覆盖生产流程;社区技能库 judian-skills 提供 34 个场景域包索引,完整卡片通过 GitHub 安装后按需读取。安装:技能页 → 安装技能 → GitHub 标签 → 仓库地址填 https://github.com/itsWyatt-K/judian-skills,子目录填 skills/drama/story-structure-engine 这类域包路径。
  • 管理与渠道:系统渠道、逻辑模型、用量/积分、功能开关、对象存储、响应拦截和管理后台。
完整功能以功能清单为准。

快速开始

环境要求

  • Bun:前端和文档站
  • Go 1.25:后端
  • Docker Compose:仅在使用容器开发或部署时需要

宿主机启动

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

打开 。首次使用时注册管理员账号,并在设置中配置模型渠道。前端默认将 /api 代理到 http://127.0.0.1:8080;如需修改代理目标,可设置 VITE_API_PROXY_TARGET。

Windows PowerShell 用户可在仓库根目录执行:

.\scripts\start-local.ps1

Docker 开发与本地构建

以下命令用于本地开发或试运行。部署服务器并使用后台在线更新,请使用下文的官方 Release 镜像部署。

源码热更新:

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 的 3000,后端留在容器网络内,不安装 Host Updater。

更多本地开发说明(包括时间线字幕转写)见本地开发文档。

架构概览

浏览器(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 仅在明确的流式路径关闭代理缓冲。

服务器部署

官方 Release 镜像(推荐,支持后台在线更新)

适用于使用 systemd 的 Linux 服务器。先从 GitHub Releases 选择包含镜像、Host Updater 二进制和 SHA256SUMS 的已发布版本,将下方 vX.Y.Z 替换为该版本:

CANVAS_RELEASE=vX.Y.Z
curl -fsSL "https://raw.githubusercontent.com/ddcat-ai/open-ai-canvas/${CANVAS_RELEASE}/scripts/install-server-image.sh" \
  | sudo env CANVAS_IMAGE_TAG="${CANVAS_RELEASE}" REPOSITORY_REF="${CANVAS_RELEASE}" bash

脚本使用 docker-compose.deploy.yml,启动 PostgreSQL、Redis、独立 yingce-agent、backend 和 web,由一次性 migrate 服务迁移数据库,并安装宿主机 Host Updater。backend、web、Agent 镜像会固定为对应 GHCR digest。默认访问 http://服务器IP:3000,安装完成后在“系统配置 → 系统更新”检查后续版本。

查看状态和日志:

cd /opt/open-ai-canvas
sudo docker compose --env-file .env -f docker-compose.deploy.yml ps
sudo docker compose --env-file .env -f docker-compose.deploy.yml logs -f --tail=200

源码构建与已有部署

需要运行自行修改的源码时,可以使用源码安装脚本:

curl -fsSL https://raw.githubusercontent.com/ddcat-ai/open-ai-canvas/main/scripts/install-server.sh | sudo bash

脚本使用 PostgreSQL、Redis、独立 Agent 和源码构建叠加层,但不安装 Host Updater;该部署不属于后台在线更新管理范围,需自行构建、备份和升级。根目录的 docker-compose.yml、docker-compose.local.yml 和自行编写的两容器 SQLite 编排用于本地试运行,不作为默认服务器部署方案。

已有 SQLite 或自定义 Compose 部署,不能只替换 Compose 文件或补装更新器就获得在线更新;应先核对原数据卷、完成备份和数据迁移。方案选择见 Docker 部署,更新约束、备份和回退见系统更新文档。

安全边界

  • 首次管理员注册应在受控网络完成,公网部署保持 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:check

许可证

本项目采用 MIT 协议。项目特定代码的版权归 Open AI Canvas 贡献者所有;第三方组件按各自附带的许可证和版权声明使用。


贡献者与团队

感谢参与产品设计、开发、测试、内容和社区建设的成员。以下为紧凑展示,完整保留每位成员的头像、昵称、联系方式和个性签名:

ddCat ddCat
项目发起者 · 微信:ddcat0829

[email protected]
在计算机里头没有任何黑魔法,所有的东西只不过是我现在不知道而已,总有一天我会把所有的细节、所有的内部的东西全搞明白的。
爱笑的毛毛虫 爱笑的毛毛虫
用户名:sikongyue

[email protected]
正在啃 main 分支,争取下次 merge 的时候变成蝴蝶
delve-s delve-s
[email protected]
我亦无他,惟手熟尔
CyrusAuyeung CyrusAuyeung
[email protected]
HKUST(GZ) UG
奶大佬 奶大佬
[email protected]
人生就是要不断的探索
dyh dyh
[email protected]
无
kyori kyori
[email protected]
励志成为未来最好用的画布仓库的贡献者
Bowen Bowen
[email protected]
剑走偏峰,雷厉风行。
ken ken
[email protected]
走自己的路
fish fish
[email protected]
AI 界热于助人的拖油瓶
QAyong QAyong
ID:QAyong
B站:QAyong

[email protected]
AI 短剧合规,资产确权
_K37ix. _K37ix.
[email protected]
Making things that think
Rou Rou
[email protected]
上善若水
vv vv
dy/xhs:荣灵

[email protected]
就是水水
Dominic1556 Dominic1556
[email protected]
Done is better than perfect
宇熙 宇熙
[email protected]
年轻的时候不狂,老了拿什么回忆
影子 影子
[email protected]
年纪大佬才明白人要顺势而为。
Ray Ray
[email protected]
AI时代的全栈落地工,欢迎找我聊需求
不见山谷 不见山谷
VV:yu170718

[email protected]
空山不见人,但闻人语响
yep yep
[email protected]
思考,坚持
汉堡爸爸 汉堡爸爸
VV:jxs62888

[email protected]
没什么大不了
bensharp nancy
VV:jiahezuiai

[email protected]
在哪跌倒,就在哪睡一觉
daqzia daqzia
VV:wangzhiwei-8234

[email protected]
NullPointerException
醒梦 醒梦
VV:love-is-heart-is

[email protected]
Always believe that good things will happen
morrow morrow
VV:morrow0127

[email protected]
最难不过坚持
春秋 春秋
Agent记忆核心贡献者 · VV:A13068788886

[email protected]

亿媒网老宋 亿媒网老宋
[email protected]
亿媒网 em8.top
全国10W+媒体、自媒体,助力企业品牌传播
Wyatt_K Wyatt_K
千里之行,始于足下。
Chat with me