一套完整的 TRAE宝表情包
《TRAE宝的一整天》· 16 张 · 静态 PNG + 循环 GIF
这套表情按时间顺序排开,正好是一个打工人从早安到晚安的一天:
01 早安 02 打卡 03 续命 04 在写了 05 有bug 06 修好了 07 开会中 08 下班
09 加班中 10 累瘫 11 谢谢 12 收到 13 救命 14 爱了 15 等我 16 晚安
配比是 6 张作息 + 6 张工作流 + 4 张情绪回应。既能当"一天"连起来看,也能单独拎一张应付真实聊天。
创作思路及使用过的提示词
一、先量,再画
动手前把 5 张素材逐像素扫了一遍,量出三组数:
- 头部 408×278 px,宽高比 1.47:1 —— 是横长方体,不是正方体。画成正方体会立刻失去识别度。
- 眼睛 72×71 px,是标准的 45° 菱形(旋转 45° 的正方形),不是圆眼。
- 三档明度 顶:正:侧 = 100:34:24。按 HEX 值画就行,凭感觉调会让头变灰。
这三组数后来成了所有判断的尺子。
二、它只有一个表情器官
TRAE宝 没有嘴、没有眉、没有手指,情绪带宽全压在一块屏幕上。
这看着是限制,其实是这个 IP 最独有的东西:屏幕可以显示状态。所以套系不是"16 种表情",而是"7 种屏幕状态 × 16 个场景"。
7 种状态是:菱形眼(中性)· 0.0(窘迫)· 闭眼弧线(满足)· 半闭横条(困)· 放大菱形(惊)· 纯符号 ? / !! · 状态化(进度条 / 熄屏)。
后两种是普通萌宠表情做不到的——只有屏幕脸能"加载中"和"熄屏"。
三、记忆点,一张只给一个
一张图里只能有一个"新东西",两个就会互相抢戏:
- 03 杯子比躯干高两倍(超比例道具)
- 10 整体压扁到 0.8(全套唯一的形体变形)
- 12 把屏幕里的
✓拿出来举在手里(符号实体化) - 橙猫出现在 03 / 08 / 16(找猫彩蛋)
四、提示词
这套提示词是早期方案,用来锁风格,也给想用文生图复现的人。最终出图改用了参数化渲染(原因见第五节)。
固定角色段(16 张逐字复用,一字不改):
TRAE宝,一个小机器人:哑光近黑色的长方形方脑袋,横着放,宽度约为高度的一倍半,
四角是尖的直角;正面嵌着一块深色屏幕,四周有清晰边框;屏幕里是两个发光的菱形眼睛,
极淡的薄荷白,边缘有柔和绿光;没有嘴巴,没有鼻子,没有耳朵,没有眉毛;
身体是比方脑袋窄的小方块,两条细长的方腿,两条短短的方块手臂,没有手指。
风格段(同样逐字复用):
低多边形体素渲染,哑光平面着色,左上方 25 度单一主光,纯白无缝背景,
不要地面和投影,1:1 方形画布,角色占画面高度 58%,边缘干净锐利,画面里不要任何文字。
负向段(专门防三件事:补嘴、把眼睛画圆、长手指):
圆头,球体,圆角方块,嘴,嘴唇,牙齿,舌头,鼻子,眉毛,耳朵,腮红,
圆形眼睛,心形眼睛,星星眼,动漫眼,手指,五根手指的人手,
金属划痕,塑料高光,渐变背景,灰色背景,暗角,地面投影,地板,
霓虹,赛博朋克,城市,Q 版二头身,眼窝,脸上两个洞,多行代码,
白色描边,贴纸描边,左右不对称的眼睛,水印,签名,文字,字母
变量段只换四个槽位:
姿态:<动作> 屏幕:<7 种状态之一> 道具:<道具,或"无"> 机位:<正面 / 3/4 左 / 3/4 右 / 俯 / 仰>
例(05 有bug,完整可用):
TRAE宝,一个小机器人:哑光近黑色的长方形方脑袋,横着放,宽度约为高度的一倍半,
四角是尖的直角;正面嵌着一块深色屏幕,四周有清晰边框;屏幕里是两个发光的菱形眼睛,
极淡的薄荷白,边缘有柔和绿光;没有嘴巴,没有鼻子,没有耳朵,没有眉毛;
身体是比方脑袋窄的小方块,两条细长的方腿,两条短短的方块手臂,没有手指。
姿态:正面站立,头向后仰八度,一只手抬起来指着自己的头顶,另一只手贴紧身体
屏幕:没有眼睛,只有两个占满半个屏幕的大红色感叹号
道具:头顶趴着一只方块小虫,深灰身体,两只菱形橙红复眼
机位:正面,居中对称
低多边形体素渲染,哑光平面着色,左上方 25 度单一主光,纯白无缝背景,
不要地面和投影,1:1 方形画布,角色占画面高度 58%,边缘干净锐利,画面里不要任何文字。
写中文就一路写中文,不要中英混写。混写会让模型在两种语种的习惯之间摇摆,反而更容易漂。要用 MJ / SD,就把上面三段整体换成英文,而不是只把某一段换成英文。
五、为什么最后没用文生图
试下来有三个绕不过去的问题:模型总想给"脸"补一张嘴;菱形眼十次里被画圆七次;中文 2-4 字短词的字形错误率太高,错一个字整张作废。
所以改成 Python + Pillow 参数化渲染:把角色拆成一组可旋转的方块,每张图只是一组参数。16 张共用同一份几何定义,一致性是 100% 而不是 90%。文案在最后一步用代码合成,字重和描边绝对统一。
代价也说清楚:方块堆出来的道具会退化成"方盒子",杯子和被子是这套最弱的两张。这是这条路的真实上限,不粉饰。
使用 Trae 创作的过程截图
工具:Trae (Python 3.13 + Pillow,无其他依赖)
-
角色规范卡 —— 色值、比例、禁用变形,所有判断的依据
-
创作过程 —— 渲染器核心代码 / 终端输出 / 动效强度校验
-
分镜参数表 —— 16 张的完整参数,改一行就能重出一张
过程里踩到的三个坑,都写进文档了:
- GIF 只有 1-bit 透明。bloom 的柔光被二值化成一圈灰方块,深色聊天背景下非常明显 → 改用本体轮廓做遮罩。
- 动画幅度按模型单位写,输出到 240px 只剩 0.36px,肉眼完全看不见 → 换算公式:模型单位 ≈ 目标 px × 4.27。
- 奔跑最初让腿在深度方向摆,仰角下几乎不可见 → 改成纵向交替抬腿。
最终效果展示
- 静态:16 张,1024×1024 与 240×240 双尺寸,PNG 透明底
|
|||||||
||||
||||
- 动态:16 条 GIF,240×240,10 帧 / 100ms / 1 秒循环
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- 两者合起来共 149 帧,压在微信表情平台 300 帧总量上限内






















