跳到正文
宝玉· @dotey · X·· 8 小时前精选AI 评分72
AI 导读

作者用字节跳动刚发布的 Seedream 5.5 实测多轮改图稳定性,把一张卡通主播正面像改出 11 张变体,改动区域以外的平均灰度差最大 4.74(灰度 255 级),拼成会眨眼、换嘴型和五种表情的虚拟主播。

推荐理由

作者用逐像素灰度差量化多轮改图的稳定性,并给出可复用的提示词约束写法,适合评估图像编辑模型的实际可用边界。

正文 · 原文

https://x.com/i/article/2119819226856701952

一张图改十几次,脸没变:我用 Seedream 5.5 做了个会说话的虚拟主播

视频里这个戴眼镜的卡通主播,会眨眼、会说话、嘴型跟着声音走,还有开心、生气、难过、惊讶、害羞五种表情。他没有用任何动画软件画过一帧,全部来自 12 张图。这 12 张图都是用字节跳动刚刚发布的图像模型 Seedream 5.5 生成的。

做成会动的主播,是为了让“改图稳不稳”能被直接看见:哪张图挪了几个像素,播放时就是一下抖动,谁都看得出来。

Seedream 5.5 更新了什么

按官方的文章《生成更真实,百轮编辑更稳定|Seedream 5.5 发布》,这次主要升级了五项能力:

- 多轮编辑更稳定:一张图反复改,画面再复杂也不容易改崩,没让改的地方保持原样;

- 真实感更强:照片质感更接近实拍;

- 小字和多语言:图里的小字更清楚,能同时写中文、英文、日文等多种文字;

- 透明图:可以直接生成和编辑带透明背景的图;

- 动作参考:给一张参考图,角色就照着摆姿势。

第一条“多轮编辑稳定”是这次的重点。官方演示里,同一张手表照片连着改了 100 轮:

演示视频一共 101 张图,每张停一秒。每一轮,表上的时间往后走一秒,100 轮从 16:30:46 走到 16:32:26。我把每一张都截下来,和上一张比了一遍:100 轮里,每一轮变化的地方都在液晶屏里。液晶屏以外,第 100 轮和原图的平均灰度差是 1.2(灰度一共 255 级),表盘上的小字、手腕的纹理、后面零食袋上的字都看不出变化。

我自己用两种办法测:一是用改图做一个会说话的虚拟主播,让稳定性在视频里看得见;二是拿一张挤满路人的游客照,在同一个对话里一句一句修十轮,量没让改的地方变了多少。

Seedream 5.5 新增原生 RGBA 透明素材生成能力,直接输出带 Alpha 通道的透明或半透明图像。在保留主体丰富形态与质感的同时,准确处理轮廓边缘与透明区域,让生成内容能够独立用于排版、合成与制作。

定价方面,Seedream 5.5 API 延续“输入图 + 输出图”两段计费结构,文本 Token 不产生费用。以2K方图编辑为例,单张成本在 0.28 元左右,不到 Seedream 5.0 Pro 一半。

测试一:同一张图改 11 次,做成会说话的主播

虚拟主播的原理是叠图层:一张正面像,加几张“只改了一处”的图,张嘴的、闭眼的、换了表情的。播放时,引擎按声音切换嘴型,按节奏切换眨眼,按台词切换表情。前提是每张改过的图,除了要改的那一处,别的地方都和正面像一模一样。假设闭眼那张图里眼睛偏了 3 个像素,播放时每眨一次眼,眼睛就会跳一下,眼眶边上还会留下一道重影。

我先上传一张参考照片,让 Seedream 5.5 照着画成卡通主播,这张正面像试了几次,挑了一张。之后的 11 张都拿正面像当输入,各改一处:去掉头发(露出头皮)1 张、嘴型 4 张、闭眼 1 张、表情 5 张。每条提示词只生成一次,取第一张,下载 PNG 原图。

我用自己在做的视频工具 BaoCut 里的虚拟主播脚本来量:把每张改图和正面像对齐,量改动区域以外和正面像的平均灰度差,灰度一共 255 级,6 以内算对上。去头发那张是整片重画,量的是头发以外的像素变了百分之几,超过 1% 不合格。

11 张全部合格。有 3 张的差值是 0 或 0.01,改动区域以外几乎逐像素没变;最大的是惊讶,4.74;去头发那张,头发以外只变了 0.28% 的像素。生气和惊讶两张整体挪了不到 1 个像素,是脚本对齐之后量的。提示词和逐张数据放在文末附录。

剩下的交给引擎。脚本把 12 张图拆成 27 个图层,配音用的是 Gemini TTS,引擎按发音选嘴型,声音越大嘴张得越大;眨眼、呼吸、轻微转头、头发晃动也由引擎自动加上,算法参考了开源项目 livliv-dev/player。整个主播里需要模型画的只有这 12 张图,图画得稳,主播就稳。

卡通画线条少、颜色平,比照片好改。细节多的真实照片经不经得起连续修改,放在测试二量。

测试二:一张游客照,同一个对话里连修十轮

旅游时好不容易拍到一张笑得开心的,回来一看,身后挤满了游客,头顶横着电线,自己还正好闭了眼。用 Seedream 5.5,可以在对话里一句一句说:删掉这个人,删掉那根电线,把眼睛改成睁开的。

麻烦在于改得越多,越容易漂移。每一轮都改上一轮的结果,每一轮里没让改的地方都可能悄悄变一点,改到第五六轮,人已经不太像本人,身后的老房子也换了样。官方重点强调的就是这个场景:在同一个对话里连续改,画面再复杂,没让改的地方也要保持原样。

这一项换成一张细节多得多的游客照。为了不用路人的真实肖像,这张照片也是 Seedream 5.5 生成的:江南古镇的石拱桥头,一个女生对着镜头比剪刀手,这一下正好闭了眼,还有几缕头发挡在脸上;身后是白墙黑瓦、小河和水里的倒影,再加上八样常见的干扰。底图多出了几张,挑了一张八样干扰都画出来的;之后在即梦的同一个对话里连修十轮,每轮只取第一张:

1. 删掉左下角闯进来的半只手;

1. 删掉桥上举着自拍杆的游客;

1. 删掉河岸上低头看手机的一家三口;

1. 删掉远处桥上的旅行团和导游的小红旗;

1. 删掉头顶的电线;

1. 删掉河边的垃圾桶;

1. 删掉岸边的电动车;

1. 删掉河面上漂着的塑料瓶;

1. 把挡在脸上的头发拨到耳后;

1. 把闭着的眼睛改成睁开。

前八轮只删东西,一次都没碰她;最后两轮才改她的头发和眼睛。提示词就是平时随口会说的一句话,再加一句“其他地方保持原样”,比如第 2 轮:

删掉她左后方桥上举着自拍杆的男游客,补上他身后的桥和房子。其他地方保持原样。

十轮都改成了,没有哪一轮改崩。删掉人和东西以后,原来被挡住的栏杆、白墙、桥洞和水面都补上了,放大看,补出来的地方和旁边接得上。删旅行团的那座桥空了出来,石栏杆是顺着原来的画下去的。

有几处结果和提示词不完全一样:

- 删掉桥上的游客、岸边的一家三口、旅行团和电动车时,它们在水里的倒影也一起删掉了,提示词里没提倒影。

- 底图里其实漂着三个塑料瓶,提示词写的是“两个”,结果三个都删了。

- 第九轮改得比要求的多:提示词只让把挡脸的几缕头发拨到耳后,结果被风吹乱的碎发全梳顺了。长度和发色没变。

- 左岸远处还有几个路人,不在要删的清单里,修完还在。

怎么量

我把每一轮和上一轮相减,看哪里变了;再把修完的照片和底图比,只看十轮里一次都没让改的地方:白墙黑瓦、桥、水面,还有她的衣服和包。她的脸前八轮没让动,单独拿第八轮和底图比。

十一张图都是 2304×1728,我先查了每一轮有没有整体挪位置,结果都是 0 像素,所以不用对齐,直接逐像素比灰度。和测试一一样,灰度一共 255 级,差在 6 级以内算对上。

十轮里有八轮,改动以外的地方和上一轮逐像素相同,只有改动边上零星几百个像素不一样。第五轮和第九轮整张图都重新画了一遍,几乎每个像素都变了一点,平均差 1.7 级和 1.4 级,98% 以上的像素在 6 级以内,肉眼看不出来。

十轮下来,一次都没让改过的地方占整张图的 72%,和底图平均差 2.9 级,90.7% 的像素在 6 级以内,98.9% 在 12 级以内。这些差别全部来自第五、第九轮那两次整图重画,只看前四轮,没让改的地方和底图逐像素相同。水面、牛仔外套这种纹理密的地方差得多一些;放大对比,衣服的缝线和扣子,墙上的水渍、窗格和瓦片,都还是原来的样子。

她的脸前八轮没让动。第八轮的脸和底图平均差 1.7 级,98.7% 的像素在 6 级以内,这点差别也是第五轮整图重画带来的。第九轮拨开挡脸的头发,原来被头发盖住的地方本来就要变;没被头发挡过的嘴和下巴,和底图平均差 3.2 级。第十轮只改了眼睛,脸的其他部分和第九轮逐像素相同。前后放在一起看,还是同一个人,笑容也没变。

修旅游照只是最常见的一种用法。同样的事放到工作里,就是商品图、宣传图的二次修改:去掉背景里的杂物和路人,商品和人一点不能变。官方提到的行业用途之一,就是商品图和电商主图的二次修改。

测试三:真实感

两张照片都只生成了一次。第一张是东京雨夜的小巷:拉面馆的红灯笼、湿地面上的倒影、撑透明伞走过的女人。灯笼正面的“ラーメン”写对了,灯笼侧面的小字是乱码,不过很小,又侧对着镜头。

第二张是老陶艺匠人的特写:两只手的手指数都对,手上的湿泥、脸上的皱纹和毛孔都清楚,没有那种磨过皮的塑料感。

测试四:小字和多语言

这一项我逐字核对了。两张图一共 12 行字,中、英、日三种语言混排。

第一张是咖啡馆的黑板菜单,6 行:标题,四道饮品和甜点(每道都有英文、中文、日文三个名字和价格),最后一行营业时间。标题、四道菜的三种名字和价格、营业时间,6 行全部写对。

第二张是防晒霜的背标,6 行小字,更难一些。SPF 那一行、英文成分表、中文成分表、批号都对。错了两处:日文成分表里,“烟酰胺”和“维生素 E”之间多出了一个不存在的词“ビタミアミド”;英文用法说明里,“sun exposure.”后面多了一个拼错的“expsure.”。

12 行里 10 行完全正确。中文、日文、英文混在一张图里,菜名、价格、成分基本都写对了,这个水平拿来做菜单、海报的初稿够用;要直接印到包装上,还得逐字校对一遍。

测试五:透明图

我在即梦里打开「透明背景」选项,让它生成一杯加冰的玻璃杯柠檬茶。下载下来的 PNG 带真正的透明通道:70.7% 的像素完全透明,29.0% 完全不透明,半透明的只有 0.3%,全都贴着杯子轮廓的边缘。杯子里面一个半透明的像素都没有,玻璃杯壁、冰块、吸管连成一整块不透明的剪影。垫在棋盘格上看,杯子后面的格子透不过来,杯口上面那一截空玻璃也是实心的。

这种图可以直接放进视频、海报和网页,省掉抠图这一步。我把它放到深蓝色的底上看过,轮廓边缘干净,没有白边。只是玻璃本身不透明:放在深色背景上,杯口那一截玻璃和吸管是浅灰白色的,透不出后面的颜色。想要玻璃透出背景的效果,还得自己在设计软件里调。

透明图还能接着改。我先让它照主播的画风生成一个卡通麦克风,再在这张图上改:换成红色,加一块 ON AIR 小牌子。两次都打开了「透明背景」选项。改完的图还是透明背景,麦克风的轮廓和改之前几乎完全重合,不透明的区域 99.9% 重叠,变的只有颜色和那块牌子。两张图里半透明的像素都只有 0.3%,和玻璃杯差不多。

视频里主播身边的两个麦克风,都是这样直接放上去的。

测试六:动作参考

最后一项是多图融合:一张图给动作,一张图给角色。动作参考图是一个木头人,右手指向右边,左手叉腰。我把它和主播的正面像一起交给 Seedream 5.5,让它画出全身的主播,摆同样的姿势。

姿势和木头人一致:右手指向右边,左手叉腰。脸、发型、眼镜、毛衣都和主播一样,提示词里加的深灰裤子和白球鞋也画上了。

这正是影视、动画做角色素材时要的能力。一个角色定了形象之后,要出几十上百张不同动作的图:转身、奔跑、指向某处。以前要么原画师一张张画,要么做 3D 模型再摆姿势。现在用一张动作参考加一张角色设定图,就能出一张形象一致的新动作。官方提到的另一个行业用途,就是用多图融合来生产影视资产。

“一张图给动作,一张图给角色”还可以再往前走一步:做动画。先在 3D 软件 Blender 里让一个人偶模型做出一段连续的动作,比如挥手、转身、走几步,一帧帧导出成动作参考图;再把每一帧参考图和角色图一起交给 Seedream 5.5,得到一串动作连贯、形象一致的角色图,串起来就是 GIF 动画,也可以做成视频。动作由 3D 模型定,想怎么调就怎么调;形象由角色图定,每一帧都是同一个人。卡通角色能这么做,写实的真人角色也一样。

怎么做:几条实用经验

如果你也想用 Seedream 5.5 做精确改图,几条建议:

1. 把不许动的东西列出来。只写“把嘴改成张开”,模型可能顺手把眼睛也调了。写成“只改嘴,以下这些保持不变:头的位置和大小、眼睛、眉毛、头发、眼镜、衣服、颜色、线条、背景”,结果会稳很多。

1. 紧挨着改动区域的地方,要点名不许动。去头发时,耳朵就在头发边上,容易被一起改掉;改表情时,眉毛容易压到镜框上。我在去头发的提示词里加了一句“耳朵和眼镜不动”,在表情的提示词里加了一句“眉毛不碰镜框”。

1. 从原图改还是接着改,要想清楚。做主播的 11 张,每张都要从正面像改;做连续修改时,要确认每一轮用的是上一轮的结果。

1. 下载 PNG 原图。JPEG 压缩本身就会让画面到处变一点。我用另一组图试过,同样的图只是转成 JPEG,“头发以外的改动”就从 0.00% 涨到了 0.85%,离 1% 的不合格线很近。

1. 关掉提示词优化。精确改图时,提示词的每一句都有用,自动扩写可能把“别的地方不许动”这样的约束冲淡。

1. 要透明图,打开「透明背景」选项。在即梦里生成和改图都要打开它,下载的 PNG 才带透明通道。只在提示词里写“透明背景”,下载下来的是白底图。

最后

这次测试里,Seedream 5.5 让我印象最深的是改图的稳定:同一张图改 11 次,改动区域以外的平均灰度差都在 5 以内,有三张几乎逐像素没变;一张挤满路人的游客照在同一个对话里连修十轮,十轮都改成了,其中八轮改动以外的像素和上一轮逐像素相同,修完以后没让改的地方和底图平均只差 2.9 级,她还是同一个人。

只靠改图做出一个会说话的主播,靠的就是这种稳定:视频里主播每眨一次眼、每换一个嘴型,用的都是改出来的图。小字还有零星错字,透明图里的玻璃杯也是不透明的,这些都写在上面了。

说明

- 所有图都在即梦里手动生成。主播的正面像和测试二的游客照底图挑过;其余每条提示词只生成一次、取第一张。

- 测试二的游客照是生成的,拿手机实拍的照片来修,结果可能不一样。

- 官方手表演示的数字是从演示视频里截帧量的,视频压缩本身会带来一点误差,所以 1.2 是偏大的估计。

- 测试一的“平均灰度差”由打包脚本量出,图统一缩放到 1024×1024 后计算。测试二的数字用另一个脚本量:图是原尺寸 2304×1728,逐像素比灰度。“改动面积”是差值明显的区域(略微模糊后超过 8 级);算“改动以外”时,把这块区域再往外扩 25 像素,扩出去的部分不算。“一次都没让改过的地方”是十轮的改动区域合起来以外的部分。

附:测试一的提示词和逐张数据

每条提示词都是同一个结构:先说只改哪里,再把不许动的东西一样样列出来,最后描述新的样子。以“嘴微微张开”为例:

Edit the attached character image. Change ONLY the mouth. Keep everything else pixel-identical:
same head position and size, same eyes, eyebrows, hair, any glasses, clothes, colors, outlines, lighting and background.
Do not move, zoom, crop or re-draw anything outside the mouth area.
Keep the mouth centered on the same spot as the original closed mouth.
New mouth: barely open, as in "ee" or "s": the lips parted by a narrow gap that shows a thin strip of the upper teeth; about as wide as the original closed mouth, the opening about one fifth as tall as it is wide. Draw it in exactly the same line weight and colors as the original.

逐张的数据:

来源:宝玉 · x.com