LLM Cinema 是一间开在网页里的 ASCII 电影放映厅。主角是一个叫 Cinema 的小模型,经过 LoRA 微调的 MiniCPM3-4B。它能写、能画、能导原创 ASCII 短片,然后在页面里一帧帧流式放出来。没有视频,没有声音,只有一帧接一帧的想象力。

给它一个概念,Cinema 就能写出一部 9 个段落(beat)、约 90 秒的电影。故事自己构思,角色用 ASCII 画出来,地形(波光粼粼的水面、草地、雪地、熔岩……)、天气、时间自己挑,镜头运动(平移 / 推近 / 抖动)自己安排,每个角色的情绪也由它设定,最后在一块小小的炭灰色终端上完成调度和放映。
玩法
- 🎬 Make a film:输入任意概念(或点 Surprise),实时看 Cinema 编写、绘制并播放一部原创电影。
- 🍿 Gallery:精选影片,模型还没唤醒也能立即重播。
- 🔁 Replay 重播当前影片;手机上可以用 ⛶ Fullscreen 进入影院视图。
工作原理
- Cinema(LoRA 微调的 MiniCPM3-4B)输出一份严格 JSON 格式的“电影剧本”:片名、一句话梗概,以及若干镜头(旁白、演员、动作、场景、镜头、情绪、对白)。
- 一个从零写的 ASCII 引擎负责解析每个角色(精灵图库,加上针对新角色按需绘制的模型),用带 z 轴遮挡的方式合成画面,补上有纹理的地面和布景(太阳/月亮、云、星星、树木),再做动画和字幕。
- 自定义的
gr.Server前端通过 SSE 把画面帧推到电影院大厅背景上,环境灯光会随屏幕动作变化。 - 导演模型可选通过 llama.cpp 运行时(GGUF)完全在本机运行,不依赖任何云 API。
模型和训练流程未公开,这个应用只作演示。
两种运行方式
托管的 Space 通过云端端点实时生成,方便直接在浏览器里体验。项目同时提供一个完全离网(off-the-grid)的版本,用 llama.cpp 在本地跑这个 4B 模型。作者把本地离网运行看作主要方式。
离网本地运行
模型通过 llama.cpp 在本地提供 OpenAI 兼容端点,应用直接指过去,不需要云端,也不需要密钥:
pip install -r requirements-local.txt
# serve the local GGUF model (OpenAI-compatible, llama.cpp) on :8000
MODEL=./models/cinema-q4_k_m.gguf python serve_llamacpp.py
# then, in another shell, point the app at it and open the cinema:
export CLAUDEMOVIES_LLM_URL=http://localhost:8000/v1
export CLAUDEMOVIES_LLM_KEY=local # any non-empty string; not checked
export CLAUDEMOVIES_LLM_MODEL=cinema
python server_app.py
完整步骤(GGUF 转换与量化、编译 llama.cpp)见 LOCAL_LLAMACPP.md。Gallery 里的影片是预先写好的,模型没跑也能播放,所以页面总能立刻有内容。
托管演示(可选)
同一个应用也可以指向任意托管的 OpenAI 兼容端点,通过 Space secrets(CLAUDEMOVIES_LLM_URL / _MODEL / _KEY)配置,仓库里不提交任何密钥。这只是让在线链接更方便,本地离网运行才是项目的完整形态。
参赛信息
项目参加 Build Small Hackathon 的 An Adventure in Thousand Token Wood 赛道,题目是做一个没有 AI 就不会存在的愉悦体验。这里模型确实“承重”:写故事、画每个角色、导演整场调度。整个项目跑在 4B 的 MiniCPM3-4B 上,低于 32B 上限,也满足 Tiny Titan 的 4B 门槛。
附加徽章:
- Off-Brand:完全自定义的
gr.Server前端(电影院大厅背景、投到银幕上的 ASCII、响应式灯光)。 - Off the Grid:可选通过 llama.cpp 完全本地运行,不调云 API。
- Llama Champion:模型由 llama.cpp 运行时提供服务(
serve_llamacpp.py)。 - Field Notes:见
FIELD_NOTES.md。 - Open Trace:智能体构建过程的轨迹(已清理敏感信息):
traces/AGENT_TRACE.md。
相关链接
- 在线体验:conductorailabs-llm-cinema.hf.space
- Hugging Face Space:build-small-hackathon/llm-cinema
- 演示视频:llm_cinema.mp4
- 社交帖子:LinkedIn
项目作者:ConductorAILabs。
