Community图像github.com

横幅合成器

通过拼接真实照片、剧照、海报和徽标,制作宽幅页眉和横幅图像(如子版块、Discord、YouTube 频道、论坛、Wiki、粉丝站点、活动或团队页面),保留软接缝,徽标和标题标识保持原样。

横幅合成器 是什么?

这是一个专注于横幅合成的专业技能,专门用于制作社区横幅、频道封面、活动页眉等宽幅图像。它通过将真实照片、剧照、海报和徽标从左到右拼接,并利用软接缝技术融合边缘,最终在顶部叠加徽标。其核心优势在于不重新绘制任何元素,人物面部保持原样,文字标识保持设计原状,避免了图像生成 AI 常见的‘徽标近似错误’和‘面部重绘’问题。该技能支持手动工作流,包括确定规格、搜索官方素材、提取徽标(支持用户提供、海报裁剪和从艺术图中抠出三种方式,优先级递减)、编写 JSON 布局规范并使用 Python 脚本生成最终图像。它还提供了预览、抠图、联系表等辅助脚本,并要求输出包含素材来源的清晰报告。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/sivarajd/banner-compositor/tree/HEAD

Installed? Explore more 图像 skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

横幅合成器 是做什么的?

通过将真实图像并排排列、融合接缝并在顶部叠加徽标来构建横幅。不进行任何重新绘制:人脸保持照片原样,标题保持设计原状。

为什么选择合成而非生成

人们通常要求为这个任务提供一个图像 AI 提示。生成式 AI 在社区横幅必须准确呈现的两个方面会失败:

  • 标题标识。 生成器会重新绘制徽标的字母。结果看起来很接近但实际错误,粉丝会立刻注意到。
  • 真实人物。 生成器会重新绘制人脸。结果是一个相似但并非本人,许多社区将其视为伪造内容并禁止,这也会对人物造成错误呈现。

因此,当被问及生成提示时,用两到三句话说明这一点,并提供合成方案。如果用户仍然希望使用生成器,将其限制在生成背景画面——不含文字和人物——然后使用本技能将真实素材放在顶部。

工作流程

1. 明确需求

根据请求和文件确定以下事项,然后再提问:

  • 尺寸。 平台会更改横幅尺寸,因此使用最新的证据,优先级顺序如下:用户从平台上传说框提供的尺寸;平台的当前帮助页面;references/platform-sizes.md(注明日期和来源);现有横幅的像素尺寸(可能早于尺寸变更)。告知用户你使用了哪个尺寸及其来源。某些平台需要单独的桌面端和移动端横幅:请参阅“多尺寸”部分。
  • 主题和顺序。 包含哪些内容,从左到右排列,以及是否某个主题需要更多空间。
  • 手头素材。 列出文件夹。亲自打开并查看每一张图片。文件名或说明文字无法告诉你图片展示了什么、清晰度如何,或者其中嵌入了什么文字。
  • 社区规则。 关于编辑图像的社区规则,以及用户对风格基调的任何要求。如果这些规则在项目中,请阅读它们。

仅询问你无法通过此方式确定的内容,例如缺少的主题列表。

2. 填补空缺

对于每个主题,你需要一个徽标或标识图像以及一个或多个图像。如果缺少某些内容,请寻找官方素材:版权所有者的自有帖子和频道、媒体资料包,以及复制官方艺术作品的新闻媒体。references/asset-sourcing.md 包含了搜索策略、委托子代理进行搜索的简要说明以及源文件的格式。当用户要求子代理或你的环境支持时,进行委托;否则,内联搜索。

无论你如何搜索,有三个规则保持不变:

  • 仅限官方,并说明你如何得知。 粉丝编辑和 AI 渲染内容随处可见。记录每个文件的来源。当“官方”仅基于说明文字而非原始帖子时,在最终报告中说明。
  • 绝不虚构素材。 如果不存在徽标,横幅就不使用徽标,或者使用下文所述的海报裁剪。不要设计替代品。
  • 让用户远离外部请求。 URL、标头或搜索查询中不得包含姓名、项目名称或电子邮件地址。

将下载内容保存在工作文件夹中,并在信任之前查看每个文件。scripts/contact_sheet.py 可以将许多候选图像放在一张表格上,这比逐个打开它们更快。

3. 获取徽标,优先使用最保真的方式

  1. 用户提供的透明徽标文件。 直接使用。如果它的边缘在你的背景上显示彩色边缘,运行 cutout_logo.py --key alpha --defringe 2。
  2. 保留标题位置的海报。 裁剪海报,使标题位于设计师放置的位置。不进行任何抠图,因此样式完全精确。当唯一的来源尺寸较小时,这是最佳的途径。
  3. 从关键艺术图中抠出的徽标。 使用 scripts/cutout_logo.py 将徽标从背景中抠出。通过区分徽标与背景的通道来选择合适的抠图方式:例如暖色文字在冷色背景上选 r-b,亮色在暗色上选 luma,暗色在亮色上选 inv-luma,纯色背景选 bg。始终传递 --test-sheet 参数,并在浅色和深色背景上查看结果。

抠图是最不保真的途径。徽标的暗部或阴影部分如果接近背景色,可能会消失。要么将徽标放置在与其来源相似的背景上,要么在布局规范中为其提供 backing(填充轮廓加软阴影),并告知用户该徽标是抠图得到的。

绝不通过重新绘制来重新设计字体、更改样式、重新着色或“清理”标识。

4. 在规范文件中布局

将布局编写为 JSON 格式,并使用 scripts/compose_banner.py 构建。规范文件是需要保留的关键:当后续获得更好的图像时,更改一个路径并重新构建即可。references/spec-format.md 记录了所有字段,assets/example-spec.json 是起点。

模型是一行图块(照片,每个图块按比例缩放并裁剪到指定位置,每个图块逐渐淡入其左侧的图块),然后是一层叠加层(徽标,最后绘制以避免融合效果影响它们)。脚本无法为你做出的布局判断:

  • 确保人脸远离融合区域。 每个后续图块左侧的 feather 像素是半透明的。人脸位于此处会变成旁边图块上的鬼影。移动裁剪或加宽图块的位置。
  • 将徽标放置在其所属主题图块的安静区域上方: 模糊背景、天空、暗墙。不要让徽标延伸到下一个主题的图块中。
  • 平衡主题。 相似的徽标宽度和相似的面部尺寸会呈现出统一横幅的效果。如果一个徽标必须小得多,告知用户原因。
  • 排除可变信息。 裁剪掉海报中内嵌的发布日期、价格和“即将推出”等字样,除非用户明确要求保留。横幅文字后期无法编辑。
  • 仅进行缩放和裁剪。 不进行润饰、面部编辑或移除水印或版权信息。如果唯一的副本带有第三方水印,请寻找其他副本或将其排除。
  • 注意平台的界面元素。 许多网站会在角落叠加头像或标题,并在手机端裁剪边缘。当你了解这些区域时,确保将人脸和徽标放置在这些区域之外。

多尺寸。 当某个平台需要多个横幅(桌面端和移动端,或两个网站)时,为每个尺寸编写一个规范文件,并重复使用素材。不要将完成的横幅调整为不同形状:适合某个宽高比的裁剪和徽标位置,在另一个宽高比下会切割人脸。当尺寸只有几个像素的差异时,复制规范文件并调整最后一个图块。

极窄的横幅。 在宽高比约为 8:1(例如 1072x128)时,占满高度的人脸宽度仅约 100 像素,因此可以容纳更多主题,但每个主题的内容更少。紧密裁剪人脸,预计比在较高横幅中使用更少的每主题图像,并检查每个徽标在此高度下是否仍可读。堆叠的两行标识或标语可能太小而无法阅读;说明情况,让用户决定如何处理。

5. 构建、查看、修正

python scripts/compose_banner.py layout.json --preview preview/

脚本会停止在它能够证明的问题上:文件缺失、裁剪会导致空白区域、图块之间存在间隙、融合宽度超过重叠区域。对于较轻微的问题,例如重度放大,它会发出警告。

然后查看结果,并以全尺寸查看。缩小以适应查看器的宽横幅会隐藏鬼影接缝和徽标边缘破损。--preview 会为此输出全分辨率片段,以及带有接缝和叠加框绘制的 guides.png。检查每个片段是否存在以下情况:

  • 人脸被接缝切割或变成相邻图块上的鬼影
  • 徽标边缘:孔洞、光晕、边缘、任何在此尺寸下不可读的内容
  • 空白区域、人物拉伸、可见的图块边缘
  • 你无意中包含的文字

修正规范并重新构建。在一次查看发现所有问题后,再修正所有问题,然后再次查看。

6. 保存与报告

  • 切勿覆盖用户现有的横幅。 写入一个新文件名。脚本拒绝覆盖,除非指定了 --force,而这仅供你自己的草稿使用。
  • 将规范文件、其使用的素材以及 SOURCES.md 一起保存在一个能在会话结束后持续存在的文件夹中。临时文件夹会丢失下载内容,然后横幅将无法重建。
  • 不要上传或发布。用户会做这些。

按以下顺序报告:文件位置及其尺寸;从左到右包含的内容;薄弱环节(模糊的源图、抠出的徽标、不可读的标语、看起来像是粘贴的图块);以及你对每个找到的素材是官方的确信程度。明确说明你未检查的内容,例如网站如何在手机上裁剪横幅。

脚本

脚本用途
scripts/compose_banner.py根据 JSON 规范构建横幅;--preview DIR 写入检查片段和指南。
scripts/cutout_logo.py从关键艺术图中抠出徽标,或对现有透明徽标进行去边缘处理;--test-sheet 在三种背景上显示结果。
scripts/contact_sheet.py将候选图像拼接成一个带标签的表格,以便快速视觉检查。

使用任何脚本时添加 --help 可查看选项。

版权与合理使用

剧照、海报和徽标属于其所有者。展示未经修改的官方艺术作品的粉丝或社区横幅是常见做法,但由用户决定其使用是否可接受,因此当你从网络获取素材时,提及一次即可。不要构建可能将该页面冒充为版权所有者自身官方账户的横幅。

相关技能