pocket-memory
v1.0.0
Published
Turn one real photo into a cinematic four-frame memory sequence through source-faithful reframing, visual paths, and a quiet handwritten subtitle—giving a captured instant room to become felt time.
Maintainers
Readme
Pocket Memory 不替你虚构照片之外的后来;它只沿着一张真实照片里的视觉路径,把被快门留住的一个瞬间,重新展开成一段可以被感受的时间。
如果 Pocket Memory 曾让你在一张照片前多停留几秒,欢迎点亮一颗 Star ⭐。你的支持会让这份温柔继续被认真打磨——愿那些曾被生活匆匆带过的瞬间,不只被保存,也终于被看见;愿每一个来不及细想的当下,都能在回望时拥有接近永恒的长度。
1888 年,柯达用一句 “You press the button, we do the rest” 定义了摄影。
我一直觉得,每个人的生活原本就是一部部的 movie。
只是我们常常被太多事情裹挟着向前走,没有多余的精力停下来,品味和感受那些正在发生的 scene。
耳机戴久了,我们对身边的环境也渐渐变得迟钝。小时候清晰可闻的虫鸣与蛙叫,不知从什么时候开始,被隔在了生活之外。
技术的飞速进步确实带来了许多便利。可我总觉得,我们好像并没有因此比从前活得更快乐。
Pocket Memory 是一个跨 Agent 的图像创作 Skill。你给它一张照片,再说说当时发生了什么、空气是什么样、你记得什么或后来才明白什么;它不替你补拍前后发生的事,而是先判断时间来自照片里的真实运动,还是来自观看本身,再连续取景四次。
ONE IMAGE → ONE TIME MODE → FOUR DEPENDENT FRAMINGS → ONE FELT MOMENT它不把生活“拍得像电影”。生活本来就由一幕一幕组成,只是我们常常忙着生活,来不及感受。
示例
四张照片,两种时间机制;所有画格都只来自各自的原图。
安装
从 GitHub 安装(推荐)
直接从已发布仓库安装,无需先 clone:
npx skills add the-thinker0/pocket-memory安装到常用 Agents,并设为全局可用:
npx skills add the-thinker0/pocket-memory -g -a codex -a cursor -a claude-code -a grok -y安装到所有受支持的 Agents:
npx skills add the-thinker0/pocket-memory -g --agent '*' --skill pocket-memory -y从 npm 安装
先安装已发布的 npm 包,再让 skills CLI 从 node_modules 中安装 Skill:
npm install pocket-memory
npx skills add ./node_modules/pocket-memory如需指定 Agents 或全局安装,可在第二条命令后添加相同的 -a 与 -g 参数:
npx skills add ./node_modules/pocket-memory -g -a codex -a cursor -a claude-code -a grok -y安装完成后,重新打开或刷新对应 Agent 会话即可使用 $pocket-memory。
它会生成什么
一张完整的四格位图作品。Skill 会根据照片选择一种时间机制:
Motion Time
- ESTABLISH:保留完整场景,告诉观看者“这一刻在哪里”;
- CONTACT:强调两个可见元素真正发生连接,而不只是把主体放大;
- TRAVEL:沿同一载体继续传递,让光线、视线、手势、道路或波浪成为全组最明显的运动;
- ARRIVAL / RESIDUE:回答这条路径最终到达哪里,以及它如何在原图里散开、停下或留下余迹。
Attention Time
它先选择四份内容,而不是先决定四个位置:
- 一份接近原图全貌的 Source Anchor,负责证明 scene;
- 三份由原图裁出的
A / B / C,各自具有不同的主体或关系,并能通过真实可见的元素彼此交接。
然后比较仍然连贯的排列,把它们放进:
SOURCE ANCHOR + A + B + C
↓ compare viable orders
ENTRY → CONTINUE → TURN / REVEAL → SETTLESource Anchor 是事实证据,不是固定片头。它可以在第一、第二、第三或第四格:哪里能让亮度、色温、尺度、信息密度与空间方向形成更自然的渐变,就放在哪里。像 3 → 2 → 1 → 4 这样的重排可以成立,但只是对某一张照片的判断,不是新模板。
Attention Time 不虚构外部世界的运动,也不再用“同一主体的中景 → 近景 → 特写”制造时间。相邻画格必须改变主要角色;上一格的主体只能作为下一格边缘的小段接力证据,不能连续居中、连续成为主角。
例如城市夜景不应是 桥 → 更大的桥 → 河面,而可以是 河岸灯火 → 桥面连接 → 水中倒影。日落也不应让后三格都落在金黄色天空里,而应让 暗云裂口 → 穿过山城的光路 → 河湾反光 形成主体和色调的双重接力。
这借用了 原图证据 → 元素显露 → 连接关系 的思路,但不复制三层模板。四格的内容先被选出,再依据可见交接与整体渐变排序;时间来自注意力在不同视觉角色之间移动,而不是来自原图被规定在某一个格子。
Motion Time 的 ESTABLISH 与 Attention Time 的 Source Anchor 都负责保存原始时刻的事实与空间关系;其余视图只能从同一张照片中裁切、放大和平移,不生成新的机位、光线、动作或“下一秒”,也不使用镜像、旋转、重复或特效制造差异。
最重要的不是“四格都好看”,而是四格必须彼此依赖。Motion Time 依靠同一条 Visual path 和动作接力;Attention Time 依靠四个不同角色、三次真实视觉交接,以及顺着全组逐渐发生的色调、尺度或信息量变化。每一格都应像上一格没有说完的后半句。
版式固定为 full-bleed 2×2,没有外围白底、独立描边、四个封闭画框,也没有任何中间缝隙。四张裁切在中央横纵坐标处直接以 0px gap 相接;不添加线条、色带、底色、曝光过渡、柔化或 glow。边界只来自相邻裁切内容本身的变化。
如果去掉字幕,四格仍看不出 完整 → 接触 → 传递 → 抵达,或看不出 进入 → 延续 → 转折 / 显露 → 停留 的观看过程,作品就算失败。
文案默认进入 subtitle mode:它属于整个 moment,而不是第一格。字幕稳定地出现在整幅作品下方中部,必要时跨过底部两格共享的中央切口;使用纤细、松弛、克制的白色或暖白色手写体和极弱阴影,像后来轻轻写进记忆的一句话,不做页边引文、杂志标题或装饰花字。
A photograph keeps what was visible. Pocket Memory gives the moment room to continue.
它为什么不是滤镜
滤镜回答“这张照片应该看起来怎样”;Pocket Memory 回答“这一刻前后还有怎样的生活”。
滤镜主要改变像素的外观。Pocket Memory 改变观看的时间结构:它保留原图作为事实锚点,让观看者跟随真实运动,或在同一个 scene 里逐步深入并沿真实关系释放视线。如果结果只是四张同构图的调色版本、四个彼此独立的漂亮裁切,或者四张由模型重新生成的相似照片,都算失败。
它也不是历史复原器。用户的讲述决定我们如何理解照片、选择局部和写文案,但不会被直接画成新的摄影事实。作品不补出照片之外的空间,不改变光、风、人物或物件,也不虚构离别、死亡、分手、迁居或任何人的后来。
文案的温度
文案短,但必须准。它来自用户的叙述和画面里的具体证据,而不是一套“怀旧金句”模板。它优先寻找 Contact 与 Arrival 之间真实存在的时间关系:先后、延迟、持续、抵达或消散,并把情绪压低一度。
期待的感觉例如:
- I didn’t know this would be the last summer we all lived in the same city.
- At the time, it was just another evening.
- Nothing in the frame said goodbye.
- We thought we would do this again next week.
- The ordinary has a way of becoming historic later.
这些句子是标尺,不是每次复制的答案。没有事实支持时,不使用 “last”“goodbye” 或 “never again”。有时最准确的句子只是:
The fan kept turning after everyone went home.
当路径本身包含传递和抵达时,更合适的句子可能是:
The light reached the shore a moment later.
使用
上传一张照片,并尽量告诉 AI:
- 这是哪里、当时在做什么;
- 你记得的声音、空气、温度、光或一个小动作;
- 现在回头看,什么变得不一样了;
- 希望使用中文还是英文文案(不说则跟随你的叙述语言)。
例如:
使用 $pocket-memory 处理这张照片。
这是大学毕业前一个普通夏夜,我们在楼下吃烧烤。那时没人觉得需要告别,
我只记得塑料凳拖过地面的声音和桌边一直被风吹起来的纸巾。文案用英文。即使只给照片也能工作;Skill 会严格区分看见的事实与保守推断,不会为了“emo”替用户编人生。
兼容性与图像模型
Pocket Memory 不绑定某一家 Agent 或某一个图像模型。标准 SKILL.md 可以安装到 Codex、Cursor、Claude Code、Grok,以及其他支持 Agent Skills 的宿主。所有宿主读取同一份根目录 SKILL.md,安装器负责把它放到各自能够发现的位置。
最终成品是一张重新编排的四格位图,因此完整运行依赖两项能力:
- 宿主能够读取并理解用户上传的照片;
- 宿主能够调用位图编辑、图像合成工具,或能够严格保留参考图内容的图片编辑模型。
Skill 本身提供场景分析、Visual path 识别、连续裁切地图、事实边界、文案和质量检查,不内置模型、API Key 或付费服务。它不要求模型“补拍”任何场景;模型若参与,只负责忠实编排同一张照片的连续裁切片段和克制文字。能使用确定性位图合成工具时,应优先保留原始像素,而不是让生成模型重新理解照片。
如果宿主只能看图、不能生图,Pocket Memory 只能输出四格镜头方案与文案草案,不能声称已经生成最终作品。它应明确说明缺少的能力,并由用户决定是否只需要文字方案。
输出命名
默认使用 <原文件名>-pocket-memory.png。例如输入 sunrise.jpg,输出为 sunrise-pocket-memory.png;若目标文件已经存在,则追加 -v2、-v3 等版本号,避免覆盖已有作品。
设计原则
- 真图为锚:ESTABLISH 或 Source Anchor 保留原图的主要事实与空间关系,不改变身份、人数、关系、关键物件、光线或天气;在 Attention Time 中,Source Anchor 不固定为第一格。
- 一图一机制:先判断照片适合真实运动接力,还是渐进式注视;不能先找三个漂亮局部,再给它们补一个解释。
- 两种时间:有真实运动载体时使用 Motion Time;静态、同时发生或适合凝视的 scene 使用 Attention Time,不强行编造外部运动。
- 渐变优先:Attention Time 先选择
Source Anchor + A + B + C,再比较可行顺序。最终使用ENTRY → CONTINUE → TURN / REVEAL → SETTLE;原图锚点放在能形成最顺畅色调、尺度、信息密度与空间渐变的位置。 - 角色接力:相邻格的主要名词必须变化;同一主体只能退到下一格边缘充当交接证据,不能以相近尺度被反复强调。
- 显著性服从眼睛:裁切计划写谁是主体并不重要,第一眼真正看到的才是主体。半张脸、半座桥、半栋楼等高显著性残片若占据视觉中心,必须补全并正式作为该格主体,或裁掉到真正次要;不能让它抢走本来计划的主体。
- 不是变焦:
桥 → 更大的桥、脸 → 更近的脸、太阳 → 更大的太阳都不构成时间。第三格必须让连接元素本身成为主角。 - 动作接力:CONTACT、TRAVEL、ARRIVAL / RESIDUE 必须沿同一路径依次推进,相邻两格共享可指出的载体和动作动词。
- 笼罩不是移动:面对铺满天空、雾气或城市的 diffuse field,默认使用 Attention Time;只有存在肉眼可追踪的具体载体时,才使用 Motion Time。
- 观看亦生时:时间可以来自原图中的真实视觉运动,也可以来自逐层深入同一 scene 的注意力;绝不来自 graphic design effect。
- 顺序不可换:先比较可行排列,再选择交接不断、渐变最顺、结尾最稳的一种。如果仍可任意交换,生成失败。
- 语义递减:Motion Time 的后两格逐渐减少完整照片感;TRAVEL 强调传递,ARRIVAL / RESIDUE 强调碎片、纹理、抵达与消散。Attention Time 不套用这条规则,而要求 Entry、Continue、Turn/Reveal、Settle 功能不同。
- 色调有层:所有画格共享原图色彩处理。当原图存在暗部、冷部、中间调和高光等不同区域时,四格应沿至少两种主色调角色形成有方向的变化;缩成模糊色块后仍显得互换无碍或出现无意义的色调折返,即失败。
- 无缝切镜:full-bleed 2×2 使用严格 0px gap;没有外围框、独立 panel stroke、任何 gutter、分隔线、色带或边缘过渡。
- 字幕模式:全图只有一句纤细克制的手写字幕,默认位于整体下方中部并可跨底部两格;不放在第一格角落,不使用 serif 引文、无衬线电影字幕或 editorial headline。
- 自然收尾:ARRIVAL / RESIDUE 必须回答路径到了哪里,而不是随便选择一块空天空、海面或墙。
- 情绪克制:具体名词和动作优先于抽象形容词;少说一步,给记忆留一点空白。
- 后来之声:当用户提供了明确的当时感受或后来事实,字幕可以不复述 visual path,而像多年后覆在画面上的一句克制旁白。
- 诚实想象:用户讲述高于模型猜测;不确定的信息不伪装成事实。
仓库结构
pocket-memory/
├── SKILL.md
├── README.md
├── README-en.md
├── LICENSE
├── package.json
├── examples/
└── references/
├── scene-grammar.md
├── visual-art-direction.md
├── writing-guide.md
└── generation-and-quality.md参考与致谢
本项目认真研究了以下开源 Skill 的场景读取、事实锚点、视觉约束、提示词编译和质量检查方法,并据此发展出独立的四格时间结构与文案系统:
请尊重参考项目各自的许可证与作者署名要求。本 Skill 不复制它们的成品模板、品牌语言或专有视觉风格。
