mcpField
S
scenario-textures

scenario-textures

github.com/scenario-labs创意与媒体1.2k529 次安装1 天前更新
代码仓库

关于 scenario-textures

为 Scenario 工作流提供纹理与材质制作指导,面向需要生成可平铺纹理并用于 3D 引擎的创作者。涵盖模型发现、纹理放大和 PBR 材质处理。

主要功能

  1. 01从文本或参考图生成无缝纹理
  2. 02保留平铺效果的纹理放大
  3. 03将平面图转换为表面材质
  4. 04提取 PBR 贴图或为网格贴图
  5. 05按模型架构检查参数并运行生成

适用场景

  1. 01制作可重复铺设的游戏砖墙纹理
  2. 02放大纹理而不破坏边缘接缝
  3. 03从平面纹理生成法线与粗糙度贴图
  4. 04为 3D 网格应用 PBR 材质

MCP 相关

该技能指导使用 Scenario MCP 工作流发现模型、检查参数、生成并下载纹理资源。

安装

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

$npx skills add https://github.com/scenario-labs/skills --skill scenario-textures

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

详细介绍

场景纹理与材质工作流

概述

Scenario 可根据文本或参考图像生成无缝、可平铺的纹理,在不破坏平铺效果的前提下提升纹理分辨率,并在为 3D 网格贴图时应用 PBR 材质。不同团队可用的模型各不相同,且会不断变化,因此请始终在运行时发现模型,而不是将 ID 写死:根据用户描述需求的原话,使用 recommend 查找具备相应能力的模型;如果知道模型名称,则使用 search。

连接方法和核心生成流程:请参阅此仓库中的 scenario 技能。如果这里提到的某个关联技能不在你可用的技能中,请让用户安装该技能 (npx skills add scenario-labs/skills --skill <name>);如果需要在无人值守的情况下继续操作,请依据工具架构进行处理,并指出缺失的技能。

快速参考

步骤工具说明
查找纹理模型根据用户描述需求的原话使用 recommendcapability 为 txt2img 或 img2img,并在 prompt 中说明纹理需求(目录会将纹理模型标记为 txt2img_texture、img2img_texture);按名称搜索时使用 search
检查输入model_schema_get调用 model_run 前务必先调用
生成model_run先设置 dry_run=true,为批次估价
等待jobs_wait使用 pending_job_ids 再次调用
查看并保存先调用 asset_display,再调用 asset_download下载后导入引擎
放大对纹理放大器使用 model_run放大 2x 至 8x,并保留平铺效果

撰写本文时实时搜索确认的信息(示例,需重新查找,并非固定常量)

  • 无缝生成:model_scenario-texture(Scenario Texture)接受提示词(会自动附加可平铺提示),width/height 为 16 到 3840,且必须是 16 的倍数;还接受 quality、seed、最多 10 张用于参考风格的 referenceImages,以及默认关闭的 eraseSeam,并可搭配 overlap/featherRadius 对两个接缝轴进行修补。
  • 主题纹理 LoRA(Flux.1 LoRA,标签 sc:texture):地板、大理石、混凝土、石墙、木板、砖块、陶瓦、手绘、赛博风、写实纹理。它们提供专用的纹理功能(txt2img_texture、img2img_texture、controlnet_texture)。
  • 支持平铺的放大:model_sc-upscale-flux-texture(Scenario Texture Upscale),upscaleFactor 为 2(最小值)到 8;预设 precise/balanced/creative 使用与架构公开的相同 strength 和 controlnet 滑块。该工具会重新渲染,因此色调可能略有偏移:低 strength 搭配 precise 可最大限度减少偏移;发布前应将结果与源图进行比较。
  • 材质外观转换:model_sc-texture-converter(Texture Converter)使用 raised、shiny、polished、angular 滑块和 invert 浮雕切换项,将平面图像转换为表面材质。
  • PBR 贴图有两种不同的生成路径。对于平面纹理,2D 贴图提取器(使用 recommend,capability="img2img",并描述用户希望从平面纹理中提取贴图;仅在已知名称时使用 search)可通过一次 img2img 调用返回完整贴图集:model_patina(PATINA Image to Maps)会输出基础颜色、法线、粗糙度、金属度和高度贴图,每张贴图均为独立的图像资源,其 metadata.type 会标明类型(texture-albedo、texture-normal、texture-smoothness、texture-metallic、texture-height),顺序与请求一致;粗糙度请求返回时标记为 smoothness,因此接入前请确认采用的约定。model_patina-material 可直接根据提示词平铺 PBR 材质。对于网格,3D 纹理和图像转 3D 模型会直接生成贴图(Tripo 3.0 Texturing、Tencent Texture Edit、Meshy 7 Retexture);请启用通过 model_schema_get 找到的 PBR 开关。完整网格的重新纹理处理属于 3D 转 3D 工作流:参见 scenario-3d 和 scenario-meshy 中 Meshy 重新纹理的接口约定。

实战示例:无缝砖块,迭代后再放大

  1. 使用用户自己的措辞作为 prompt,调用 recommend(“无缝平铺的风化砖块”),选择无缝生成器(例如 model_scenario-texture)。
  2. 调用 model_schema_get,设置 model_id="model_scenario-texture"。
  3. 调用 model_run,使用 parameters={"prompt": "weathered red brick wall, moss in the mortar joints", "width": 1024, "height": 1024, "eraseSeam": true, "seed": 42}。 如需制作主题素材包,先使用 dry_run=true 估算批量价格,然后使用 wait=false 启动任务。
  4. 使用 job_ids=["job_..."] 调用 jobs_wait(这些 ID 由 model_run 返回)。约 180 秒超时并不代表出错:使用返回的 pending_job_ids 作为 job_ids 再次调用,切勿再次调用 model_run。 然后对输出资源调用 asset_display。
  5. 迭代:使用相同的 seed 和修改后的提示词重新运行,或者添加 referenceImages=["asset_..."] 来锁定风格。
  6. 放大:使用 capability="img2img" 和用户自己的措辞作为 prompt(“放大这张纹理,同时保持可平铺”)调用 recommend,优先选择能保留平铺效果的工具(通用放大器会破坏重复图案),对其调用 model_schema_get,然后使用图像以及架构中指定的倍率和预设字段调用 model_run(编写本文时,纹理放大器使用 upscaleFactor: 2 和 preset: "precise")。只有经过审慎考虑后才提高倍率:费用取决于输出像素数,而且只有输入资源存在后才能对这一步使用 dry_run 估价,因此两步链式流程无法预先估价。
  7. 免费验证平铺效果:保存的 PNG 左列与右列、顶行与底行之间的差异,应不大于相邻内部列之间的差异;制作 2x2 自平铺验证图可立即显示任何接缝。
  8. 使用 asset_download 下载最终资源,以便导入引擎。

常见错误

  • 跳过 model_schema_get:不同模型的参数名称各不相同,而且大多数模型不接受空载荷。
  • 对可平铺纹理使用通用放大器:这会破坏接缝处的重复图案。请使用能保留平铺效果的专用纹理放大器。
  • 直接生成超大尺寸:先以接近 1024 的尺寸生成,再放大 2 到 8 倍。生成尺寸上限为 3840。
  • 仅为获取 PBR 贴图,就将平面纹理交给 3D 纹理模型处理:2D 贴图提取器只需一次 img2img 调用即可完成,而 3D 模型用于网格。
  • 忽略引擎的尺寸要求:引擎需要边长为 2 的幂的正方形纹理(无缝生成器默认尺寸为 1024x1024,比例为 1:1)。生成器接受任意 16 的倍数尺寸,因此请审慎选择 1024 或 2048。
  • 对模型 ID 进行硬编码:不同团队可用的模型各不相同。每次会话都要重新发现模型。

评论

支持 Markdown