抖音超900万人在用的「卡通脸」特效技术揭秘

说到特效玩法,抖音的 “整活儿” 能力一直有目共睹。最近,风头正劲的是一款「卡通脸」特效。无论男女老少,用上这款特效后,都仿佛从迪士尼动画里走出来的人物一样灵动可爱。「卡通脸」一经上线,在抖音上迅速发酵,深受用户喜爱,“一键变身高甜卡通脸 ”“全抖音的在逃公主都来了”“用卡通脸花式晒娃 ”“王子公主撒糖手势舞”“捕捉童话魔法失灵瞬间” 等相关热点不断衍生,其中,“全抖音的在逃公主都来了”“捕捉童话魔法失灵瞬间” 更是登上了抖音全国热点榜。目前,这一特效的使用人数已经超过 900w。

「卡通脸」属于 3D 风格特效,这类特效的研发难点主要集中在多样性的 CG 训练数据不易获取、灵动的表情神态难以还原、真实贴合的立体肤质光影难以实现、夸张强风格的五官形变 GAN 不易学习等多个方面。对此,字节跳动智能创作团队在 3D 风格化方向重点突破优化,不仅解决了上述所有难题,还沉淀了一套通用的技术解决方案。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

抖音超900万人在用的「卡通脸」特效技术揭秘

「卡通脸」背后的研发流程创新

过去,一个完整的 3D 风格化研发流程分为以下几个模块:

搜集若干原始风格图片 -> 训练 StyleGan 大模型 -> 生成成对数据 -> 人工挑选可用成对数据 + 设计师 P 图优化 -> 训练 p2p 小模型,然后不停反复。

抖音超900万人在用的「卡通脸」特效技术揭秘

传统的研发流程的问题非常明显:迭代周期长,设计师可参与度弱,且不易于沉淀和复用。

在「卡通脸」这个特效的研发中,字节跳动智能创作团队采用了创新的研发流程

从设计师制作目标风格效果开始,设计师按照算法约定的要求提供一些3D美术素材,然后字节跳动智能创作团队借助DCC软件批量渲染若干多样性的CG数据,在渲染过程中技术团队首次引入时下最火的AIGC技术对数据做了增强处理,之后用GAN合成训练所需的成对数据,最后采用自研的形变pix2pix模型训练就可以得到最终效果。

抖音超900万人在用的「卡通脸」特效技术揭秘

字节跳动智能创作团队「卡通脸」的研发流程图

从流程链路可以看出,这一方法大大缩减了迭代周期,提高了自动化程度,也让设计师有更高的参与度,实践显示,创新的工程链路将迭代周期从 6 个月缩减至 1 个月,方案也更易于沉淀和复用。

「卡通脸」特效是怎么设计出来的

如今在社交媒体上有越来越多的变身特效,人们越来越注重特效的美观性和精确度,为了让用户更好地实现风格化变身的效果,抖音特效的设计师们经过精心研究,结合了热门动画画风,创新地设计了一套卡通脸特效,让用户可以体验到动画般灵动的角色风格,同时满足了用户的变美变帅需求。

抖音特效设计师针对目前市场上现有的变身特效进行了深入研究,发现现有的特效存在风格不够吸引人、表情夸张度不足、灯光效果不够真实等问题。因此,抖音特效设计师结合国内审美,重新设计了卡通脸的画风,将男女面部比例特征夸张化,重构成可爱圆脸五官灵巧的 “女孩” 和硬朗长脸五官帅气的 “男生”。在这一过程中,设计师保留了用户本身的头发,增强了头发的蓬松感及光泽度,使其与卡通脸的融合更加自然,卡通质感的皮肤也融入了用户本人皮肤的细节,使特效更具有用户的个性特征。

此外,抖音特效的设计师还定义了不同灯光下的光影质感,满足复杂场景下的灯光还原的需求,使卡通脸更加立体且自然,融入日常自拍无违和感。最后,设计师还制作了夸张符号化的面部表情,通过对数字人资产采用面部捕捉技术生成表情 CG 数据,不断完善训练数据和算法,产出了能够更加灵动展现用户个性的表情效果。

自建 CG 合成数据流,高质量训练数据可复用

3D 风格类特效的训练数据来源依赖高质量的 CG 渲染数据,且对数据分布的多样性要求比较高,同时 3D 资产手动建模也是一个非常耗费人力的过程,可复用性也不足,往往一个项目花费了昂贵的人力时间成本制作了一批 3D 资产,在项目结束后就完全废弃了。

此次,字节跳动智能创作团队搭建了一套通用易扩展的 CG 合成数据工作流。

抖音超900万人在用的「卡通脸」特效技术揭秘

字节跳动智能创作团队 CG 合成数据流的流程图

这一合成数据流的工作流程如下:

1. 通过 Houdini 程序化的生成数字资产,程序化捏脸,绑骨,调整权重等,建立真实感数字人模型资产库。

抖音超900万人在用的「卡通脸」特效技术揭秘

抖音超900万人在用的「卡通脸」特效技术揭秘

多样性 3D 数字资产

2. 通过 Houdini 的 Solaris 构建 USD 模板,将头发,毛发,头模,服饰,表情系数等资产分别以 USD reference 导入。

抖音超900万人在用的「卡通脸」特效技术揭秘

皮肤贴图样本

抖音超900万人在用的「卡通脸」特效技术揭秘

AI抖音 AI抖音

AI抖音,会思考的抖音

AI抖音 860 查看详情 AI抖音

虹膜贴图样本

3. 通过 Houdini 的 PDG 对资产,相机角度,灯光环境等进行随机组合。利用 PDG 对 workitem 的控制,精准的控制数据分布。

抖音超900万人在用的「卡通脸」特效技术揭秘

自动化的 PDG 节点图

由于研发过程需要频繁提供大量的渲染数据用于效果迭代,这需要花费大量算力成本以及渲染等待时间。此前,抖音的「魔法变身」特效上,团队曾花费了数百万成本使用外部农场用于数据渲染。而在「卡通脸」特效上,团队基于字节跳动旗下云平台火山引擎扎实的基础设施,大大降低了算力成本。

字节跳动智能创作团队参考影视工业的流程,搭建了一套自研的渲染农场平台。它可以将离线任务拆解到若干个渲染机器上进行并行处理。通过火山引擎镜像平台进行镜像托管、资源池化平台进行资源申请与释放、cpu/gpu 集群进行容器动态扩缩容,再使用 nas 进行资产管理,渲染农场具备了一键扩充数千个渲染节点进行高效计算的能力。

基于此,字节跳动智能创作团队自定义了单任务处理逻辑,包括前处理、引擎渲染、后处理等步骤。并根据需要,在任何时候动态扩展 / 缩小集群规模以最大化利用算力资源。

为了进一步提高效率,让设计师更方便参与到效果优化中,技术团队还制作了飞书小程序供设计师使用,通过飞书触发云端的自动化流程来迭代美术效果,在云端任务完成后,会发送消息回到飞书供设计师查看,大大提高了设计师工作的效率。

同时,字节跳动智能创作团队自定义了事件驱动(EventTrigger)和 Api 来打通农场、飞书平台以及云桌面平台,最大程度推进 All in one 理念,让设计师和工程师都能基于飞书和云桌面更方便地完成协同研发。

抖音超900万人在用的「卡通脸」特效技术揭秘

自研的渲染农场平台

AIGC 新技术的应用

随着 DALL・E 的问世,2021 年初字节跳动智能创作团队就开始了相关技术的跟进和规划,字节跳动智能创作团队在 Stable Diffusion 开源模型的基础上,构建了数据量达十亿规模的数据集,训练出两个模型,一个是通用型的模型 Diffusion Model,可以生成如油画、水墨画风格的图片;另外一个是动漫风格的 Diffusion Model 模型。

前不久,由字节跳动智能创作团队支持的「AI 绘画」特效在抖音上大火,采用的就是这一新技术。此次在抖音「卡通脸」上,技术团队进一步挖掘 Diffusion Model 在 3D 卡通风格上的生成能力,采用了图片生成图片的策略,首先对图片进行加噪,然后再用训练好的文生图模型在文本的引导下去噪。基于一个预训练好的 Stable Diffusion 模型,输入 GAN 生成的与真人图相匹配的目标 3D 风格结果图,通过精调过的一组文本关键词,引导目标风格往期望的方向靠近,Stable Diffusion 输出的结果即作为最终数据交给后续的 GAN 模型学习。

自研的形变 GAN 模型

由于抖音「卡通脸」的目标风格与原始人像相比有较大形变,直接用传统 p2p 框架难以训练出高质量效果,字节跳动智能创作团队自研了一套 p2p 形变 GAN 训练框架,对于训练大形变、强风格的卡通目标有很好的效果。字节跳动智能创作团队自研的形变 GAN 训练框架包含两个部分:

1、风格化初步训练,提取卡通脸风格化信息。技术团队构建了一个风格化信息交互融合的非配对训练框架,将真人和卡通脸数据集输入到该框架就可以提取卡通脸风格化信息。该框架是一个端到端的训练框架,包含了风格化特征编码、特征融合、重建训练和风格化初步训练,训练完成后得到一个卡通脸风格化信息,用于下一步精细化训练。

抖音超900万人在用的「卡通脸」特效技术揭秘

2、融合卡通脸风格化信息,精细训练。由第一步得到的卡通脸风格化信息包含了风格和形变等信息,将这部分信息融合到真人图进行精细化训练,利用 p2p 相关的强监督 loss 进行配对训练,训练收敛后得到卡通脸模型。

抖音超900万人在用的「卡通脸」特效技术揭秘

基于以上创新的技术方案,抖音「卡通脸」不仅简化了工程链路、大幅提升迭代效率,还在大角度、表情丰富度、效果风格还原、光影一致性和多肤色匹配等方面取得了明显的优化效果。据了解,负责「卡通脸」项目的字节跳动智能创作团队自 2021 年以来就在 3D 风格化方向重点突破优化,该技术方案已支持多款 3D 风格特效取得平台爆款的成绩。

关于字节跳动智能创作团队:

智能创作团队是字节跳动 AI & 多媒体技术中台,通过建设领先的计算机视觉、音视频编辑、特效处理等技术,支持抖音、剪映、头条等公司内众多产品线;同时通过火山引擎为外部 ToB 合作伙伴提供业界前沿的智能创作能力与行业解决方案。

以上就是抖音超900万人在用的「卡通脸」特效技术揭秘的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/547550.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
iPhone 16系列为什么会降价
上一篇 2025年11月9日 18:31:41
怎样查看Yum历史记录
下一篇 2025年11月9日 18:31:45

相关推荐

  • Golang JSON序列化:控制敏感字段暴露的最佳实践

    本教程探讨golang中如何高效控制结构体字段在json序列化时的可见性。当需要将包含敏感信息的结构体数组转换为json响应时,通过利用`encoding/json`包提供的结构体标签,特别是`json:”-“`,可以轻松实现对特定字段的忽略,从而避免敏感数据泄露,确保api…

    2026年5月10日
    000
  • 比特币新手教程 比特币交易平台有哪些

    比特币是一种去中心化的数字货币,基于区块链技术实现点对点交易,具有匿名性、有限发行和不可篡改等特点;新手可通过交易所购买,P2P交易获得比特币,常用平台包括Binance、OKX和Huobi;交易流程包括注册账户、实名认证、绑定支付方式、充值法币并下单购买,可选择市价单或限价单;比特币存储方式有交易…

    2026年5月10日
    000
  • c++中的SFINAE技术是什么_c++模板编程中的SFINAE原理与应用

    SFINAE 是“替换失败不是错误”的原则,指模板实例化时若参数替换导致错误,只要存在其他合法候选,编译器不报错而是继续重载决议。它用于条件启用模板、类型检测等场景,如通过 decltype 或 enable_if 控制函数重载,实现类型特征判断。尽管 C++20 引入 Concepts 简化了部分…

    2026年5月10日
    000
  • Go语言mgo查询构建:深入理解bson.M与日期范围查询的正确实践

    本文旨在解决go语言mgo库中构建复杂查询时,特别是涉及嵌套`bson.m`和日期范围筛选的常见错误。我们将深入剖析`bson.m`的类型特性,解释为何直接索引`interface{}`会导致“invalid operation”错误,并提供一种推荐的、结构清晰的代码重构方案,以确保查询条件能够正确…

    2026年5月10日
    100
  • Golang goroutine与channel调试技巧

    使用go run -race检测数据竞争,结合runtime.NumGoroutine监控协程数量,通过pprof分析阻塞调用栈,利用select超时避免永久阻塞,有效排查goroutine泄漏、死锁和数据竞争问题。 Go语言的goroutine和channel是并发编程的核心,但它们也带来了调试上…

    2026年5月10日
    000
  • 使用 Jupyter Notebook 进行探索性数据分析

    Jupyter Notebook通过单元格实现代码与Markdown结合,支持数据导入(pandas)、清洗(fillna)、探索(matplotlib/seaborn可视化)、统计分析(describe/corr)和特征工程,便于记录与分享分析过程。 Jupyter Notebook 是进行探索性…

    2026年5月10日
    000
  • 《魔兽世界》将于6月11日开启国服回归技术测试

    《魔兽世界》将于6月11日开启国服回归技术测试《魔兽世界》将于6月11日开启国服回归技术测试《魔兽世界》将于6月11日开启国服回归技术测试《魔兽世界》将于6月11日开启国服回归技术测试

    《%ign%ignore_a_1%re_a_1%》官方宣布,将于6月11日开启国服回归技术测试,时间为7天,并称可以在6月内正式开服,玩家们可以访问官网下载战网客户端并预下载“巫妖王之怒”客户端,技术测试详情见下图。 WordAi WordAI是一个AI驱动的内容重写平台 53 查看详情 以上就是《…

    2026年5月10日 用户投稿
    200
  • 如何在HTML中插入表单元素_HTML表单控件与输入类型使用指南

    HTML表单通过标签构建,包含action和method属性定义数据提交目标与方式,常用input类型如text、password、email等适配不同输入需求,配合label、required、placeholder提升可用性,结合textarea、select、button等控件实现完整交互,是…

    2026年5月10日
    100
  • 创建指定大小并填充特定数据的Golang文件教程

    本文将介绍如何使用Golang创建一个指定大小的文件,并用特定数据填充它。我们将使用 `os` 包提供的函数来创建和截断文件,从而实现快速生成大文件的目的。示例代码展示了如何创建一个10MB的文件,并将其填充为全零数据。掌握这些方法,可以方便地在例如日志系统或磁盘队列等场景中,预先创建测试文件或初始…

    2026年5月10日
    000
  • Python命令怎样使用profile分析脚本性能 Python命令性能分析的基础教程

    使用Python的cProfile模块分析脚本性能最直接的方式是通过命令行执行python -m cProfile your_script.py,它会输出每个函数的调用次数、总耗时、累积耗时等关键指标,帮助定位性能瓶颈;为进一步分析,可将结果保存为文件python -m cProfile -o ou…

    2026年5月10日
    000
  • 如何插入查询结果数据_SQL插入Select查询结果方法

    如何插入查询结果数据_SQL插入Select查询结果方法如何插入查询结果数据_SQL插入Select查询结果方法如何插入查询结果数据_SQL插入Select查询结果方法如何插入查询结果数据_SQL插入Select查询结果方法

    使用INSERT INTO…SELECT语句可高效插入数据,通过NOT EXISTS、LEFT JOIN、MERGE语句或唯一约束避免重复;表结构不一致时可通过别名、类型转换、默认值或计算字段处理;结合存储过程可提升可维护性,支持参数化与动态SQL。 将查询结果数据插入到另一个表中,可以…

    2026年5月10日 用户投稿
    000
  • 使用 WebCodecs VideoDecoder 实现精确逐帧回退

    本文档旨在解决在使用 WebCodecs VideoDecoder 进行视频解码时,实现精确逐帧回退的问题。通过比较帧的时间戳与目标帧的时间戳,可以避免渲染中间帧,从而提高用户体验。本文将提供详细的解决方案和示例代码,帮助开发者实现精确的视频帧控制。 在使用 WebCodecs VideoDecod…

    2026年5月10日
    000
  • Debian Copilot的社区活跃度如何

    debian copilot是codeberg社区维护的ai助手,旨在为debian用户提供服务。尽管搜索结果中没有直接提供关于debian copilot社区支持活跃度的具体数据,但我们可以通过debian社区的整体活跃度和特点来推断其活跃性。 Debian社区的一般情况: Debian拥有详尽的…

    2026年5月10日
    000
  • Discord.py 交互按钮超时与持久化解决方案

    本教程旨在解决Discord.py中交互按钮在一段时间后出现“This Interaction Failed”错误的问题。我们将深入探讨视图(View)的超时机制,并提供通过正确设置timeout参数以及利用bot.add_view()方法实现按钮持久化的具体方案,确保您的机器人交互功能稳定可靠,即…

    2026年5月10日
    000
  • JavaScript 动态菜单点击高亮效果实现教程

    本教程详细介绍了如何使用 JavaScript 实现动态菜单的点击高亮功能。通过事件委托和状态管理,当用户点击菜单项时,被点击项会高亮显示(绿色),同时其他菜单项恢复默认样式(白色)。这种方法避免了不必要的DOM操作,提高了性能和代码可维护性,确保了无论点击方向如何,功能都能稳定运行。 动态菜单高亮…

    2026年5月10日
    200
  • c++如何实现UDP通信_c++基于UDP的网络通信示例

    UDP通信基于套接字实现,适用于实时性要求高的场景。1. 流程包括创建套接字、绑定地址(接收方)、发送(sendto)与接收(recvfrom)数据、关闭套接字;2. 服务端监听指定端口,接收客户端消息并回传;3. 客户端发送消息至服务端并接收响应;4. 跨平台需处理Winsock初始化与库链接,编…

    2026年5月10日
    100
  • JavaScript函数中插入加载动画(Spinner)的正确方法

    本文旨在解决在JavaScript函数中插入加载动画(Spinner)时遇到的异步问题。通过引入async/await和Promise.all,确保在数据处理完成前后正确显示和隐藏加载动画,提升用户体验。我们将提供两种实现方案,并详细解释其原理和优势。 在Web开发中,当执行耗时操作时,显示加载动画…

    2026年5月10日
    100
  • 使用 Pydantic v2 实现条件性必填字段

    本文介绍了如何在 Pydantic v2 模型中实现条件性必填字段。通过自定义验证器,可以根据模型中其他字段的值来动态地控制某些字段是否为必填项,从而满足 API 交互中数据验证的复杂需求。本文提供了一个具体的示例,展示了如何确保模型中至少有一个字段被赋值。 在 Pydantic v2 中,虽然没有…

    2026年5月10日
    000
  • 三星不再独享,消息称搭载骁龙 8 Gen 3 领先版处理器新机即将发布

    三星不再独享,消息称搭载骁龙 8 Gen 3 领先版处理器新机即将发布三星不再独享,消息称搭载骁龙 8 Gen 3 领先版处理器新机即将发布三星不再独享,消息称搭载骁龙 8 Gen 3 领先版处理器新机即将发布三星不再独享,消息称搭载骁龙 8 Gen 3 领先版处理器新机即将发布

    6 月 15 日消息,据博主@肥威 今日爆料,搭载骁龙 8 Gen 3 领先版%ign%ignore_a_1%re_a_1%的新机即将发布,把之前的 for Galaxy 改成“for Everybody”。 Pic Copilot AI时代的顶级电商设计师,轻松打造爆款产品图片 158 查看详情 …

    2026年5月10日 用户投稿
    100
  • 动态更新圆形进度条:JavaScript成绩计算器集成指南

    本文档旨在指导开发者如何将JavaScript成绩计算系统与动态圆形进度条集成,实现可视化展示平均成绩。我们将详细讲解如何修改现有的JavaScript代码,使其在计算出平均分后,能够动态更新圆形进度条的进度,从而提供更直观的用户体验。本文档包含详细的代码示例和注意事项,帮助开发者轻松实现这一功能。…

    2026年5月10日
    000

发表回复

登录后才能评论
关注微信