我用豆包工作 Seed-2.1-pro,复刻了 QQ 时代爆红的魔术图片

大家好,我是 LucianaiB,最近一直在折腾 AI 图片。

前段时间,我又刷到了一样很有"童年杀"味道的东西:会变画面的闪卡。

小时候,文具店门口经常摆着这种卡片。拿在手里轻轻一转,人物、动作和光影就会跟着变化。那时觉得它像魔法;长大后才明白,它只是把两幅画面藏进了不同的观看角度里。

我也用 AI 复刻了一张,效果大概是这样:

上面这张"一念神魔",就是我用 AI 复刻的变图闪卡。它最有意思的地方,是把两种画面装进了同一张卡片里:

既有立体感,又会随着观看角度切换内容。借助 AI,过去只能批量印刷的效果,现在也能变成一次个人创作。

不过,这次真正让我想重新做出来的,并不是闪卡。

而是 QQ 时代很多人都见过的一种图片------幻影坦克

它缩在聊天窗口里时,可能只是一幅很普通的画;点开以后,另一幅画面却突然出现。第一次见到时,我甚至退出去又点开了一遍,确认自己是不是看错了。

我把做好的版本发到了小红书。下面分别是电脑端和手机端的实际效果,手机端的反差会更明显一些:

没点开时,一艘帆船驶过平静的海面;点开以后,巨浪、暴雨和闪电突然出现。

同一张图,在一瞬间从"岁月静好"变成"风暴将至"。真正吸引人的,不只是画面本身,而是点开前后那一下猝不及防的反差。

平静的海面,练不出真正的水手。

如果你也想做一张这样的图片,下面我会把原理、创作思路和完整操作过程都讲清楚。

一、小时候觉得是魔法,现在想把它重新造出来

幻影坦克的原理其实并不神秘。

一张 PNG 图片除了记录颜色,还能记录每个像素的透明度。当它分别放在白色和黑色背景上时,半透明像素会与底色发生不同的混合,于是同一张图就能呈现出两种视觉内容。

RGB 决定它是什么颜色,Alpha 决定背景能透进来多少。

知道原理是一回事,真正把它做成一个谁都能用的工具,又是另一回事。

所以这次我不想只复刻一张图,而是想继续往前走一步:把整套制作方法做成一个可以重复使用的"魔术图片 Skill"。

以后只要告诉 AI 想要怎样的内外两层画面,它就能准备素材、完成合成、检查透明度,最后交付一张真正可用的 PNG。

如果你只关心怎么做,可以直接跳到后面的"如何使用";如果你也好奇这件事为什么值得重做,不妨继续往下看。

二、它不只适合怀旧,也适合重新讲一个故事

魔术图片最有意思的地方,不是单纯把某个东西藏起来,而是让点开前后形成新的叙事。

  • 一架望远镜,点开后露出整片星空;
  • 丑小鸭,点开后变成白天鹅;
  • 独自旅行的人,点开后看见身后的巨佛;
  • 安静的山崖,点开后浮现一条巨龙;
  • 城市夜景,点开后出现一个巨型人物;

第一眼负责让人停下来,第二眼负责给人惊喜。好的魔术图片并不是为了骗一次点击,而是让两幅画面共同完成一句话、一个转折,甚至一个小故事。

三、如何使用:从两张素材到一张魔术图片

最近 Seed-2.1-pro-0915 的视觉理解与 Coding 能力有了明显提升,所以我把这次任务交给了豆包工作。

它要做的并不是套一个滤镜,而是同时理解两张素材的关系、透明度算法,以及最终在不同背景上的观看效果。

第一步:准备两张素材

打开豆包工作,选择 Seed-2.1-pro-0915,先准备点开前和点开后的两张素材。这里我设计的是"一架望远镜,点开后露出整片星空"。

第一张是白底望远镜前景图,负责用户第一眼看到的内容;第二张是星空显现图,负责点开后的反差。两张图片不必讲述同一个场景,但尺寸和构图关系要尽量可控。

第二步:调用Skill

素材准备好以后,不需要自己调参数,直接把两张图交给豆包,并告诉它调用这个 Skill:

使用这个 Skill:github.com/LucianaiB20...

第三步:发布小红书

不到一分钟,透明 PNG、不同底色的预览图和验证报告就全部生成好了。由于电脑端不一定能直观看出"点开前后"的变化,我又让豆包把最终成品上传到小红书,用真实的发布环境继续验证。

发布以后,再从手机端点开图片,最终效果是这样的:

到这里,望远镜与星空的第二个案例也跑通了:外层是一架小小的望远镜,点开以后,原本的留白变成整片星空。

四、从复刻一张图,到再造一套工作流

最初,我只是想做出一张能用的图片。真正跑通以后才意识到,更有价值的不是某一个案例,而是把这套过程变成入口,让每个人都能用它制作自己的魔术图片。

整个过程可以概括成四步:

  1. 先设计点开前后的叙事关系。例如第一个案例是"平静海面上的帆船→巨浪、暴雨和闪电",第二个案例是"望远镜→整片星空"。
  2. 让 AI 生成两张素材:如果采用图层模式,就分别准备纯白背景的正常前景和纯黑背景的灰度隐藏层;如果两幅画面完全不同,则使用双图拟合模式。
  3. 用 Node.js 和 Sharp 逐像素计算 RGB 与 Alpha,把两张素材合成为一张真正带透明通道的 PNG。
  4. 自动生成白底、灰底和黑底预览,再检查误差、透明度与文件哈希,确认结果不是"看起来像成功"。

这里最重要的一点是:AI 负责创意和素材,程序负责数学和 透明度

我不会让图像模型假装生成一个正确的透明文件。最终 Alpha 必须由本地代码确定性计算,合成之后还要重新读取成品验证。这样做出来的才不是 GIF、视频或者前端偷换图片,而是一张真实的 RGBA PNG。

五、真正麻烦的,是那些看起来很小的细节

动手以后我才发现,"让两张图叠在一起"只是最表面的部分。

比如,一张彩色图片的 R、G、B 三个通道共享同一个 Alpha,所以任意两张彩图并不能无损地塞进同一张 PNG。程序需要在优先保证白底画面的同时,对黑底画面做近似拟合,并把误差如实记录下来。

再比如,纯白色物体和纯白背景只看 RGB 是分不开的。白衣、白花、高光都有可能被误判成背景,因此工具还要支持原始透明通道和前景蒙版。

还有尺寸不一致、动画图片、素材黑场噪声、输出覆盖、平台压缩......这些都不是一条漂亮提示词能解决的问题。它们最后变成了读取、校验、报错和测试中的一条条边界。

这也是我理解的"复刻以及再造":先把曾经让自己惊讶的东西做出来,再把偶然成功的一次,整理成别人也能重复使用的方法。

六、我把完整制作过程开源了

目前,这套工具已经完整开源。

你可以直接访问项目地址:github.com/LucianaiB20...

如果你也想知道它是怎样从一个想法变成可运行 Skill 的,可以继续往下看。

从零搭建的过程并不复杂,关键是把目标、算法、输出和测试要求一次讲清楚。

打开豆包工作,选择 Seed-2.1-pro-0915,再把你的创意、目标效果和初始提示词(或者 Plan)交给它,让它继续完成工程实现。

下面是我这次使用的完整提示词。你可以直接参考,也可以换成自己的画面和交付要求:

在这次实测中,Seed-2.1-pro-0915 用大约 8 分钟完成了项目主体:从像素算法、CLI、Demo,到测试、README 和 Skill 指令,最终形成了一套可以继续扩展的本地工具。

写在最后

这次从"复刻幻影坦克"到"做成一套可重复使用的 Skill",让我真正感受到 Seed-2.1-pro-0915 的优势,并不只是生成速度快。

它更重要的能力,是能把视觉理解、代码实现和实际操作连成一条完整链路:先理解两张图片之间的关系,再写出像素算法和命令行工具,接着运行测试、检查结果,最后把成品带到真实平台中验证。中间不需要我在多个工具之间反复切换,也不需要每完成一步就重新解释一遍上下文。

对于这种既涉及创意、又涉及工程实现的任务来说,持续执行尤其重要。Seed-2.1-pro-0915 可以沿着同一个目标继续排查问题、修改代码和补齐交付物,而不是只给出一段看起来正确的答案。最终得到的不是一张偶然成功的图片,而是一套可以运行、可以测试、也可以继续扩展的方法。

当然,模型负责理解需求、生成素材和推动流程,真正决定结果是否可靠的,仍然是程序里的数学、验证和边界检查。也正因为两者分工清楚,AI 才不只是提供一个灵感,而是能把灵感一步步变成可以交付的东西。

如果你也想试试,不妨先想清楚两个画面:别人第一眼会看见什么,点开以后又会发现什么。

创意负责制造反差,AI 负责把想法落地,程序负责把透明度算对。剩下的,就交给一次点击。

最后留个小彩蛋:只要在豆包中调用 Seed-2.1-pro-0915,并且生成魔法图,发布到小红书,前五位可以找我领取五块。

相关推荐
码事漫谈1 小时前
智谱 ZCode 静默上传 Git 历史:48 小时信任危机复盘
后端
掘金码甲哥1 小时前
当对话模型遇上向量模型,vllm production stack 又该如何应对?
后端
传奇开心果编程2 小时前
【springboot基础语法学与练】第 1 课:从零开始
java·spring boot·后端·学习
IT_陈寒2 小时前
Java线程池用错参数,我的服务居然悄悄崩溃了
前端·人工智能·后端
光影少年2 小时前
Express 中间件原理
后端·node.js·express
aramae3 小时前
MySQL内置函数(7)
开发语言·笔记·后端·mysql·其他
徐小夕4 小时前
存量.doc 文档怎么办?JitWord 开源转换库打通旧文档到在线协同全链路
后端·架构·github
ee又momo4 小时前
一次 JWT Token 过期续期的踩坑记录
后端
二月龙4 小时前
App 瘦身实战:图片、so 库、资源压缩,安装包体积减小 40%
后端