Meshroom/meshroom/nodes/aliceVision/PanoramaMerging.py
2024-09-12 10:54:18 +02:00

79 lines
2.5 KiB
Python

__version__ = "1.0"
import json
import os
from meshroom.core import desc
from meshroom.core.utils import EXR_STORAGE_DATA_TYPE, VERBOSE_LEVEL
class PanoramaMerging(desc.AVCommandLineNode):
commandLine = 'aliceVision_panoramaMerging {allParams}'
size = desc.DynamicNodeSize('input')
cpu = desc.Level.NORMAL
ram = desc.Level.INTENSIVE
category = 'Panorama HDR'
documentation = '''
Merge all inputs coming from the PanoramaCompositing node.
'''
inputs = [
desc.File(
name="input",
label="Input SfMData",
description="Input SfMData file.",
value="",
),
desc.File(
name="compositingFolder",
label="Compositing Folder",
description="Panorama compositing results.",
value="",
),
desc.ChoiceParam(
name="outputFileType",
label="Output File Type",
description="Output file type for the merged panorama.",
value="exr",
values=["jpg", "png", "tif", "exr"],
exclusive=True,
group="", # not part of allParams, as this is not a parameter for the command line
),
desc.BoolParam(
name="useTiling",
label="Use Tiling",
description="Enable tiling mode for parallelization.",
value=True,
),
desc.ChoiceParam(
name="storageDataType",
label="Storage Data Type",
description="Storage image data type:\n"
" - float: Use full floating point (32 bits per channel).\n"
" - half: Use half float (16 bits per channel).\n"
" - halfFinite: Use half float, but clamp values to avoid non-finite values.\n"
" - auto: Use half float if all values can fit, else use full float.\n",
values=EXR_STORAGE_DATA_TYPE,
value="float",
exclusive=True,
),
desc.ChoiceParam(
name="verboseLevel",
label="Verbose Level",
description="Verbosity level (fatal, error, warning, info, debug, trace).",
values=VERBOSE_LEVEL,
value="info",
exclusive=True,
),
]
outputs = [
desc.File(
name="outputPanorama",
label="Panorama",
description="Output merged panorama image.",
semantic="image",
value=desc.Node.internalFolder + "panorama.{outputFileTypeValue}",
),
]