🌻 设计文档小农场 · 野花笔记
← 全部文档/野花笔记/美术

参考图元素拆离

提案 #美术#生图#参考图#元素拆离#兔子 docs/野花笔记/参考图元素拆离.md
参考图原图 · 918×133 的装饰花纹边框
参考图原图 · 918×133 的装饰花纹边框

一、怎么拆的#

用 gpt-image-2pro 走 图生图(/v1/images/edits,把参考图作为输入传进去), 提示词要求它"把每个独立元素单独重画、排成网格、彼此留出空档"。

这一步之前做不了,因为工具不支持传图

image_gen 工具的参数里没有"参考图"这一项,只能文生图。 所以这一步用的是 tools/art/genimg.py,直接调网关的 images/edits 端点 (multipart,带 image 字段)。文生图用的是 images/generations。 两个端点都是 OpenAI 兼容格式,本机走 HFSY 网关。

为什么要拆:直接让生图"照着这条花边画素材",出来的还是一整条连续花边 —— 它是装饰稿,元素是连在一起的。要当游戏素材用,必须先把元素变成一个个独立的件。

二、拆出来的 12 个元素#

从参考图拆离出的 12 个元素 · 每个都是完整独立的一株
从参考图拆离出的 12 个元素 · 每个都是完整独立的一株

出图原稿(3 行 × 4 列的网格):

拆离出的元素原稿
拆离出的元素原稿
# 内容 # 内容
1 雏菊 7 兔子 ← 见第三节
2 簇状花枝 8 雏菊/菊科
3 百合 9 蔷薇
4 铃铛花(风铃草类) 10 草叶
5 蔷薇/野玫瑰 11 带叶枝条
6 白花与叶片 12 花苞与花枝
切件用的是**二维连通域**,不是列投影

12 个元素排成 3×4 网格,上下两行的元素在 x 区间上是重叠的。 按"列投影的空隙"切会切成 12 段但顺序全乱(第 1 行第 3 个和第 2 行第 3 个会挨在一起)。 所以切完还要按行聚类再按列排序:用素材板自己量出来的"物件中位高度的一半"当阈值, 把 y 中心聚成行,行内再按 x 排。这样出来的编号才和图上看到的顺序一致。

(列投影法在更早一轮也踩过:树冠在列投影上和邻居重叠,10 个物件只切出 5 个。)

三、意外收获:参考图里本来就有一只兔子#

拆出来的 7 号是一只兔子。而且它正好回答了"身体要小一些、毛茸茸一些"该长什么样:

参考图里拆出来的兔子(7 号)
参考图里拆出来的兔子(7 号)
特征 参考图里那只兔子
姿态 正面朝观者,坐姿,身体直立,前爪垂落,后脚掌向前摊开
比例 头大身体圆,耳朵占身高约 1/3
耳朵 长而直立,略向外分开,耳尖圆尖,内耳浅棕橙色带细碎斑点和短线
眼睛 两颗小而圆的深灰色眼,带细小浅色高光,表情温和
毛发 用短线和点状笔触表现,柔软蓬松;胸口和脸颊有细碎毛纹
颜色 米白/乳白身体,灰黑细线勾勒,耳内和胸口带浅棕色
装饰 胸前有棕色短线和小点纹样,两侧伸出夸张的长胡须,周围配蓝灰绿草叶
这份描述直接推翻了我之前对"可爱"的理解

我之前那版兔子是按我自己想的"可爱"做的:圆润的身体、比例正常的头、光滑的轮廓线。 而参考图给的做法完全不同 ——

我之前的做法 参考图的做法
头身比 头 ≈ 身的 1/3 头占整体高度约 45%(婴儿比例)
毛的质感 平滑连续的轮廓线 轮廓被一簇簇小毛尖打断,内部是短线和点
眼睛 黑点 带细小浅色高光的小圆眼
细节 无 胸口的棕色短线和小点纹样、夸张长胡须

"毛茸茸"不是把轮廓线画软,是让轮廓线被打断、内部填短线和点。 这是一条真正的画法差异,不是形容词差异。

四、按参考图重做的兔子#

拿拆出来的 7 号当参考图,再用 2pro 生成(图生图,风格能真正传过去):

左=参考图拆出的兔子,中=新做侧视(游戏用),右=新做正面
左=参考图拆出的兔子,中=新做侧视(游戏用),右=新做正面

侧视版(横版游戏实际要用的朝向)——奔跑/起跳姿态:

新兔子 · 侧视奔跑姿态
新兔子 · 侧视奔跑姿态

正面版(手账/主界面用)——和参考图同姿态:

新兔子 · 正面坐姿
新兔子 · 正面坐姿

这次改了什么#

你的要求 具体做法 落地位置
身体小一些 头改成占整体高度 45%(婴儿比例),身体压缩变紧凑 提示词 "head roughly 45% of total height / small compact body"
更可爱 大圆头 + 小短身 + 小短肢 同上
毛茸茸 要求轮廓线被毛尖打断,内部用大量短线和点 "tufts breaking the silhouette / short fine strokes and small DOTS"
神秘感 表情改成"安静、温和、有点了然",明确否掉卡通大笑 "calm quiet slightly knowing expression — NOT a big cartoon grin"
基于参考风格 直接把拆出的 7 号当参考图喂进去 images/edits + gpt-image-2pro

扣底后的可用素材#

抠掉纸底之后的侧视兔子
抠掉纸底之后的侧视兔子
抠掉纸底之后的正面兔子
抠掉纸底之后的正面兔子
视觉复核的意见(还没改)

「四肢连接和后腿结构略模糊,头和眼睛偏大,尾巴也稍显夸张」。 前一条是真的问题(腿的结构模糊,做跑跳动画时关节会看不出在哪), 后两条属于风格选择,等你定。

五、还没做的#

别把下面当成已完成
  1. 12 个元素只出了一轮,颜色和线宽还没和实测色板逐张对过。
  2. 兔子的序列帧还是零帧。
  3. 腿的结构模糊这条没修(会影响后面做动画)。
  4. 拆出来的元素只验证了数量和完整性(12 个、无重叠、无裁切), 没验证"每个元素在游戏里真的可用"(尺寸、命名、色板一致性)。