Skip to content

Instantly share code, notes, and snippets.

Jed Smith jedypod

Block or report user

Report or block jedypod

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@jedypod
jedypod / connect_to_closest.py
Created Nov 6, 2019
Nuke python script to connect each selected node's 0th input to the nearest node.
View connect_to_closest.py
"""
# Add to menu.py
import connect_to_closest
nuke.toolbar('Nuke').addCommand('Edit/Node/Connect Multiple', 'connect_to_closest.run()', 'meta+shift+y', shortcutContext=2)
"""
import nuke
import math
View compile_gaffercycles.md

Compile GafferCycles with OIDN

Trying to compile the [https://github.com/boberfly/GafferCycles/tree/oidn](oidn branch of gafferCycles) to get OpenImageDenoise working in Gaffer.

# Compile with vfx reference platform docker
docker run -it --mount type=bind,source=/pod/sw/compile/gaffercycles,target=/root --mount type=bind,source=/opt,target=/root/opt --entrypoint /bin/bash gaffercycles-1

# Set up env
export GAFFER_ROOT=~/opt/gaffer/gaffer
@jedypod
jedypod / Dockerfile
Last active Sep 2, 2019
Compile Blender 2.8 on Centos 7.6 using Docker
View Dockerfile
FROM centos
LABEL maintainer="mattias.ohlsson@inprose.com"
ENV HOME /root
WORKDIR $HOME
RUN yum update -y && yum clean all
# Install packages
@jedypod
jedypod / _Dockerfile
Last active Sep 22, 2019
Compile Krita 4.2.5 on Centos 7.6 using Docker
View _Dockerfile
# Dockerfile
FROM centos
LABEL maintainer="JED"
ENV HOME /root
WORKDIR $HOME
RUN yum update -y && yum clean all
@jedypod
jedypod / CornerPinOffset
Created Aug 3, 2019
CornerPin node with offset controls for each corner. Useful for tweaking cornerpin after all keyframes are baked (e.g. , from a tracker), in case you need to cheat the perspective or something else.
View CornerPinOffset
set cut_paste_input [stack 0]
push $cut_paste_input
Group {
name CornerPinOffset
tile_color 0x9073adff
addUserKnob {20 PinControl}
addUserKnob {26 CornerPinControls l "" +STARTLINE T "<font size=5><b>Corner Pin Data</b></font>"}
addUserKnob {20 CornerPinData l "" +STARTLINE n 1}
addUserKnob {41 to1 T cpMaster.to1}
addUserKnob {41 enable1 -STARTLINE T cpMaster.enable1}
@jedypod
jedypod / ExposureBracketBlend.nk
Last active Jul 15, 2019
Nuke node to automate the blending of multiple bracketed exposures into a single high dynamic range hdr image. Includes a script to sort the input nodes based on exposure time.
View ExposureBracketBlend.nk
set cut_paste_input [stack 0]
BackdropNode {
inputs 0
name BackdropNode4
tile_color 0x7f7f7f01
label "Self contained python"
note_font_size 25
selected true
xpos -1456
ypos 883
@jedypod
jedypod / README.md
Last active Oct 17, 2019
Nuke ffmpeg Render
View README.md

Nuke ffmpeg Render

Writeffmpeg is a python script and a node that allows you to render from Nuke directly into ffmpeg. Instead of a 2 step process where you render from Nuke to a temporary image sequence that you then transcode using ffmpeg, this solution writes to a single uint16 cache tiff file and this data gets piped into ffmpeg.

I've included a little screen recordingto help demo how it works.

Files

ffmpeg_render.py Writeffmpeg.nk

Dependencies

@jedypod
jedypod / FLog2Lin.nk
Last active Jun 23, 2019
Fuji F-Log Colorspace Transformations
View FLog2Lin.nk
set cut_paste_input [stack 0]
push $cut_paste_input
Group {
name FLog2Lin
label "\[value operation]"
selected true
xpos -40
ypos -952
addUserKnob {20 FLog2Lin}
addUserKnob {4 operation M {log2lin lin2log}}
@jedypod
jedypod / daily_still_photos.py
Created Dec 20, 2018
Develop and process still photos using OpenImageIO
View daily_still_photos.py
import OpenImageIO as oiio
from OpenImageIO import ImageInput, ImageOutput
from OpenImageIO import ImageBuf, ImageSpec, ImageBufAlgo
import os, sys
import shlex, subprocess
import glob
#--------------------------------------------
@jedypod
jedypod / nuke_python_recipes.py
Last active Jun 18, 2019
Nuke Python Recipes
View nuke_python_recipes.py
import nuke, math
def get_closest_node(node):
# Return the closest node to node
distances = {}
for n in nuke.allNodes():
if n.name() == node.name():
continue
distance = math.sqrt(
math.pow( (node.xpos() - n.xpos()), 2 ) + math.pow( (node.ypos() - n.ypos()), 2 )
)
You can’t perform that action at this time.