"家里的猫天天躺着晒太阳,要是能上冰场打球该多好。"
------来自一位被猫统治的程序员的悲鸣
如果你也养了只"懒癌晚期"的猫或狗,每天除了吃就是睡,连看一眼你都嫌累,那你一定得看看这篇文章。
最近字节,搞了一个骚操作:把宠物照片一键变成冰球运动员!
没错,就是那种穿着红蓝球衣、手持球杆、眼神凶狠、仿佛下一秒就要破门得分的------拟人化冰球猛将。
而且,整个过程只需要上传一张宠物照,剩下的交给AI搞定。
这不仅是个技术项目,更是一场让毛孩子当明星的奇幻冒险。
🐱 从"我家猫很胖"到"我是冰球队门将",只差一个AI
假设作为实习生团队的一员,我们的任务是为公司内部的"冰球俱乐部"策划一场趣味活动。
目标很简单:
让会员们上传自家宠物的照片,生成一张"宠物变冰球运动员"的酷炫海报。
听起来像魔法?不,这是低代码 + AI + Vue 的完美组合。
🔧 技术栈三件套:Coze + Vue + AI 图像生成
1. Coze 工作流:拖拽式搭建,谁都能玩
我们选择了 Coze(扣子)平台 来构建整个AI工作流。它的优势在于:
- 低代码编辑器:拖拖拽拽就能连节点
- 支持自定义代码逻辑
- 集成图像生成、特征提取、文本理解等能力
比如下面这个流程图,就是我们亲手"画"出来的:

(注:图片展示的是真实工作流界面)
简单来说,流程如下:
- 用户上传宠物照片
- 系统自动识别宠物特征(如体型、毛色)
- 使用代码节点随机分配位置和持杆手
- 生成描述文案:"一只戴着红色头盔的哈士奇,身穿10号球衣,正准备射门......"
- 最终调用图像生成模型,输出一张"拟人化冰球运动员"照片
2. 自定义代码节点:给AI加点"智商"
为了让生成效果更有逻辑性,我们加入了关键的 JavaScript 代码节点:
ini
const random = (start: number, end: number) => {
const p = Math.random();
return Math.floor(start * (1 - p) + end * p);
}
async function main({ params }: Args): Promise<Output> {
if (params.position == null) params.position = random(0, 3);
if (params.shooting_hand == null) params.shooting_hand = random(0, 2);
const style = params.style || '写实';
const uniform_number:string = (params.uniform_number || 10).toString();
const uniform_color = params.uniform_color || '红';
const position = params.position == 0 ? '守门员': (params.position == 1 ? '前锋': '后卫');
const shooting_hand = params.shooting_hand == 0 ? '左手': '右手';
const ret = {
style,
uniform_number,
uniform_color,
position,
shooting_hand,
};
return ret;
}
这段代码的作用是:
- 如果用户没选位置,就随机分配:守门员、前锋、后卫
- 持杆手也随机:左手 or 右手
- 默认风格是"写实",但也可以改成"卡通"、"赛博朋克"等
这样一来,每只猫都可能是下一个"冰球界梅西"。
3. 特征提取 + 图像生成:AI眼中的"猫"是什么样?
我们在流程中加入了 imgUnderstand 和 特征提取 节点,用来分析原始图片。
例如,系统会自动识别出:
- 这是一只"短毛猫"还是"长毛狗"
- 毛色是黑、白、灰还是花斑
- 是否有胡须、耳朵形状等细节
然后把这些信息融合进提示词(prompt),比如:
"一只黑白相间的猫咪,身穿蓝色10号球衣,正在滑行射门,背景是冰球场,风格写实。"
最终由图像生成模型生成一张完全拟人化的冰球运动员照片。
💡 实战演示:我家猫变成了"冰球门将"!
我上传了一张我家主子的照片------一只慵懒的布偶猫,平时连逗猫棒都不理。
结果......它居然成了这样:

(图中是一只穿着红色球衣、戴着头盔、手持球杆的"布偶猫门将",眼神坚毅,仿佛刚扑掉一个致命射门)
我朋友看完后说:"这猫怕不是真的练过?"
我说:"不,它是被AI逼出来的。"
🎯 为什么这个项目值得做?
✅ 用户体验极佳
- 不需要懂AI,也不需要编程
- 上传照片 → 一键生成 → 分享朋友圈
- 完全自动化,适合节日营销
✅ 技术亮点满满
- 结合了图像理解、自然语言处理、图像生成
- 使用低代码平台快速迭代
- 支持个性化定制(球衣颜色、号码、风格)
✅ 幽默感拉满
谁不想看到自己家的狗穿上球衣、拿着球杆、一脸"老子要进球"的表情?
尤其是那些平时只会趴着睡觉的"废柴宠物",突然变得英姿飒爽,反差萌直接拉满!
🚀 如何复刻这个项目?
如果你想自己动手做一个类似的"宠物变英雄"项目,可以按以下步骤来:
Step 1:注册 Coze 平台
访问 coze.cn,创建个人空间。
Step 2:新建工作流
- 名称:
pet_hockey_player - 添加输入节点:
picture,style,uniform_number,uniform_color
Step 3:添加节点
- 代码节点:实现随机逻辑
- imgUnderstand:解析图片内容
- 特征提取:获取动物特征
- 图像生成:使用通用模型 + 提示词生成图片
- 结束节点:返回结果
Step 4:前端用 Vue 搭建界面
xml
<template>
<div class="container">
<h1>上传你的宠物,让它成为冰球明星!</h1>
<input type="file" @change="handleFileUpload" accept="image/*" />
<button @click="generate">生成冰球运动员</button>
<img v-if="result" :src="result" alt="Generated Player" />
</div>
</template>
<script>
export default {
data() {
return {
result: null
}
},
methods: {
async handleFileUpload(event) {
const file = event.target.files[0];
// 上传文件并获取URL
this.uploadedUrl = URL.createObjectURL(file);
},
async generate() {
const res = await fetch('/api/coze-workflow', {
method: 'POST',
body: JSON.stringify({
picture: this.uploadedUrl,
style: '写实',
uniform_number: 7,
uniform_color: '蓝'
})
});
this.result = await res.json().data;
}
}
}
</script>
注:实际调用 Coze API 需要配置鉴权,具体可参考官方文档。
🤔 我的思考:AI不只是工具,更是"造梦机器"
做这个项目时,我一直在想一个问题:
当AI能把一只猫变成冰球运动员时,我们到底是在创造什么?
答案是:一种新的情感连接。
我们不是在"欺骗"用户,而是在用科技,帮他们完成一次对爱宠的浪漫想象。
就像小时候幻想自己是超级英雄一样,现在我们可以让宠物也成为"赛场上的王者"。
而这一切,只需要一行代码、一个工作流、一点点创意。
🎉 结语:下次别再说"我家猫不会打球"了
从今以后,请记住:
每只宠物,都有成为冰球巨星的潜力。
只要它愿意------或者,只要AI愿意。
📌 项目总结
| 项目 | 内容 |
|---|---|
| 平台 | Coze(扣子) |
| 技术 | 图像生成 + 特征提取 + 低代码工作流 |
| 前端 | Vue + Axios |
| 核心功能 | 宠物拟人化 + 冰球运动员生成 |
| 应用场景 | 节日活动、社区运营、品牌互动 |