今日速览

  • AI 生成像素素材的头号问题不是”单张好不好看”,而是”一批图像不像同一个游戏”。分辨率、调色板、描边、光源方向,任何一项漂移都会立刻出戏。
  • 正确顺序是先定规格,再让 AI 出图:把 16/32/64 网格、≤32 色固定调色板、描边规则、光源方向写成一份 art bible,再开始批量生成。
  • 风格靠”锚点图”锁,不靠每次重写提示词:固定一张基准图 + 固定随机种子,后续所有素材都以它为参考。
  • 生成之后一定要做量化后处理:最近邻缩放、色板重映射、清理半透明杂边,否则 20 张图会有 20 套渐变。
  • Godot 里像素画必须关掉纹理过滤和 mipmap(默认是平滑的),并按脚底对齐锚点,否则跑起来人物会”抖”。

核心学习内容

一、四把尺子:把”风格”翻译成可检查的数字

“我想要统一的像素风”是不可执行的。可执行的是四个参数:

  1. 网格:角色 32×32(或 16×16),场景 tile 16×16,UI 图标 16×16,Boss 64×64。所有素材必须是网格的整数倍,禁止出现 37px 这种尺寸。
  2. 调色板:选一套固定 16~32 色(Lospec 上挑一套并记录 hex 列表),全项目只准用这些颜色。这一条对统一感的贡献最大,比任何提示词都管用。
  3. 描边:要么全部 1px 深色描边(比主色暗 30%),要么全部无描边只靠明暗分块。混用会立刻变成”拼贴感”。
  4. 光位:统一左上 45° 主光。这意味着所有素材的高光在左上、投影在右下,AI 出的图如果光位反了必须重生成或手工翻。

把这四条写成一张表(角色/场景/UI 各一行),就是你的 art bible 第一版。后面所有提示词都从这张表派生。

二、用”锚点图 + 模板化”锁住风格

AI 出图漂移的本质是:每次提示词的隐含变量都在变。控制方法有三层:

  • 锚点图(Style Anchor):先精挑一张最满意的角色图,作为 img2img / 参考图 / 风格参考喂给后续每一次生成。它的作用是替你说清楚”描边多粗、明暗几阶、饱和度多少”。
  • 提示词模板化:把提示词拆成”不变段 + 可变段”。不变段是分辨率、视角(side view / top-down 3/4)、调色板、描边、光位、背景透明;可变段只有角色、动作、道具。每次只改可变段一件事。
  • 一次只变一个变量:想试”换武器”,就别同时改姿势和配色。否则你无法判断是哪一项导致风格崩了。

生成 8~16 张候选后,进入量化后处理(这一步最容易被跳过,但它决定了成品率):

  1. 用最近邻(NEAREST)缩放到目标网格,绝不用双线性——双线性会把像素边缘糊成半透明脏边。
  2. 把颜色重映射到你的固定调色板(最近色替换),顺手把颜色数压到 32 以内。
  3. 把 alpha 二值化(>0.5 保留,否则透明),清掉 AI 常见的羽化边缘。
  4. 命名规范:char_knight_idle_00.png、tile_grass_01.png。命名乱了,后面做动画时全是手工活。

三、Godot 落地:导入设置不对,前功尽弃

素材进引擎后还有三个坑:

  • 纹理过滤:项目设置 → Rendering → Textures → Canvas Textures → Default Texture Filter 设为 Nearest,或单张图 Import 面板里把 Filter 关掉、Mipmaps 关掉。默认的线性过滤会让像素画看起来像被水洗过。
  • 像素对齐:开启 2D 像素对齐(rendering/2d/snap/snap_2d_transforms_to_pixel),否则角色在非整数坐标移动时会一帧清楚一帧模糊。
  • 锚点与切片:角色 Sprite2D 的 offset 要让”脚底中线”落在节点原点;spritesheet 按网格切(SpriteFrames 里设置 hframes/vframes,或直接用 AtlasTexture),帧率一般 8~12 FPS 就够,像素动画不需要 60。

🎯 DeepSeek 提示词

提示词 1:生成美术规格书(Art Bible)

适用场景:项目刚起步,或已经有一堆风格不一的图需要收口。

你是资深 2D 像素游戏美术总监。我要为一款【类型:2D 横版动作 / 俯视角 roguelike】游戏建立统一美术规格。

已知信息:
- 目标分辨率:1280x720,整数倍放大
- 引擎:Godot 4
- 参考氛围:【例如:暗黑地牢 + 16 位像素】

请输出一份可直接执行的《像素美术规格书》,必须包含:
1. 网格表:角色 / 小型敌人 / Boss / 场景 tile / 道具 / UI 图标,各自的像素尺寸与允许的缩放倍率
2. 调色板:给出 24 个 hex 色值,按「主色 6 / 暗部 6 / 高光 6 / 描边与中性 6」分组,并说明每个色组的用途
3. 描边规则:粗细、颜色取法(相对主色的明度偏移)、哪些元素允许无描边
4. 光位约定:主光方向、允许的明暗阶数(例如 3 阶)、投影规则
5. 命名规范:文件命名模板 + 动画帧命名模板
6. 一票否决清单:出现哪些情况必须重做(列出 6 条可判定的硬规则)

约束:
- 全部数值必须具体,禁止写「适度」「尽量」这类模糊词
- 用 Markdown 表格输出,不要解释你的推理过程
- 最后附一段 120 字以内的「给外包/AI 的一句话风格描述」

提示词 2:把中文需求编译成 AI 出图提示词

适用场景:每次要新素材时用,保证提示词结构一致,只换可变段。

你是像素美术提示词工程师。请把下面的中文需求编译成一段可用于 即梦 / Stable Diffusion 的英文提示词。

固定风格段(每次原样保留,不得改写):
【粘贴你的规格书摘要:32x32 pixel art sprite, side view, limited palette of 24 colors,
1px dark outline, 3 shading steps, top-left light source, transparent background,
crisp pixels, no anti-aliasing, no blur】

本次可变段:
- 对象:【例如:持长剑的骷髅骑士】
- 动作:【例如:待机,剑尖朝下】
- 特殊要求:【例如:头盔有破损缺口】

请输出:
1. Positive Prompt:英文,逗号分隔,把固定段放在最前,可变段放中间,质量控制词放最后
2. Negative Prompt:至少 10 项,必须针对像素画常见问题(anti-aliasing, blurry, gradient, 3d render, photo, watermark, extra limbs, jpeg artifacts...)
3. 参数建议:尺寸(必须是网格整数倍)、采样步数、CFG、是否建议用参考图/图生图
4. 文件名:按【char_knight_idle_00.png】这种规范给出 3 个候选文件名
5. 自检清单:出图后我该检查哪 5 点来判断这张图能不能用

只输出以上 5 项,不要额外寒暄。

提示词 3:素材一致性审计 + 修正补丁

适用场景:攒了 10~30 张图后做一次收口,避免”越画越不像”。

你是像素美术质检员。下面是一批素材的统计信息(我按图列出:尺寸、颜色数、是否有半透明边缘、描边粗细、主光方向、主色 hex):

【逐行粘贴,例如:
char_knight_idle_00.png | 32x32 | 41色 | 有半透明边 | 1px | 左上 | #2b2b3d
char_slime_idle_00.png | 32x32 | 67色 | 有半透明边 | 无描边 | 正面光 | #4caf50
...】

目标规格:【32x32 / ≤24 色 / 1px 深色描边 / 左上光 / alpha 二值化】

请输出:
1. 差异表:每张图逐项标注「合规 / 超标 / 违规」,超标项写出具体数值
2. 严重度排序:哪些图必须重做、哪些只需后处理、哪些可以直接用
3. 修正补丁:针对「只需后处理」的图,写出具体的色板重映射与 alpha 阈值建议
4. 重生成提示词:针对必须重做的图,给出修正后的完整英文提示词(沿用原风格,只改出错的部分)
5. 一个 Python 脚本(Pillow):批量检查图片尺寸、颜色数、半透明像素占比,输出 CSV 报告

约束:不要评价画风好坏,只做规格判定;脚本要能直接运行,参数用常量放在文件顶部。

学习心得

今天最大的收获是:AI 美术的瓶颈不在生成,而在约束。我们之前一直在纠结”怎么让 DeepSeek 写出更好的提示词”,但真正决定成品率的是那四条硬规格——尺寸、色板、描边、光位。它们一旦写死,AI 的随机性反而变成了多样性红利:在框里怎么变都还是同一个游戏。

对”用 DeepSeek 做一款 Steam 游戏”这个目标来说,这条流水线的价值在于它把美术从”需要天赋”变成”需要纪律”。我不用会画画,只要会写规格书、会跑量化脚本、会看差异表。三个 DeepSeek 提示词分别对应这三个动作,形成闭环:定规格 → 批量生成 → 审计收口。

另外提醒自己:商店页需要的 Capsule 图(616×353 等)是另一套规格,不能直接拿游戏内 32×32 素材放大,那条线要单独准备。

明日关注

  • 用提示词 1 正式产出本项目的 art bible v1,把调色板 hex 存成 palette.json 放进仓库
  • 写一个 tools/audit_assets.py,把提示词 3 的脚本落地并跑通现有全部素材
  • 试一次”锚点图 + 图生图”生成 3 个同风格敌人,验证风格漂移是否明显下降

本文由自动化学习流水线每日生成,坚持即学即记。