Xxtaoaooo头像
关注
把我妹画的涂鸦丢给豆包Seed-2.1-pro,小丑当场跑了起来封面图

把我妹画的涂鸦丢给豆包Seed-2.1-pro,小丑当场跑了起来

一、一张躺在纸上的涂鸦

1.1 我妹留下的画

事情是这样的。

前几天我妹来我家玩,走的时候在书桌上留了张画。一个彩色的小丑,蜡笔涂的,橙色的头发,红色的鼻子,旁边还歪歪扭扭画了颗星星。

我盯着那张画看了很久。不知道你有没有这种感觉,小时候画的东西,画完的那一刻特别得意,然后它就躺在纸里了,forever。你不会再看它第二眼,它也不会再动一下。

1.2 一个中二的念头

那天我脑子里突然冒出一个念头——要是它能跑起来呢。

不是我拿软件照着捏一个,是它自己,顶着那张蜡笔脸,在屏幕里跑起来。

巧的是,我手上正好在玩豆包新升级的 Seed-2.1-pro-0915。这次升级主打的就是多模态 Coding,官方的说法是,视觉理解加代码生成,端到端开发能力更强。API 在火山方舟上,名字叫 doubao-seed-evolving,我用 Agent Plan 接入。

一个能看图的模型,一个能写代码的模型,是同一个。

那我妹的涂鸦,理论上就是一份需求文档啊。

于是我决定做个小东西,起名叫涂鸦游戏机。逻辑特别简单,你拍一张手绘涂鸦传上去,它负责把这张画变成一个能玩的游戏,中间不需要我写一行游戏代码。

先说结论,它真的跑通了。而且过程比结果有意思得多。

二、流水线:从一张照片到一个游戏

2.1 看图,它比我想象的看得细

模型拿到涂鸦照片后,输出一份结构化的分析,它觉得这张画里有什么角色、什么性格、用的是哪几个颜色、整体什么画风。

特别让我意外的是它还会做一个决策,这个角色适合什么类型的游戏。我妹这个小丑,它的判断是 runner(跑酷),理由是角色有腿、站着、没翅膀。要是画的是带翅膀的,它会选 flappy 那种飞行玩法。

2.2 设计,游戏策划的活也干了

基于看图结果出一份设计稿,游戏叫什么名字、怎么操作、障碍物是什么、怎么计分。它给这个游戏起名叫《彩虹小丑欢乐跑》,连角色小传都写好了。

2.3 写码,涂鸦原画直接当主角

第三步直接生成一个完整的 HTML5 游戏。单文件、零依赖,浏览器双击就能玩。

这里我用了个小技巧,涂鸦原画会被自动裁出来,当成游戏主角的精灵图,场景配色就用分析出来的那几个颜色。也就是说,游戏里跑来跑去的那个小丑,真的就是我妹画的那个小丑。

2.4 自检,写完自己试跑,崩了自己修

游戏生成出来不是直接交付,先扔进沙箱里试跑。跑崩了就把报错信息喂回去让它自己修,两轮封顶,修不好会明确告诉你修不好,不装。

这套流程跑通的那一刻,我是真的在工位上笑出声了。

但坦率的讲,跑通之前的那个晚上,我一度觉得这玩意做不成。

三、三个一个比一个离谱的坑

3.1 头一个坑,三十万 token 的图片

生成游戏这步死活出不来。转了九分钟报错,再来九分钟,又报错。。。

盯着日志看了半天才发现,我一开始的设计是让模型把涂鸦图片数据直接写进游戏代码。一张三百多 KB 的照片转成编码是三十多万个 token,任何模型的输出上限都装不下。它不是不想写,是物理上写不完。

解法是占位符。模型只在代码里写一个占位符,真实的图片数据由程序在它写完之后替换进去。模型负责创造性劳动,搬运工的活还给代码。

3.2 第二个坑,九分钟不出声的电话

改完还是超时,又是一顿排查,这次是连接的问题。

这个模型是个重度思考型选手,回答之前会先打很久腹稿。非流式请求就好比你打电话过去,对面九分钟不出声,中间的网络设备以为通话断了,直接把线掐了。

解法是改成流式,让它一边想一边往外吐字,哪怕吐的是思考过程,连接就是活的。后来我测过,一个简单问题它思考了 81 秒,思考的碎碎念全程在流里往外冒,连接稳得很。

3.3 第三个坑,思考先把预算花光了

这个就有点搞笑了。查文档时我看到一行小字,输出长度参数默认四千,而且思考过程也算在内。

就是说它可能思考着思考着,预算先花完了,正经答案一个字没写。

我直接给代码生成关掉了思考,输出上限拉到三万二。

三个坑全修完,重新跑。一百九十七秒,一个完整的游戏蹦出来了。

那个瞬间我坐在那儿想,我们平时聊多模态、聊 Agent,都是概念。而此刻我妹的蜡笔小丑正在屏幕里蹦跶,我按空格它就跳,撞到障碍物还会弹出结算画面告诉我得了几分。

这就是概念落地的那一下。

四、它真的懂代码,改一个字都不多

4.1 外科手术式的修复

我先试了自检修复。手动把生成好的游戏里的主循环函数删了,让它变成必崩的游戏,然后把报错喂回去。

两分钟后它还我一个修好的版本。diff 一看,相似度 0.994,就动了被删的那十一行,把函数补回来了,其他一个字没碰。

4.2 多轮修改,一轮比一轮惊喜

然后是更有意思的多轮修改。

我说,跳得再高一点。它改完全文件就动了一行,一个跳跃力度的常量,从 -780 改到 -950。实测跳跃高度从 48 像素变成 73 像素。

一行,就一行。

我又说,加点金币。这次它新增了一整套金币实体,弧形排布,吃到加一分,还会转。

我再说,换成夜晚。它改了 28 处,我逐个看了,全部是颜色和星空,游戏逻辑一行没动。

第一版人物有点问题,说一就修复好了

你发现没,它不是每次都重写,它是真的理解了「改哪、只改哪」。

这轮测完我对着屏幕说了句脏话,由衷的。

五、换个环境也能打

5.1 豆包工作里的同一张涂鸦

中途我还顺手在豆包工作里试了同一张涂鸦。把小丑的画丢进去,让它写游戏设计说明书、出宣传物料。同一个模型换个环境,看图、拆任务、出东西,一样能打。

宣传物料效果还是非常不错的!

同一张涂鸦、同一个模型,从命令行搬进豆包工作,它从「流水线工人」变成了「办公桌同事」。说明书里它把小丑爱表演的性格直接写成了得分机制的设计理由,这一层关联是我在 API 链路里没明确要过的。一个模型,两条路子,能力是对流的。

六、不完美清单

当然我得说点实话,这东西远不完美。

慢。 全流程跑下来六到八分钟,思考型模型就这个速度。

识别要调。 涂鸦边框一开始三次里有一次会把小丑拦腰截断,我调了两轮提示词才稳到三次全对。

覆盖不全。 flappy 那条分支,因为我手里就一张涂鸦,压根没触发过。没验证的东西我不瞎说。

提示词工程量不小。 光让识别框稳定套住角色全身,就迭代了两个版本。

但这些都是明账,全写在调参日志里的那种。我喜欢这种,所有的不完美都有来龙去脉,也都有下一步。

七、神笔马良的笔,现在人人有一支

写到这里我回头又看了一眼我妹那张画。

中国人小时候都听过神笔马良的故事,画什么活什么。那是个关于天赋和特权的故事,神笔只有一支。

现在不一样了。一支 API Key 的钱,你妹的画、你家的猫、你随手涂的火柴人,都能跑起来。技术把那支笔拆碎了,分给了每个想试的人。

我准备把这个小工具整理一下分享出来了,代码和全部提示词都放在 GitHub 上,仓库地址是 github.com/xtdexw/doodle-arcade,涂鸦照片扔进去,剩下的交给它。你要是也想让自己或者谁的画动起来,可以试试,然后告诉我它变成了什么。

我挺想看看,别人纸上的东西跑起来是什么样子。


以上,既然看到这里了,如果觉得不错,随手点个赞、在看、转发三连吧。

转载自 CSDN-专业IT技术社区

原文链接:https://blog.csdn.net/Rqaqedamancy/article/details/166573319

文章来源转载

评论

赞0

评论列表

微信小程序
QQ小程序

关于作者

点赞数:0
关注数:0
粉丝:0
文章:0
关注标签:0
加入于:--