Back to Node List

Tone Curve

tone_curve

Adjusts tones with an editable control-point curve, like the curves tool in image editors

Reviewed
Guide available
The node name and summary are available in English. Port, parameter, and article details are currently shown in Japanese.

Input Ports

NameTypeDescription
画像
input
Image
Required
補正する画像です

Output Ports

NameTypeDescription
画像
output
Image
補正後の画像です

Parameters

NameTypeDefaultRangeDescription / Options
対象チャンネル
channel
Enum
RGB

カーブを適用するチャンネルです

  • RGB(全体)RGB
    R・G・Bにまとめてカーブを適用します。通常の明暗・コントラスト補正です
  • Red
    赤チャンネルだけに適用します
  • Green
    緑チャンネルだけに適用します
  • Blue
    青チャンネルだけに適用します
  • アルファAlpha
    透明度だけに適用します。フェードの調整などに使えます
カーブ制御点
curve_points
CustomData
{"version":1,"points":[{"t":0,"value":0},{"t":1,"value":1}]}

インスペクタのカーブエディタで編集する制御点です。破損時はLinearプリセットで初期状態へ戻せます

Overview

The familiar tone curve from painting tools. Redrawing the light/dark relationship as a free curve provides fine one-node control over contrast, gamma, and fades. Use it for nonlinear corrections that the brightness family cannot handle, such as lifting only the shadows.

Select the node to display the curve editor in the inspector. Double-click to add a control point, right-click to delete one, and drag to move it.

Usage tips

  • The go-to S-curve lowers shadows and raises highlights for stronger contrast, making a flat pixel-art base crisper.
  • It is effective before gradient_map: shape the luminance distribution with the curve before assigning colors to control the area occupied by each one.
  • channel = Alpha is useful for adjusting the feel of a fade animation, turning a linear fade into an eased one.
  • A small number of control points, about 3–4, is easiest to handle. Too many can make the curve undulate and reverse tones.

Common pitfalls

  • Nothing changes: the default straight line from (0,0) to (1,1) is a pass-through. Add or move a control point to create an effect.
  • Tones reverse unnaturally: part of the curve slopes downward. Unless intentional, simplify the points and restore a monotonic increase.
  • A damaged curve-data error appears: malformed JSON or fewer than two control points is no longer treated silently as a straight line. Choose the Linear preset in the inspector curve editor to restore the safe default.
  • The pixel-art color count increases: a continuous curve creates intermediate colors. For a strict palette, place palette_quantize downstream or adjust the palette itself with palette_adjust_* nodes.

Technical details

  • The curve uses the same Catmull-Rom interpolation as the inspector editor, so preview and result match.
  • Internally it is converted to and applied as a 256-step LUT.
  • The unedited two-point default from (0,0) to (1,1) passes input through exactly.
  • Unreadable control-point data produces a node error without overwriting the saved data. Choosing the Linear preset explicitly replaces it with the valid default.
  • Levels clips and rescales the value range; Tone Curve provides a freely shaped tonal curve.

Examples

  1. Increase contrast: create a four-point S-curve that lowers shadows and raises highlights.
  2. Adjust a fade: use channel: Alpha to shape opacity change.
  3. Correct a color cast: adjust the curve of an individual channel such as channel: Red.

Related nodes

  • levels — easier when only clipping the range at white and black points
  • auto_levels — expand the range automatically
  • brightness — simple brightness and contrast changes
  • gradient_map — the go-to next step for coloring curve-shaped luminance
Back to Node List
Tone Curve — PixPipeline Node Reference