CompStart

ProУрокиКурсыЭлементыСофт

CompStart

Осваивайте визуальные эффекты и передовые техники.

Обучение

КурсыУрокиPro-функцииРесурсыСофт

Tools

Tech CheckDisplay CheckMotion BlurCIE 1931PhysLightNuke Tools

Компания

InstructorМиссияImpressumКонфиденциальностьУсловия

Проекты

Moray RenderEXR ConverterOCIO.ccNuke ToolsDerekVFX

Follow

YouTubeInstagramTikTokThreadsКонтакты

© 2026 CompStart. Все права защищены.

Общий ключ

ToolSets / Keyer
Keyer

2026-09-07

ToolSets/keyer/commonKey.nk

ключ
разница
маска
сравнивать
полезность
слияние
View on GitHub

Ключ для определения разницы между двумя входными сигналами: если значения A и B превышают пороговое значение, выведите на выход значение B и маску; если они совпадают, оставьте значение A.

Функция Common Key сравнивает входные значения A и B для каждого канала RGB. Пиксели, абсолютная разница которых в любом канале соответствует или превышает пороговое значение, образуют маску. За пределами этой маски результат сохраняет значение A; внутри — значение B. Альфа-канал является маской разницы.

Включите параметр alphaOnly, чтобы всегда пропускать RGB-сигнал B, при этом сохраняя запись разницы в alpha. Параметр Threshold регулирует чувствительность сравнения (небольшие значения улавливают едва заметные изменения).

Используйте его для выявления изменений между двумя похожими пластинами, создания контрольной выборки или «мусора» из опорного кадра, а также для управления последующими ключами и слияниями на основе простого A/B-дельта-преобразования без использования полного стека ключей.

Script code

version 10.5 v6
push $cut_paste_input
Group {
 inputs 2
 name commonKey1
 tile_color 0x421010ff
 selected true
 xpos 1437
 ypos -4164
 addUserKnob {20 User l commonKey}
 addUserKnob {41 threshold T MergeExpression1.threshold}
 addUserKnob {41 alphaOnly T MergeExpression1.alphaOnly}
 addUserKnob {26 ""}
 addUserKnob {26 lbl l "" +STARTLINE T "CommonKey v1.0"}
 addUserKnob {22 btn l DerekVFX.ca T "nuke.tcl('start', 'https://derekvfx.ca')" +STARTLINE}
}
 Input {
  inputs 0
  name A
  xpos 625
  ypos 82
  number 1
 }
 Input {
  inputs 0
  name B
  xpos 447
  ypos 76
 }
 MergeExpression {
  inputs 2
  temp_name0 red
  temp_expr0 "abs(Ar-Br) >= threshold ? 1 : 0"
  temp_name1 green
  temp_expr1 "abs(Ag-Bg) >= threshold ? 1 : 0"
  temp_name2 blue
  temp_expr2 "abs(Ab-Bb) >= threshold ? 1 : 0"
  temp_name3 mask
  temp_expr3 max(red,green,blue)
  expr0 "alphaOnly ? Br : mask == 1 ? Br : Ar"
  expr1 "alphaOnly ? Bg : mask == 1 ? Bg : Ag"
  expr2 "alphaOnly ? Bb : mask == 1 ? Bb : Ab"
  expr3 mask
  name MergeExpression1
  selected true
  xpos 447
  ypos 359
  addUserKnob {20 User}
  addUserKnob {6 alphaOnly +STARTLINE}
  addUserKnob {7 threshold R 1e-05 0.1}
  threshold 0.0088
 }
 Output {
  name Output1
  xpos 447
  ypos 1055
 }
end_group