IAMCCS-CinePostEfx-v2 · Legacy workflow alias
IAMCCS_CineFilmGrainPro is a name, not a node — it's the old ID for CinePostEfx v2
- images
- grain_plate
- images
- grain_map
- report
Here is the entire node: IAMCCS_CineFilmGrainPro is a deprecated alias that points at IAMCCS-CinePostEfx-v2's class. Same inputs, same outputs, same code path - the class you actually get is IAMCCS_CinePostEfxV2. In the source it is literally five lines:
class IAMCCS_CineFilmGrainProLegacy(IAMCCS_CinePostEfxV2):
"""Load old workflows without keeping the former node in the add-node menu."""
DEPRECATED = True
You found this page because an old workflow, a shared JSON, or a tutorial you downloaded references the old name. Good news: nothing is broken and you do not need to change anything. The ID resolves, the node runs, and it renders grain with every knob the current version has, because it is the current version.
Why it still exists at all
ComfyUI resolves saved workflows by string node type. If a pack deletes or renames a node class outright, every workflow that used it comes back with a red missing-node box and you have to hand-edit JSON. So the pack keeps the retired identifier registered and maps it to the live class. DEPRECATED = True is the polite part of this: the node still loads, but it is kept out of the add-node menu, so you cannot accidentally start a new graph on the old name.
The pack does this in three places at once - the hyphenated IAMCCS-CinePostEfx-v2 is the real ID, IAMCCS_CinePostEfxV2 is a short-lived underscored variant, and IAMCCS_CineFilmGrainPro is the oldest of the three, from before the node grew from a grain module into the full film/sensor/analogue/broadcast finishing suite.
What to do about it
Nothing, for an existing graph. It will queue and produce identical output to the hyphenated node.
For anything new, search the menu for CinePostEfx. If you want the full explanation of what the node does with your frames - the engines, the stock presets, the density-aware grain, the tape and broadcast sections - read the canonical page instead, because there is no second implementation hiding here:
If it doesn't load
The usual cause is not the alias, it is the install. The whole pack has to be present, since the alias is registered by the same module as the live node:
cd ComfyUI/custom_nodes
git clone https://github.com/IAMCCS/IAMCCS-nodes.git
Restart, then check you don't have a second copy of IAMCCS-nodes sitting in custom_nodes from an earlier manual install. Duplicated pack folders are a known cause of startup weirdness and stale definitions in this pack's own requirements notes, and a stale copy is exactly how an alias that should resolve ends up looking missing.
Inputs (69)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — | |
| engine | COMBO | film_emulsion | 5 options: film_emulsion, digital_sensor, scanned_grain_plate, analog_tape, broadcast_signal |
| preset | COMBO | 35mm_fine_negative | 34 options: 65mm_clean_scan, 35mm_fine_negative, 35mm_high_speed, 16mm_documentary, 8mm_expression, digital_cinema_sensor, +28 |
| input_transfer | COMBO | srgb | 3 options: srgb, rec709, linear |
| blend_method | COMBO | log_density | 4 options: log_density, density_exposure, linear_additive, soft_light_luma |
| strength | FLOAT | 0.1000–1 | — |
| grain_size_4k_px | FLOAT | 1.000.35–6 | — |
| softness | FLOAT | 0.180–1 | — |
| roughness | FLOAT | 0.240–1 | — |
| complexity | INT | 31–4 | — |
| temporal_correlation | FLOAT | 0.000–0.95 | — |
| chroma_amount | FLOAT | 0.0550–0.5 | — |
| shadow_response | FLOAT | 0.620–2 | — |
| midtone_response | FLOAT | 1.000–2 | — |
| highlight_response | FLOAT | 0.380–2 | — |
| red_response | FLOAT | 1.000.5–1.5 | — |
| green_response | FLOAT | 0.960.5–1.5 | — |
| blue_response | FLOAT | 1.060.5–1.5 | — |
| seed | INT | 10–9223372036854776000 | — |
| frame_start | INT | 00–2147483647 | — |
| horizontal_instability | FLOAT | 0.000–1 | — |
| chroma_spill | FLOAT | 0.000–1 | — |
| luma_noise | FLOAT | 0.000–1 | — |
| chroma_noise | FLOAT | 0.000–1 | — |
| color_drift | FLOAT | 0.000–1 | — |
| edge_echo | FLOAT | 0.000–1 | — |
| line_dropout | FLOAT | 0.000–1 | — |
| scanline_strength | FLOAT | 0.000–1 | — |
| field_interlace | FLOAT | 0.000–1 | — |
| vertical_roll | FLOAT | 0.000–1 | — |
| highlight_glow | FLOAT | 0.000–1 | — |
| head_switch_distortion | FLOAT | 0.000–1 | — |
| luma_trail | FLOAT | 0.000–1 | — |
| chroma_delay | FLOAT | 0.000–1 | — |
| analog_mix | FLOAT | 1.000–1 | — |
| tracking_error | FLOAT | 0.000–1 | — |
| tape_warp | FLOAT | 0.000–1 | — |
| ghost_echo | FLOAT | 0.000–1 | — |
| signal_saturation | FLOAT | 1.000–2 | — |
| black_lift | FLOAT | 0.000–1 | — |
| chroma_phase_noise | FLOAT | 0.000–1 | — |
| chroma_loss | FLOAT | 0.000–1 | — |
| grain_profile | COMBO | negative_stock | 5 options: modern_fine, negative_stock, high_speed_negative, reversal_stock, print_stock |
| texture_microcontrast | FLOAT | 0.180–1 | — |
| analog_color_look | COMBO | neutral | 14 options: neutral, consumer_color, warm_camcorder, cool_camcorder, tungsten_home_video, fluorescent_cctv, +8 |
| disturbance_amount | FLOAT | 1.000–2 | — |
| lens_preset | COMBO | lens_none | 11 options: lens_none, wide_angle_14mm, ultra_wide_10mm, fisheye_8mm, anamorphic_1_33x, anamorphic_2x_cinema, +5 |
| lens_master | FLOAT | 0.000–2 | — |
| lens_distortion | FLOAT | 0.00-1–1 | — |
| lens_edge_stretch | FLOAT | 0.00-1–1 | — |
| lens_anamorphic_width | FLOAT | 0.00-0.5–0.5 | — |
| lens_zoom | FLOAT | 1.000.7–1.6 | — |
| lens_keystone_x | FLOAT | 0.00-0.75–0.75 | — |
| lens_keystone_y | FLOAT | 0.00-0.75–0.75 | — |
| lens_tilt_angle | FLOAT | 0-90–90 | — |
| lens_focus_position | FLOAT | 0.00-1–1 | — |
| lens_tilt_blur | FLOAT | 0.000–1 | — |
| lens_chromatic_aberration | FLOAT | 0.000–1 | — |
| lens_vignette | FLOAT | 0.000–1 | — |
| settings_json | STRING | — | |
| horizontal_instability_randomness | FLOAT | 0.000–1 | — |
| tracking_randomness | FLOAT | 0.000–1 | — |
| tape_warp_randomness | FLOAT | 0.000–1 | — |
| color_drift_randomness | FLOAT | 0.000–1 | — |
| scanline_randomness | FLOAT | 0.000–1 | — |
| interlace_randomness | FLOAT | 0.000–1 | — |
| vertical_roll_randomness | FLOAT | 0.000–1 | — |
| head_switch_randomness | FLOAT | 0.000–1 | — |
| grain_plateopt | IMAGE | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | — |
| grain_map | MASK | — |
| report | STRING | — |