[nodes] Replace desc.Node.internalFolder with {nodeCacheFolder}

This commit is contained in:
Candice Bentéjac 2025-01-08 18:59:49 +01:00
parent 6cbb97d9a8
commit 2290c12da2
88 changed files with 160 additions and 160 deletions

View file

@ -44,6 +44,6 @@ class ApplyCalibration(desc.AVCommandLineNode):
name="output",
label="SMData",
description="Path to the output SfMData file.",
value=desc.Node.internalFolder + "sfmData.sfm",
value="{nodeCacheFolder}/sfmData.sfm",
),
]

View file

@ -124,6 +124,6 @@ class CameraCalibration(desc.AVCommandLineNode):
name="output",
label="Output",
description="Output filename for intrinsic [and extrinsic] parameters.",
value=desc.Node.internalFolder + "/cameraCalibration.cal",
value="{nodeCacheFolder}/cameraCalibration.cal",
),
]

View file

@ -487,7 +487,7 @@ The needed metadata are:
name="output",
label="SfMData",
description="Output SfMData.",
value=desc.Node.internalFolder + "cameraInit.sfm",
value="{nodeCacheFolder}/cameraInit.sfm",
),
]

View file

@ -191,12 +191,12 @@ class CameraLocalization(desc.AVCommandLineNode):
name="outputAlembic",
label="Alembic",
description="Filename for the SfMData export file (where camera poses will be stored).",
value=desc.Node.internalFolder + "trackedCameras.abc",
value="{nodeCacheFolder}/trackedCameras.abc",
),
desc.File(
name="outputJSON",
label="JSON File",
description="Filename for the localization results as .json.",
value=desc.Node.internalFolder + "trackedCameras.json",
value="{nodeCacheFolder}/trackedCameras.json",
),
]

View file

@ -156,6 +156,6 @@ class CameraRigCalibration(desc.AVCommandLineNode):
name="outfile",
label="Output File",
description="The name of the file to store the calibration data in.",
value=desc.Node.internalFolder + "cameraRigCalibration.rigCal",
value="{nodeCacheFolder}/cameraRigCalibration.rigCal",
),
]

View file

@ -162,6 +162,6 @@ class CameraRigLocalization(desc.AVCommandLineNode):
name="outputAlembic",
label="Alembic",
description="Filename for the SfMData export file (where camera poses will be stored).",
value=desc.Node.internalFolder + "trackedcameras.abc",
value="{nodeCacheFolder}/trackedcameras.abc",
),
]

View file

@ -47,6 +47,6 @@ Estimate the camera intrinsics and extrinsincs on a set of checkerboard images.
name="output",
label="SfMData File",
description="Path to the output SfMData file.",
value=desc.Node.internalFolder + "sfmData.sfm",
value="{nodeCacheFolder}/sfmData.sfm",
)
]

View file

@ -61,7 +61,7 @@ The detection method also supports nested calibration grids.
name="output",
label="Folder",
description="Output folder.",
value=desc.Node.internalFolder,
value="{nodeCacheFolder}",
),
desc.File(
name="checkerLines",
@ -69,7 +69,7 @@ The detection method also supports nested calibration grids.
label="Checker Lines",
description="Debug images.",
semantic="image",
value=desc.Node.internalFolder + "<VIEW_ID>.png",
value="{nodeCacheFolder}/<VIEW_ID>.png",
group="", # do not export on the command line
),
]

View file

@ -69,13 +69,13 @@ If multiple color charts are submitted, only the first one will be taken in acco
name="outSfMData",
label="SfMData",
description="Output SfMData.",
value=lambda attr: (desc.Node.internalFolder + os.path.basename(attr.node.input.value)) if (os.path.splitext(attr.node.input.value)[1] in [".abc", ".sfm"]) else "",
value=lambda attr: ("{nodeCacheFolder}/" + os.path.basename(attr.node.input.value)) if (os.path.splitext(attr.node.input.value)[1] in [".abc", ".sfm"]) else "",
group="", # do not export on the command line
),
desc.File(
name="output",
label="Folder",
description="Output images folder.",
value=desc.Node.internalFolder,
value="{nodeCacheFolder}",
),
]

View file

@ -62,6 +62,6 @@ Dev notes:
name="outputData",
label="Color Checker Data",
description="Output position and colorimetric data extracted from detected color checkers in the images.",
value=desc.Node.internalFolder + "/ccheckers.json",
value="{nodeCacheFolder}/ccheckers.json",
),
]

View file

@ -48,6 +48,6 @@ class ConvertDistortion(desc.AVCommandLineNode):
name="output",
label="Output",
description="Path to the output SfMData file.",
value=desc.Node.internalFolder + "sfm.abc",
value="{nodeCacheFolder}/sfm.abc",
),
]

View file

@ -39,6 +39,6 @@ class ConvertMesh(desc.AVCommandLineNode):
name="output",
label="Mesh",
description="Output mesh (*.obj, *.mesh, *.meshb, *.ply, *.off, *.stl).",
value=desc.Node.internalFolder + "mesh." + "{outputMeshFileTypeValue}",
value="{nodeCacheFolder}/mesh.{outputMeshFileTypeValue}",
),
]

View file

@ -94,6 +94,6 @@ It can also be used to remove specific parts of from an SfM scene (like filter a
name="output",
label="Output",
description="Path to the output SfMData file.",
value=desc.Node.internalFolder + "sfm.{fileExtValue}",
value="{nodeCacheFolder}/sfm.{fileExtValue}",
),
]

View file

@ -565,7 +565,7 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
name="output",
label="Folder",
description="Output folder for generated depth maps.",
value=desc.Node.internalFolder,
value="{nodeCacheFolder}",
),
# these attributes are only here to describe more accurately the output of the node
# by specifying that it generates 2 sequences of images
@ -575,7 +575,7 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
label="Depth Maps",
description="Generated depth maps.",
semantic="image",
value=desc.Node.internalFolder + "<VIEW_ID>_depthMap.exr",
value="{nodeCacheFolder}/<VIEW_ID>_depthMap.exr",
group="", # do not export on the command line
),
desc.File(
@ -583,14 +583,14 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
label="Sim Maps",
description="Generated sim maps.",
semantic="image",
value=desc.Node.internalFolder + "<VIEW_ID>_simMap.exr",
value="{nodeCacheFolder}/<VIEW_ID>_simMap.exr",
group="", # do not export on the command line
),
desc.File(
name="tilePattern",
label="Tile Pattern",
description="Debug: Tile pattern.",
value=desc.Node.internalFolder + "<VIEW_ID>_tilePattern.obj",
value="{nodeCacheFolder}/<VIEW_ID>_tilePattern.obj",
group="", # do not export on the command line
enabled=lambda node: node.intermediateResults.exportTilePattern.value,
),
@ -599,7 +599,7 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
label="Depth Maps SGM",
description="Debug: Depth maps SGM",
semantic="image",
value=desc.Node.internalFolder + "<VIEW_ID>_depthMap_sgm.exr",
value="{nodeCacheFolder}/<VIEW_ID>_depthMap_sgm.exr",
group="", # do not export on the command line
enabled=lambda node: node.intermediateResults.exportIntermediateDepthSimMaps.value,
),
@ -608,7 +608,7 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
label="Depth Maps SGM Upscaled",
description="Debug: Depth maps SGM upscaled.",
semantic="image",
value=desc.Node.internalFolder + "<VIEW_ID>_depthMap_sgmUpscaled.exr",
value="{nodeCacheFolder}/<VIEW_ID>_depthMap_sgmUpscaled.exr",
group="", # do not export on the command line
enabled=lambda node: node.intermediateResults.exportIntermediateDepthSimMaps.value,
),
@ -617,7 +617,7 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
label="Depth Maps Refined",
description="Debug: Depth maps after refinement",
semantic="image",
value=desc.Node.internalFolder + "<VIEW_ID>_depthMap_refinedFused.exr",
value="{nodeCacheFolder}/<VIEW_ID>_depthMap_refinedFused.exr",
group="", # do not export on the command line
enabled=lambda node: node.intermediateResults.exportIntermediateDepthSimMaps.value,
),

View file

@ -113,7 +113,7 @@ This allows to filter unstable points before starting the fusion of all depth ma
name="output",
label="Filtered Depth Maps Folder",
description="Output folder for generated depth maps.",
value=desc.Node.internalFolder,
value="{nodeCacheFolder}"
),
# these attributes are only here to describe more accurately the output of the node
# by specifying that it generates 2 sequences of images
@ -123,7 +123,7 @@ This allows to filter unstable points before starting the fusion of all depth ma
label="Depth Maps",
description="Filtered depth maps.",
semantic="image",
value=desc.Node.internalFolder + "<VIEW_ID>_depthMap.exr",
value="{nodeCacheFolder}/<VIEW_ID>_depthMap.exr",
group="", # do not export on the command line
),
desc.File(
@ -131,7 +131,7 @@ This allows to filter unstable points before starting the fusion of all depth ma
label="Sim Maps",
description="Filtered sim maps.",
semantic="image",
value=desc.Node.internalFolder + "<VIEW_ID>_simMap.exr",
value="{nodeCacheFolder}/<VIEW_ID>_simMap.exr",
group="", # do not export on the command line
),
desc.File(
@ -139,7 +139,7 @@ This allows to filter unstable points before starting the fusion of all depth ma
label="Normal Maps",
description="Normal maps.",
semantic="image",
value=desc.Node.internalFolder + "<VIEW_ID>_normalMap.exr",
value="{nodeCacheFolder}/<VIEW_ID>_normalMap.exr",
enabled=lambda node: node.computeNormalMaps.value,
group="", # do not export on the command line
),

View file

@ -39,14 +39,14 @@ class DepthMapRendering(desc.AVCommandLineNode):
name="output",
label="Folder",
description="Output folder.",
value=desc.Node.internalFolder,
value="{nodeCacheFolder}",
),
desc.File(
name="depth",
label="Depth Maps",
description="Rendered depth maps.",
semantic="image",
value=desc.Node.internalFolder + "<VIEW_ID>_depthMap.exr",
value="{nodeCacheFolder}/<VIEW_ID>_depthMap.exr",
group="", # do not export on the command line
),
desc.File(
@ -54,7 +54,7 @@ class DepthMapRendering(desc.AVCommandLineNode):
label="Masks",
description="Masks.",
semantic="image",
value=desc.Node.internalFolder + "<VIEW_ID>_mask.exr",
value="{nodeCacheFolder}/<VIEW_ID>_mask.exr",
group="", # do not export on the command line
),
]

View file

@ -59,6 +59,6 @@ Calibration of a camera/lens couple distortion using a full screen checkerboard.
name="output",
label="SfMData File",
description="Path to the output SfMData file.",
value=desc.Node.internalFolder + "sfmData.sfm",
value="{nodeCacheFolder}/sfmData.sfm",
),
]

View file

@ -83,27 +83,27 @@ Based on the input image filenames, it will recognize the input video sequence t
name="output",
label="Folder",
description="Output folder with animated camera and undistorted images.",
value=desc.Node.internalFolder,
value="{nodeCacheFolder}",
),
desc.File(
name="outputCamera",
label="Camera",
description="Output filename for the animated camera in Alembic format.",
value=desc.Node.internalFolder + "camera.abc",
value="{nodeCacheFolder}/camera.abc",
group="", # exclude from command line
),
desc.File(
name="outputUndistorted",
label="Undistorted Folder",
description="Output undistorted folder.",
value=desc.Node.internalFolder + "undistort/",
value="{nodeCacheFolder}/undistort/",
group="", # exclude from command line
),
desc.File(
name="outputImages",
label="Undistorted Images",
description="Output undistorted images.",
value=desc.Node.internalFolder + "undistort/" + "<INTRINSIC_ID>_<FILESTEM>.{undistortedImageTypeValue}",
value="{nodeCacheFolder}/undistort/<INTRINSIC_ID>_<FILESTEM>.{undistortedImageTypeValue}",
semantic="image",
group="", # exclude from command line
enabled=lambda node: node.exportUndistortedImages.value,

View file

@ -32,6 +32,6 @@ class ExportColoredPointCloud(desc.AVCommandLineNode):
name="output",
label="Point Cloud Filepath",
description="Output point cloud with visibilities as SfMData file.",
value=desc.Node.internalFolder + "pointCloud.abc",
value="{nodeCacheFolder}/pointCloud.abc",
),
]

View file

@ -59,13 +59,13 @@ It also allows to export an undistorted image of the lens grids for validation.
name="output",
label="Folder",
description="Output folder.",
value=desc.Node.internalFolder,
value="{nodeCacheFolder}",
),
desc.File(
name="distortionNukeNode",
label="Distortion Nuke Node",
description="Calibrated distortion ST map.",
value=desc.Node.internalFolder + "nukeLensDistortion_<INTRINSIC_ID>.nk",
value="{nodeCacheFolder}/nukeLensDistortion_<INTRINSIC_ID>.nk",
group="", # do not export on the command line
enabled=lambda node: node.exportNukeNode.value,
),
@ -74,7 +74,7 @@ It also allows to export an undistorted image of the lens grids for validation.
label="Undistorted Lens Grids",
description="Undistorted lens grids for validation",
semantic="image",
value=desc.Node.internalFolder + "lensgrid_<VIEW_ID>_undistort.exr",
value="{nodeCacheFolder}/lensgrid_<VIEW_ID>_undistort.exr",
group="", # do not export on the command line
enabled=lambda node: node.exportLensGridsUndistorted.value,
),
@ -83,7 +83,7 @@ It also allows to export an undistorted image of the lens grids for validation.
label="Distortion ST Map",
description="Calibrated distortion ST map.",
semantic="image",
value=desc.Node.internalFolder + "stmap_<INTRINSIC_ID>_distort.exr",
value="{nodeCacheFolder}/stmap_<INTRINSIC_ID>_distort.exr",
group="", # do not export on the command line
enabled=lambda node: node.exportSTMaps.value,
),
@ -92,7 +92,7 @@ It also allows to export an undistorted image of the lens grids for validation.
label="Undistortion ST Map",
description="Calibrated undistortion ST map.",
semantic="image",
value=desc.Node.internalFolder + "stmap_<INTRINSIC_ID>_undistort.exr",
value="{nodeCacheFolder}/stmap_<INTRINSIC_ID>_undistort.exr",
group="", # do not export on the command line
enabled=lambda node: node.exportSTMaps.value,
),

View file

@ -76,6 +76,6 @@ class ExportMatches(desc.AVCommandLineNode):
name="output",
label="Folder",
description="Output path for the features and descriptors files (*.feat, *.desc).",
value=desc.Node.internalFolder,
value="{nodeCacheFolder}",
),
]

View file

@ -56,13 +56,13 @@ class ExportMaya(desc.Node):
name="meloutput",
label="Mel Script",
description="Generated mel script.",
value=desc.Node.internalFolder + "import.mel",
value="{nodeCacheFolder}/import.mel",
),
desc.File(
name="mayaoutput",
label="Maya Scene",
description="Generated Maya scene.",
value=desc.Node.internalFolder + "scene.mb",
value="{nodeCacheFolder}/scene.mb",
enabled=lambda node: node.generateMaya.value,
),
]

View file

@ -41,6 +41,6 @@ class ExportUSD(desc.AVCommandLineNode):
name="output",
label="Output",
description="Path to the output file.",
value=desc.Node.internalFolder + "output.{fileTypeValue}",
value="{nodeCacheFolder}/output.{fileTypeValue}",
),
]

View file

@ -68,7 +68,7 @@ Using exifTool, this node extracts metadata of all images referenced in a sfmDat
name="output",
label="Result Folder",
description="Output path for the resulting metadata files.",
value=desc.Node.internalFolder,
value="{nodeCacheFolder}",
),
]

View file

@ -160,6 +160,6 @@ It is robust to motion-blur, depth-of-field, occlusion. Be careful to have enoug
name="output",
label="Features Folder",
description="Output path for the features and descriptors files (*.feat, *.desc).",
value=desc.Node.internalFolder,
value="{nodeCacheFolder}",
),
]

View file

@ -205,6 +205,6 @@ then it checks the number of features that validates this model and iterate thro
name="output",
label="Matches Folder",
description="Path to a folder in which the computed matches are stored.",
value=desc.Node.internalFolder,
value="{nodeCacheFolder}",
),
]

View file

@ -115,6 +115,6 @@ Compare feature/descriptor matching repeatability on some dataset with known hom
name="output",
label="Folder",
description="Output path for the features and descriptors files (*.feat, *.desc).",
value=desc.Node.internalFolder,
value="{nodeCacheFolder}",
),
]

View file

@ -61,6 +61,6 @@ Estimate the global rotation given tracks.
name="output",
label="SfMData",
description="Path to the output SfMData file.",
value=desc.Node.internalFolder + "sfm.abc",
value="{nodeCacheFolder}/sfm.abc",
),
]

View file

@ -94,18 +94,18 @@ It is known to be faster but less robust to challenging datasets than the Increm
name="output",
label="SfMData",
description="Path to the output SfMData file.",
value=desc.Node.internalFolder + "sfm.abc",
value="{nodeCacheFolder}/sfm.abc",
),
desc.File(
name="outputViewsAndPoses",
label="Output Poses",
description="Path to the output SfMData file with cameras (views and poses).",
value=desc.Node.internalFolder + "cameras.sfm",
value="{nodeCacheFolder}/cameras.sfm",
),
desc.File(
name="extraInfoFolder",
label="Folder",
description="Folder for intermediate reconstruction files and additional reconstruction information files.",
value=desc.Node.internalFolder,
value="{nodeCacheFolder}",
),
]

View file

@ -131,6 +131,6 @@ class ImageMasking(desc.AVCommandLineNode):
name="output",
label="Output",
description="Output folder.",
value=desc.Node.internalFolder,
value="{nodeCacheFolder}",
),
]

View file

@ -135,6 +135,6 @@ If images have known poses, use frustum intersection else use VocabularuTree.
name="output",
label="Image Pairs",
description="Filepath to the output file with the list of selected image pairs.",
value=desc.Node.internalFolder + "imageMatches.txt",
value="{nodeCacheFolder}/imageMatches.txt",
),
]

View file

@ -141,12 +141,12 @@ Thanks to this node, the FeatureMatching node will only compute the matches betw
name="output",
label="List File",
description="Filepath to the output file with the list of selected image pairs.",
value=desc.Node.internalFolder + "imageMatches.txt",
value="{nodeCacheFolder}/imageMatches.txt",
),
desc.File(
name="outputCombinedSfM",
label="Combined SfM",
description="Path for the combined SfMData file.",
value=desc.Node.internalFolder + "combineSfM.sfm",
value="{nodeCacheFolder}/combineSfM.sfm",
),
]

View file

@ -15,20 +15,20 @@ def outputImagesValueFunct(attr):
if inputExt in ['.abc', '.sfm']:
fileStem = '<FILESTEM>' if attr.node.keepImageFilename.value else '<VIEW_ID>'
# If we have an SfM in input
return desc.Node.internalFolder + fileStem + (outputExt or '.*')
return "{nodeCacheFolder}/" + fileStem + (outputExt or '.*')
if inputExt:
# If we have one or multiple files in input
return desc.Node.internalFolder + fileStem + (outputExt or inputExt)
return "{nodeCacheFolder}/" + fileStem + (outputExt or inputExt)
if '*' in fileStem:
# The fileStem of the input param is a regular expression,
# so even if there is no file extension,
# we consider that the expression represents files.
return desc.Node.internalFolder + fileStem + (outputExt or '.*')
return "{nodeCacheFolder}/" + fileStem + (outputExt or '.*')
# No extension and no expression means that the input param is a folder path
return desc.Node.internalFolder + '*' + (outputExt or '.*')
return "{nodeCacheFolder}/" + '*' + (outputExt or '.*')
class ImageProcessing(desc.AVCommandLineNode):
@ -608,14 +608,14 @@ Convert or apply filtering to the input images.
name="outSfMData",
label="SfMData",
description="Output SfMData file.",
value=lambda attr: (desc.Node.internalFolder + os.path.basename(attr.node.input.value)) if (os.path.splitext(attr.node.input.value)[1] in [".abc", ".sfm"]) else "",
value=lambda attr: ("{nodeCacheFolder}/" + os.path.basename(attr.node.input.value)) if (os.path.splitext(attr.node.input.value)[1] in [".abc", ".sfm"]) else "",
group="", # do not export on the command line
),
desc.File(
name="output",
label="Folder",
description="Output images folder.",
value=desc.Node.internalFolder,
value="{nodeCacheFolder}",
),
desc.File(
name="outputImages",

View file

@ -81,14 +81,14 @@ Generate a mask with segmented labels for each pixel.
name="output",
label="Masks Folder",
description="Output path for the masks.",
value=desc.Node.internalFolder,
value="{nodeCacheFolder}",
),
desc.File(
name="masks",
label="Masks",
description="Generated segmentation masks.",
semantic="image",
value=lambda attr: desc.Node.internalFolder + "<VIEW_ID>.exr" if not attr.node.keepFilename.value else desc.Node.internalFolder + "<FILESTEM>.exr",
value=lambda attr: "{nodeCacheFolder}/<VIEW_ID>.exr" if not attr.node.keepFilename.value else "{nodeCacheFolder}/<FILESTEM>.exr",
group="",
),
]

View file

@ -60,6 +60,6 @@ Import an E57 file and generate an SfMData.
name="output",
label="Output",
description="Path to the output JSON file.",
value=desc.Node.internalFolder + "inputset.json",
value="{nodeCacheFolder}/inputset.json",
),
]

View file

@ -39,6 +39,6 @@ class ImportKnownPoses(desc.AVCommandLineNode):
name="output",
label="Output",
description="Path to the output SfMData file.",
value=desc.Node.internalFolder + "/sfmData.abc",
value="{nodeCacheFolder}/sfmData.abc",
),
]

View file

@ -390,20 +390,20 @@ You can extract frames at regular interval by configuring only the min/maxFrameS
name="outputFolder",
label="Folder",
description="Output keyframes folder for extracted frames.",
value=desc.Node.internalFolder,
value="{nodeCacheFolder}",
),
desc.File(
name="outputSfMDataKeyframes",
label="Keyframes SfMData",
description="Output SfMData file containing all the selected keyframes.",
value=desc.Node.internalFolder + "keyframes.sfm",
value="{nodeCacheFolder}/keyframes.sfm",
),
desc.File(
name="outputSfMDataFrames",
label="Frames SfMData",
description="Output SfMData file containing all the frames that were not selected as keyframes.\n"
"If the input contains videos, this file will not be written since all the frames that were not selected do not actually exist on disk.",
value=desc.Node.internalFolder + "frames.sfm",
value="{nodeCacheFolder}/frames.sfm",
),
]

View file

@ -46,7 +46,7 @@ Calibrate LDR to HDR response curve from samples.
name="samples",
label="Samples Folder",
description="Samples folder.",
value=desc.Node.internalFolder,
value="{nodeCacheFolder}",
),
desc.IntParam(
name="userNbBrackets",
@ -151,7 +151,7 @@ Calibrate LDR to HDR response curve from samples.
name="response",
label="Response File",
description="Path to the output response file.",
value=desc.Node.internalFolder + "response_<INTRINSIC_ID>.csv",
value="{nodeCacheFolder}/response_<INTRINSIC_ID>.csv",
),
]

View file

@ -228,14 +228,14 @@ Merge LDR images into HDR images.
name="outputFolder",
label="Folder",
description="Path to the folder containing the merged HDR images.",
value=desc.Node.internalFolder,
value="{nodeCacheFolder}",
group="", # do not export on the command line
),
desc.File(
name="outSfMData",
label="SfMData",
description="Path to the output SfMData file.",
value=desc.Node.internalFolder + "sfmData.sfm",
value="{nodeCacheFolder}/sfmData.sfm",
),
]

View file

@ -176,7 +176,7 @@ Sample pixels from Low range images for HDR creation.
name="output",
label="Folder",
description="Output path for the samples.",
value=desc.Node.internalFolder,
value="{nodeCacheFolder}",
),
]

View file

@ -46,12 +46,12 @@ class LidarDecimating(desc.AVCommandLineNode):
name="output",
label="Sub-Meshes Directory",
description="Output directory for sub-meshes.",
value=desc.Node.internalFolder,
value="{nodeCacheFolder}",
),
desc.File(
name="outputJson",
label="Scene Description",
description="Output scene description.",
value=desc.Node.internalFolder + "scene.json",
value="{nodeCacheFolder}/scene.json",
),
]

View file

@ -35,6 +35,6 @@ class LidarMerging(desc.AVCommandLineNode):
name="output",
label="Mesh Path Output",
description="Output directory for mesh.",
value=desc.Node.internalFolder + "output.obj",
value="{nodeCacheFolder}/output.obj",
),
]

View file

@ -126,12 +126,12 @@ class LidarMeshing(desc.AVCommandLineNode):
name="output",
label="Sub-Meshes Directory",
description="Output directory for sub-meshes",
value=desc.Node.internalFolder,
value="{nodeCacheFolder}",
),
desc.File(
name="outputJson",
label="Scene Description",
description="Output scene description.",
value=desc.Node.internalFolder + "scene.json",
value="{nodeCacheFolder}/scene.json",
),
]

View file

@ -60,14 +60,14 @@ Can also be used to calibrate a lighting dome (RTI type).
name="outputFile",
label="Light File",
description="Light information will be written here.",
value=desc.Node.internalFolder + "/lights.json",
value="{nodeCacheFolder}/lights.json",
),
desc.File(
name="lightingEstimationVisualization",
label="Estimated Lighting Visualization",
description="Estimated Lighting Visualization.",
semantic="image",
value=desc.Node.internalFolder + "/<FILESTEM>_{methodValue}.png",
value="{nodeCacheFolder}/<FILESTEM>_{methodValue}.png",
group=None,
),
]

View file

@ -77,6 +77,6 @@ class LightingEstimation(desc.AVCommandLineNode):
name="output",
label="Folder",
description="Folder for output lighting vector files.",
value=desc.Node.internalFolder,
value="{nodeCacheFolder}",
),
]

View file

@ -72,14 +72,14 @@ class MaskProcessing(desc.AVCommandLineNode):
name="output",
label="Output",
description="Path to the output directory.",
value=desc.Node.internalFolder,
value="{nodeCacheFolder}",
),
desc.File(
name="masks",
label="Masks",
description="Processed segmentation masks.",
semantic="imageList",
value= desc.Node.internalFolder + "*.exr",
value= "{nodeCacheFolder}/*.exr",
group="",
),
]

View file

@ -64,6 +64,6 @@ Operation types used to merge two meshes:
name="output",
label="Mesh",
description="Output mesh (*.obj, *.mesh, *.meshb, *.ply, *.off, *.stl).",
value=desc.Node.internalFolder + "mesh.stl",
value="{nodeCacheFolder}/mesh.stl",
),
]

View file

@ -72,6 +72,6 @@ This node allows to reduce the density of the Mesh.
name="output",
label="Mesh",
description="Output mesh in the OBJ file format.",
value=desc.Node.internalFolder + "mesh.obj",
value="{nodeCacheFolder}/mesh.obj",
),
]

View file

@ -87,6 +87,6 @@ for now, the parameters are difficult to control and vary a lot from one dataset
name="output",
label="Output",
description="Output mesh in the OBJ file format.",
value=desc.Node.internalFolder + "mesh.obj",
value="{nodeCacheFolder}/mesh.obj",
),
]

View file

@ -112,6 +112,6 @@ This node applies a Laplacian filtering to remove local defects from the raw Mes
name="outputMesh",
label="Mesh",
description="Output mesh file.",
value=desc.Node.internalFolder + "mesh.{outputMeshFileTypeValue}",
value="{nodeCacheFolder}/mesh.{outputMeshFileTypeValue}",
),
]

View file

@ -98,6 +98,6 @@ Decimate triangles based on image masks.
name="outputMesh",
label="Mesh",
description="Output mesh file.",
value=desc.Node.internalFolder + "mesh.{outputMeshFileTypeValue}",
value="{nodeCacheFolder}/mesh.{outputMeshFileTypeValue}",
),
]

View file

@ -64,6 +64,6 @@ Remove triangles from the mesh when the vertices are not visible by any camera.
name="outputMesh",
label="Mesh",
description="Output mesh file.",
value=desc.Node.internalFolder + "mesh.{outputMeshFileTypeValue}",
value="{nodeCacheFolder}/mesh.{outputMeshFileTypeValue}",
),
]

View file

@ -77,6 +77,6 @@ This node allows to recompute the mesh surface with a new topology and uniform d
name="output",
label="Mesh",
description="Output mesh in the OBJ file format.",
value=desc.Node.internalFolder + "mesh.obj",
value="{nodeCacheFolder}/mesh.obj",
),
]

View file

@ -472,12 +472,12 @@ A Graph Cut Max-Flow is applied to optimally cut the volume. This cut represents
name="outputMesh",
label="Mesh",
description="Output mesh.",
value=desc.Node.internalFolder + "mesh.{outputMeshFileTypeValue}",
value="{nodeCacheFolder}/mesh.{outputMeshFileTypeValue}",
),
desc.File(
name="output",
label="Dense SfMData",
description="Output dense point cloud with visibilities (SfMData file format).",
value=desc.Node.internalFolder + "densePointCloud.abc",
value="{nodeCacheFolder}/densePointCloud.abc",
),
]

View file

@ -46,6 +46,6 @@ A Structure-From-Motion node specifically designed to handle pure rotation camer
name="output",
label="SfMData",
description="Path to the output SfMData file.",
value=desc.Node.internalFolder + "sfm.abc",
value="{nodeCacheFolder}/sfm.abc",
),
]

View file

@ -46,7 +46,7 @@ Evaluate a depth map from a normals map (currently in development)
label="Depth Map Camera",
description="Generated depth in the camera coordinate system.",
semantic="image",
value=desc.Node.internalFolder + "<POSE_ID>_depthMap.exr",
value="{nodeCacheFolder}/<POSE_ID>_depthMap.exr",
group="", # do not export on the command line
)
]

View file

@ -39,14 +39,14 @@ class NormalMapRendering(desc.AVCommandLineNode):
name="output",
label="Folder",
description="Output folder.",
value=desc.Node.internalFolder,
value="{nodeCacheFolder}",
),
desc.File(
name="normal",
label="Normal Maps",
description="Rendered normal maps.",
semantic="image",
value=desc.Node.internalFolder + "<VIEW_ID>_normalMap.exr",
value="{nodeCacheFolder}/<VIEW_ID>_normalMap.exr",
group="", # do not export on the command line
),
]

View file

@ -113,6 +113,6 @@ Multiple cameras are contributing to the low frequencies and only the best one c
name="output",
label="Folder",
description="Output folder containing the composited panorama.",
value=desc.Node.internalFolder,
value="{nodeCacheFolder}",
),
]

View file

@ -170,12 +170,12 @@ Estimate relative camera rotations between input images.
name="output",
label="SfM File",
description="Path to the output SfM file.",
value=desc.Node.internalFolder + "panorama.abc",
value="{nodeCacheFolder}/panorama.abc",
),
desc.File(
name="outputViewsAndPoses",
label="Views And Poses",
description="Path to the output SfMData file with cameras (views and poses).",
value=desc.Node.internalFolder + "cameras.sfm",
value="{nodeCacheFolder}/cameras.sfm",
),
]

View file

@ -147,7 +147,7 @@ This node allows to setup the Panorama:
label="Contact sheet",
semantic="image",
description="Contact sheet path.",
value=desc.Node.internalFolder + "contactSheetImage.jpg",
value="{nodeCacheFolder}/contactSheetImage.jpg",
group="", # do not export on the command line
enabled=lambda node: node.buildContactSheet.enabled
),
@ -155,6 +155,6 @@ This node allows to setup the Panorama:
name="outSfMData",
label="SfMData File",
description="Path to the output SfMData file.",
value=desc.Node.internalFolder + "sfmData.sfm",
value="{nodeCacheFolder}/sfmData.sfm",
),
]

View file

@ -72,6 +72,6 @@ Merge all inputs coming from the PanoramaCompositing node.
label="Panorama",
description="Output merged panorama image.",
semantic="image",
value=desc.Node.internalFolder + "panorama.{outputFileTypeValue}",
value="{nodeCacheFolder}/panorama.{outputFileTypeValue}",
),
]

View file

@ -107,20 +107,20 @@ Post process the panorama.
label="Output Panorama Preview",
description="Preview of the generated panorama in JPG format.",
semantic="image",
value=lambda attr: desc.Node.internalFolder + attr.node.previewName.value,
value=lambda attr: "{nodeCacheFolder}/" + attr.node.previewName.value,
),
desc.File(
name="outputPanorama",
label="Output Panorama",
description="Generated panorama in EXR format.",
semantic="image",
value=lambda attr: desc.Node.internalFolder + attr.node.panoramaName.value,
value=lambda attr: "{nodeCacheFolder}/" + attr.node.panoramaName.value,
),
desc.File(
name="downscaledPanoramaLevels",
label="Downscaled Panorama Levels",
description="Downscaled versions of the generated panorama.",
value=lambda attr: desc.Node.internalFolder + os.path.splitext(attr.node.panoramaName.value)[0] + "_level_*.exr",
value=lambda attr: "{nodeCacheFolder}/" + os.path.splitext(attr.node.panoramaName.value)[0] + "_level_*.exr",
group="",
),
]

View file

@ -36,6 +36,6 @@ Prepare images for Panorama pipeline: ensures that images orientations are coher
name="output",
label="SfMData",
description="Output SfMData file.",
value=lambda attr: desc.Node.internalFolder + os.path.basename(attr.node.input.value),
value=lambda attr: "{nodeCacheFolder}/" + os.path.basename(attr.node.input.value),
),
]

View file

@ -59,12 +59,12 @@ Estimate the seams lines between the inputs to provide an optimal compositing in
label="Labels",
description="",
semantic="image",
value=desc.Node.internalFolder + "labels.exr",
value="{nodeCacheFolder}/labels.exr",
),
desc.File(
name="outputSfm",
label="Output SfMData File",
description="Path to the output SfMData file.",
value=desc.Node.internalFolder + "panorama.sfm",
value="{nodeCacheFolder}/panorama.sfm",
),
]

View file

@ -93,6 +93,6 @@ Compute the image warping for each input image in the panorama coordinate system
name="output",
label="Folder",
description="Output folder.",
value=desc.Node.internalFolder,
value="{nodeCacheFolder}",
),
]

View file

@ -78,27 +78,27 @@ The lighting conditions are assumed to be known.
name="outputPath",
label="Output Folder",
description="Path to the output folder.",
value=desc.Node.internalFolder,
value="{nodeCacheFolder}",
),
desc.File(
name="outputSfmDataAlbedo",
label="SfMData Albedo",
description="Output SfMData file containing the albedo information.",
value=desc.Node.internalFolder + "/albedoMaps.sfm",
value="{nodeCacheFolder}/albedoMaps.sfm",
group="", # remove from command line
),
desc.File(
name="outputSfmDataNormal",
label="SfMData Normal",
description="Output SfMData file containing the normal maps information.",
value=desc.Node.internalFolder + "/normalMaps.sfm",
value="{nodeCacheFolder}/normalMaps.sfm",
group="", # remove from command line
),
desc.File(
name="outputSfmDataNormalPNG",
label="SfMData Normal PNG",
description="Output SfMData file containing the normal maps information.",
value=desc.Node.internalFolder + "/normalMapsPNG.sfm",
value="{nodeCacheFolder}/normalMapsPNG.sfm",
group="", # remove from command line
),
# these attributes are only here to describe more accurately the output of the node
@ -109,7 +109,7 @@ The lighting conditions are assumed to be known.
label="Normal Maps Camera",
description="Generated normal maps in the camera coordinate system.",
semantic="image",
value=desc.Node.internalFolder + "<POSE_ID>_normals.exr",
value="{nodeCacheFolder}/<POSE_ID>_normals.exr",
group="", # do not export on the command line
),
desc.File(
@ -117,7 +117,7 @@ The lighting conditions are assumed to be known.
label="Normal Maps Camera (in false colors)",
description="Generated normal maps in the camera coordinate system (in false colors).",
semantic="image",
value=desc.Node.internalFolder + "<POSE_ID>_normals.png",
value="{nodeCacheFolder}/<POSE_ID>_normals.png",
group="", # do not export on the command line
),
desc.File(
@ -125,7 +125,7 @@ The lighting conditions are assumed to be known.
label="Normal Maps World",
description="Generated normal maps in the world coordinate system.",
semantic="image",
value=desc.Node.internalFolder + "<POSE_ID>_normals_w.exr",
value="{nodeCacheFolder}/<POSE_ID>_normals_w.exr",
group="", # do not export on the command line
),
@ -134,7 +134,7 @@ The lighting conditions are assumed to be known.
label="Albedo Maps",
description="Generated albedo maps.",
semantic="image",
value=desc.Node.internalFolder + "<POSE_ID>_albedo.png",
value="{nodeCacheFolder}/<POSE_ID>_albedo.png",
group="", # do not export on the command line
),
]

View file

@ -94,14 +94,14 @@ This node export undistorted images so the depth map and texturing can be comput
name="output",
label="Images Folder",
description="Output folder.",
value=desc.Node.internalFolder,
value="{nodeCacheFolder}",
),
desc.File(
name="undistorted",
label="Undistorted Images",
description="List of undistorted images.",
semantic="image",
value=desc.Node.internalFolder + "<VIEW_ID>.{outputFileTypeValue}",
value="{nodeCacheFolder}/<VIEW_ID>.{outputFileTypeValue}",
group="",
advanced=True,
),

View file

@ -64,6 +64,6 @@ Estimate relative pose between each pair of views that share tracks.
name="output",
label="Pairs Info",
description="Path to the output Pairs info files directory.",
value=desc.Node.internalFolder,
value="{nodeCacheFolder}",
),
]

View file

@ -59,6 +59,6 @@ Select Connected Views based on SfM landmarks.
name="output",
label="Connected Views",
description="List of connected views in a text file.",
value=desc.Node.internalFolder + "connectedViews.txt",
value="{nodeCacheFolder}/connectedViews.txt",
),
]

View file

@ -107,12 +107,12 @@ The alignment can be based on:
name="output",
label="SfMData File",
description="Output SfMData file.",
value=lambda attr: desc.Node.internalFolder + (os.path.splitext(os.path.basename(attr.node.input.value))[0] or "sfmData") + ".abc",
value=lambda attr: "{nodeCacheFolder}/" + (os.path.splitext(os.path.basename(attr.node.input.value))[0] or "sfmData") + ".abc",
),
desc.File(
name="outputViewsAndPoses",
label="Poses",
description="Path to the output SfMData file with cameras (views and poses).",
value=desc.Node.internalFolder + "cameras.sfm",
value="{nodeCacheFolder}/cameras.sfm",
),
]

View file

@ -40,7 +40,7 @@ class SfMChecking(desc.Node):
name="output",
label="SfM File",
description="Path to the output SfM file.",
value=desc.Node.internalFolder + "sfmData.abc",
value="{nodeCacheFolder}/sfmData.abc",
)
]

View file

@ -36,6 +36,6 @@ class SfMColorizing(desc.AVCommandLineNode):
name="output",
label="SfMData",
description="Path to the output SfM file.",
value=desc.Node.internalFolder + "sfmData.abc",
value="{nodeCacheFolder}/sfmData.abc",
),
]

View file

@ -46,12 +46,12 @@ This node allows select views from sfmData file using a regular expresion.
name="outputSfMData_selected",
label="SfMData_selected",
description="Output SfMData file containing selected views.",
value=desc.Node.internalFolder + "/selectedSfmData.sfm",
value="{nodeCacheFolder}/selectedSfmData.sfm",
),
desc.File(
name="outputSfMData_unselected",
label="SfMData_unselected",
description="Output SfMData file containing remaining views.",
value=desc.Node.internalFolder + "/unselectedSfmData.sfm",
value="{nodeCacheFolder}/unselectedSfmData.sfm",
),
]

View file

@ -98,6 +98,6 @@ Merges two SfMData files into a single one. Fails if some UID is shared among th
name="output",
label="SfMData",
description="Path to the output SfM file (in SfMData format).",
value=lambda attr: desc.Node.internalFolder + "sfmData.{fileExtValue}",
value="{nodeCacheFolder}/sfmData.{fileExtValue}",
)
]

View file

@ -50,6 +50,6 @@ Use a JSON file to inject poses inside the SfMData.
name="output",
label="SfMData",
description="Path to the output SfM file.",
value=desc.Node.internalFolder + "sfmData.abc",
value="{nodeCacheFolder}/sfmData.abc",
),
]

View file

@ -36,12 +36,12 @@ class SfMSplitReconstructed(desc.AVCommandLineNode):
name="reconstructedOutput",
label="Reconstructed SfMData File",
description="SfMData file containing the reconstructed cameras.",
value=desc.Node.internalFolder + "sfmReconstructed.abc",
value="{nodeCacheFolder}/sfmReconstructed.abc",
),
desc.File(
name="notReconstructedOutput",
label="Not Reconstructed SfMData File",
description="SfMData file containing the non-reconstructed cameras.",
value=desc.Node.internalFolder + "sfmNonReconstructed.abc",
value="{nodeCacheFolder}/sfmNonReconstructed.abc",
),
]

View file

@ -35,6 +35,6 @@ Assumes the input SfMData describes a set of cameras capturing a scene at a comm
name="output",
label="SfMData",
description="Path to the output SfM file (in SfMData format).",
value=lambda attr: desc.Node.internalFolder + "sfmData.sfm",
value="{nodeCacheFolder}/sfmData.sfm",
),
]

View file

@ -99,12 +99,12 @@ This node allows to transfer poses and/or intrinsics form one SfM scene onto ano
name="output",
label="SfMData",
description="Path to the output SfM point cloud file (in SfMData format).",
value=lambda attr: desc.Node.internalFolder + (os.path.splitext(os.path.basename(attr.node.input.value))[0] or "sfmData") + ".abc",
value=lambda attr: "{nodeCacheFolder}/" + (os.path.splitext(os.path.basename(attr.node.input.value))[0] or "sfmData") + ".abc",
),
desc.File(
name="outputViewsAndPoses",
label="Poses",
description="Path to the output SfMData file with cameras (views and poses).",
value=desc.Node.internalFolder + "cameras.sfm",
value="{nodeCacheFolder}/cameras.sfm",
),
]

View file

@ -255,12 +255,12 @@ The transformation can be based on:
name="output",
label="SfMData File",
description="Aligned SfMData file.",
value=lambda attr: desc.Node.internalFolder + (os.path.splitext(os.path.basename(attr.node.input.value))[0] or "sfmData") + ".abc",
value=lambda attr: "{nodeCacheFolder}/" + (os.path.splitext(os.path.basename(attr.node.input.value))[0] or "sfmData") + ".abc",
),
desc.File(
name="outputViewsAndPoses",
label="Poses",
description="Path to the output SfMData file with cameras (views and poses).",
value=desc.Node.internalFolder + "cameras.sfm",
value="{nodeCacheFolder}/cameras.sfm",
),
]

View file

@ -143,12 +143,12 @@ Contrary to the StructureFromMotion node, this node does not infer the camera po
name="output",
label="SfMData",
description="Path to the output SfMData file.",
value=desc.Node.internalFolder + "sfm.abc",
value="{nodeCacheFolder}/sfm.abc",
),
desc.File(
name="extraInfoFolder",
label="Folder",
description="Folder for intermediate reconstruction files and additional reconstruction information files.",
value=desc.Node.internalFolder,
value="{nodeCacheFolder}",
),
]

View file

@ -79,6 +79,6 @@ class SfMBootStraping(desc.AVCommandLineNode):
name="output",
label="SfMData",
description="Path to the output SfMData file.",
value=desc.Node.internalFolder + "bootstrap.abc",
value="{nodeCacheFolder}/bootstrap.abc",
),
]

View file

@ -170,12 +170,12 @@ class SfMExpanding(desc.AVCommandLineNode):
name="output",
label="SfMData",
description="Path to the output SfMData file.",
value=desc.Node.internalFolder + "sfmExpanded.abc",
value="{nodeCacheFolder}/sfmExpanded.abc",
),
desc.File(
name="outputViewsAndPoses",
label="Views And Poses",
description="Path to the output SfMData file with cameras (views and poses).",
value=desc.Node.internalFolder + "cameras.sfm",
value="{nodeCacheFolder}/cameras.sfm",
)
]

View file

@ -84,6 +84,6 @@ Spheres can be automatically detected or manually defined in the interface.
name="output",
label="Output Path",
description="Sphere detection information will be written here.",
value=desc.Node.internalFolder + "/detection.json",
value="{nodeCacheFolder}/detection.json",
)
]

View file

@ -128,12 +128,12 @@ class Split360Images(desc.AVCommandLineNode):
name="output",
label="Folder",
description="Output folder for extracted frames.",
value=desc.Node.internalFolder,
value="{nodeCacheFolder}",
),
desc.File(
name="outSfMData",
label="SfMData File",
description="Output SfMData file.",
value=desc.Node.internalFolder + "rig.sfm",
value="{nodeCacheFolder}/rig.sfm",
),
]

View file

@ -376,18 +376,18 @@ It iterates like that, adding cameras and triangulating new 2D features into 3D
name="output",
label="SfMData",
description="Path to the output SfM point cloud file (in SfMData format).",
value=desc.Node.internalFolder + "sfm.abc",
value="{nodeCacheFolder}/sfm.abc",
),
desc.File(
name="outputViewsAndPoses",
label="Views And Poses",
description="Path to the output SfMData file with cameras (views and poses).",
value=desc.Node.internalFolder + "cameras.sfm",
value="{nodeCacheFolder}/cameras.sfm",
),
desc.File(
name="extraInfoFolder",
label="Folder",
description="Folder for intermediate reconstruction files and additional reconstruction information files.",
value=desc.Node.internalFolder,
value="{nodeCacheFolder}",
),
]

View file

@ -336,13 +336,13 @@ Many cameras are contributing to the low frequencies and only the best ones cont
name="output",
label="Folder",
description="Folder for output mesh: OBJ, material and texture files.",
value=desc.Node.internalFolder,
value="{nodeCacheFolder}",
),
desc.File(
name="outputMesh",
label="Mesh",
description="Output mesh file.",
value=desc.Node.internalFolder + "texturedMesh.{outputMeshFileTypeValue}",
value="{nodeCacheFolder}/texturedMesh.{outputMeshFileTypeValue}",
group="",
),
desc.File(
@ -350,22 +350,22 @@ Many cameras are contributing to the low frequencies and only the best ones cont
enabled=lambda node: node.outputMeshFileType.value == "obj",
label="Material",
description="Output material file.",
value=desc.Node.internalFolder + "texturedMesh.mtl",
value="{nodeCacheFolder}/texturedMesh.mtl",
group="",
),
desc.File(
name="outputTextures",
label="Textures",
description="Output texture files.",
value=lambda attr: desc.Node.internalFolder + "texture_*." + attr.node.colorMapping.colorMappingFileType.value if attr.node.colorMapping.enable.value else "",
value=lambda attr: "{nodeCacheFolder}/texture_*." + attr.node.colorMapping.colorMappingFileType.value if attr.node.colorMapping.enable.value else "",
group="",
),
]
def upgradeAttributeValues(self, attrValues, fromVersion):
if fromVersion < Version(6, 0):
outputTextureFileType = attrValues['outputTextureFileType']
outputTextureFileType = attrValues["outputTextureFileType"]
if isinstance(outputTextureFileType, str):
attrValues['colorMapping'] = {}
attrValues['colorMapping']['colorMappingFileType'] = outputTextureFileType
attrValues["colorMapping"] = {}
attrValues["colorMapping"]["colorMappingFileType"] = outputTextureFileType
return attrValues

View file

@ -92,6 +92,6 @@ It fuses all feature matches between image pairs into tracks. Each track represe
name="output",
label="Tracks",
description="Path to the output tracks file.",
value=desc.Node.internalFolder + "tracksFile.json",
value="{nodeCacheFolder}/tracksFile.json",
),
]

View file

@ -128,14 +128,14 @@ One frame per viewpoint will be rendered, and the undistorted views can optional
name="output",
label="Output",
description="Output folder.",
value=desc.Node.internalFolder,
value="{nodeCacheFolder}",
),
desc.File(
name="frames",
label="Frames",
description="Frames rendered in Blender.",
semantic="image",
value=desc.Node.internalFolder + "<FILESTEM>_preview.jpg",
value="{nodeCacheFolder}/<FILESTEM>_preview.jpg",
group="",
),
]