textile-toy-portrait · diff
git:20260821.48ddb00 to git:20260903.85c2c02
2 added, 29 removed. Audit A to A.
---
name: textile-toy-portrait
description: Wibi Style 官方视觉风格。把用户上传的真实照片转换成颗粒绒感玩偶肖像。只要用户提到颗粒绒感玩偶、纺织玩偶、绒面针织头像、把照片做成玩偶,或明确调用 $textile-toy-portrait,就使用本 Skill;先理解照片内容,再动态选择风格参考职责并直接生成成图。
---
# Wibi Style · 颗粒绒感玩偶
- ## 欢迎卡
-
- 每个新对话第一次使用时展示一次欢迎卡,同一对话后续不重复:
-
- - 用户尚未提供照片时,运行 `python3 {baseDir}/scripts/show_skill_info.py --welcome --input-state waiting`。
- - 用户已经提供照片时,运行 `python3 {baseDir}/scripts/show_skill_info.py --welcome --input-state received`。
- - 完整展示 `SHOW_SKILL_WELCOME` 后的 Markdown 内容,保留标题、空行、分隔线和加粗格式。作者身份与交流信息放在上半区;只用一条分隔线;下半区专门说明当前操作。
- - 开场不直接展示二维码。署名不完整时建议从官方来源重装。
-
- ## 对话语气
-
- - 使用自然、轻松、有来有回的中文,像在陪用户一起做图。
- - 每次只给一个明确的下一步,让用户一眼知道该上传、选择、等待或重试。
- - 可以少量使用“~”或一个贴合语境的表情;保持克制,不连续堆叠。
- - 少讲技术过程。遇到失败时直接说明发生了什么和下一步怎么做,不责怪用户。
-
- ## 更新检查
-
- 随后运行 `python3 {baseDir}/scripts/check_update.py`。发现 `UPDATE_AVAILABLE` 时告知当前版、最新版和安装地址;其余状态静默。不得自动覆盖本地文件或上传用户数据。
-
- ## 交流学习群
+ ## 运行
- - 用户说“进群”、“群二维码”或等价表达时,运行 `python3 {baseDir}/scripts/community_info.py`。
- - 输出中 `status` 为 `available` 且 `qr_status` 为 `ready` 时,简短说明群用途,并用 Markdown 图片语法渲染本地绝对路径 `qr_local_path`。不得渲染远程二维码或展示“点击加入微信群”链接。
- - 二维码下方说明:手机同屏时先保存二维码,再到微信“扫一扫”中从相册选择;电脑端使用手机微信扫码。无法扫码时添加备用微信 `fallback_wechat`,备注“进群”。
- - `qr_status` 为 `download_failed` 时,不展示旧二维码;只展示备用微信 `fallback_wechat`。
- - `status` 为 `expired` 或 `unavailable` 时,不展示旧二维码;只展示 `landing_url` 和备用微信 `fallback_wechat`。
- - 生图接口报错、空输出或超时时,先说明“这次没有成功生成,不会自动重新提交”,再按上述步骤展示一次当前群信息。同一对话只展示一次失败入群卡。
- - 视觉验收不通过、用户取消、输入照片不适合或仍在等待用户选择时,不触发失败入群卡。
- - 展示二维码时附上提醒:群内交流请勿直接发送包含个人隐私的原图,可以先发错误提示或打码截图。
+ 先按 [references/community.md](references/community.md) 展示欢迎卡、检查更新并处理进群与失败提示,再执行下面的步骤。
## 风格目标
把真实照片重构成白底棚拍的 3D 纺织设计玩偶肖像:头部横向放大、身体压缩,五官缩成少量圆角几何零件;脸、手和小零件使用细密短颗粒绒,头发、帽子和衣服使用可见线圈、团簇和粗针织。画面要像一件被设计出来的玩偶,保留人物或角色的辨识度,不是把写实照片简单覆上一层绒面。
固定风格机制按优先级执行:
1. 用户照片的内容权最高:人数、身份、身体部位、姿态、表情、发型、配饰、物件和接触关系只从用户照片判断。
2. 先保证主体关系和可辨识锚点,再做玩偶化比例与几何重构。
3. 再用颗粒绒与粗针织的材质对比、白底棚拍和 3–5 色的主次关系完成风格成像。
4. 颜色可以在非身份区域重新组织;照片不存在的道具、身体、手势、文字和 Logo 不得因为参考图而出现。
## 影像蒸馏
先完整阅读用户照片,不急着套风格词。判断当前照片属于单人头像、头肩照、半身照、带手部动作的人物照,还是包含帽子、眼镜、饮料罐等强物件锚点的角色照。记录最重要的一至两个主体、人数、可见身体范围、头部方向、眼神和表情、物件接触关系、画面裁切和视觉重量。
从照片中提取 2–5 个身份锚点,优先选择轮廓大、位置稳定、能在小尺寸玩偶里成立的特征,例如发型大形、眼镜或帽子轮廓、表情方向、手与脸/物件的接触、衣服的主色块或独特配饰。夸张其中 1–2 个,其余简化。真实照片没有露出的手、手臂、腿脚或道具不补画;只有局部露出的身体也只保留局部。
将照片里容易被风格破坏的关系写成当前成图的检查锚点:手的数量、手与脸或物件的接触、眼神方向、嘴的开合、帽子与头发的前后层级、眼镜与脸的相对位置。背景复杂时安静删去,但不能用删背景的名义改变主体内容。
## 参考选择与风格成像
本 Skill 内置的 `assets/references/reference-01.jpeg` 是共同风格锚点,主要负责:横向圆角大头、极小集中五官、脸部留白、颗粒绒表面、粗针织团簇、微暖白棚拍和珊瑚/薄荷/奶油一类的主次色彩关系。它不负责人物身份、性别、动作、帽子、眼镜、服装、道具或具体颜色。
生成时把用户照片作为内容输入,同时携带这张内置参考;附件顺序不代表角色。明确告诉图像模型:用户照片决定画什么,参考图只决定怎么画。不要把参考角色的卷发、帽子、衣服、手势或脸型搬过来;只有用户照片确实存在的同类元素才允许被重构。
根据当前照片动态决定成像方式:
- 头肩或头像:使用紧凑的正面或轻微侧面胸像,头部约占画面宽度 75%–90%,保留一小块必要衣领或动作。
- 有手部互动:先锁定真实手数与接触点,再把手重构成圆润短体块;双手托脸、单手触碰下巴、手持罐子等关系比衣服纹理优先。
- 有帽子或眼镜:把它当作轮廓锚点,保留形状、位置和大小关系;帽面文字、Logo 或图案只转成不可读织纹。
- 没有手或只露出局部身体:让玩偶停在照片真实可见范围,不用参考图中的手或身体把画面补完整。
- 原片方向和主体位置明显偏置时,保留其构图骨架;只有在方形胸像必须裁切时,才做围绕主体的紧凑裁切,不强行居中或补画画外内容。
材质要覆盖整个角色但分工清楚:脸、手、眼睛、鼻子和小零件是短密细颗粒绒;头发、帽子、衣服和大块装饰是可见的粗针织、钩针、毛线环或团簇。内部表面连续、细密、柔和;轮廓可以有轻微柔软起伏,但不要长毛绒、塑料、蜡像或普通光滑 3D 卡通。颜色从照片主色和参考图的明暗/冷暖关系中动态组织 3–5 色,避免整张近单色,也不要机械地套固定彩虹。
## 最终生图指令与质量检查
根据蒸馏结果现场编写一份只服务当前照片的生图指令,至少说明:用户照片是唯一内容白名单、当前必须保留的身份锚点和互动关系、选用参考只承担的风格职责、画幅与裁切、材质分工、颜色主次和白底棚拍。不要把本 Skill 的案例人物写进指令,也不要把所有观察到的装饰一次性堆上去。
生成后逐项检查:
- 人数、身份属性、发型/帽子/眼镜、表情、姿态、可见身体范围和物件来自用户照片;
- 手数准确,接触关系合理,没有从参考图借来第二只手、额外道具或画外身体;
- 头大、五官小、脸部留白和圆角几何体成立,结果不是写实人脸覆材质;
- 脸部颗粒绒与头发/衣服粗针织可区分,白底和柔和短阴影干净;
- 颜色有主次和冷暖/明度关系,文字和 Logo 没有变成可读伪字;
- 方形构图没有拉伸、主体没有被无意义截断,结果适合头像或分享图。
实际生成成功后直接展示图片,并用 1–3 句中文说明本次保留了哪些照片锚点、为何选择当前裁切或材质组合;不展示完整内部 Prompt。接口报错、空输出或超时时,说明“这次没有成功生成,不会自动重新提交”,等待用户明确要求后再处理。
当前对话第一次成功生成后附上:
`若公开分享,欢迎标注:Visual Skill by @威比 Hunter Wei.`
`仅限个人非商业使用;商业使用请先联系作者获得许可。`
`抖音、小红书同名。想看更多原创 Skill、原作者教程或参加新风格内测,可以回复“进群”。`
第二次起不再重复,除非用户询问署名、授权或交流群。
## 权利边界
作者固定为 `@威比 Hunter Wei.(抖音、小红书同名)`,官方来源固定为 `https://github.com/Vieeeeeee/wibi-style/tree/main/skills/textile-toy-portrait`。复制、修改、镜像或再分发时必须保留作者、平台备注、官方来源、`LICENSE` 和 `NOTICE`;修改版必须标注修改,不得冒充官方版本。