mcpField
V
voxel-icon

voxel-icon

github.com/biasia创意与媒体10094 次安装10 周前更新
代码仓库

关于 voxel-icon

voxel-icon 是用于生成体素风格位图插画的创作技能,根据主题构建简洁的等距图标,并提供原生配色与按需指定的配色模式。它包含风格校准、图像检查和背景标准化流程,也支持按明确要求制作循环动画。

主要功能

  1. 01按主题生成等距体素图标
  2. 02默认保留主题自身的配色关系
  3. 03支持指定调色板模式
  4. 04检查构图、体素结构与缩略图效果
  5. 05标准化为纯色背景的 RGB PNG
  6. 06按需生成循环动画帧

适用场景

  1. 01为主题或概念制作简洁图标
  2. 02为系列图标保持一致的视角与模块尺寸
  3. 03按指定调色板制作配色版本
  4. 04制作循环动画图标

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/biasia/voxel-icon --skill voxel-icon

安装后在 Claude Code 中输入/voxel-icon确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

agents/
openai.yaml
references/
loop-animation.md
oreo-palette-library.md
palette-standard-aggressive.md
palette-standard.md
style-spec.md
scripts/
build-generated-loop.py
normalize-gray-background.py
requirements.txt

详细介绍

Voxel Icon

根据用户提供的主题创作一幅全新的位图插画。保留随附内部生成的参考图所校准的构造方式、视角、光照和简洁图形表现;不要推断参考图的具体主题。

必读内容

务必阅读 references/style-spec.md 和 references/palette-standard.md。仅当调色板模式为 directed 或 directed-aggressive 时,才阅读 references/oreo-palette-library.md。仅当模式为 directed-aggressive 时,才阅读 references/palette-standard-aggressive.md。仅当用户明确要求循环、动画、GIF、动画 WebP 或四帧运动时,才阅读 references/loop-animation.md。加载内部生成的 assets/reference-sheet.png,了解视角、面部光照和图形色彩表现。加载内部生成的 assets/macro-block-reference.png,了解方块密度、大型长方体构造和接缝简化方式。除非用户提出要求,否则不要推断随附参考图的主题。

配置

生成前记录调色板模式:

palette_mode: native
palette_preset: null
output_mode: still
  • native 是默认且必须采用的模式。保留源对象或表情符号中可辨识的主色、搭配色、强调色、黑色、白色和材质色之间的完整关系。native 没有固定的色相白名单,不得将主题简化为反复出现的红黄蓝组合。不要将 native 颜色映射到 Oreo 预设或校准图中的颜色。
  • directed 为可选模式。仅当用户要求使用指定或 Oreo 衍生配色、要求匹配调色板,或指定预设时启用。除非明确指定了 palette_preset,否则搜索完整注册表。
  • directed-aggressive 为可选模式。仅当用户明确要求采用激进、富有表现力、分层或用于对比的预设时启用。
  • 指定 Oreo 预设意味着使用 directed,而非 directed-aggressive。
  • 切勿仅因存在匹配的预设就推断应使用 directed 模式。未指定时一律使用 native。
  • still 是默认输出模式。仅当用户明确要求动态效果时才使用 loop,并遵循 references/loop-animation.md。

工作流

  1. 提取主体、预期用途、宽高比、任何精确文本、输出是否属于系列,以及明确指定的调色板模式(如有)。默认输出一张正方形 RGB PNG,不含文字,palette_mode: native,最终背景色精确为 #F4F4F4。
  2. 将提供的图像视为用户输入;除非用户明确要求编辑,否则将自包含的内置图表视为校准参考,而非编辑目标。
  3. 将抽象主题简化为一个紧凑、易于识别的物体或关系。仅保留两到三个身份线索。
  4. 将主体转换为一个粗粒度的基础模块网格。用少量大型矩形体素块构建,每块尺寸均为该模块的整数倍。将相邻单元合并为干净的长方体,并弱化其内部接缝。采用阶梯状轮廓,而非平滑几何形状。对于系列作品,固定投影基础模块尺寸和相机缩放比例;简化复杂主体,而不是加密网格。
  5. 根据 references/palette-standard.md 制定对应模式的配色方案。在 native 模式下,将提取出的原生特征色直接映射到各个组件。在 directed 模式下,加入 B/D 风格的结构分配、选定一个完整预设、对整个预设进行色调调整,以及进行色值映射。在 directed-aggressive 模式下,还要应用离散图层规则。
  6. 按照下方约定编写结构化提示词,然后调用内置图像生成工具,并使用尽可能精简且有用的参考集。系列中的首个素材获批后,后续素材应加入一个获批的同系列输出,作为材质、基础模块和相机校准参考;不得复制其中的主体。
  7. 以原尺寸和缩略图尺寸检查结果。若出现平滑网格、圆角方块、密集平铺表面、二维像素艺术、繁杂场景、不一致的透视、主体辨识度低,或颜色与记录的调色板模式及配色方案不符,则拒绝该结果。
  8. 编辑前先对迭代反馈进行分类。如果反馈仅涉及颜色、阴影、材质或背景,则将当前输出用作编辑目标,并明确锁定轮廓、体素拓扑、组件数量、组件位置、相机、比例和取景范围。进行配色修正时,不要重新设计物体。
  9. 每次迭代只进行一项针对性修正。修正颜色、阴影、材质或背景时,保持已获批的物体不变。
  10. 对通过验收的渲染结果运行 scripts/normalize-gray-background.py INPUT.png OUTPUT.png。该脚本会将模型产生的近灰色偏差替换为精确的 #F4F4F4 最终背景色,无需重新渲染主体。
  11. 验证最终文件为不透明的 RGB PNG,所有干净背景区域的颜色均为 #F4F4F4,且主体几何形状、像素、比例、取景范围和边缘质量保持不变。
  12. 对于 output_mode: loop,首先识别真实物体,并根据 references/loop-animation.md 的要求,写明其物理运动模型、刚性组、可活动部件、固定连接,以及前进和后退状态。根据获批的静帧生成两张完整姿势图像。至少指出两个会明显变化的语义区域;它们可以独立移动,也可以作为可信的刚性运动或关节运动的结果而同步变化。切勿臆造关节、拆开固定组件,或用二维整帧变换替代新生成的三维姿势。直接组装生成的完整帧,不得使用蒙版、局部合成、图像修复、背景归一化、颜色匹配或刚性后变换。

对于 directed-aggressive,应保留所有结构不变量,并使用 references/palette-standard-aggressive.md。绝不可隐式启用该模式。

背景归一化

所有工作渲染和最终素材均使用同一种中性背景。面向模型的提示词和最终图像都使用完全平坦的 #F4F4F4 色块。任何其他测得的角落值、色偏、渐变、暗角、Alpha 通道或单张图像的灰度漂移,都应视为缺陷。

以确定性方式归一化合格的渲染:

python scripts/normalize-gray-background.py INPUT.png OUTPUT.png

脚本会对平坦的外边框进行采样,仅隔离与边框连通的背景,保留封闭的白色区域,并将未更改的主体合成到精确的 #F4F4F4 上。脚本会输出一张不透明的 RGB PNG。如果它因边框不均匀或主体触碰边缘而拒绝处理,应修正渲染,而不是不断提高容差,直到内容消失。

概念简化

  • 对于具体物体,保留其轮廓、一种标志性色彩和一个定义性特征。
  • 对于抽象主题,先选择一种常见的实物隐喻,再添加细节。
  • 优先使用单个物体。仅当小型成对关系能够表达概念时才使用,例如用铅笔加尺子表示设计,或用柱形加箭头表示市场。
  • 避免用文字代替识别性。仅在用户提供确切文本时添加文字。
  • 不要擅自添加用户未要求的眼睛、面部、符号、强调色块或内部标记。
  • 附属部分至少应有一个基础模块的厚度,并且在缩略图尺寸下清晰可辨。
  • 将主导角色分配给最具识别性的主要组件。根据语义而非测得的像素面积来选择辅助色、强调色、黑色和白色角色。
  • 提示前先定义颜色单位。一个形状是一个连续的实体块或一个连贯的附属物体;它的顶部、正面、侧面、标记和内部区域仍属于同一个形状。
  • 分配颜色前,提取单个源表情符号或真实物体完整且可识别的颜色特征,包括所有语义上不同的组件颜色以及功能性黑色或白色。
  • 在 native 模式下,直接保留这些源颜色关系。棕色、橙色、绿色、青绿色、紫色、粉色、青色、金属灰、奶油色以及其他任何源色相都有效。仅使用语义上的 OKLCH 校正来保持每种原生色相的饱和度,并使其基于色面的数值保持协调;绝不要用更少的首选调色板替代它。
  • 在 directed 模式下,采用 B/D 风格的分配逻辑,但不继承 B 或 D 的色相;搜索全部 40 种 Oreo 预设,并将选定的完整预设映射到实际组件上。
  • 在 directed-aggressive 模式下,允许在不同的真实层或阶梯状色块上使用最多三个相同预设的色值;绝不要在同一个连续平面上放置多种颜色。
  • 将任何定向色调变化应用于整个预设。协调地调整色相,并缩放相对 sRGB 色度 Cr,而非绝对 OKLCH C。
  • 在所有模式下,每个连贯形状都只保留一种主导色相关系。这是单个形状内部的协调规则,并非对图标总色相范围的限制。黑色、白色和由明度决定的面部色可以作为辅助。
  • 只要这种关系源自原始表情符号或真实物体,真正分离且带有源色的组件就可以各自保留其原生色彩系列。不要对整批图标强加统一调色板,不要限制每个图标只能使用一到两个色彩系列,也不要借用先前生成主体的颜色。
  • 添加任何辅助色之前,先判断近黑色或浅中性色是否能更清晰地承担其作用。用黑色表现结构和识别性;用白色表现承载部分、镂空、翅膀、面部和开放表面。

提示词规范

使用此精简结构并替换方括号中的文本:

Use case: stylized-concept
Asset type: isolated isometric voxel icon
Primary request: Build [topic] as [single object or compact relationship].
Input image: internally generated bundled reference sheet used only for voxel construction, camera, material, lighting, and visual density; do not infer its subjects or copy its composition.
Scene/backdrop: perfectly flat neutral light-gray #F4F4F4 background with generous empty space; uniform edge to edge, no warm tint, gradient, vignette, environment, horizon, or floor.
Output handling: the final canvas remains opaque RGB with exact #F4F4F4 in every clean background region; no transparency or alpha background.
Palette mode: [native | directed | directed-aggressive]. Default to native when the user does not explicitly select another mode.
Subject: one compact focal object assembled from a small number of large rectilinear blocks aligned to one coarse base module; retain [two or three identity cues].
Construction: low-density macro-voxel geometry on one coarse base-module grid. Use about 12–30 visible rectangular blocks, normally no more than 40. Make every block dimension an integer multiple of the base module. Prefer large 2×1×1, 2×2×1, or larger cuboids for body masses and hide internal coplanar seams; no smooth base mesh.
Series voxel scale: keep the projected base module at about 5–7% of the canvas short side; on a 1254×1254 image target roughly 63–88 px. Build the dominant span from about 7–12 base modules, with a hard range of 6–14. Reuse the same base module and camera zoom across the series; never introduce a finer grid for small details. Simplify or merge the subject rather than adding blocks.
Camera: orthographic three-quarter isometric view, slightly elevated, showing top, front, and one side consistently.
Composition/framing: [aspect ratio], centered suspended object occupying roughly 55–72% of the frame; preserve clear empty background beneath it.
Lighting/mood: even high-key illumination expressed as whole-face value steps plus a restrained broad area-light reflection: every top face is uniformly brighter across its full area, every front face uses one uniform middle tone, and every side face uses one uniform darker tone. The source-facing plane may catch a clean mirror-like lift across most or all of the plane, never only along its edges. Keep external shadows extremely faint and diffuse, with no readable grounding patch or colored spill.
Color system: first extract this subject's complete source-native color signature, including all semantically distinct component colors plus functional black and white. In native mode, use those colors directly without a fixed hue whitelist, batch-wide palette, or convergence toward red-yellow-blue; correct only each source hue's OKLCH saturation and face values. The one-main-color rule applies separately to each coherent shape and does not limit the whole icon's color range. In directed mode, search all 40 complete Oreo presets and map one selected relationship onto the subject's roles. In directed-aggressive mode, use that same preset with discrete layer allocation. In every mode, keep each continuous visible plane spatially uniform, preserve functional black and white, and change color only at a real layer, step, seam, or separate component.
Materials/textures: solid opaque cast-acrylic blocks with fully covering saturated body color and a restrained polished surface. Give each visible plane one clean, nearly uniform tone; the source-facing whole plane carries the broad specular highlight and mild mirror-like sheen. Keep planar faces crisp and necessary seams subtle. No background, rear edge, or neighboring block is visible through a block. No edge highlight, rim light, bright outline, point hotspot, narrow reflection stripe, strong gradient within a face, transmission, refraction, internal overlap, grain, mottling, texture map, bevel, glass, waxy plastic, or chrome-like reflection.
Text (verbatim): "[exact text]" or none.
Constraints: preserve the shared coarse base module, integer-multiple block dimensions, coherent isometric axes, simple silhouette, and thumbnail readability.
Avoid: silently switching native mode to a named preset, unnecessary second or third chromatic families when black or white can carry the role, decorative rainbow palettes, inconsistent base-module scale across a series, refining the grid to fit detail, obvious cast shadow, contact shadow, grounding patch, reflected light spill, floor plane, pedestal, gray-background drift, transparent canvas, warm background, cream tint, gradient, vignette, 2D pixel art, Minecraft environment, toy-brick studs, rounded voxels, smooth mesh, low-poly triangles, outlines, transparent or translucent object material, glass, internal transmission, edge highlights, rim highlights, white block outlines, point highlights, narrow reflection streaks, cloudy frosted resin, waxy toy plastic, chrome or metallic reflections, surface texture, scenery, dense detail, logo, watermark.

质量门槛

仅当以下条件全部满足时才接受:

  • 每个可见形体都呈现为由大型直角体素块组成的小型组合,并对齐到同一粗粒度基准模块网格。
  • 每个块的尺寸都是共享基准模块的整数倍;不允许使用局部微型体素网格。
  • 大块体采用合并的长方体,隐藏内部共面的接缝。最终效果不能像铺满方块的表面。
  • 在系列作品中,投影基准模块尺寸保持在锁定比例的约 ±10% 范围内,相机缩放保持一致。
  • 主体跨度通常使用 7–12 个基准模块,且绝不超出 6–14 的硬性范围。
  • 主体通常使用 12–30 个可见块;未经用户明确批准,不得超过 40 个。
  • 整个主体均遵循相同的三条等距轴。
  • 轮廓呈阶梯状且紧凑,无需文字即可辨认。
  • 每个内部标记都用于体现用户要求的身份特征;不得出现意外的类人脸装饰。
  • 顶面、正面和侧面具有一致且保留色相的明度层次;任何高光都应宽广、克制,并覆盖光源所照平面的大部分或全部。
  • 块体应呈现不透明的抛光浇铸亚克力质感:主体完全遮挡背景和后方几何形体,同时以克制的整面区域光反射呈现清晰的镜面质感,不得出现边缘高光。
  • 记录的 palette_mode 与请求一致;若请求未指定,则使用 native。
  • 在 native 模式下,源表情符号或真实物体中所有可辨认组件之间的颜色关系都应直接作为颜色来源;不得用命名预设、固定色相候选集、校准主体配色或批次配色取代它们。
  • 在 directed 模式下,使用一个命名的完整预设来控制色彩组件;除非用户指定,否则从完整的 40 个预设注册表中选择。
  • 在 directed-aggressive 模式下,最多使用三个同一预设的标记,且仅分布在不同的真实体素层、台阶、接缝或独立组件上。
  • 每个连贯形状都应具有一种主导色彩关系;每个连续平面都应使用空间均一的颜色。功能性黑色和白色可用于辅助。
  • 每个连续平面都应使用空间均一的颜色;配色变化仅出现在真实的体素层、台阶、接缝或独立组件上。
  • 同一形状上的多个彩色区域必须遵循所选模式,并位于不同的结构层上;否则应保持主导色系,或改用功能性黑色或白色。设计、调色板、图表或彩虹等语义主题不构成突破此限制的理由。
  • 黑色用于表达结构或识别信息;白色用于表达开放表面或承载表面。两者都不得作为随意装饰。
  • 衍生的面部阴影与基色的色相差应保持在约 3° 以内,且不计为额外的配色系列。
  • 在 native 模式下,彩色面应保留原生色系的饱和度;在 directed 模式下,其相对 sRGB 色度 Cr 应保持在预设标记的约 92–105% 范围内;侧面不得变成灰色或浑浊的颜色。
  • 除非识别性要求有意采用例外,否则主要可辨认组件应使用主导色系。
  • 不得计算主体面积、背景面积或配色面积的百分比,也不得据此限制生成。
  • 最终 RGB PNG 的所有干净背景区域都必须使用精确的 #F4F4F4,不得有暖色偏移、暗角、逐图灰度漂移或 Alpha 通道。
  • 物体应明显悬浮,且其下方留有干净的空白背景;任何外部阴影都应极淡且漫散,绝不能呈现可辨认的接触阴影或落地阴影。
  • 如实际可行,可检查像素并比较干净的角落区域与物体下方的干净区域:各通道的平均 RGB 值差异应不超过 3 级,背景红蓝通道的差值应不超过 3 级。
  • 构图缩小为图标时仍应清晰易辨。
  • 仅修改配色时,轮廓、占用的体素单元、组件关系、相机和取景范围必须与编辑目标保持不变。
  • 除非用户提出要求,否则不得复现任何随附的校准主体。

针对性修正

  • 如果结果是带体素纹理的平滑模型,请重新生成由大型直线方块构成的几何体,并使其与粗略基础模块对齐。
  • 如果看起来像 2D 像素画,请恢复仰视正交视图,并确保能看到三个面。
  • 如果看起来像 Minecraft,请移除地形、天空、道具、像素纹理和游戏世界光照。
  • 如果主体杂乱或呈网格状,请将相邻单元合并为更大的长方体,隐藏共面接缝,移除次要方块,并简化内部标记。
  • 如果不同素材的基础模块尺寸不一致,请将每个素材都调整为锁定的投影模块和相机缩放;重建较复杂的物体时,应使用更少、更大的方块,而非更密集的网格。
  • 如果主体跨度超过 14 个模块或可见部件超过 40 个,请先缩小结构再重新生成。
  • 如果识别度较弱,只强化两个定义性特征,不要添加泛化细节。
  • 如果看起来像哑光或蜡质塑料,请保持主体不透明,并在朝向光源的平面上大范围添加克制的区域光反射,覆盖大部分或整个平面;不要添加边缘高光、狭窄反射线、强烈渐变或模制倒角。
  • 如果看起来透明、半透明或像玻璃,请消除所有透射、折射、可见的后侧边缘和背景透出。仅保留外表面的清晰光泽。
  • 如果每个方块都有明亮边框或角部热点,请将其移除。恢复每个面一种平涂色调,让完整的顶面、正面和侧面承载光照差异。
  • 如果看起来像放置在地面上,请移除所有接触阴影,并将剩余投影阴影减弱到几乎不可察觉、边缘柔和且无法勾勒出地面的程度。
  • 如果原生颜色显得暗淡,请保留其原生的 L 和 h,同时在色域范围内将色彩家族的色度提高约 25–40%。如果指定颜色显得暗淡,请将整个预设的相对 sRGB 色度比例提高 0.08–0.15,上限为 Cr = 1。不要通过提高亮度来补偿。
  • 在仅调整饱和度的修订中,每个大面与编辑目标之间的 ΔL ≤ 0.02,色相偏移保持在 ±2° 以内。黑色和白色保持不变。
  • 如果一个连贯形状包含多个源图中不存在的无关色彩家族,请保留有意义的原生色彩家族,只将臆造的色相替换为黑色、白色或根据明度派生的颜色。对于真正独立的部件,绝不要移除源图中原有的颜色。
  • 如果连续表面包含渐变,请将其量化为一种由颜色标记派生的纯色。将预期的颜色变化移到独立的体素层或阶梯状方块上,不要改变几何形状。
  • 如果结果显得单调或轮廓不清,请用黑色表现边缘、条纹、箭头、瞳孔或工具尖端;用白色表现承载部分、面板、翅膀、镂空或大面积平静表面。
  • 如果颜色反馈导致轮廓、新部件、部件移除或布局发生变化,请丢弃该修订,并对上一个输出重新进行严格的重新着色编辑。
  • 如果最终背景偏离 #F4F4F4,请对通过验收的渲染结果运行灰度归一化器;不要重新生成或重新着色物体。

评论

支持 Markdown