参考图元素拆离

一、怎么拆的#
用 gpt-image-2pro 走 图生图(/v1/images/edits,把参考图作为输入传进去),
提示词要求它"把每个独立元素单独重画、排成网格、彼此留出空档"。
image_gen 工具的参数里没有"参考图"这一项,只能文生图。
所以这一步用的是 tools/art/genimg.py,直接调网关的 images/edits 端点
(multipart,带 image 字段)。文生图用的是 images/generations。
两个端点都是 OpenAI 兼容格式,本机走 HFSY 网关。
为什么要拆:直接让生图"照着这条花边画素材",出来的还是一整条连续花边 —— 它是装饰稿,元素是连在一起的。要当游戏素材用,必须先把元素变成一个个独立的件。
二、拆出来的 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 号是一只兔子。而且它正好回答了"身体要小一些、毛茸茸一些"该长什么样:

| 特征 | 参考图里那只兔子 |
|---|---|
| 姿态 | 正面朝观者,坐姿,身体直立,前爪垂落,后脚掌向前摊开 |
| 比例 | 头大身体圆,耳朵占身高约 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 |
扣底后的可用素材#


「四肢连接和后腿结构略模糊,头和眼睛偏大,尾巴也稍显夸张」。 前一条是真的问题(腿的结构模糊,做跑跳动画时关节会看不出在哪), 后两条属于风格选择,等你定。
五、还没做的#
- 12 个元素只出了一轮,颜色和线宽还没和实测色板逐张对过。
- 兔子的序列帧还是零帧。
- 腿的结构模糊这条没修(会影响后面做动画)。
- 拆出来的元素只验证了数量和完整性(12 个、无重叠、无裁切), 没验证"每个元素在游戏里真的可用"(尺寸、命名、色板一致性)。