Fixing VFX’s Longest Problem using CorridorKey w/ Niko, Corridor Crew | NAB 2026 Puget Systems Booth

Fixing VFX’s Longest Problem using CorridorKey w/ Niko, Corridor Crew | NAB 2026 Puget Systems Booth

NVIDIA Studio

0:00 This is really cool to see so many people turning out here.

0:03 Uh look, I got a replica of the couch here and everything.

0:06 Oh yeah,

0:07 I've seen it.

0:09 Look at this.

0:09 We got a a galaxy in splat of the studio behind us here.

0:12 Uh which is pretty neat, too.

0:14 Um good to see some familiar faces here.

0:16 It's uh super cool.

0:17 Uh wow, what a turnout.

0:18 Well, I'm going to teach you guys about quarter key today.

0:21 Uh, specifically I'm gonna be talking about uh I'm gonna

0:25 be talking about how it was made, how it works,

0:28 how I hope it's going to evolve and change and why it was made,

0:32 all that kind of stuff.

0:32 Just going to tell you a story here.

0:33 So, um, yeah, green screens.

0:37 Uh, we use a lot of green screens,

0:39 and I don't like doing green screens at this point.

0:44 There's always a little bit of something that goes wrong.

0:47 One part looks perfect, it makes other part look bad.

0:48 and do you fix another part that looks bad?

0:50 It makes the part look look perfect look bad and it's a headache

0:54 and I just I feel like it should be easier by now.

0:57 So that was, you know, a thing I thought to myself years ago.

1:02 Um started getting into AI, machine learning,

1:04 seeing the different tools and I was like you know at some point

1:08 you know somebody's going to make something that kind of does the job

1:10 of green screens but you know with machine learning and kind of fix

1:14 this and a year passes and you know it doesn't get fixed.

1:18 familiar passes and you get things like uh you know segment anything,

1:22 magic mask, rotor brush, great alpha tools, great masking tools,

1:26 but still nothing that quite does what green screening does, which is to say,

1:30 you know, you have your foreground subject separated

1:32 not just from the background with the transparency channel,

1:35 but also with those green colors unmixed from those semi-transparent pixels,

1:38 which is a key to making all this stuff work.

1:40 you know, motion blur, blurry edges, uh you know, things like hair,

1:45 all that stuff relies on this ability

1:46 to kind of separate the green from the foreground.

1:48 Now, of course, you can do that with professional tools.

1:51 You know, you can use delta key or IBK like key light.

1:54 You can get there with professional tools,

1:56 but the whole idea is that that becomes a kind of an arduous

1:59 process of like rotoscoping effectively when you

2:01 want to make it look really good.

2:03 And you we have this production coming up.

2:05 We're doing Son of a Dungeon season 3, uh Dungeons and Dragons show.

2:08 And you know, one of the the key concepts

2:11 of this this series is that we play the game,

2:14 we play a Dungeons and Dragons game,

2:15 but then we eventually go back after it's edited and we

2:17 refilm scenes cinematically in the world in the game board that we've,

2:21 you know, played the game on.

2:23 And that, of course, requires having a lot of stuff on a green screen.

2:26 And I didn't want to sit there and spend, you know,

2:29 another couple months struggling with green screen keying

2:32 in the year 2026 when I can talk to my phone.

2:35 I can have my car drive itself,

2:38 but why am I still pulling a green screen key in this day and age?

2:41 Um, and so I had been, you know, waiting for something to come along.

2:44 And once again, fantastic automatting tools are coming out,

2:47 but none of them quite took that extra

2:48 step for that whole foreground unmixing bit.

2:52 And eventually, I was like, I'm just going to give this a shot.

2:54 you know, I'm not I'm not a machine learning guy.

2:57 I, you know, I don't have any sort of degree

2:59 in like advanced neural network training or anything like that.

3:03 Um, but I'm just going to give it a shot.

3:05 I'm going to try and I'm going to sit down with, you know,

3:07 some large language models and have them hold my hand.

3:10 I'm going to work through it.

3:11 I'm going to ask questions to as many people

3:13 as I can and just go for it, you know.

3:16 Um, and so that's how I spent my Christmas of 2025

3:20 was uh sitting there and talking to Gemini a lot.

3:22 That was my entire plane ride back to Los Angeles from Minnesota

3:25 was talking with Gemini on my laptop and kind of just working it

3:28 out and giving a lot of research papers and kind of trying

3:30 to hone in on an idea of how I was going to do this.

3:33 And so it kind of came down to a core idea here,

3:36 which is I can generate synthetic data pretty easily these days.

3:40 Um, pretty much we all can, right?

3:41 It's you fire up Blender or Houdini or, you know, whatever you want,

3:46 make some sort of procedural system and start

3:48 rendering out objects on a green screen.

3:49 And one of the nice things that you can do

3:50 with that is you can get a perfect alpha channel,

3:52 you can get a perfect foreground separated from the background,

3:54 you get a perfect background, kick it all out to EXRs, floating point 16,

3:58 gives you a whole bunch of options here to then

4:00 do augmentations and stuff like that down the line.

4:02 Um, so I took that idea, that concept, shoveled that workload off onto the rest

4:07 of the crew and had them knock out renders,

4:10 hundreds of renders over the course of about two to three weeks.

4:12 Um, and so I had this data set now of, you know,

4:15 basically 200,000 frames, uh, roughly 500 plus shots.

4:21 And, you know, the thought was, okay, I have all this put together.

4:24 I have the data set, you know,

4:26 garbage in, garbage out, good stuff in, good stuff out.

4:29 You know, let's sit down and start training something.

4:31 Um, so I fired up uh Microsoft's imageet or yeah, imageet.

4:37 Um, and did a fine tune on that and it kind of kind of worked.

4:41 kind of look like garbage.

4:42 Definitely not good enough to be a professional tool,

4:44 but it was kind of working and it made me feel really encouraged.

4:47 So, I kept working on it from there.

4:49 And at this point, I started keeping the results

4:52 secret from the rest of the gang at Corridor.

4:54 So, I could get some good reactions for for the video we were making about this.

4:58 And of course, we have this interesting thing going on at Corridor

5:02 Corridor where we can uh we can take a passion project

5:05 or an idea we have and we can turn it

5:07 into a YouTube video to justify us spending the time working on it.

5:11 And of course, I was like, well,

5:12 we have this, you know, I'm working on this video here.

5:15 We're going to make a video about green screen tools,

5:17 and you know, maybe it'll get a couple hundred thousand views,

5:19 and, you know, it'll let me justify the the two months I

5:23 spent working on this tool to make Son of a Dungeon easier.

5:26 Um, and the the finale of this video was me doing the big reveals for the guys.

5:32 And I spent, you know,

5:36 I spent basically the two days before rendering these shots out.

5:39 I barely even got to look at them.

5:40 I had no idea if they were even going to work because we went

5:42 downstairs and we filmed the hardest shots to deal with on a green screen.

5:47 Jordan Allen drinking from a transparent blue cup and a transparent glass

5:50 cup with water in them with transparent clown sheets on his head.

5:56 just like the hardest stuff.

5:58 Um, and I processed it and showed it to them.

6:00 And one of my one of the gigs I wanted to do here,

6:03 so those shots that you're looking at right there,

6:05 those shots right there, those are actually keyed out shots using corridor key.

6:09 And I kept that secret from the guys.

6:11 I could do a nice little reveal here because I

6:14 was very surprised at the the results I was getting.

6:17 It was very encouraging.

6:19 Um, and as you can see,

6:21 they started to have the same reaction once they saw what was happening here.

6:25 Um, and there you have it.

6:27 And so if we keep going here, you'll see some of the other shots, uh, as well.

6:32 Jordan's losing it.

6:33 Ren's losing it.

6:35 Uh, because whatever we seeing, whatever we seeing here is that like,

6:37 hey, maybe maybe I don't have to spend all that time anymore.

6:42 Maybe there's some help, some hope here, you know, to, uh,

6:44 spend less time doing the technical setup and more

6:47 time doing the compositing and the, you know,

6:50 the framing and the the artful stuff, the stuff you kind of want to be doing.

6:56 Now, you know, motion blur, motion blur is a hassle.

6:59 Like, we always shoot high shutter speed on the green screen.

7:01 We always shoot deep focus.

7:02 We try to avoid blurry edges as much as possible.

7:05 But, you know, we're quickly discovering here

7:07 with some of these tests that that's,

7:09 you know, maybe something we don't have to worry about quite as much anymore.

7:12 Um, you know, that's uh it's pretty reassuring

7:15 when you can get a shot like that.

7:17 So, I was personally really surprised with the fact that this worked.

7:22 Um cuz to me this wasn't just about green screening.

7:26 This was also about the idea of inventing your own tools as a filmmaker.

7:31 Um we're hitting a new era here where you can code.

7:36 Anybody can code.

7:37 Anybody can you know put together a script.

7:39 And you know if we're all working with digital

7:41 media here like at some point I'm sure you've

7:43 dealt with the fact like oh I've got a thousand

7:45 files I need to do some routine thing too.

7:47 where it's like I'm as an artist, I'm going to go in and just deal with the same

7:51 wrote setup that I have to do every time.

7:55 And you've probably thought to yourself, oh,

7:56 it'd be great if somebody made this plugin or somebody made this tool.

8:00 And, you know, I've had that, you know, dream myself many, many times.

8:03 This is kind of me not just trying to solve green screening, but like,

8:07 can I make tools now as an artist who doesn't who's not a computer programmer?

8:12 Can I stop having to rely on software companies

8:14 to have to make the paintbrush that I want to use?

8:16 just going to sit down there and make the paintbrush myself.

8:19 And the experience was really really positive and really

8:23 reassuring and gives me a lot of I guess excitement

8:26 for things that can happen in the future here

8:29 um around any kind of tool that you might want.

8:32 So I thought it might be interesting to talk a little bit about the technical

8:36 details of what's going on inside of core or key and how it works.

8:40 Um so we're going to get a little technical

8:42 dense here but you know let's let's go for it.

8:45 So what I ended up doing to get those results is I

8:48 ended up training on a model that Meta trained initially called Hyra.

8:53 And Hyra is the the backhome model that works with segment anything.

8:58 Um I don't know if you guys ever use segment anything.

8:59 It's kind of your classic put a few dots on the subject you want

9:02 to keep and then the AI model will

9:05 figure out okay what's back on this foreground.

9:06 It'll give you a rough mask.

9:09 Um, at its core, what you're basically dealing with is a system

9:13 that can look at an image and identify what the pixel is.

9:16 So, you know, you heard the term chroma key.

9:17 You can always think of this like a concept

9:19 key where it's going to go and identify, is this a pixel of the background?

9:23 Is it a pixel of an actor?

9:24 Is a pixel of a prop?

9:25 What is it?

9:26 And little by little, the malt gets trained to be like, okay, well,

9:29 if this is identified as a background pixel,

9:31 you're going to spit out an alpha channel pixel that's black.

9:34 It's identified as a foreground pixel,

9:36 spit out an alpha channel pixel that's white.

9:38 Um, if it's a fully white pixel, spit out the same original color of that pixel

9:43 from the input image for the output image.

9:45 And if it's a semi-transparent pixel, do that unmixing here.

9:48 And that's where, you know, I relied on the data set to basically

9:51 train this model how to do physically accurate unmixing.

9:55 So, I had this hyra model.

9:57 I had the synthetic data that I made,

9:59 but you can't just say, here's my can't just say, is this working?

10:05 Oh, this is much better.

10:06 Now, I have something to do with my hands.

10:09 Okay, so the way this needed to work is I

10:13 need to teach the computer how to study these images,

10:17 how to tell if something is working and something is not working.

10:19 And that was actually the most challenging part of this entire process.

10:22 Um because you end up with this this system

10:25 of losses of of weights of saying like hey if

10:29 this error is big minimize this error but if

10:31 this error is small you can ignore it etc etc.

10:34 So, here's an idea of what it took to basically treat

10:37 teach the computer how to um how to put all this together.

10:40 So, Christian, if you wouldn't mind opening up

10:42 one of the uh the debug images here.

10:44 Maybe not the very first one, but like something from halfway through.

10:47 And these are pretty gigantic images here.

10:49 Um and let's go ahead and zoom in to the top left corner here.

10:54 All right.

10:55 So, the first thing I had to deal with is the fact that, you know,

10:57 I had a lot of frames.

10:58 I had 200,000 frames of data, but that's not enough.

11:01 you need effectively infinite variations.

11:05 So I did everything from uh separating the background from the foreground,

11:09 doing color adjustments to the background, hue,

11:11 brightness, contrast, gamma, all that kind of stuff.

11:14 Same thing with the foreground separately from each other.

11:16 Um we gave them uh you know adjustments like aspect ratio,

11:21 squash them, squished them, things like that.

11:23 Some you know even some mirroring and that was just the input image.

11:28 So an input image comes into the system but now it needs to do some comparisons.

11:32 So basically what you give this system is you give it two things.

11:35 You give it an alpha hint and you give it a uh just your input image.

11:40 So your input image would be what's whatever's on the green screen.

11:42 Your alpha hint is just a black and white mask

11:44 saying hey this is what I want you to keep.

11:47 This is what I don't want you to keep.

11:48 So for example if you have tracking

11:49 markers on your green screen that aren't green.

11:52 You still don't want to keep those even though they're not green.

11:54 So you can't just say hey keep things that aren't green.

11:56 That's not intelligent enough.

11:57 So the alpha hint was kind of like my way of saying,

11:59 "Hey, if it's not lit up in the alpha channel, right?

12:03 Even if it's not green, ignore it.

12:05 And if it is lit up in the alpha channel, even if it is green,

12:07 keep it." And so it's kind of like that that guide because, you know,

12:10 you need a guide as an artist to be able to say like, "Hey,

12:12 this is what I want you to kind of hold

12:13 on to." So after that, the program does goes and makes a prediction.

12:18 It predicts the foreground unmixed from that green

12:20 screen and it predicts the alpha channel.

12:23 Now, I'm sure you guys are

12:24 familiar with premultiplied transparency and straight color.

12:28 Uh, so this is a system that's trained to give you that straight color output,

12:33 not a premultiplied output.

12:34 The idea there is that you're basically teaching the computer

12:37 to fully guess the color of that foreground pixel, even if it's only 1% opaque,

12:44 because at some point you're going to need to take that thing,

12:46 you're going to need to have the background color be removed completely,

12:49 tweak the alpha channels, do all all this kind of stuff to it.

12:52 And so that that straight color pass is truly

12:54 the pass that you're going to want for compositing,

12:56 but that's something that's physically impossible to capture with your camera,

13:00 but you can use a machine learning model to get it.

13:01 So all right, so the program spits out the predicted foreground,

13:06 the straight color foreground, and it spits out the alpha channel.

13:08 So now if we go to the top left once again, that's fine right there.

13:12 Um, so you got these two pictures of the guy on the left here,

13:16 we have the ground truth.

13:17 So inside the training program, it does some compositing.

13:20 It takes the input foreground, the ground truth, the rendered shot,

13:24 and it puts it on a random color background.

13:26 And it does the same thing for the predicted output.

13:28 Puts on the same random color background.

13:30 Then it compares the two.

13:32 Lucky for us, color is a pretty easy thing to define on a computer.

13:36 Red, green, blue, values between zero and one.

13:39 Very straightforward.

13:40 Works great for a neural network.

13:42 Values between zero and one is exactly how a neural network likes to work.

13:45 So you can do a simple loss comparison where you

13:48 just subtract one from the other and get the difference.

13:50 How big is that difference?

13:51 Well, how far apart are the pixels in terms of their RGB values.

13:54 So that measurement gets done between these two images.

13:58 But what if your hue, your color is off just a little bit on one of those edges?

14:03 Your RGV values might not be very far apart,

14:06 even though your hue is noticeably broken.

14:08 So not only do I do an RGB comparison between these two,

14:11 but I do what's called a Y, you know, a YUV color space comparison.

14:14 If you're familiar with YUV color space,

14:16 you basically have your your luma channel, your brightness as Y.

14:20 And then U and V are your chroma.

14:22 So you take U and V and you can just do a subtraction between

14:26 the ground truth UV and the predicted UV to get your true chroma difference.

14:31 And you can take that and multiply it to amplify

14:34 any errors there to make them even more extreme.

14:36 So okay, so I got my comp on a random background.

14:39 The background color changes here for every

14:40 single P image that goes through the system.

14:42 That way it's unbiased.

14:43 It will compound any color.

14:45 It'll learn how to fix any color that's going on there.

14:47 It's unbiased.

14:48 But not only is it doing that, if we go a little further here to the side,

14:52 the same image gets comped onto

14:54 a neutral gray background with no color whatsoever.

14:56 So that way it can't cheat and just make the edge pixels purple and be like,

15:00 I fixed it because then the purple would show up here on the side.

15:03 So same exact comparisons happen.

15:05 RGB, YUV, and of course the UV part gets multiplied.

15:09 So any errors there get ampl amplified.

15:12 So now if we go down, we see the alpha channel.

15:15 Now of course YUV doesn't work for an alpha channel.

15:18 There's no chroma in it.

15:19 Um RGB doesn't even quite work for an alpha channel.

15:22 It's just one channel, right?

15:24 So the other thing with an alpha channel is that the inside is all white.

15:28 And once you've predicted white, your job is done in terms of the computer

15:32 and you're not going to get a lot of improvement.

15:33 Even if an edge pixel is messed up,

15:36 you're getting a bunch of signal from the rest of this image saying,

15:38 "Hey, things are fine.

15:39 It's supposed to be white.

15:40 It's white.

15:41 Don't worry about it.

15:41 that little pixel on the edge.

15:42 Don't worry about it.

15:43 But we want those pixels on the edge to be perfect.

15:46 So I made something called a spatial waiting map.

15:49 Boom.

15:50 Right there.

15:52 So basically what I did is I went to the ground

15:54 truth alpha channel and said any pixel that is semi-transparent,

15:58 treat that as an edge.

15:59 And in fact dilate that edge a little bit.

16:02 You know, give me a little highlighted

16:04 outline using those semi-transparent pixels as your guide.

16:07 Anything inside of that is considered foreground.

16:10 Anything outside of that is considered background.

16:12 And of course, then you have the edge itself.

16:14 So now I can take that and make a multiplier

16:17 based on where the pixel is in the in the image.

16:20 So if the if the pixel is in the edge in that little highlighted white area,

16:26 you can multiply it that difference.

16:28 If you're doing like an RGB minus RGB difference,

16:30 you can multiply that by five, by 10, by 20.

16:32 Same with the YUV.

16:33 So, not only can you emphasize just the chroma by doing

16:37 like a YUV comparison and multiplying the difference between the YUV,

16:40 you can also do spatial weighting and multiply

16:43 the difference by where it is in the image.

16:45 And so, I use that spatial weighting to really really

16:48 really focus the neural network onto the edges of the image

16:51 to really make sure that any like differences between

16:53 the ground truth and the predicted result were getting amplified 10fold,

16:58 15fold, 20fold if they were on the edge.

17:01 So that that signal was just as strong as the signal

17:03 on the center of the image or the outside there.

17:06 Um if you go a little further here, we can see some other visualizations.

17:09 You have a difference mat between like a predicted output and the ground truth.

17:12 In fact, let's go all the way to the top right here.

17:15 Right there, that guy.

17:17 Um so this is the ground truth foreground output right there.

17:21 The the render.

17:22 And this is the predicted ground truth right here.

17:24 Or sorry, not the predicted ground truth.

17:26 It's an oxymoron.

17:27 This is the predicted foreground right there.

17:29 Now, you might notice the background looks all screwy in that.

17:32 The thing is it doesn't matter what's going on in this background

17:36 here because that never makes it into a final image.

17:38 That's going to get multiplied against a zero

17:41 for the alpha channel and that's going to give you nothing.

17:44 So if you try to have a neural network predict

17:46 what these pixel values should be in the background here,

17:49 you're effectively you're effectively entering

17:51 a divide by zero type of situation

17:53 here where it's going to go crazy trying to predict random noise

17:56 that doesn't actually affect the output and you're going to break your model

18:00 which I learned after a few weeks of trying to do this.

18:04 Um so there's a whole you know once again back to spatial weighting here.

18:07 I can say, hey, take that background,

18:09 those background pixels and ignore them completely or, you know,

18:12 add a little bit of a weight to them if needed to to try

18:15 to push it down towards black and that keeps it from breaking the model.

18:18 So, it was this combination of all these different

18:22 compositing pipelines within the training process that let

18:26 this program actually give me the result I

18:28 needed because otherwise I ended up with situations where,

18:32 you know, it would it would give me I mean,

18:33 the computer effectively learns to cheat, right?

18:35 If you don't wait it correctly, it might be like, "Oh, well,

18:38 you're trying to, you know, pull the color out of the background.

18:40 Well, let's just make all the edge pixels magenta.

18:43 That fixes it.

18:43 Gets rid of the green, right?

18:44 Problem solved." Like, well, that's not what I'm trying to do.

18:46 Or might be like, "Well, let's make all the edges uh black.

18:49 Let's just put a black pixel around there." Because you

18:51 have a big black background and with that black background,

18:53 if I make the edge pixels black, I'm rewarded for it.

18:56 I did my job.

18:58 You're like, "Well, no, that's not what I'm looking for either." So it

19:00 was this combination of compositing on a random background color,

19:04 causing on gray, doing RGB difference measurements,

19:07 doing YUV difference measurements, breaking out the chroma part of YUV,

19:12 multiplying that, breaking out the spatial weights,

19:15 multiplying based on where it was in the whole process there,

19:18 changing it as it went through the learning pipeline.

19:21 You might weigh something heavier at the beginning

19:23 till it starts to kind of figure

19:24 it out and it can ease off that weight and weigh other things differently.

19:28 And it was almost like making a soup or a stew,

19:31 but it took like a month to make.

19:34 Um, so after kind of working this over and over

19:39 and over and doing process after process after process,

19:42 honing in little by little on what was working, I ended up getting to a a spot

19:46 where I was getting results that were pretty good.

19:48 But the challenge is the Hierra backbone,

19:52 the the model that I was fine-tuning, you know,

19:54 the concept key, if you will, it's just a 512 x 512 image at the end of the day.

19:59 Uh, anything more than that just doesn't even fit on really any hardware.

20:04 Um, this is all being trained on an RTX 6000 Pro.

20:08 I was lucky enough to have one

20:09 of those machines put together by a Puget and Nvidia.

20:12 Um, and that let me, you know,

20:14 really crank this, put out some high quality stuff.

20:16 And I wasn't worried about optimizing it yet.

20:18 I wasn't worried about it running on anyone else's computer.

20:20 I was just worried about it running on my computer.

20:22 Um, so I got it working.

20:25 But that, like I said, that hyra backbone back backbone is only 512 x 512.

20:29 And if we want this to be professional,

20:31 you got to be able to see individual hairs, right?

20:33 It's got to be HD.

20:34 It's got to be 4K ideally, right?

20:36 Um, I want to come at this with no compromises.

20:38 I want this to work.

20:39 I want to be able to use this in my pipeline, not just be a tech demo.

20:42 So, what I end up what I ended up settling

20:46 with was I wanted a 2K by 2K image at least.

20:48 So, I at least had the vertical resolution of a 4K image.

20:51 And I like to think of it as an anamorphic 4K, right?

20:54 Just taking the sides and squeezing them in, you got your 2K x 2K image.

20:59 So, in order to get it up to that resolution,

21:01 there's a second step in this process,

21:03 which is something called a convolutional neural network,

21:05 which I actually don't know all that much about.

21:07 I kind of just said, "Hey, Gemini, take my hand." and uh then lead me um

21:13 which didn't work for weeks and weeks and weeks.

21:16 So I had to learn and do some research and read up on it online and eventually

21:20 I got something which I'm still not quite

21:21 sure exactly that you know the best principles

21:25 behind it to use but it's working and effectively what that does is it looks

21:28 at your your original incoming image the full res

21:31 image it looks at your predicted image which is

21:34 512 x 512 and goes okay well in the full res image I take this one

21:38 single pixel the 512 x 512 and look at the full res image I see little details

21:42 in there so let me put those details back in it's kind of like a extra smart

21:46 upres that gets to look at the source

21:48 footage to cheat and give you the upres version.

21:51 And once I had that working,

21:52 once I had the convolutional neural network plus the hyra back on fine-tuned,

21:57 I ended up with corridor key and it worked fantastically and it

22:02 blew my mind and it blew all of it blew's mind.

22:07 Um, and I was really proud of it and it was super cool.

22:10 But I don't want to stop there, right?

22:12 Like that's about as far as I could take things myself.

22:15 Uh, I also at a certain point need to make sure I don't just work on tools,

22:19 but I also take the time to then use them

22:21 for the things I wanted to use them for, which if

22:23 I were to just keep working on this and working

22:25 on this, I wouldn't ever stop and actually work on videos.

22:28 So, this was kind of where I entered

22:31 the second phase of working on corridor key.

22:34 And that's when I went to release open source,

22:38 which has been a fascinating experience.

22:40 And I should be, you know, upfront here, it's technically not true open source.

22:44 not yet.

22:44 Uh, for a variety of reasons, which I'll explain.

22:47 Um, but I'm very much figuring it out

22:49 as I go and that's been kind of my attitude.

22:52 I've been trying to be open about that and everybody's actually been

22:54 really supportive about that and okay with me like very publicly learning,

22:59 which should be a little scary sometimes, you know?

23:00 It's like, here you go.

23:01 And it's like, oh, it doesn't work.

23:03 Screw you, you know.

23:05 Um, so what I did is after I made

23:08 this, I released the model and the inference code online.

23:13 And I didn't release the training data yet.

23:15 I haven't released the training program that I made yet.

23:17 Um, but I basically put it out there.

23:19 I know we have an audience.

23:20 We have this fantastic story around it that Austin,

23:24 one of the editors at Corridor,

23:25 basically helped put together, which was the YouTube video that you guys saw.

23:28 And we put it up on our Corridor Discord, Corridor Creates.

23:33 And, you know, I've never really delved

23:35 into the world of software licenses and things like that.

23:38 Um, but I wanted to try to find a way to be able to release this for free,

23:42 let people use it however they wanted for free.

23:45 But I didn't want people to suddenly take it,

23:47 package it into a plugin, and start selling it.

23:49 Um, I wanted to kind of keep it for free

23:52 and keep it communal because the moment people start, you know, grabbing it,

23:55 and I'm I'm going to put this in a plugin and sell it here,

23:58 and I'm going to put this in a plugin,

23:59 sell it here, I'm going to put this in a plugin,

24:00 sell it here, it it fractures this whole concept

24:03 of people trying to come together and make it better.

24:06 Um, so by kind of limiting it to be like, hey,

24:10 you can all use it for free, but it's not commercialized.

24:12 Um, and you can commercialize it,

24:15 that kind of focus people to to work on it together.

24:19 Um, and kind of by leading by example, throwing it out there,

24:21 putting the whole story around it, explaining how it worked.

24:24 I got a lot of really passionate people that jumped into our community,

24:28 uh, into our Discord in particular, and really started working on it with me.

24:31 And the very first thing that happened was like when I made this it

24:34 it required you know 24 gigabyte GPU uh so you know 4090 3090

24:39 RTX 6000 like that kind of level stuff within a day people had

24:43 it running at on at six gigs um which is crazy uh you know

24:49 uh one guy who's a you know graduate student in machine learning came

24:52 he's like oh you've initialized a whole dimension that you don't need so I'll

24:55 just snip that and I'll even submit a patch to the official repo there

24:59 so they can fix them for you and and another person jumps and like,

25:01 "Oh, and your, you know, your CNN is way too,

25:04 you know, occupying way too much memory.

25:06 I can trim that down for you." And somebody else comes in like,

25:08 "Oh, you only take that from FP32 to FP16 and, you know,

25:11 have the have half the amount of RAM that you need." So,

25:13 within a day, like people optimize it.

25:15 It could run on, you know, not anything,

25:17 but it could run on, you know, normal GPUs.

25:20 The other thing is I didn't make any sort of graphic interface for this program.

25:24 It was all, you know, command line stuff.

25:26 That whole idea is that you drag in a folder full of clips

25:28 and you wait a couple hours and you get all your clips finished.

25:31 And once again, works great for us in our workflow here.

25:34 But, you know, for the vast majority of people, they want an interface.

25:37 And I totally get it.

25:38 It makes sense.

25:38 I like interfaces, too.

25:40 Um, so within two days, another user by the name of Ed came in and made

25:45 a graphic interface and just knocked it out of the park.

25:47 And because there's this whole like community

25:49 around it that's experimenting and trying things, you know, left and right.

25:52 He was getting feedback.

25:53 People are trying different things.

25:54 People were submitting ideas.

25:55 people are submitting poll requests and it was just like a matter of yeah truly

26:00 of a couple days until we had like

26:02 a full-blown graphic interface with tons of optimizations parallelization.

26:07 Um and it went from taking maybe four to 5 seconds

26:12 to render a frame to rendering effectively a frame every second.

26:16 Um which is pretty crazy to be able to knock out,

26:18 you know, one FPS on something like this.

26:20 Uh someone else on the discord just took it upon they made their they

26:25 they made it their life's mission to make this as efficient as possible.

26:29 Like truly they built a benchmarking system

26:31 that in in milliseconds defined every single process that this thing

26:36 went through and they got it running in real

26:39 time um on a dual 4090 system which is crazy.

26:44 First off crazy we have a dual 4090 system

26:46 but but the fact they got it running in real time is bonkers.

26:50 um you know not quite practical yet.

26:51 You know, you're not going to fire it up

26:52 in OBS and have it keying out your green screens yet,

26:55 but the experimentation is happening and it's happening in the open

26:58 and people are sharing knowledge around it and that's been really cool.

27:02 Um where we are at now is I haven't really had

27:08 the ability to see corridor key in use very much yet.

27:11 You know, I dropped it basically a month ago.

27:13 We've started using it a little bit.

27:15 We haven't actually shot all the green screen stuff for Son of a Dungeon.

27:17 So, I don't have like a deep personal experience with it yet.

27:21 And kind of the same thing's happening online.

27:22 People are using it little by little and I'm

27:24 getting to see what's working and what's not working.

27:26 And it's definitely scary releasing something into the world.

27:30 And like truly all I tested it on was the shots that you guys

27:33 saw there in the video with with the guys drinking water and, you know,

27:36 dancing around with clown wigs.

27:38 Um, I hadn't tested on anything else.

27:41 I had no idea this was going to work for people.

27:44 Um, but it did.

27:46 and it was working for people except it likes to flicker as you

27:50 guys probably know if your footage is noisy or you have chroma

27:53 compression or subsampling you're going to get a little flicker and that would

27:57 happen with regular keying tools as well unless you den noiseise it

28:00 and that was one of the things like okay I need to fix

28:03 that I need to figure out a way to fix that and once

28:07 again because of this this beauty of the community and this kind

28:10 of communal effort like true machine learning

28:13 professionals have joined in and they're like,

28:15 okay, you just need to add these couple things.

28:17 It will look at the frames before.

28:18 It'll make them temporally consistent.

28:21 And there's experiments going on right now

28:22 that are just completely removing the flicker altogether.

28:25 Um, and my hope is that, you know, in the next couple months to a year here, um,

28:33 we can take this to the point where it

28:36 becomes a tool that can run on most systems.

28:39 I don't think it's going to run on any computer,

28:40 but hopefully it can run on most computers.

28:42 uh it's fast and can handle truly whatever you throw at it.

28:46 Like that's that's what I want to achieve with this.

28:49 And you know, at this point,

28:51 the best thing I can do is just encourage other people and give

28:55 them that energy and give them that support to keep going with it.

28:58 Um because the my my knowledge of machine learning has been fully tapped out,

29:04 but my domain knowledge in the world of visual effects has not been tapped out

29:07 and my ability to tell a story and to like

29:09 rally people around this idea of, you know,

29:11 making your own paint brushes, so to speak.

29:13 You know, I I got plenty of that in me still, too.

29:16 So, it's been a really interesting journey so far.

29:18 Um, it's been really cool experiencing all this and it makes me really

29:24 think about what other tools are lying out there waiting for an artist

29:29 or somebody else to make because nobody else has made them yet

29:32 or a software company hasn't found the value proposition in making it.

29:37 Um, the ability to just kind of lay out your design,

29:41 pass it off to Claude or Gemini or whatever,

29:44 have it come back and give you a plugin.

29:46 It's a really brand new territory here

29:49 and something that I'm really excited about.

29:50 Like when I think about AI as a tool, like it's not specifically like, oh,

29:54 here's an LLM that does some crazy things or here's

29:56 an image diffusion model that does some crazy things.

29:58 It's, hey, you now as an individual have the tools and the power to sit down

30:04 and compose a neural network or AI for whatever it is that you need to do.

30:08 And yeah, it's going to take some time.

30:09 There's going to be trial and error and all that kind of stuff,

30:11 but compute is available for everybody.

30:14 And there's some crazy things you can do with it.

30:17 Um, and you know, I don't know what people are going to do with it.

30:19 I don't know if in, you know, 2 years from now we'll have crazy sound

30:22 tools that can remove the reverb from crappy audio,

30:25 you know, or tools that will automatically color match every shot, etc., etc.

30:29 But I'm really excited to kind of see what people do with this.

30:32 And of course, you know, it's not just artists,

30:33 but the actual professional software designers are

30:36 accelerating as well and doing interesting things.

30:39 So yeah, it's been uh it's been a journey and illuminating and really exciting

30:46 and I'm hoping to kind of just keep it going as best as I can.

30:51 So yeah, I think we should take a moment here and uh you know,

30:54 I want to say thank you to Nvidia Studio for helping with this as well.

30:57 Um but I want to ask you guys some not ask you guys some questions.

30:59 I want you guys to ask me some questions.

31:01 Uh give me an idea of some stuff you'd like to know.

31:03 What's next?

31:04 I just told you quarter key 2.0 with no flickering.

31:06 Oh, and quarter key for blue screens.

31:10 Well, what I'm really trying to figure out here

31:12 is where does the need for a green screen end?

31:17 And I don't mean in the sense like, oh, green screens are bad,

31:19 because I actually think green screens are a really handy tool.

31:22 You know, it's great as a filmmaker to be

31:24 able to have something that you can say, hey, consider this the background.

31:28 Like, you need some way to control things, right?

31:31 You need some way to direct things.

31:32 If you just say, "Hey,

31:34 just guess whatever the foreground is and remove it." Well,

31:36 there's going to be times when you're filming weird stuff,

31:39 abstract stuff on a green screen.

31:40 Like, imagine somebody walking into frame.

31:43 Sure, when they're in frame, it's like, "Oh, yeah,

31:45 clearly there's a human being there and AI can pick it up.

31:47 What about those like couple of frames when it's a blurry blob

31:50 on the edge of the frame as a person walks in the frame?

31:54 How are you going to dictate, hey, that's a person,

31:56 not the edge of the green screen, not some shadow that I want to remove.

32:00 I want to keep that." And to me,

32:01 the easiest way to do something like that is to be

32:04 like just to fall back in your traditional green screening concepts,

32:07 which is like, hey, if it's green, it's the background.

32:09 If it's not green, it's the foreground.

32:11 So to me, something like a green screen is still a really useful tool,

32:15 but you have issues like bounce light, you know, color contamination.

32:19 So is there a world where in the future the ideal screen is like

32:23 a pastel green screen or a gray screen or a white screen or something like that?

32:28 you know, something where it's like it's

32:30 a background color that the computer can at least

32:32 lean back on if it can't figure out

32:34 what it's looking at, but something that doesn't,

32:36 you know, uh, contaminate your image colors anymore or your foreground colors.

32:40 Um, so there's this whole question of like

32:43 if you have this kind of keying intelligence, this matting intelligence,

32:47 how does it affect the physical world

32:48 of what you're filming and what you're doing?

32:50 And that's kind of the experiment that we're getting into right now.

32:53 But before I get into any of that stuff,

32:54 the very first thing we need to do is finish Son of a Dungeon.

32:57 Uh because then I can actually see how it works and I can learn and I

33:00 can tweak things and the code's right there and I can adjust it on the fly.

33:05 So yeah.

33:05 All right.

33:06 Thanks Ram.

33:06 That was a good good prompt.

33:08 Uh does anybody have any questions?

33:10 Yes.

33:11 So two questions.

33:12 Is there going to be an official four-door key open effects plug it?

33:16 So you can put it into like pitch revolve something like that.

33:19 The second one for the other part with green screens is transparent objects.

33:25 So, I know it doesn't do object detections,

33:27 but could we see potentially a like refraction map or a distortion

33:32 map for like blasts of water or something like that?

33:37 Okay, good question.

33:37 Uh, all right.

33:38 So, two questions here.

33:39 First one was, is there going to be an official cord key plugin,

33:42 like an official OFX plugin?

33:44 Maybe.

33:44 I know that's not a very good answer to your question.

33:47 Um, but there is an OFX plugin already.

33:50 uh a guy named Al in uh Brazil has been working with me making

33:54 a runtime C++ tensor RT something uh OFX plugin and it works pretty dang good.

34:03 Um there's actually a bunch of After Effects plugins that are out as well.

34:06 Um I don't know where Nuke is at currently.

34:09 Uh I don't know where other tools like Baselite are at currently.

34:12 My hope is that they're in progress and that people

34:15 are working on them and I'd fully encourage it.

34:17 uh you know, if there's anything I can do to help encourage that, that's,

34:20 you know, kind of what I'm trying to do here.

34:21 Um, but the OFX plugin is is great.

34:26 Uh, it works really well.

34:27 You can download it right now for free.

34:29 Uh, it will always be free to download.

34:31 Um, the uh the second part, what was the second question?

34:36 I got you invested in the first.

34:37 Oh, yeah.

34:37 Transparency.

34:38 Okay.

34:39 So, I've saw this question a few times on the Discord as well.

34:41 What do you deal how do you deal with refraction?

34:43 Right?

34:44 You see it.

34:44 You know, somebody has glasses on and in real life, of course,

34:46 you can see the background distorted through their glasses

34:48 when they turn their head to the side.

34:49 But on a green screen, it just becomes full trans fully transparent, right?

34:52 It's not how glasses work.

34:54 It's not how refraction works.

34:56 Well, at the same time that this whole keying

35:00 stuff is happening and map prediction stuff is happening,

35:03 there are also models out there that are predicting normals,

35:06 uh, depth, um, albo maps, specular maps, things like that.

35:11 And a lot of what we're doing here is meant for this pipeline.

35:14 We're going to be using beeble um for the son of a dungeon stuff because

35:18 that's like a fully built uh almost

35:21 like material prediction pipeline for your footage where

35:24 you give it your footage keyed ready to go and it goes okay I'm going

35:28 to predict all the normals how the surface is you know where surface is facing.

35:31 I'm going to predict uh you know what's

35:33 the colors there without any shadows or lighting on them.

35:35 I'm going to predict how shiny things are.

35:37 And with that, then you can throw it

35:38 right into a program like Unreal Engine and you

35:40 can relight your real footage in Unreal Engine

35:43 or Blender or you whatever any program, right?

35:46 Any 3D rendering program.

35:48 And my thought when it comes to transparency,

35:50 as long as you predict the transparency

35:51 correctly and you subtract that background color so

35:54 you don't have like a green tint in your glasses in order to get refraction,

35:58 then you have to lean on your normal prediction.

36:01 Um, you know, what's the curvature of that surface?

36:04 Uh I did see a really fascinating idea somebody had which was

36:07 to make another synthetic data set with um UVs uh basically UVs mapped

36:14 out as another output so you can train the program to predict

36:17 what the UVs are for the things that you're looking at um which

36:20 is a crazy concept but once again as this stuff gets out there

36:25 and my plan is to release the the training data and the training

36:29 program which once again it's it's a vibecoded you hobby fest like

36:35 it's probably not that great but at least it can start right.

36:38 Um once that's out there somebody else be like oh well

36:40 let me just render out these passes instead go you know

36:43 wait a few days and end up with a model that's

36:45 trained to predict a different kind of output but running running out

36:47 the same structure and of course if somebody else comes out

36:49 with a different backbone model to try or a way to train

36:52 a model from scratch ideally because this is open in the community

36:56 people can kind of jump in and do this kind of stuff.

36:58 So I would encourage you to give it a shot.

37:01 Honestly, you know, it's uh maybe like my plan is to release the uh

37:05 the training data and the training program

37:06 once there's a good plugin for every program.

37:10 So I figured, you know, for it's one thing to have the model,

37:12 it's one thing to have the inference ability,

37:14 it's another thing to have the tool.

37:16 And that's a big thing I realized like cool, I finished it, it works great.

37:18 And I release it and people like, oh,

37:20 this is like a command line interface that requires 24 gigabytes of VRAM.

37:22 This is useless.

37:23 I was like, yeah, they're right.

37:25 I need to be able to actually just use it in the program that I use.

37:27 everybody needs to be able to use it in the program that they use.

37:30 So once you can fire up After Effects, Dinci Resolve, Fusion, Nuke,

37:34 etc., it's, you know, download for free or it's there or whatever.

37:37 And you can just use it.

37:39 Once it's that easy, then I'm like, okay, put the training data out there,

37:42 put the training program out there, let people go to town.

37:45 You know, at least it's been centralized, it's been demonstrated.

37:48 you know, there's a a a focal point

37:50 for when people train new models or new ideas.

37:53 There's an architecture on how it can then get utilized in software,

37:56 which is a whole second step from the first

37:58 step of just train it in the first place.

38:01 Um, so that's where that's at.

38:02 All right, I'll take another question.

38:03 Yes, you're testy.

38:06 Did you consider using apps or flag?

38:16 Cool.

38:16 Thank you.

38:16 Um, so his question was, "What do you think about doing like a dark

38:19 gray or black background?" Something I thought about.

38:22 Um, it comes down to being able to queue in the computer

38:25 as to what you want to keep as foreground and background.

38:27 Uh, let's say you're filming a miniature exploding and a bunch

38:30 of tiny little black particles go flying off into the air.

38:34 How do you know if those aren't tracking markers?

38:35 How do you know that those aren't background?

38:36 Right?

38:37 So, I think there is a certain point as a person filming, as a filmmaker,

38:42 you still need to step up and help the computer a little bit.

38:44 And that's where I think at the very least a light gray might be the way to go.

38:47 So you still get your bounce light but it's not contaminated with the color.

38:50 Or you go with a hue, you know, a touch of magenta or tan or green

38:55 or something like that so that worst comes to worse,

38:59 you can still just fall back into a key.

39:00 That's one of the things I like about filming

39:02 on a green screen is I can still use color keying, right?

39:04 Like color key tools still exist and they're still not they're not bad.

39:07 Like they're pretty great.

39:08 It's just that this is one click uh close to one click and that's the idea.

39:12 you know, this gets you there quickly and painlessly as much as possible.

39:16 That's the goal.

39:18 So, I don't quite know what the end result will be.

39:20 And frankly, my hope is that once again, people experiment, right?

39:24 It's just a matter of kind of setting up your computer

39:26 to kick out some renders for a while and then

39:28 setting up the training program to chunk on those renders

39:30 for a while and then you'll have a different model.

39:32 You could train a gray model, you could train a an orange background model,

39:35 you can train a blue model, etc.

39:37 So, yeah.

39:39 Uh, you mentioned Gemini a couple times.

39:41 Is there a reason Gemini was your go-to?

39:43 Good question.

39:44 All right, so I did mention Gemini a couple times,

39:45 and I'm sure everybody's like,

39:46 "Well, why aren't you using Claude?" Um, it's because Gemini is cheap.

39:52 Uh, for 20 bucks a month,

39:53 I can basically get unlimited Gemini, and I don't get unlimited Claude.

39:57 Uh, the other thing is that the challenge here wasn't so much the programming.

40:02 Um, it was the design.

40:04 And frankly, you need to be able to write the entire program

40:08 in plain English to the exact details of how the compositing formulas work.

40:13 Once you can do that, you can throw it almost any LLM.

40:16 Doesn't need to be clawed and it'll get the job done.

40:19 And that's basically what I needed to do here.

40:21 The other thing I learned is that, you know, LLMs,

40:23 they're great at taking structured language and turning

40:26 it into, you know, script code, etc.

40:28 They're great reasoning logic machines.

40:31 They don't understand images whatsoever.

40:33 So when I'm comping an image,

40:34 it doesn't know what premultiplied is or straight or linear or sRGB sRGB

40:40 versus 2.2 do like gamma gamut like all these things are you know even

40:45 though it thinks it knows it doesn't know them and constantly I was

40:48 dealing with issues where because I had to do basic code a compositing pipeline

40:52 for this you know for all the testing that the you know that the loss

40:56 and the weights go through as a pro model is trained and decided

40:59 to program in like okay let's let's take in this sRGB EXR file let's

41:04 convert it to linear let's unpremultiply it

41:08 let's comp it on this background And then, you know, we go through it like, oh,

41:11 it's using the premultiplied compositing formula,

41:15 not the straight color compositing formula.

41:16 So, little by little,

41:17 you go and you find these little problems and you have to lay it all out there.

41:20 And, you know, maybe in the future the highest

41:22 end LLMs will catch that kind of stuff,

41:24 but my experience has been that you really have to bring

41:27 your domain knowledge and then the LLM like Gemini will do the coding.

41:31 And at that point, Gemini was completely capable for what I was,

41:34 you know, what I was needing.

41:36 Yeah.

41:37 All right.

41:37 Any other questions?

41:39 Nice correlative peppers.

41:54 A lot of the white background.

41:58 It is interesting to see that.

42:03 Yeah, good question.

42:04 Okay, so the question was how do you

42:07 deal with things like background objects like a light,

42:10 a stand, the edge of the green screen, edge of the green screen.

42:13 Um, so that's where something called the alpha hint comes into play.

42:17 So my thought was rather than having the program completely

42:21 guess what the foreground and the background is supposed to be,

42:23 once again you're an artist, you're a filmmaker,

42:25 you can at least give it a hint, right?

42:27 Aka an alpha hint.

42:28 You can pull a green screen key and just be like, "This is the background.

42:31 This is the foreground.

42:32 Here's a black and white image that shows that." Or you

42:34 can do a magic mask or roto brush pass or whatever.

42:37 Like it doesn't need to be good.

42:38 Just a way to be like, hey, if it's white pixels, it's a foreground object.

42:41 If it's black pixels, it's a background object.

42:43 Even if it's not green and it really comes down to control.

42:46 Like you need a way to control your shots.

42:49 Like you can't just be like, AI, take the wheel.

42:51 Help me.

42:52 Like you got to have a way to tell it what you want to keep.

42:55 Um and so that's why I rely on this whole alpha hand concept where,

42:58 you know, pull a quick key.

42:59 It doesn't matter.

43:00 Or use magic mask, but just be like, I want this.

43:03 I don't want that.

43:04 And then the model ideally is intelligent enough to divide it from there because

43:08 the the actual separation of foreground

43:10 from background isn't happening through a chroma process.

43:13 The chroma really only comes into play

43:15 when it's that unmixing on those semi-transparent edges.

43:18 There's also this concept of like not reinventing the wheel.

43:22 There are research projects out there that are so good at alpha extraction,

43:26 like amazing immaculate alpha extraction.

43:28 There's re research projects out there that do so many different things.

43:31 I didn't want to have to reinvent that.

43:32 I just wanted to really focus on the whole

43:34 unmixing side of things and just making it usable

43:37 one click or as close to one click

43:39 as possible for our workflow and then go from there.

43:42 Yeah.

43:44 Weird question.

43:45 How do you think it would handle retrofosing retroreflective compositing?

43:50 Um, it probably handle it fine, honestly.

43:54 Yeah, you know, it's uh I think it probably handle it.

43:56 I I'm very surprised at how capable this system

44:00 is at pulling the foreground from the background,

44:03 whatever the background might be.

44:05 Um, but just as long as I kind of like a flat wash of color,

44:08 it could be anything.

44:10 Um, yeah, you know, but it's also one

44:12 of those things where I don't know until people try it

44:15 and it's only going to get better if people

44:17 try it and kind of give feedback to each other.

44:19 So, yeah, with dealing with things out of focus, I keep on the background.

44:25 say the shot request to finish this talk to each other.

44:29 Uh, do you think it'll be helpful to deal

44:31 with that sort of mouse stream or is that like

44:35 Okay, so the question was how do you like when dealing

44:38 with really out of focus stuff like an over the shoulder shot, right?

44:40 Uh, over the shoulder f 2.3 or something like that, you know,

44:44 it gets really blurry.

44:46 Um, it handles it pretty well actually currently.

44:48 Um, I really made sure that the data set

44:51 that I was feeding it contained extremely blurry shots,

44:55 extremely motion blurred shots, fine hairs,

44:58 other crazy kind of things like that.

45:00 Um, like I basically made sure that there's a render that documented

45:05 every single problem I've had to deal with over my, you know,

45:08 20 plus years of compositing stuff.

45:11 Um, so that as long as I can handle it in the data,

45:14 I knew I can handle it in real life.

45:15 And it generally does.

45:17 I mean, if you go really extreme and you have

45:19 a gradient across the entire frame of opacity, yeah, you know,

45:25 you still got to like try a little

45:26 bit to like treat your green screen with respect, but it handles it pretty well.

45:32 And I think that's a sign of it working how it should.

45:34 Um, to me, the the stress test I would

45:36 do is I'd throw like really transparent smoke at it.

45:38 Um, you know, wispy smoke elements, things that are already keyed.

45:41 I'd recomposite them on green so I'd have that ground truth still.

45:44 I just see how well it could do.

45:46 And it did a pretty dang good job.

45:48 Yeah.

45:50 Yeah.

45:51 All right.

45:52 Any other questions?

45:55 All right.

45:56 Well, guess I answered them all.

45:57 Okay.

45:58 Yes.

46:01 Oh, I are any looking cors.

46:08 Yeah.

46:08 So, the real time is tricky uh with machine learning stuff.

46:11 A big thing I've learned with this is that getting a machine learning model,

46:16 a neural network to run on your computer the correct way is really challenging.

46:22 Um, you know, by default your computer likes to run things

46:25 as a single thread on the CPU and call it a day,

46:28 which is fine if you're just going to, you know,

46:30 change some folder names or do some basic math.

46:33 But if you're going to run, you know,

46:36 long matrix multiplication and try to fire it

46:40 on all thousand of your CUDA CUDA cores or something

46:42 like that, you need to be able to talk

46:44 to your hardware in a really specific way.

46:47 And that's been a bit of a challenge.

46:49 Um, I mean, there's definitely tools for it.

46:51 Like if you're set up correctly, you have the proper,

46:54 you know, most recent drivers, you have the proper pietorch, etc., etc.

46:57 Like you can make stuff sing.

46:59 The problem is that a lot of people I mean there's

47:01 a technical barrier between just installing a program and then making sure

47:04 that you have all the proper necessary drivers and dependencies and I

47:10 guess triggers and flags to really make things work correctly on your GPU.

47:14 And we're also kind of in an era where that hardware

47:17 has been kind of rapidly evolving over the past couple years.

47:19 It's like you go back to hardware older

47:21 than four or five years from, you know, ago, like 2020 and earlier,

47:24 and you start to really lose the abilities

47:26 to put the stuff through a network fast.

47:30 Um, and at this point, I can just kind of, you know,

47:33 just put it out there and hope that people

47:35 will work together to solve those things with that hardware.

47:39 Have any of you guys used quarter keys?

47:41 Has anybody experimented with it?

47:43 What was your experience like?

47:46 Really, really good.

47:47 Okay, that's good.

47:49 What kind of shot were you keying?

47:51 Uh just a basic green screen stuff and I did a I use Blender a lot

47:54 so I made a lot of like shots

47:55 with blurry backgrounds smoke and it was very impressive.

47:59 Okay, that's I'm glad to hear it worked for you.

48:00 Um what kind of system are you using?

48:03 Um I have a I have a 20 or 30 I have a 350 and a 370.

48:10 I ran on both.

48:11 Uh but I also have a 10 1080 that works on a 1080 too.

48:15 It was fine.

48:15 I mean it took a while but yeah it worked.

48:20 Yeah.

48:20 You know like the the next steps for me

48:22 besides just trying to make the plug-in better and foster

48:25 that community development is also try to just make sure

48:28 that like I'm learning a lot about software licensing this process.

48:31 like right now it's it's under like a creative common license uh

48:34 that uh protects against non-commercial but I'm

48:37 learning that creative common doesn't really apply

48:39 to code and yada yada so just little by little day by day

48:43 talking to people and they're guiding me through it but at the end

48:45 of the day as long as people are kind of coming together

48:48 into a central point and I can like maintain that energy I feel like we

48:54 can make it happen right we can make green screens easy feel like

48:58 somebody would have done this six years ago but at least it's happening now.

49:03 Yeah.

49:04 Um, let me see how much long we got left.

49:06 That's kind of everything.

49:07 We got a few more minutes.

49:08 Um, yeah.

49:10 I guess anything else?

49:11 Any other questions?

49:12 Anything that people want to know?

49:13 We got one in the back there.

49:14 Yes.

49:15 So, what is the advantage of?

49:21 Oh, good question.

49:28 Gotcha.

49:29 Okay.

49:30 Uh you guys familiar with the sodium vapor process?

49:32 The most mathematically precise way to pull a mat these days.

49:37 Uh so the question was why didn't why aren't we using sodium vapor?

49:40 Um sodium vapor is very cool but it's very specific for how it can be used.

49:45 A couple challenges.

49:46 One because we don't have the magical Disney prism that has

49:50 the uh split in the middle the splitting wave wavelengths of light.

49:54 We have to take our light split it first and then filter it.

49:57 What that means is that every exposure

49:59 is getting half the light it would otherwise.

50:02 So you start really having a blaster set with light.

50:05 The other challenge is it's a rig with two cameras.

50:07 So the challenges of shooting stereoscopic apply to shooting uh sodium vapor,

50:12 which is to say you have to have

50:13 two cameras perfectly lined up, same focal length.

50:16 If you're going to pull focus,

50:17 you have to pull focus across both cameras simultaneously.

50:20 If you're going to zoom, you have to zoom across both cameras simultaneously.

50:23 Um so there's definitely restrictions of sodium vapor.

50:27 The thing I haven't done that would be interesting

50:30 to try is to make a data set using sodium vapor.

50:32 You know, take the time, set it up, put on a tripod,

50:34 put in the background, you're not going to pull in focus, whatever.

50:36 Make life easy, right?

50:38 Take that, record real life footage, get a bunch of different stuff,

50:41 and then you have your perfect alpha channel mask,

50:44 you have your perfectly unmixed foreground, etc.

50:46 That would be a a really interesting way to use sodium vapor,

50:49 but I think using sodium vapor in real

50:52 life is really relegated to very specific setups.

50:55 you're not pulling focus, you're not pulling zooms.

50:58 Camera could move, but you're going to be dealing with a lot of hardware there.

51:01 You know, some ideas that people had mentioned back when they made the sodium

51:03 vapor video with Paul here was using sodium vapor for uh the backgrounds

51:08 of sets like when you're in like a in a skyscraper apartment set

51:11 or anything else a lot of reflection and glass and that kind of stuff.

51:14 Things that would be tough green but aren't so bad when you have

51:16 like a perfectly physically filtered system that's

51:19 giving you that kind of, you know, perfect wavelength of light.

51:22 That's a good question.

51:23 Sodium vapor is really cool and it's like

51:24 our touch point for like the ground truth.

51:26 Like if we can hit that quality, then we're good.

51:29 We're not quite there yet.

51:30 Not even with Corey.

51:31 It's still not quite as good as sodium vapor, but it's way easier to set up.

51:35 Yeah.

51:36 All right.

51:37 Any other questions?

51:40 Yeah.

51:40 I've coded before.

51:43 Uhhuh.

51:42 I've hit a lot of roadblocks.

51:45 Uhhuh.

51:45 What were things you learned along the way?

51:47 I tried doing like a nonlinear editor and just troubleshooting bugs,

51:51 all that kind of stuff.

51:52 Yeah, very very hard.

51:53 So, when it comes to vibe coding, Nico's vibe coding tips.

51:56 All right, five minutes of Nico's vibe coding tips.

51:58 Uh, I'm by no means a professional, but I quite enjoy doing it.

52:02 Um, make sure you're using an intelligent like IDE like cursor or anti-gravity.

52:09 Uh, I use anti-gravity personally.

52:11 Um, it makes your life way easier.

52:13 You're not just deal with copy and pasting

52:15 and chunks of code and all that kind of stuff.

52:17 The other thing is to really make sure you take

52:19 your time to plan and to write out your plan,

52:21 whether it's by yourself or with an LLM.

52:23 It could be separate.

52:24 It doesn't need to be in, you know,

52:26 your coding environment, but plan everything out.

52:29 Um, another really important thing to do is to look up previous research.

52:34 Um, find other papers that have been published that deal with the same problem.

52:39 Read up on them.

52:40 If there's something that you don't understand, take the time to understand it.

52:43 Whether it's, you know, Claude, what does this mean?

52:45 explain it like I'm five, you know, or whatever.

52:48 It doesn't matter.

52:48 Just try to wrap your head around it.

52:49 Um, I'm a big believer that even

52:51 the most sophisticated advanced concepts can be understood

52:55 if they're phrased the right way by almost

52:57 anybody and you have like the right foundation, the right nuance to get there.

53:01 Um, I guess I would say the other thing was just uh,

53:05 you know, building it modular.

53:07 Uh, don't try to do everything at once.

53:09 Build it piece by piece.

53:10 Don't let the the LLM go to town on your entire codebase.

53:14 It's going to screw things up.

53:15 it just it doesn't have that awareness.

53:16 You know, you really have to think of it almost like a translator.

53:19 Um you're writing the book,

53:20 the translator will get it into the appropriate, you know, language for you.

53:24 Um but if you're not writing the book,

53:25 the translator can't sit there and just invent the story points for you.

53:28 So that's I would say, you know,

53:30 the pitfalls and things to think about to look out for.

53:32 Um one really cool thing is that as your program is being made,

53:37 if the LLM does something that you don't understand, take the time to say, "Hey,

53:40 explain to me what you did." And walk through it from there as well.

53:43 So, it's really really important that you steer the ship.

53:46 And it's really easy to not steer the ship,

53:48 but that's when things will fall apart.

53:53 Yeah.

53:52 Okay.

53:53 Anybody else?

53:56 That's really Oh, yes.

53:59 I don't know too much about that.

54:01 I said pop up like Steve, but tell us a little bit about that.

54:09 Yeah.

54:09 Yeah.

54:09 Okay.

54:09 Uh so the question was to talk a little

54:11 bit about the Bible integration here and the process there.

54:14 So Bibble it's a funny name um is a AI piece of software

54:19 that will take your footage um it can do an AI roto on it.

54:23 It will predict normals it'll predict albido specular etc.

54:26 And then it also offers a very kind of fast pipeline

54:30 to put that into some 3D software package of your choice.

54:33 One of the really interesting things about

54:35 it is the compositing aspect of visual effects kind of gets blended with your 3D

54:41 layout and rendering side of your pipeline.

54:44 And it's kind of a a change up and in a really magnificent way.

54:49 Let's say you're going to be doing a shot

54:51 in Unreal Engine walking down the dungeon halls, right?

54:55 You got torches burning and you got dungeon steam,

54:58 I don't know, in a skeleton in front of you or something.

55:00 Dungeon steam.

55:02 Um, those are things that you'd have to deal with, uh,

55:05 compositing in layers, like either going to deal with like,

55:07 you know, depth compositing or you're going to deal with just,

55:09 you know, rendering all your assets.

55:10 You pock them into whatever compositing program you're

55:13 in, stick things on top of each other,

55:15 tweak the color levels, get the bloom right, etc., etc.

55:18 But now if your if your footage of your actor

55:22 lives in the 3D scene and has normals,

55:25 so it's lit by that scene and it has the proper

55:28 specular and highlights and that kind of stuff and it's motiontracked.

55:32 Well, now when you render out the scene,

55:33 you're rendering out one unified image where all those elements

55:36 are being comped in that scene as it's rendered,

55:39 you know, uh, physically based and it's, you know,

55:42 any lens effects are happening to the entire scene as one full stack.

55:45 And so it it skips over some

55:47 of this chunkiness that happens when you kind of have

55:50 to like fake things all being in one

55:52 composition versus just being in one actual composition.

55:55 So we're really excited about that because when

55:57 it comes to this this D&D show, you know, the idea is that we're going to be

56:01 literally in the game board that we filmed on.

56:04 Uh you know, the whole game board was built in 3D.

56:06 It was 3D printed and painted, but we still have the 3D files.

56:09 So we played this game,

56:10 but now we can be in the actual game board at the same time.

56:13 And uh you know if you're dealing with Dungeons and Dragons,

56:16 you're dealing with many many minutes of footage.

56:18 So you know film your actors in the green screen once,

56:21 take a two-minute shot, bring it to life in that world,

56:23 skip the compositing step, just everything's in Unreal Engine or everything's

56:26 in Blender and just hit render and you're done.

56:28 So that that's the whole idea here.

56:31 You can kind of see some examples there of, you know,

56:33 the the older versions of Son of a Dungeon.

56:36 Um yeah, so that's kind of where things are at and it's really exciting.

56:41 Uh, you know, it's cool to see the turnout here,

56:44 you know, for learning about quarter key and talking about it.

56:47 Um, there's something really fulfilling about making a tool

56:52 and then people actually finding use from that tool.

56:54 It's uh, it's a very good feeling.

56:56 Uh, hard to describe.

56:58 Um, so I'm really really happy with that and it's really

57:00 energizing and keeps me wanting to go and make more stuff.

57:04 So yeah, thank you to everybody uh, for coming out and joining us here.

57:08 It's super cool to see everybody.

57:09 It's good to be back at NAB.

Study with Looplines Download Captions Watch on YouTube