Skip to content

GUI

gui

The main GUI implementation.

Classes:

MainWindow

MainWindow(filmstocks)

Bases: QMainWindow

The main window of Raw2Film.

Attributes:

  • adx_scale –

    What density does 100% output of the negative LUT respond to. Matching values

  • apd_intermediate –

    If unchecked it will fully simulate printing the negative to the print film

  • blue_light –

    Intensity of the blue light during printing.

  • color_masking –

    How effective the orange color mask of the film is. Value of 1 perfectly

  • exp_comp –

    Compensate for exposure. Default assumes middle gray to be at the default from

  • exp_wb –

    Adjust the white balance of the image. Default assumes white to be at 6500

  • green_light –

    Intensity of the green light during printing.

  • idealized_curve –

    Replace the characteristic curve of the print film with an ideal gamma curve.

  • image_selector –

    Select which image to use for the preview. Should be encoded in the target

  • input_colorspace_selector –

    What color space is the reference image in?

  • inversion_gamma –

    The gamma applied using the inversion if 'Inversion' is selected.

  • link_lights –

    Connect the sliders of all printer lights together.

  • lut_size –

    The size of the LUT table.

  • negative_selector –

    Select the camera film stock that is emulated.

  • noise_button –

    Open the grain overlay export dialog.

  • output_gamma –

    Gamma function to apply for encoding.

  • output_gamut –

    In what color space to encode the output.

  • print_selector –

    What print material to simulate.

  • projector_kelvin –

    The color of the projection lamp or the viewing lamp for paper prints.

  • push_pull –

    How much to push or pull the film, adjusting contrast. Works linearly scaling

  • red_light –

    Intensity of the red light during printing.

  • save_lut_button –

    Export the LUT.

  • shadow_comp –

    Lift or lower dark areas. For 1 or -1 it acts like an OOTF or inverse OOTF

  • tint –

    Adjust the tint along the green to red/purple axis.

  • white_balance –

    Whether to white balance slide film.

  • white_clip –

    When viewing print film brightness will be increased to clip at exactly 1.0.

adx_scale instance-attribute

adx_scale = WideComboBox(self)

What density does 100% output of the negative LUT respond to. Matching values have to be used for print and grain LUTs. No effect when using the full mode.

Density 2 matches ADX10 and should be used for Cineon like workflows. Density 8 matches ADX16. When using density 2 there is risk of clipping for some negative film stocks.

apd_intermediate instance-attribute

apd_intermediate = QCheckBox()

If unchecked it will fully simulate printing the negative to the print film stock. If checked it will simulate scanning the film using academy printing density (APD). This results in a loss of accuracy, as the print stock's sensitivity is not accounted for, but it enables one to combine negative and print LUTs arbitrarily.

Will be ignored for slide film.

blue_light instance-attribute

blue_light = Slider(continuous=False)

Intensity of the blue light during printing.

color_masking instance-attribute

color_masking = Slider()

How effective the orange color mask of the film is. Value of 1 perfectly compensates for color layer cross contamination. An increased value leads to higher saturation. There is no documented data on this, so you can play around with this to your liking.

For film without a color mask like slide film this can be used to simulate other inter-layer effects. Should probably set lower, but should be experimented with.

exp_comp instance-attribute

exp_comp = Slider()

Compensate for exposure. Default assumes middle gray to be at the default from the color space spec.

exp_wb instance-attribute

exp_wb = SliderLog()

Adjust the white balance of the image. Default assumes white to be at 6500 kelvin.

green_light instance-attribute

green_light = Slider(continuous=False)

Intensity of the green light during printing.

idealized_curve instance-attribute

idealized_curve = QCheckBox('Pure curve')

Replace the characteristic curve of the print film with an ideal gamma curve. Preserves the sensitivity and dye densities of the print film. When activated, the gamma is controlled by the inversion gamma.

image_selector instance-attribute

image_selector = FileSelector()

Select which image to use for the preview. Should be encoded in the target color space of the LUT.

input_colorspace_selector instance-attribute

input_colorspace_selector = WideComboBox()

What color space is the reference image in?

inversion_gamma instance-attribute

inversion_gamma = Slider()

The gamma applied using the inversion if 'Inversion' is selected.

link_lights = QCheckBox()

Connect the sliders of all printer lights together.

lut_size instance-attribute

lut_size = Slider()

The size of the LUT table.

negative_selector instance-attribute

negative_selector = FilmStockSelector(
    negative_info,
    self,
    self,
    sort_keys=sort_keys_negative,
    group_keys=group_keys_negative,
    list_keys=list_keys_negative,
    sidebar_keys=sidebar_keys_negative,
    default_group="Manufacturer",
    image_key="image",
)

Select the camera film stock that is emulated.

noise_button instance-attribute

noise_button = AnimatedButton('Export Grain')

Open the grain overlay export dialog.

output_gamma instance-attribute

output_gamma = WideComboBox(self)

Gamma function to apply for encoding.

Selecting a HDR gamma (PQ or HLG) with nits specified means that the peak white of the output gamma function will be selected accordingly. This applies if Pure curve or Inversion is selected. For full film emulation pipelines this has no effect and the output will simply be mapped to 203 nits paper white.

output_gamut instance-attribute

output_gamut = WideComboBox(self)

In what color space to encode the output.

print_selector instance-attribute

print_selector = FilmStockSelector(
    print_info,
    self,
    self,
    sort_keys=sort_keys_print,
    group_keys=group_keys_print,
    list_keys=list_keys_print,
    sidebar_keys=sidebar_keys_print,
    default_group="Manufacturer",
    image_key="image",
)

What print material to simulate. For slide film it should normally be set to None. If None is selected for negative film a digital scan with a simple mathematical inversion is simulated.

projector_kelvin instance-attribute

projector_kelvin = SliderLog()

The color of the projection lamp or the viewing lamp for paper prints.

push_pull instance-attribute

push_pull = Slider()

How much to push or pull the film, adjusting contrast. Works linearly scaling the characteristic curve of the film. Not based on measured data, but a rough approximation, useful for controlling contrast.

Not recommended for use with slide film.

red_light instance-attribute

red_light = Slider(continuous=False)

Intensity of the red light during printing.

save_lut_button instance-attribute

save_lut_button = AnimatedButton('Save LUT')

Export the LUT.

shadow_comp instance-attribute

shadow_comp = Slider()

Lift or lower dark areas. For 1 or -1 it acts like an OOTF or inverse OOTF respectively.

tint instance-attribute

tint = Slider()

Adjust the tint along the green to red/purple axis.

white_balance instance-attribute

white_balance = QCheckBox('WB')

Whether to white balance slide film.

white_clip instance-attribute

white_clip = QCheckBox('Clip')

When viewing print film brightness will be increased to clip at exactly 1.0. When viewing slide film white balancing is applied, so that a gray patch will actually produce the color temperature specified by the projector kelvin.