Community
Arnold for 3ds Max
Rendering with Arnold in 3ds Max using the MaxtoA plug-in.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

How to denoise image sequence through Noice standalone in Linux

6 REPLIES 6
Reply
Message 1 of 7
Anonymous
1003 Views, 6 Replies

How to denoise image sequence through Noice standalone in Linux

 
Tags (2)
Labels (2)
6 REPLIES 6
Message 2 of 7
ben.fischler
in reply to: Anonymous

Message 3 of 7
ben.fischler
in reply to: ben.fischler

We will add some additional examples soon.

Message 4 of 7
Anonymous
in reply to: ben.fischler

input sequence is working. but output is taking single frame.Is there any specific command to render sequence output.

Message 5 of 7
markKJQRE
in reply to: ben.fischler


This script helps enormously and is easy to modify for Linux:
https://github.com/zpelgrims/noice_command_generation/blob/master/noice_command_generation.py

Message 6 of 7
tsines
in reply to: Anonymous

@markKJQRE Sorry to bring up an old thread, do you have a solution for doing this on a Mac? I tried modifying the script in a text editor and keep getting SyntaxErrors no matter what I do:

 

import re

# only change these variables
filename_input = "/Volumes/RAID4TB_02/TreeGrowth/images/ShadowTest/ShadowTest.####.exr"
filename_output = "/Volumes/RAID4TB_02/TreeGrowth/images/ShadowTest_DN/ShadowTestDN.####.exr"
arnold_bin_path = "/Applications/Autodesk/Arnold/mtoa/2022/bin"
startframe = 1
endframe = 40
variance = 0.5
pixel_search_radius = 9
pixel_neighborhood_patch_radius = 3
temporal_range = 6
light_aov_names = ["frontlight", "backlight"] # if no light aov denoising needed, just leave list empty: []

 

filename_input_sequence_number = re.sub(r'#+',lambda m: r'{{:0{}d}}'.format(len(m.group(0))), filename_input)
filename_output_sequence_number = re.sub(r'#+',lambda m: r'{{:0{}d}}'.format(len(m.group(0))), filename_output)

for i in range (startframe, endframe + 1):
temporal_range_string = ""
light_aov_string = ""
for j in range(-temporal_range/2, temporal_range/2):
if (j==0) or (i+j < startframe) or (i+j > endframe):
continue

temporal_range_string += "-i " + filename_input_sequence_number.format(i+j) + " "

for k in light_aov_names:
light_aov_string += "-aov " + str(k) + " "

print (arnold_bin_path + "/noice"
+ "-patchradius " + str(pixel_neighborhood_patch_radius) + " " \
+ "-searchradius " + str(pixel_search_radius) + " " \
+ "-variance " + str(variance) + " " \
+ light_aov_string + " " \
+ "-i " + filename_input_sequence_number.format(i) + " " \
+ temporal_range_string + " " \
+ "-output " + filename_output_sequence_number.format(i))

if i is not endframe:
print " &&",

 

I tried to put the print (arnold_bin_path on one which resulted in the following error:

SyntaxError: Missing parentheses in call to 'print'. Did you mean print(" &&", end=" ")?

(base) sines@scaleMP ~ % python noice_command_generation.py

Traceback (most recent call last):

  File "noice_command_generation.py", line 23, in <module>

    for j in range(-temporal_range/2, temporal_range/2):

TypeError: 'float' object cannot be interpreted as an integer


At this point I'm not sure what to modify next as I am a full-on Python noob and can't find a solution with just randomly adding parentheses.

 

Message 7 of 7
markKJQRE
in reply to: tsines

It looks like a python 2 vs python 3 thing.
First thing to do is go through it, find all print lines and put brackets
around them and re-run it, see what happens.

Ie:

print X

Becomes:

print(x)



Can't find what you're looking for? Ask the community or share your knowledge.

Post to forums  

Autodesk Design & Make Report