CompStart

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

CompStart

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

Обучение

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

Tools

Tech CheckDisplay CheckMotion BlurPhysLightNuke Tools

Компания

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

Проекты

Moray RenderEXR ConverterOCIO.ccNuke ToolsDerekVFX

Follow

YouTubeInstagramTikTokThreadsКонтакты

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

Общий ключ

ToolSets / Keyer
Keyer

2026-09-07

ToolSets/keyer/commonKey.nk

ключ
разница
маска
сравнивать
полезность
разлив
Открыть на GitHub

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

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

При отключенной функции alphaOnly, RGB-сигнал берется из области B на маскированных пикселях и из области A в остальных местах, поэтому вы можете переносить различные области из области B на область A. При включенной функции alphaOnly, RGB-сигнал передается из области 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