PDA

View Full Version : Technicolor


tin3tin
28th June 2008, 12:00
I came across this (http://66.102.9.104/translate_c?hl=da&sl=ru&tl=en&u=http://art.photo-element.ru/photoshop/technicolor/technicolor.html) stuff about reproduce technicolor(google translated from russian).

Two video examples:
2 Strip Technicolor Process (http://66.102.9.104/translate_c?hl=da&sl=ru&tl=en&u=http://www.aviatorvfx.com/%3Fcmd%3DfrontendScreeningPopup%26id%3Dcolor%26video%3D1)
3 Strip Technicolor Process (http://66.102.9.104/translate_c?hl=da&sl=ru&tl=en&u=http://www.aviatorvfx.com/%3Fcmd%3DfrontendScreeningPopup%26id%3Dcolor%26video%3D2)

Anyone up for the challenge to reproduce this in avisynth? :)

Wilbert
28th June 2008, 14:06
I added such effect once to Colorlooks: http://forum.doom9.org/showthread.php?t=97706, although it seems a bit different as what they are doing?? It shouldn't be to hard to implement their process.

Malcolm
28th June 2008, 16:30
There is a free Photoshop filter from www.redpawmedia.com to produce the Technicolor-2 look. I don't know if there's a way to use PS filters in avisynth. If so, great! If not, then it's about time to write a wrapper plugin for that! ;)

mikeytown2
29th June 2008, 01:24
Here's my attempt, but it turns out :confused:
Orginal:
http://img208.imageshack.us/img208/2972/dscn11311vc5.th.jpg (http://img208.imageshack.us/my.php?image=dscn11311vc5.jpg)

Filtered:
http://img161.imageshack.us/img161/8497/dscn11312mz1.th.jpg (http://img161.imageshack.us/my.php?image=dscn11312mz1.jpg)


ImageReader("DSCN1131_1.JPG").ConvertToRGB32()
source=last

Red = BlankClip(last, color=$FF0000)
Green = BlankClip(last, color=$00FF00)
Blue = BlankClip(last, color=$0000FF)
Black = BlankClip(last, color=$000000)
White = BlankClip(last, color=$FFFFFF)

R = ShowRed()
G = ShowGreen()
B = ShowBlue()

R1 = Merge(G,B)
G1 = Merge(R,B)
B1 = Merge(R,G)

R2 = Overlay(Black,Red,mask=R1)
G2 = Overlay(Black,Green,mask=G1)
B2 = Overlay(Black,Blue,mask=B1)

MergeRGB(R2,G2,B2)
ConvertToYUY2()
Tweak(hue=-180)
ConvertToRGB32()
StackHorizontal(last,source)

xbox360
29th June 2008, 03:53
Any idea how to produce 3 Strip Technicolor Process with AviSynth ? the 3 Strip Technicolor Process is the one I have been looking forward to for year's ! please help me all the AviSynth Master's !

mikeytown2
29th June 2008, 10:58
Fairly sure this isn't it but i do like the results... it darkens the image no mater what you give it, because the RGB mask part is done on the original channel, instead of a solid.
Source:
http://img529.imageshack.us/img529/4729/dscn1137jx3.th.jpg (http://img529.imageshack.us/my.php?image=dscn1137jx3.jpg)

Filtered:
http://img300.imageshack.us/img300/862/dscn11373eq7.th.jpg (http://img300.imageshack.us/my.php?image=dscn11373eq7.jpg)


ImageReader("DSCN1137.JPG")
ConvertToRGB32()
BilinearResize(480,360)
source=last

Red = BlankClip(last, color=$FF0000)
Green = BlankClip(last, color=$00FF00)
Blue = BlankClip(last, color=$0000FF)
Black = BlankClip(last, color=$000000)
White = BlankClip(last, color=$FFFFFF)

R = ShowRed().ConvertToYUY2()
G = ShowGreen().ConvertToYUY2()
B = ShowBlue().ConvertToYUY2()

R1 = MergeLuma(G,B, 1)
G1 = MergeLuma(R,B, 1)
B1 = MergeLuma(R,G, 1)

R2 = Overlay(Black,R,mask=R1)
G2 = Overlay(Black,G,mask=G1)
B2 = Overlay(Black,B,mask=B1)

x = MergeRGB(R2,G2,B2)
Overlay(x,source, mode="chroma", opacity=1)

ConvertToYUY2().HDRAGC(corrector=1.0).ConvertToRGB32()
StackHorizontal(last,source)

kandrey89
29th June 2008, 11:56
Actually I think you got it down.
Not sure about a few steps, but seems like the results match Technicolor.

kandrey89
29th June 2008, 12:05
Just tried it on a few images, and it's not right, it increases the contrast a bit too much, may be beautiful on landscapes and skies, but not on living objects.

Comatose
29th June 2008, 14:03
I added such effect once to Colorlooks: http://forum.doom9.org/showthread.php?t=97706, although it seems a bit different as what they are doing?? It shouldn't be to hard to implement their process.
Link is dead :/

Wilbert
29th June 2008, 14:39
Fixed!

Comatose
29th June 2008, 15:00
I don't really understand though, how would you use ColorLooks to achieve the effect (or something similar) shown in the example in the OP?

Wilbert
29th June 2008, 15:34
I don't really understand though, how would you use ColorLooks to achieve the effect (or something similar) shown in the example in the OP?
It contains a filter called Technicolor. But like i said in my first post 'it seems a bit different as what they are doing??'.

Comatose
29th June 2008, 18:04
Well, yeah, I noticed that, but your filter seems to have a completely different goal... that is, the examples aren't anywhere near the result in the video, and you have to choose a single channel.
I'm having a hard time linking that to what they do here, even slightly oO

Revgen
30th June 2008, 09:21
Fairly sure this isn't it but i do like the results... it darkens the image no mater what you give it, because the RGB mask part is done on the original channel, instead of a solid.

I remember reading a book about how actors hated doing technicolor because the lights had to be alot stronger and much hotter to capture the scenes, so it's probably close to the right way.

mikeytown2
1st July 2008, 04:43
# Technicolor() - June 30th, 2008
# 3 Strip Technicolor Process
#
# Requirements
# HDRAGC()
# Thread: http://forum.doom9.org/showthread.php?t=93571
# Homepage: http://strony.aster.pl/paviko/hdragc.htm
#
# Inputs
# clip c: must be RGB
# float "Strength": range from 0 to 1
# float "Brightness": must be positive, default 1

Function Technicolor(clip c, float "Strength", float "Brightness")
{
#Define Defaults
Strength = Default(Strength,0.5)
Brightness = Default(Brightness,0.5)

#Check Inputs
Assert(Strength >=0 || Strength <=1.0, "Technicolor: Strength[" + String(Strength) + "] must be between 0.0 and 1.0")
Assert(Brightness >=0, "Technicolor: Brightness[" + String(Brightness) + "] must be positive")
Assert(IsRGB(c), "Clip must be in RGB color space")
c
Black = BlankClip(last, color=$000000)

#split clip into 3 colors
R = ShowRed().Greyscale().ConvertToYUY2()
G = ShowGreen().Greyscale().ConvertToYUY2()
B = ShowBlue().Greyscale().ConvertToYUY2()

#make 3 new color channels
R1 = MergeLuma(G,B, 1)
G1 = MergeLuma(B,R, 1)
B1 = MergeLuma(R,G, 1)

#merge orginal and new color channels
R2 = Overlay(Black,R,mask=R1).ConvertToYUY2().HDRAGC(corrector=Brightness,coef_gain=2*Brightness,reducer=0,max_gain=10)
G2 = Overlay(Black,G,mask=G1).ConvertToYUY2().HDRAGC(corrector=Brightness,coef_gain=2*Brightness,reducer=0,max_gain=10)
B2 = Overlay(Black,B,mask=B1).ConvertToYUY2().HDRAGC(corrector=Brightness,coef_gain=2*Brightness,reducer=0,max_gain=10)
MergeRGB(R2,G2,B2)

#merge new and orginal image
Overlay(last,c, mode="chroma", opacity=1)
Overlay(c,last,opacity=Strength)
}


I think this is it! I put it in a function and you can select the strength of the Technicolor filter. Requires HDRAGC() (http://strony.aster.pl/paviko/hdragc.htm). I use HDRAGC to increase the brightness, to turn off HDRAGC set it to 0.01, 0.0 sets it to about 1.4.

Revgen
1st July 2008, 06:11
It's "Greyscale" NOT "Grayscale". ;)

mikeytown2
1st July 2008, 06:13
It's "Greyscale" NOT "Grayscale". ;)

nice catch! fixed

Revgen
1st July 2008, 06:35
Here's my source.

http://rehostit.com/view/0ecda0

Here's my result using the default settings.

http://rehostit.com/view/267ad

It doesn't work well with yellow.

mikeytown2
1st July 2008, 07:23
@Revgen that was HDRAGC acting up. I tweaked the settings, Default is 0.5,0.5

Technicolor(0.5,0.5)


Brightness has changed

Revgen
1st July 2008, 07:48
Okay, here's the new one using your new script and the Technicolor(0.5,0.5) setting.

http://rehostit.com/view/75caacfcdb

It still has that amber tint to it, but at least it looks yellow now.
Definitely does resemble old movies a little bit.

Didée
1st July 2008, 07:59
#make 3 new color channels
R1 = MergeLuma(G,B, 1)
G1 = MergeLuma(B,R, 1)
B1 = MergeLuma(R,G, 1)
That's the part where things go wrong. MergeLuma(a,b,1) returns exactly the luma of b. You probably wanted to put a "0.5" instead of the "1" ... ?

Even then, after looking at the OP links, there is something else going on. For one, it's more likely to do some sort of multiplication (hard/softlight?) when combining the layers, instead of just averaging. Moreover, in that video, the mask made from the green channel does not correspond to the raw luma units: that mask is white almost everywhere, except for some small spots. It is not clear how the mask from the green channel is made.

I don't know the exact details behind 3-strip technicolor, either. But it's not what this script does. (Besides, they did not have HDRAGC back then.;) )

mikeytown2
1st July 2008, 07:59
It still has that amber tint to it, but at least it looks yellow now.


I think its a little green heavy, try adding this

RGBAdjust(g=0.9)

Revgen
1st July 2008, 08:12
I think its a little green heavy, try adding this

RGBAdjust(g=0.9)


This just makes it darker. It still amber either way. Anyhoo, it looks pretty impressive even the way it is now. The amber kinda has a rustic quality to it.

Revgen
1st July 2008, 08:15
(Besides, they did not have HDRAGC back then.;) )

No, but they did have hot lamps frying the actors on the soundstages. The lights had to hotter than for usual black and white movies since the technicolor process would darken the images otherwise.

mikeytown2
1st July 2008, 08:33
# Technicolor() - July 1st, 2008
# 3 Strip Technicolor Process
#
# Requirements
# HDRAGC()
# Thread: http://forum.doom9.org/showthread.php?t=93571
# Homepage: http://strony.aster.pl/paviko/hdragc.htm
#
# Inputs
# clip c: must be RGB
# float "Strength": range from 0 to 1, default 0.5
# float "Brightness": must be positive, default 0.5

Function Technicolor(clip c, float "Strength", float "Brightness")
{
#Define Defaults
Strength = Default(Strength,0.5)
Brightness = Default(Brightness,0.5)

#Check Inputs
Assert(Strength >=0 || Strength <=1.0, "Technicolor: Strength[" + String(Strength) + "] must be between 0.0 and 1.0")
Assert(Brightness >=0, "Technicolor: Brightness[" + String(Brightness) + "] must be positive")
Assert(IsRGB(c), "Clip must be in RGB color space")
c
Black = BlankClip(last, color=$000000)

#split clip into 3 colors
R = ShowRed().Greyscale().ConvertToYUY2()
G = ShowGreen().Greyscale().ConvertToYUY2()
B = ShowBlue().Greyscale().ConvertToYUY2()

#make 3 new color channels
R1 = MergeLuma(G,B, 0.5)
G1 = MergeLuma(B,R, 0.5)
B1 = MergeLuma(R,G, 0.5)

#merge orginal and new color channels
R2 = Overlay(Black,R,mask=R1).ConvertToYUY2().HDRAGC(corrector=Brightness,coef_gain=2*Brightness,reducer=0,max_gain=10)
G2 = Overlay(Black,G,mask=G1).ConvertToYUY2().HDRAGC(corrector=Brightness,coef_gain=2*Brightness,reducer=0,max_gain=10)
B2 = Overlay(Black,B,mask=B1).ConvertToYUY2().HDRAGC(corrector=Brightness,coef_gain=2*Brightness,reducer=0,max_gain=10)
MergeRGB(R2,G2,B2)

#merge new and orginal image
Overlay(last,c, mode="chroma", opacity=1)
Overlay(c,last,opacity=Strength)
RGBAdjust(g=0.99)
}


Thanks Didée for pointing that out, the function seems to behave a lot better now!

@Revgen, I believe you are correct
http://en.wikipedia.org/wiki/Technicolor#Limitations_and_difficulties. I notice a slight increase in green (Results of digital sensors?), thus I added RGBAdjust(g=0.99) at the end.

Revgen
1st July 2008, 09:03
This new script looks the same to me. Not that there's anything wrong with it.

mikeytown2
1st July 2008, 09:05
This new script looks the same to me.

compare the 2 with (1,1)

Revgen
1st July 2008, 09:23
Okay with (1,1) the old one is brighter while the new one is darker.

Old

http://rehostit.com/view/21f847c

New

http://rehostit.com/view/241fbd6971

2Bdecided
1st July 2008, 09:50
Some information about Technicolor here:

http://www.widescreenmuseum.com/oldcolor/technicolor1.htm

(10 pages in total)

Cheers,
David.

mikeytown2
1st July 2008, 23:34
Decided to rename the function to PseudoTechnicolor() after reading up. Also been playing around with solid black and solid white. For my latest take on Technicolor, i added levels() inside the function, and made Brightness default to 1.0 instead of 0.5.

# PseudoTechnicolor() - July 1st, 2008
# 3 Strip Technicolor Process
#
# Requirements
# HDRAGC()
# Thread: http://forum.doom9.org/showthread.php?t=93571
# Homepage: http://strony.aster.pl/paviko/hdragc.htm
#
# Inputs
# clip c: must be RGB
# float "Strength": range from 0 to 1, default 0.5
# float "Brightness": must be positive, default 1.0

Function PseudoTechnicolor(clip c, float "Strength", float "Brightness")
{
#Define Defaults
Strength = Default(Strength,0.5)
Brightness = Default(Brightness,1.0)

#Check Inputs
Assert(Strength >=0 || Strength <=1.0, "Technicolor: Strength[" + String(Strength) + "] must be between 0.0 and 1.0")
Assert(Brightness >=0, "Technicolor: Brightness[" + String(Brightness) + "] must be positive")
Assert(IsRGB(c), "Clip must be in RGB color space")
c
Black = BlankClip(last, color=$000000)

#split clip into 3 colors
R = ShowRed().Greyscale().ConvertToYUY2()
G = ShowGreen().Greyscale().ConvertToYUY2()
B = ShowBlue().Greyscale().ConvertToYUY2()

#make 3 new color channels
R1 = MergeLuma(G,B, 0.5)
G1 = MergeLuma(B,R, 0.5)
B1 = MergeLuma(R,G, 0.5)

#merge orginal and new color channels
R2 = Overlay(Black,R,mask=R1).ConvertToYUY2().HDRAGC(corrector=Brightness,coef_gain=2*Brightness,reducer=0,max_gain=10,passes=1).Levels(12,1.05,243,0,255)
G2 = Overlay(Black,G,mask=G1).ConvertToYUY2().HDRAGC(corrector=Brightness,coef_gain=2*Brightness,reducer=0,max_gain=10,passes=1).Levels(12,1,243,0,255)
B2 = Overlay(Black,B,mask=B1).ConvertToYUY2().HDRAGC(corrector=Brightness,coef_gain=2*Brightness,reducer=0,max_gain=10,passes=1).Levels(12,1.05,243,0,255)
MergeRGB(R2,G2,B2).Levels(3,1,252,0,255)

#merge new and orginal image
Overlay(last,c, mode="chroma", opacity=1)
Overlay(c,last,opacity=Strength)
}


For some interesting "sharping" effect chain it about 2-3 times like this
PseudoTechnicolor(0.7,1).PseudoTechnicolor(0.7,1)

um3k
2nd July 2008, 22:12
This plugin: http://www.videohelp.com/forum/archive/nice-results-with-avisynth-color-channel-mixer-t339327.html may be the key to emulating technicolor in Avisynth. For example, try this for a passable 2-strip effect:

ChannelMixer(110, -10, 0, -20, 120, 0, -80, 180, 0)

mikeytown2
2nd July 2008, 22:36
um3k, nice find, I think this is 3 Strip Technicolor Process


x=50
y=0
ChannelMixer(y,x,x,x,y,x,x,x,y).ConvertToYUY2().Tweak(180,2).ConvertToRGB24()


Which means in post 4, I would have had it if i would have changed Tweak(180) to Tweak(180,2). Do to rounding errors solid white (FFFFFF) becomes (FEFEFE).


Anyone have any ideas on how to break a clip into CMYK color space (http://web.forret.com/tools/color.asp) for the 2 strip process?

um3k
2nd July 2008, 22:45
Did you try the snippet I put in my earlier post? It gives a halfway-decent 2-strip effect without venturing into CMYK territory.

mikeytown2
2nd July 2008, 23:04
Yep, and i would like to try and get it exact.

Here are 3 screen shots of the movie from the first post
http://img394.imageshack.us/img394/2788/orginaltj7.th.jpg (http://img394.imageshack.us/my.php?image=orginaltj7.jpg)
http://img71.imageshack.us/img71/8854/3stripfs8.th.jpg (http://img71.imageshack.us/my.php?image=3stripfs8.jpg)
http://img354.imageshack.us/img354/3388/2stripnv9.th.jpg (http://img354.imageshack.us/my.php?image=2stripnv9.jpg)


Using the latest 3 strip, I Get this
http://img133.imageshack.us/img133/4647/my3stripac7.th.jpg (http://img133.imageshack.us/my.php?image=my3stripac7.jpg)

ChannelMixer(110, -10, 0, -20, 120, 0, -80, 180, 0) gives this
http://img394.imageshack.us/img394/3739/your2stripcj0.th.jpg (http://img394.imageshack.us/my.php?image=your2stripcj0.jpg)


Looks like there is still a lot of messing around to get this right...

mikeytown2
2nd July 2008, 23:41
Getting closer

last
x=100
y=-100
a = ConvertToRGB32().Levels(0,1,255,0,128).ChannelMixer(y,x,x,x,y,x,x,x,y).ConvertToYv12().Tweak(180,2)#
a = MergeLuma(a,last.ConvertToYV12()).Subtitle("3 Strip")
Interleave(a,last.Subtitle("Orginal").ConvertToYv12())


http://img357.imageshack.us/img357/8924/my3strip2bc3.th.jpg (http://img357.imageshack.us/my.php?image=my3strip2bc3.jpg)

tin3tin
3rd July 2008, 09:28
Very interesting work beeing done here. :)

This virtual dub filter (http://members.chello.at/nagiller/vdub/index.html) allows to work in CMYK.

And the last post here (http://forum.doom9.org/showthread.php?p=1018607&highlight=colormill#post1018607) shows how to use a virtual dub filter in avisynth.

(I've done several color processing post effects for DVD slideshow GUI this way)

One thing comes to mind when testing this is adding saturation+brightness/contrast to a home video source before processing it through mikeytown2 script might produce a more filmlike result thanks to a more dynamic/filmlike source.

mikeytown2
3rd July 2008, 11:31
It's my personal opinion that the example video is deceptive, as in it can not be blindly done. Nonetheless here is my latest attempt. Took out some green and added in Sepia (http://en.wikipedia.org/wiki/Sepia_(color)) (704214) at 10%.


last
x=100
y=-110

a = ConvertToRGB32().ChannelMixer(y,x,x,x,y+20,x,x,x,y).ConvertToYv12().Tweak(170)#
a = a.Subtitle("3 Strip").Overlay(BlankClip(last,color=$704214),mode="chroma",opacity=0.1)
Interleave(a,last.Subtitle("Orginal").ConvertToYV12())

http://img377.imageshack.us/img377/5963/3stripdp8.th.jpg (http://img377.imageshack.us/my.php?image=3stripdp8.jpg)

I'm out of ideas, and i think I've simplified this as far as it can go.


FYI this

ConvertToRGB32().ChannelMixer(-100,100,100,100,-100,100,100,100,-100).ConvertToYv12().Tweak(180)


is very close to this

ConvertToYV12().Tweak(0,2)



Which means that this is an interesting color highlight reducer. Bright color is made darker.

ConvertToRGB32().ChannelMixer(-100,100,100,100,-100,100,100,100,-100).ConvertToYv12().Tweak(180,0.5)

xbox360
4th July 2008, 14:25
I think they cheated when making the video because in after effects you can get whatever color you want with it's already built in plugin's.

mikeytown2
4th July 2008, 20:03
you can get whatever color you want...

in avi synth you can do that as well
http://avisynth.org/mediawiki/External_filters#Levels_and_Chroma
ExpLabo seems like a great tool for fine tuning you color if ChannelMixer can't do it.

mikeytown2
31st July 2008, 06:02
Been playing around with ChannelMixer, here are some presets that give you *about* the same luminance value as the input...
1 - Original
http://img124.imageshack.us/img124/3092/64285345wk0.th.jpg (http://img124.imageshack.us/my.php?image=64285345wk0.jpg)

2
http://img378.imageshack.us/img378/1782/16011129az3.th.jpg (http://img378.imageshack.us/my.php?image=16011129az3.jpg)

ConvertToRGB32().ChannelMixer(100/3.0,100/3.0,100/3.0,100/3.0,100/3.0,100/3.0,100/3.0,100/3.0,100/3.0).ConvertToYv12()


3
http://img124.imageshack.us/img124/9735/85480019rl1.th.jpg (http://img124.imageshack.us/my.php?image=85480019rl1.jpg)

ConvertToRGB32().ChannelMixer(25,40,40,40,25,40,40,40,25).ConvertToYv12().Tweak(180,6)


4
http://img124.imageshack.us/img124/6518/46148817hc6.th.jpg (http://img124.imageshack.us/my.php?image=46148817hc6.jpg)

ConvertToRGB32().ChannelMixer(-0,50,50,50,-0,50,50,50,-0).ConvertToYv12().Tweak(180,2)


5
http://img124.imageshack.us/img124/2747/49928444dy9.th.jpg (http://img124.imageshack.us/my.php?image=49928444dy9.jpg)

ConvertToRGB32().ChannelMixer(-25,66,66,66,-25,66,66,66,-25).ConvertToYv12().Tweak(180)


6
http://img124.imageshack.us/img124/9340/45764428zl7.th.jpg (http://img124.imageshack.us/my.php?image=45764428zl7.jpg)

ConvertToRGB32().ChannelMixer(-50,75,75,75,-50,75,75,75,-50).ConvertToYv12().Tweak(180,3/4.0)


7
http://img378.imageshack.us/img378/4792/30232421bq9.th.jpg (http://img378.imageshack.us/my.php?image=30232421bq9.jpg)

ConvertToRGB32().ChannelMixer(-100,100,100,100,-100,100,100,100,-100).ConvertToYv12().Tweak(180,1/2.0)


8
http://img378.imageshack.us/img378/3117/83754008ln6.th.jpg (http://img378.imageshack.us/my.php?image=83754008ln6.jpg)

ConvertToRGB32().ChannelMixer(-150,133,133,133,-150,133,133,133,-150).ConvertToYv12().Tweak(180,1/3.0)


9
http://img378.imageshack.us/img378/5568/72895565tq1.th.jpg (http://img378.imageshack.us/my.php?image=72895565tq1.jpg)

ConvertToRGB32().ChannelMixer(-200,166,166,166,-200,166,166,166,-200).ConvertToYv12().Tweak(180,1/4.0)


Merged...

10
http://img185.imageshack.us/img185/540/10mj1.th.jpg (http://img185.imageshack.us/my.php?image=10mj1.jpg)

b=last
high = b.ConvertToRGB32().ChannelMixer(-100,100,100,100,-100,100,100,100,-100).ConvertToYv12().Tweak(180,1/2.0)
low = b.ConvertToRGB32().ChannelMixer(-25,66,66,66,-25,66,66,66,-25).ConvertToYv12().Tweak(180)
m1 = b.Levels(0,1,128,0,128).ResetMask().ColorKeyMask($080808,100)

Overlay(low,high,mask=m1.ShowAlpha().Blur(1))


11
http://img261.imageshack.us/img261/7584/11pd7.th.jpg (http://img261.imageshack.us/my.php?image=11pd7.jpg)

b=last
high = b.ConvertToRGB32().ChannelMixer(-100,100,100,100,-100,100,100,100,-100).ConvertToYv12().Tweak(180,1/2.0)
low = b.ConvertToRGB32().ChannelMixer(-25,66,66,66,-25,66,66,66,-25).ConvertToYv12().Tweak(180)
m1 = b.Levels(0,1,128,0,128).ResetMask().ColorKeyMask($080808,100)

Overlay(high,low,mask=m1.ShowAlpha().Blur(1))


12
Personal Fav for this pic
http://img210.imageshack.us/img210/7495/12be4.th.jpg (http://img210.imageshack.us/my.php?image=12be4.jpg)

b=last
low = b.ConvertToRGB32().ChannelMixer(-25,66,66,66,-25,66,66,66,-25).ConvertToYv12().Tweak(180)
m1 = b.Levels(0,1,128,0,128).ResetMask().ColorKeyMask($080808,100)


Overlay(low,b,mask=m1.ShowAlpha().Blur(1))


Hope u guys find this useful!

R3Z
31st July 2008, 08:45
Well done mate :) Its always something that i neglect, now i have no excuse!

Simple changes like these make big differences in my opinion.