Nodes/IAMCCS-nodes/IAMCCS-CinePostEfx-v2
ComfyUI Node

IAMCCS-CinePostEfx-v2

Same film-grain node, underscored name, one-character history

By IAMCCS·Created 11 months ago·Updated about 17 hours ago· 113
IAMCCS-CinePostEfx-v2
  • images
  • grain_plate
  • images
  • grain_map
  • report
enginefilm_emulsion
preset35mm_fine_negative
input_transfersrgb
blend_methodlog_density
strength0.100
grain_size_4k_px1.00
softness0.18
roughness0.24
complexity3
temporal_correlation0.00
chroma_amount0.055
shadow_response0.62
midtone_response1.00
highlight_response0.38
red_response1.00
green_response0.96
blue_response1.06
seed1
frame_start0
horizontal_instability0.00
chroma_spill0.00
luma_noise0.00
chroma_noise0.00
color_drift0.00
edge_echo0.00
line_dropout0.00
scanline_strength0.00
field_interlace0.00
vertical_roll0.00
highlight_glow0.00
head_switch_distortion0.00
luma_trail0.00
chroma_delay0.00
analog_mix1.00
tracking_error0.00
tape_warp0.00
ghost_echo0.00
signal_saturation1.00
black_lift0.00
chroma_phase_noise0.00
chroma_loss0.00
grain_profilenegative_stock
texture_microcontrast0.18
analog_color_lookneutral
disturbance_amount1.00
lens_presetlens_none
lens_master0.00
lens_distortion0.00
lens_edge_stretch0.00
lens_anamorphic_width0.00
lens_zoom1.00
lens_keystone_x0.00
lens_keystone_y0.00
lens_tilt_angle0
lens_focus_position0.00
lens_tilt_blur0.00
lens_chromatic_aberration0.00
lens_vignette0.00
settings_json
horizontal_instability_randomness0.00
tracking_randomness0.00
tape_warp_randomness0.00
color_drift_randomness0.00
scanline_randomness0.00
interlace_randomness0.00
vertical_roll_randomness0.00
head_switch_randomness0.00

Of the three IDs this one node answers to, IAMCCS_CinePostEfxV2 is the shortest-lived. It is an alias to IAMCCS-CinePostEfx-v2 for the window when the node was registered with underscores instead of the hyphenated name, and the pack keeps it around purely so workflows saved in that window don't come back as missing nodes.

The mechanism is four lines in the source:

class IAMCCS_CinePostEfxV2UnderscoreLegacy(IAMCCS_CinePostEfxV2):
    """Compatibility for the short-lived underscored v2 identifier."""
    DEPRECATED = True

It inherits everything. Inputs, outputs, defaults, the grain_map mask, the report string - identical, because it is not a reimplementation. DEPRECATED = True keeps it out of the add-node menu while leaving it resolvable for saved graphs.

What that means practically

If your graph already uses this ID: queue it, it works. There is no migration step, no version check, no hidden difference in output. If you paste someone's workflow built on the hyphenated ID into a graph that also has this one, you will simply have two nodes doing the same job - worth deleting one for legibility, not for correctness.

If you are building something new, use the hyphenated ID (IAMCCS-CinePostEfx-v2). It is the one in the menu, the one the README and changelog refer to, and the one that will still be there after the next rename.

For what the node actually does - five engines, 34 stock presets, resolution-aware density grain, the analogue tape and broadcast sections, the lens group, and the eight *_randomness fields that keep cyclic signal damage from looking like a GIF loop - the canonical page is where the detail lives:

Install, briefly

ComfyUI Manager → search IAMCCS, or clone the pack and restart:

cd ComfyUI/custom_nodes
git clone https://github.com/IAMCCS/IAMCCS-nodes.git

Because all three names are registered from the same module, a "missing node" on this ID is almost always a missing or duplicated pack install rather than anything to do with the alias. Check for one copy of IAMCCS-nodes in custom_nodes, not two, and restart.

CategoryIAMCCS/Cine Nodes/Film Delivery

Inputs (69)

NameTypeDefaultDescription
imagesIMAGE
engineCOMBOfilm_emulsion5 options: film_emulsion, digital_sensor, scanned_grain_plate, analog_tape, broadcast_signal
presetCOMBO35mm_fine_negative34 options: 65mm_clean_scan, 35mm_fine_negative, 35mm_high_speed, 16mm_documentary, 8mm_expression, digital_cinema_sensor, +28
input_transferCOMBOsrgb3 options: srgb, rec709, linear
blend_methodCOMBOlog_density4 options: log_density, density_exposure, linear_additive, soft_light_luma
strengthFLOAT0.1000–1
grain_size_4k_pxFLOAT1.000.35–6
softnessFLOAT0.180–1
roughnessFLOAT0.240–1
complexityINT31–4
temporal_correlationFLOAT0.000–0.95
chroma_amountFLOAT0.0550–0.5
shadow_responseFLOAT0.620–2
midtone_responseFLOAT1.000–2
highlight_responseFLOAT0.380–2
red_responseFLOAT1.000.5–1.5
green_responseFLOAT0.960.5–1.5
blue_responseFLOAT1.060.5–1.5
seedINT10–9223372036854776000
frame_startINT00–2147483647
horizontal_instabilityFLOAT0.000–1
chroma_spillFLOAT0.000–1
luma_noiseFLOAT0.000–1
chroma_noiseFLOAT0.000–1
color_driftFLOAT0.000–1
edge_echoFLOAT0.000–1
line_dropoutFLOAT0.000–1
scanline_strengthFLOAT0.000–1
field_interlaceFLOAT0.000–1
vertical_rollFLOAT0.000–1
highlight_glowFLOAT0.000–1
head_switch_distortionFLOAT0.000–1
luma_trailFLOAT0.000–1
chroma_delayFLOAT0.000–1
analog_mixFLOAT1.000–1
tracking_errorFLOAT0.000–1
tape_warpFLOAT0.000–1
ghost_echoFLOAT0.000–1
signal_saturationFLOAT1.000–2
black_liftFLOAT0.000–1
chroma_phase_noiseFLOAT0.000–1
chroma_lossFLOAT0.000–1
grain_profileCOMBOnegative_stock5 options: modern_fine, negative_stock, high_speed_negative, reversal_stock, print_stock
texture_microcontrastFLOAT0.180–1
analog_color_lookCOMBOneutral14 options: neutral, consumer_color, warm_camcorder, cool_camcorder, tungsten_home_video, fluorescent_cctv, +8
disturbance_amountFLOAT1.000–2
lens_presetCOMBOlens_none11 options: lens_none, wide_angle_14mm, ultra_wide_10mm, fisheye_8mm, anamorphic_1_33x, anamorphic_2x_cinema, +5
lens_masterFLOAT0.000–2
lens_distortionFLOAT0.00-1–1
lens_edge_stretchFLOAT0.00-1–1
lens_anamorphic_widthFLOAT0.00-0.5–0.5
lens_zoomFLOAT1.000.7–1.6
lens_keystone_xFLOAT0.00-0.75–0.75
lens_keystone_yFLOAT0.00-0.75–0.75
lens_tilt_angleFLOAT0-90–90
lens_focus_positionFLOAT0.00-1–1
lens_tilt_blurFLOAT0.000–1
lens_chromatic_aberrationFLOAT0.000–1
lens_vignetteFLOAT0.000–1
settings_jsonSTRING
horizontal_instability_randomnessFLOAT0.000–1
tracking_randomnessFLOAT0.000–1
tape_warp_randomnessFLOAT0.000–1
color_drift_randomnessFLOAT0.000–1
scanline_randomnessFLOAT0.000–1
interlace_randomnessFLOAT0.000–1
vertical_roll_randomnessFLOAT0.000–1
head_switch_randomnessFLOAT0.000–1
grain_plateoptIMAGE

Outputs (3)

NameTypeDescription
imagesIMAGE
grain_mapMASK
reportSTRING