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

IAMCCS-CinePostEfx-v2

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

By IAMCCS·Created 12 months ago·Updated 7 days ago· 117
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—