CompStart

ProLessonsCoursesElementsSoftware

CompStart

Master visual effects with cutting-edge techniques.

Learning

CoursesLessonsPro FeaturesAssetsSoftware

Tools

Tech CheckDisplay CheckMotion BlurCIE 1931PhysLightNuke Tools

Company

InstructorMissionImpressumPrivacyTerms

Projects

Moray RenderEXR ConverterOCIO.ccNuke ToolsDerekVFX

Follow

YouTubeInstagramTikTokThreadsContact

© 2026 CompStart. All rights reserved.

Frame Pincher

ToolSets / Utility
Utility

2026-09-07

ToolSets/utility/framePincher.nk

utility
retime
optical flow
oflow
frame
timing
View on GitHub

Pinch out a single frame from a sequence with optical-flow retiming, neighbor balance, and optional motion analysis.

Frame Pincher removes one frame from a clip by retiming across the gap so the cut lands cleanly. You pick the frame to pinch; the gizmo holds the neighbors, blends them, and drives Foundry OFlow so motion carries through the missing frame instead of a hard jump.

Use it when a plate has a bad frame, a flash frame, or one frame you need gone without a visible cut. Set Input Range to the span OFlow should analyze, choose which channels to retime, and scrub Neighbor Balance to bias the blend toward the previous or next frame.

With Motion Analysis on, retiming uses OFlow across the pinch. Off, the node favors the held-neighbor path. The label shows the current frame2Pinch value so you can see the target in the DAG.

Script code

set cut_paste_input [stack 0]
version 9.0 v7
push $cut_paste_input
Group {
 name framePincher
 tile_color 0x421010ff
 label "\[value frame2Pinch]"
 selected true
 xpos -1338
 ypos 6443
 addUserKnob {20 User l framePincher}
 addUserKnob {41 retimedChannels l Channels T OFlow2.retimedChannels}
 addUserKnob {41 input.first l "Input Range" T OFlow2.input.first}
 addUserKnob {41 input.last l "" -STARTLINE T OFlow2.input.last}
 addUserKnob {41 resetInputRange l Reset -STARTLINE T OFlow2.resetInputRange}
 addUserKnob {3 frame2Pinch l Frame}
 frame2Pinch 1024
 addUserKnob {6 moa l "Motion Analysis" -STARTLINE}
 moa true
 addUserKnob {41 which l "Neighbor Balance" T Dissolve1.which}
 addUserKnob {26 ""}
 addUserKnob {26 label_1 l "" +STARTLINE T "Frame Pincher v1.1"}
 addUserKnob {22 btn l DerekVFX.ca +STARTLINE}
}
 Input {
  inputs 0
  name Input
  xpos 458
  ypos 290
 }
 NoOp {
  name NoOp1
  xpos 458
  ypos 370
 }
set Naa78f400 [stack 0]
 TimeOffset {
  time_offset -1
  time ""
  name TimeOffset1
  xpos 94
  ypos 402
 }
push $Naa78f400
 Switch {
  inputs 2
  which {{"parent.frame2Pinch <= frame" i}}
  name Switch2
  xpos 94
  ypos 513
 }
set Nae0ff000 [stack 0]
 OFlow2 {
  input.first 1001
  input.last 1116
  retimedChannels rgba
  timing2 Frame
  timingFrame2 {{parent.frame2Pinch-1+Dissolve1.which}}
  vectorDetailLocal 0.01
  smoothnessLocal 0.22
  Shutter 1
  Advanced 1
  flickerCompensation true
  name OFlow2
  xpos 94
  ypos 611
 }
set N41fab400 [stack 0]
push $Naa78f400
 Switch {
  inputs 2
  which {{"parent.frame2Pinch == frame" x8 0 1 0}}
  name Switch4
  xpos 94
  ypos 711
 }
push $Naa78f400
 FrameHold {
  first_frame {{parent.frame2Pinch+1 i}}
  name FrameHold6
  xpos 745
  ypos 516
 }
push $Naa78f400
 FrameHold {
  first_frame {{parent.frame2Pinch-1 i}}
  name FrameHold7
  xpos 563
  ypos 522
 }
 Dissolve {
  inputs 2
  which 0.5
  name Dissolve1
  xpos 563
  ypos 606
 }
push $Naa78f400
 Switch {
  inputs 2
  which {{"parent.frame2Pinch == frame" i x8 0 1 0}}
  name Switch1
  xpos 458
  ypos 719
 }
 Switch {
  inputs 2
  which {{parent.moa}}
  name Switch3
  xpos 458
  ypos 885
 }
 Output {
  name Output1
  xpos 458
  ypos 943
 }
push $Nae0ff000
 OFXuk.co.thefoundry.time.oflow_v100 {
  method Motion
  timing "Source Frame"
  timingFrame {{parent.frame2Pinch-1+Dissolve1.which}}
  timingSpeed 0.5
  filtering Normal
  warpMode Normal
  correctLuminance false
  automaticShutterTime false
  shutterTime 0
  shutterSamples 1
  vectorDetail 0.2
  smoothness 0.5
  blockSize 6
  Tolerances 0
  weightRed 0.3
  weightGreen 0.6
  weightBlue 0.1
  showVectors false
  cacheBreaker false
  name OFlow1
  xpos -89
  ypos 567
 }
push $N41fab400
 Viewer {
  frame_range 1001-1116
  name Viewer1
  xpos -89
  ypos 593
 }
end_group