界面已本地化;技能介绍与说明文档按所选语言由 AI 自动翻译,代码、命令、路径和专业术语保留原文,以原作者文档为准。
探索技能
效率与协作 · SKILL.md

node-descriptors

node-descriptors

【效率与协作】Guides Meshroom node descriptor authoring, attribute schemas, command-line nodes, init/input/output nodes, dynamic sizes, and reusable general utility nodes.

独立 GitHub 快照 · 自动分类 · 以原作者文档为准

技能说明

GitHub

name: node-descriptors description: "Guides Meshroom node descriptor authoring, attribute schemas, command-line nodes, init/input/output nodes, dynamic sizes, and reusable general utility nodes." disable-model-invocation: true metadata: disco-role: operating license: NOASSERTION

Meshroom Node Descriptors

Use this route when creating or reviewing a Python node type, exposing inputs/outputs, wrapping an external executable, initializing inputs from CLI/UI, or diagnosing descriptor validation errors.

Read First

Choose the Base Class

NeedDescriptor base
Python computation in the current Meshroom environmentdesc.Node, implement process(self, node) or processChunk(self, chunk)
Wrap an external executabledesc.CommandLineNode, define commandLine and inputs/outputs
Placeholder/input-only nodedesc.InitNode, optionally mix in desc.InputNode and implement initialize
Export destination configurable from templates/CLImix in desc.OutputNode and expose outputAttributes
Visual grouping onlydesc.BackdropNode

Authoring Loop

  1. Define a descriptor module with a stable class name and optional __version__.
  2. Declare inputs, outputs, category, documentation, resource levels, size, and parallelization.
  3. Validate defaults and nested attributes before loading the plugin.
  4. For a Python node, write outputs under node.internalFolder or descriptor expression paths such as {nodeCacheFolder}/result.txt.
  5. For a command-line node, verify placeholders with a tiny fixture and inspect the generated command before running an external binary.
  6. Register the node through a plugin or MESHROOM_NODES_PATH; do not mutate the core registry ad hoc in production.
  7. Add focused tests for descriptor validation, command-line formatting, dynamic outputs, and serialization.

Important Boundary

Descriptor classes define static schema. Live values, links, UIDs, status, and cache belong to the core graph/node objects. If a question is about graph serialization or compatibility, route to core-graph-engine.

我的收藏