Няма описание
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

AdvancedGrain.gizmo 22KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852
  1. #! C:/Program Files/Nuke6.1v1/Nuke6.1.exe -nx
  2. version 6.1 v1
  3. Gizmo {
  4. inputs 2
  5. help "Advanced Grain Gizmo by Andreas Frickinger\n\nAdds funcionality to the standard Nuke Grain Node to cope all aspects for matching film grain.\n\nIntensity over luminance: Use the red, green and blue curve to adjust how much grain shoudl be put in certain brightness levels in the channels.\n\nBlur or sharpen the grain seperately in the different channels, or adjust the saturation of the grain."
  6. addUserKnob {20 Grain}
  7. addUserKnob {26 title l "" +STARTLINE T "Advanced Grain by Andreas Frickinger"}
  8. addUserKnob {26 ""}
  9. addUserKnob {41 output T ControlGizmo.output}
  10. addUserKnob {26 ""}
  11. addUserKnob {41 seed l seed/preset T Grain2_1.seed}
  12. addUserKnob {41 presets l "" -STARTLINE T Grain2_1.presets}
  13. addUserKnob {26 spacer3 l " " T " "}
  14. addUserKnob {26 "" l "@b;Size"}
  15. addUserKnob {41 red_size l red T Grain2_1.red_size}
  16. addUserKnob {41 green_size l green T Grain2_1.green_size}
  17. addUserKnob {41 blue_size l blue T Grain2_1.blue_size}
  18. addUserKnob {26 "" l "@b;Irregularity"}
  19. addUserKnob {41 red_i l red T Grain2_1.red_i}
  20. addUserKnob {41 green_i l green T Grain2_1.green_i}
  21. addUserKnob {41 blue_i l blue T Grain2_1.blue_i}
  22. addUserKnob {26 "" l "@b;Intensity"}
  23. addUserKnob {41 red_m l red T Grain2_1.red_m}
  24. addUserKnob {41 green_m l green T Grain2_1.green_m}
  25. addUserKnob {41 blue_m l blue T Grain2_1.blue_m}
  26. addUserKnob {41 black_1 l black T Grain2_1.black}
  27. addUserKnob {26 ""}
  28. addUserKnob {26 intensity l "@b;Film Response" T "(use ONLY rgb to adjust, leave Master untouched!)"}
  29. addUserKnob {26 spacer5 l " " T " "}
  30. addUserKnob {41 lut l "" +STARTLINE T ColorLookupKey.lut}
  31. addUserKnob {20 advancedSettings l "Advanced Settings"}
  32. addUserKnob {26 blur l "@b;Blur"}
  33. addUserKnob {41 size l red T BlurRed.size}
  34. addUserKnob {41 size_1 l green T BlurGreen.size}
  35. addUserKnob {41 size_2 l blue T BlurBlue.size}
  36. addUserKnob {26 sharpen l "@b;Sharpen"}
  37. addUserKnob {41 amount_2 l red T SharpenRed.amount}
  38. addUserKnob {41 amount_1 l green T SharpenGreen.amount}
  39. addUserKnob {41 amount l blue T SharpenBlue.amount}
  40. addUserKnob {26 ""}
  41. addUserKnob {41 saturation l Saturation T SaturationGrain.saturation}
  42. addUserKnob {26 spacer l " " T " "}
  43. addUserKnob {26 lin2log l "@b;LinLog/LogLin"}
  44. addUserKnob {41 disable_1 l disable T Lin2Log_in.disable}
  45. addUserKnob {41 black T Lin2Log_in.black}
  46. addUserKnob {41 white T Lin2Log_in.white}
  47. addUserKnob {41 gamma T Lin2Log_in.gamma}
  48. addUserKnob {26 ""}
  49. addUserKnob {41 maskChannel l Mask +INVISIBLE T MergeMaskl.maskChannel}
  50. addUserKnob {41 maskFrom l from +INVISIBLE T MergeMaskl.maskFrom}
  51. addUserKnob {41 invertMask l "invert mask" T ControlGizmo.invertMask}
  52. addUserKnob {41 which l mix T MixOrig.which}
  53. addUserKnob {41 alpha l "(un)premult by" T Unpremult1.alpha}
  54. }
  55. Input {
  56. inputs 0
  57. name Image
  58. xpos -147
  59. ypos -288
  60. }
  61. Dot {
  62. name Dot2
  63. xpos -113
  64. ypos 139
  65. }
  66. set N93df610 [stack 0]
  67. Dot {
  68. name Dot6
  69. xpos -470
  70. ypos 139
  71. }
  72. set N93e3300 [stack 0]
  73. ColorLookup {
  74. channels rgb
  75. lut {master {}
  76. red {curve C 0.6 x0.75 0.17 x1 0.07}
  77. green {curve C 0.6 x0.75 0.17 x1 0.07}
  78. blue {curve C 0.7 x0.75 0.2 x1 0.1}
  79. alpha {}}
  80. name ColorLookupKey
  81. xpos -744
  82. ypos 135
  83. }
  84. Shuffle {
  85. alpha black
  86. name Shuffle4
  87. xpos -744
  88. ypos 230
  89. }
  90. set N93e37e0 [stack 0]
  91. Dot {
  92. name Dot13
  93. xpos -848
  94. ypos 234
  95. }
  96. set N90b2570 [stack 0]
  97. Dot {
  98. name Dot15
  99. xpos -1088
  100. ypos 234
  101. }
  102. Dot {
  103. name Dot14
  104. xpos -1088
  105. ypos 497
  106. }
  107. push $N93e3300
  108. Dot {
  109. name Dot9
  110. xpos -470
  111. ypos 365
  112. }
  113. Expression {
  114. expr0 0.18
  115. expr1 0.18
  116. expr2 0.18
  117. expr3 0
  118. name Expression2
  119. xpos -678
  120. ypos 361
  121. }
  122. Shuffle {
  123. alpha white
  124. name Shuffle2
  125. xpos -678
  126. ypos 426
  127. }
  128. set N90b1940 [stack 0]
  129. Dot {
  130. name Dot1
  131. xpos -747
  132. ypos 430
  133. }
  134. set N90b58a0 [stack 0]
  135. Dot {
  136. name Dot11
  137. xpos -924
  138. ypos 430
  139. }
  140. set N90b5630 [stack 0]
  141. Dot {
  142. name Dot16
  143. xpos -1191
  144. ypos 430
  145. }
  146. Copy {
  147. inputs 2
  148. from0 rgba.blue
  149. to0 rgba.alpha
  150. name Copy3
  151. xpos -1225
  152. ypos 487
  153. }
  154. Group {
  155. name Grain2_3
  156. help "Adds synthetic grain. Push \"presets\" to get predefined types of grain, these are the correct size for 2K scans.\n\nYou can also adjust the sliders to match a sample piece of grain. Find a sample with a rather constant background, blur it to remove the grain, and use as input to this. View with a wipe in the viewer so you can make a match. It helps to view and match each of the red, green, blue separately."
  157. label "Kodak 5248"
  158. xpos -1225
  159. ypos 544
  160. addUserKnob {20 "" l User}
  161. addUserKnob {3 seed t "Change this value to make different instances of this operator produce different noise"}
  162. seed 134
  163. addUserKnob {35 presets l "" -STARTLINE M {"presets/Kodak 5248" "knobs this \{red_size 3.30 green_size 2.90 blue_size 2.5 red_i 0.60 green_i 0.60 blue_i 0.60 red_m 0.42 green_m 0.46 blue_m 0.85 black 0.00 label \{Kodak 5248\}\}" "presets/Kodak 5279" "knobs this \{red_size 2.70 green_size 2.60 blue_size 2.40 red_i 1.00 green_i 0.76 blue_i 0.65 red_m 0.37 green_m 0.60 blue_m 1.65 black 0.00 label \{Kodak 5279\}\}" "presets/Kodak FX214" "knobs this \{red_size 1.87 green_size 2.60 blue_size 2.44 red_i 1 green_i 0.76 blue_i 0.79 red_m 0.41 green_m 0.60 blue_m 1.80 black 0.00 label \{Kodak FX214\}\}" "presets/Kodak GT5274" "knobs this \{red_size 0.04 green_size 0.10 blue_size 0.90 red_i 0.90 green_i 0.76 blue_i 0.81 red_m 0.49 green_m 0.50 blue_m 1.55 black 0.00 label \{Kodak GT5274\}\}" "presets/Kodak 5217" "knobs this \{red_size 0.23 green_size 1.20 blue_size 1.40 red_i 0.60 green_i 0.86 blue_i 0.60 red_m 0.48 green_m 0.42 blue_m 0.87 black 0.00 label \{Kodak 5217\}\}" "presets/Kodak 5218" "knobs this \{red_size 0.10 green_size 1.60 blue_size 1.91 red_i 0.60 green_i 0.86 blue_i 0.73 red_m 0.38 green_m 0.17 blue_m 0.87 black 0.00 label \{Kodak 5218\}\}" presets/other "knobs this \{label other\}"}}
  164. addUserKnob {26 "" l "@b;Size"}
  165. addUserKnob {14 red_size l red R 0 100}
  166. red_size {{parent.Grain2_1.red_size.main i}}
  167. addUserKnob {14 green_size l green R 0 100}
  168. green_size {{parent.Grain2_1.green_size.main i}}
  169. addUserKnob {14 blue_size l blue R 0 100}
  170. blue_size {{parent.Grain2_1.blue_size.main i}}
  171. addUserKnob {26 "" l "@b;Irregularity"}
  172. addUserKnob {7 red_i l red}
  173. red_i {{parent.Grain2_1.red_i.main i}}
  174. addUserKnob {7 green_i l green}
  175. green_i {{parent.Grain2_1.green_i.main i}}
  176. addUserKnob {7 blue_i l blue}
  177. blue_i {{parent.Grain2_1.blue_i.main i}}
  178. addUserKnob {26 "" l "@b;Intensity"}
  179. addUserKnob {7 red_m l red t "Amount of grain to add to a white pixel"}
  180. red_m {{parent.Grain2_1.red_m.main i}}
  181. addUserKnob {7 green_m l green}
  182. green_m {{parent.Grain2_1.green_m.main i}}
  183. addUserKnob {7 blue_m l blue}
  184. blue_m {{parent.Grain2_1.blue_m.main i}}
  185. addUserKnob {18 black t "Amount of grain to add everywhere"}
  186. black {{parent.Grain2_1.black i} {parent.Grain2_1.black i} {parent.Grain2_1.black i}}
  187. addUserKnob {18 minimum t "Minimum black level" R 0 0.01}
  188. minimum {{parent.Grain2_1.minimum i} {parent.Grain2_1.minimum i} {parent.Grain2_1.minimum i}}
  189. addUserKnob {26 "" l "@b;Mask"}
  190. addUserKnob {6 maskgrain l "Apply only through alpha" -STARTLINE}
  191. maskgrain true
  192. addUserKnob {41 maskinvert l "Invert alpha" -STARTLINE T Copy1.invert_mask}
  193. }
  194. Input {
  195. inputs 0
  196. name Input1
  197. xpos 0
  198. }
  199. set N90b4a00 [stack 0]
  200. Noise {
  201. output {rgba.red -rgba.green -rgba.blue -rgba.alpha}
  202. cliptype none
  203. replace true
  204. size {{parent.red_size.w} {parent.red_size.h}}
  205. zoffset {{frame+seed+red_i/2}}
  206. octaves 2
  207. gamma 1
  208. xrotate {{red_i*45}}
  209. yrotate {{red_i*45}}
  210. name red
  211. xpos 220
  212. }
  213. Noise {
  214. output {-rgba.red rgba.green -rgba.blue -rgba.alpha}
  215. cliptype none
  216. replace true
  217. size {{parent.green_size.w} {parent.green_size.h}}
  218. zoffset {{frame+2*seed+green_i/2}}
  219. octaves 2
  220. gamma 1
  221. xrotate {{green_i*45}}
  222. yrotate {{green_i*45}}
  223. name green
  224. xpos 220
  225. ypos 43
  226. }
  227. Noise {
  228. output {-rgba.red -rgba.green rgba.blue -rgba.alpha}
  229. cliptype none
  230. replace true
  231. size {{parent.blue_size.w} {parent.blue_size.h}}
  232. zoffset {{frame+3*seed+blue_i/2}}
  233. octaves 2
  234. gamma 1
  235. xrotate {{blue_i*45}}
  236. yrotate {{blue_i*45}}
  237. name blue
  238. xpos 220
  239. ypos 86
  240. }
  241. push $N90b4a00
  242. MergeExpression {
  243. inputs 2
  244. expr0 max(minimum.r,r+(2*Ar-1)*(r*red_m+black.r))
  245. expr1 max(minimum.g,g+(2*Ag-1)*(g*green_m+black.g))
  246. expr2 max(minimum.b,b+(2*Ab-1)*(b*blue_m+black.b))
  247. name MergeExpression1
  248. xpos 220
  249. ypos 168
  250. }
  251. set N90bf720 [stack 0]
  252. push $N90b4a00
  253. Copy {
  254. inputs 2
  255. channels rgb
  256. maskChannelInput rgba.alpha
  257. name Copy1
  258. xpos 0
  259. ypos 154
  260. }
  261. push $N90bf720
  262. Switch {
  263. inputs 2
  264. which {{maskgrain}}
  265. name Switch1
  266. selected true
  267. xpos 0
  268. ypos 241
  269. }
  270. Output {
  271. name Output1
  272. xpos 0
  273. ypos 286
  274. }
  275. end_group
  276. Dot {
  277. name Dot18
  278. xpos -1191
  279. ypos 688
  280. }
  281. set N90c00e0 [stack 0]
  282. Shuffle {
  283. red alpha
  284. green alpha
  285. blue alpha
  286. name Shuffle1
  287. xpos -1225
  288. ypos 1199
  289. }
  290. Dot {
  291. name Dot22
  292. label blue
  293. xpos -1191
  294. ypos 1355
  295. }
  296. push $N90b2570
  297. Dot {
  298. name Dot12
  299. xpos -848
  300. ypos 497
  301. }
  302. push $N90b5630
  303. Copy {
  304. inputs 2
  305. from0 rgba.green
  306. to0 rgba.alpha
  307. name Copy1
  308. xpos -958
  309. ypos 487
  310. }
  311. Group {
  312. name Grain2_2
  313. help "Adds synthetic grain. Push \"presets\" to get predefined types of grain, these are the correct size for 2K scans.\n\nYou can also adjust the sliders to match a sample piece of grain. Find a sample with a rather constant background, blur it to remove the grain, and use as input to this. View with a wipe in the viewer so you can make a match. It helps to view and match each of the red, green, blue separately."
  314. label "Kodak 5248"
  315. xpos -958
  316. ypos 544
  317. addUserKnob {20 "" l User}
  318. addUserKnob {3 seed t "Change this value to make different instances of this operator produce different noise"}
  319. seed 134
  320. addUserKnob {35 presets l "" -STARTLINE M {"presets/Kodak 5248" "knobs this \{red_size 3.30 green_size 2.90 blue_size 2.5 red_i 0.60 green_i 0.60 blue_i 0.60 red_m 0.42 green_m 0.46 blue_m 0.85 black 0.00 label \{Kodak 5248\}\}" "presets/Kodak 5279" "knobs this \{red_size 2.70 green_size 2.60 blue_size 2.40 red_i 1.00 green_i 0.76 blue_i 0.65 red_m 0.37 green_m 0.60 blue_m 1.65 black 0.00 label \{Kodak 5279\}\}" "presets/Kodak FX214" "knobs this \{red_size 1.87 green_size 2.60 blue_size 2.44 red_i 1 green_i 0.76 blue_i 0.79 red_m 0.41 green_m 0.60 blue_m 1.80 black 0.00 label \{Kodak FX214\}\}" "presets/Kodak GT5274" "knobs this \{red_size 0.04 green_size 0.10 blue_size 0.90 red_i 0.90 green_i 0.76 blue_i 0.81 red_m 0.49 green_m 0.50 blue_m 1.55 black 0.00 label \{Kodak GT5274\}\}" "presets/Kodak 5217" "knobs this \{red_size 0.23 green_size 1.20 blue_size 1.40 red_i 0.60 green_i 0.86 blue_i 0.60 red_m 0.48 green_m 0.42 blue_m 0.87 black 0.00 label \{Kodak 5217\}\}" "presets/Kodak 5218" "knobs this \{red_size 0.10 green_size 1.60 blue_size 1.91 red_i 0.60 green_i 0.86 blue_i 0.73 red_m 0.38 green_m 0.17 blue_m 0.87 black 0.00 label \{Kodak 5218\}\}" presets/other "knobs this \{label other\}"}}
  321. addUserKnob {26 "" l "@b;Size"}
  322. addUserKnob {14 red_size l red R 0 100}
  323. red_size {{parent.Grain2_1.red_size.main i}}
  324. addUserKnob {14 green_size l green R 0 100}
  325. green_size {{parent.Grain2_1.green_size.main i}}
  326. addUserKnob {14 blue_size l blue R 0 100}
  327. blue_size {{parent.Grain2_1.blue_size.main i}}
  328. addUserKnob {26 "" l "@b;Irregularity"}
  329. addUserKnob {7 red_i l red}
  330. red_i {{parent.Grain2_1.red_i.main i}}
  331. addUserKnob {7 green_i l green}
  332. green_i {{parent.Grain2_1.green_i.main i}}
  333. addUserKnob {7 blue_i l blue}
  334. blue_i {{parent.Grain2_1.blue_i.main i}}
  335. addUserKnob {26 "" l "@b;Intensity"}
  336. addUserKnob {7 red_m l red t "Amount of grain to add to a white pixel"}
  337. red_m {{parent.Grain2_1.red_m.main i}}
  338. addUserKnob {7 green_m l green}
  339. green_m {{parent.Grain2_1.green_m.main i}}
  340. addUserKnob {7 blue_m l blue}
  341. blue_m {{parent.Grain2_1.blue_m.main i}}
  342. addUserKnob {18 black t "Amount of grain to add everywhere"}
  343. black {{parent.Grain2_1.black i} {parent.Grain2_1.black i} {parent.Grain2_1.black i}}
  344. addUserKnob {18 minimum t "Minimum black level" R 0 0.01}
  345. minimum {{parent.Grain2_1.minimum i} {parent.Grain2_1.minimum i} {parent.Grain2_1.minimum i}}
  346. addUserKnob {26 "" l "@b;Mask"}
  347. addUserKnob {6 maskgrain l "Apply only through alpha" -STARTLINE}
  348. maskgrain true
  349. addUserKnob {41 maskinvert l "Invert alpha" -STARTLINE T Copy1.invert_mask}
  350. }
  351. Input {
  352. inputs 0
  353. name Input1
  354. xpos 0
  355. }
  356. set N90c27e0 [stack 0]
  357. Noise {
  358. output {rgba.red -rgba.green -rgba.blue -rgba.alpha}
  359. cliptype none
  360. replace true
  361. size {{parent.red_size.w} {parent.red_size.h}}
  362. zoffset {{frame+seed+red_i/2}}
  363. octaves 2
  364. gamma 1
  365. xrotate {{red_i*45}}
  366. yrotate {{red_i*45}}
  367. name red
  368. xpos 220
  369. }
  370. Noise {
  371. output {-rgba.red rgba.green -rgba.blue -rgba.alpha}
  372. cliptype none
  373. replace true
  374. size {{parent.green_size.w} {parent.green_size.h}}
  375. zoffset {{frame+2*seed+green_i/2}}
  376. octaves 2
  377. gamma 1
  378. xrotate {{green_i*45}}
  379. yrotate {{green_i*45}}
  380. name green
  381. xpos 220
  382. ypos 43
  383. }
  384. Noise {
  385. output {-rgba.red -rgba.green rgba.blue -rgba.alpha}
  386. cliptype none
  387. replace true
  388. size {{parent.blue_size.w} {parent.blue_size.h}}
  389. zoffset {{frame+3*seed+blue_i/2}}
  390. octaves 2
  391. gamma 1
  392. xrotate {{blue_i*45}}
  393. yrotate {{blue_i*45}}
  394. name blue
  395. xpos 220
  396. ypos 86
  397. }
  398. push $N90c27e0
  399. MergeExpression {
  400. inputs 2
  401. expr0 max(minimum.r,r+(2*Ar-1)*(r*red_m+black.r))
  402. expr1 max(minimum.g,g+(2*Ag-1)*(g*green_m+black.g))
  403. expr2 max(minimum.b,b+(2*Ab-1)*(b*blue_m+black.b))
  404. name MergeExpression1
  405. xpos 220
  406. ypos 168
  407. }
  408. set N7cedde0 [stack 0]
  409. push $N90c27e0
  410. Copy {
  411. inputs 2
  412. channels rgb
  413. maskChannelInput rgba.alpha
  414. name Copy1
  415. xpos 0
  416. ypos 154
  417. }
  418. push $N7cedde0
  419. Switch {
  420. inputs 2
  421. which {{maskgrain}}
  422. name Switch1
  423. selected true
  424. xpos 0
  425. ypos 241
  426. }
  427. Output {
  428. name Output1
  429. xpos 0
  430. ypos 286
  431. }
  432. end_group
  433. Dot {
  434. name Dot17
  435. xpos -924
  436. ypos 631
  437. }
  438. set N7cee7a0 [stack 0]
  439. Shuffle {
  440. red alpha
  441. green alpha
  442. blue alpha
  443. name Shuffle5
  444. xpos -964
  445. ypos 1199
  446. }
  447. Dot {
  448. name Dot21
  449. label green
  450. xpos -930
  451. ypos 1355
  452. }
  453. push $N93e37e0
  454. Dot {
  455. name Dot4
  456. xpos -710
  457. ypos 497
  458. }
  459. push $N90b1940
  460. Copy {
  461. inputs 2
  462. from0 rgba.red
  463. to0 rgba.alpha
  464. name Copy5
  465. xpos -678
  466. ypos 487
  467. }
  468. set N94570a0 [stack 0]
  469. Group {
  470. name Grain2_1
  471. help "Adds synthetic grain. Push \"presets\" to get predefined types of grain, these are the correct size for 2K scans.\n\nYou can also adjust the sliders to match a sample piece of grain. Find a sample with a rather constant background, blur it to remove the grain, and use as input to this. View with a wipe in the viewer so you can make a match. It helps to view and match each of the red, green, blue separately."
  472. label "Kodak 5248"
  473. xpos -678
  474. ypos 542
  475. addUserKnob {20 "" l User}
  476. addUserKnob {3 seed t "Change this value to make different instances of this operator produce different noise"}
  477. seed 134
  478. addUserKnob {35 presets l "" -STARTLINE M {"presets/Kodak 5248" "knobs this \{red_size 3.30 green_size 2.90 blue_size 2.5 red_i 0.60 green_i 0.60 blue_i 0.60 red_m 0.42 green_m 0.46 blue_m 0.85 black 0.00 label \{Kodak 5248\}\}" "presets/Kodak 5279" "knobs this \{red_size 2.70 green_size 2.60 blue_size 2.40 red_i 1.00 green_i 0.76 blue_i 0.65 red_m 0.37 green_m 0.60 blue_m 1.65 black 0.00 label \{Kodak 5279\}\}" "presets/Kodak FX214" "knobs this \{red_size 1.87 green_size 2.60 blue_size 2.44 red_i 1 green_i 0.76 blue_i 0.79 red_m 0.41 green_m 0.60 blue_m 1.80 black 0.00 label \{Kodak FX214\}\}" "presets/Kodak GT5274" "knobs this \{red_size 0.04 green_size 0.10 blue_size 0.90 red_i 0.90 green_i 0.76 blue_i 0.81 red_m 0.49 green_m 0.50 blue_m 1.55 black 0.00 label \{Kodak GT5274\}\}" "presets/Kodak 5217" "knobs this \{red_size 0.23 green_size 1.20 blue_size 1.40 red_i 0.60 green_i 0.86 blue_i 0.60 red_m 0.48 green_m 0.42 blue_m 0.87 black 0.00 label \{Kodak 5217\}\}" "presets/Kodak 5218" "knobs this \{red_size 0.10 green_size 1.60 blue_size 1.91 red_i 0.60 green_i 0.86 blue_i 0.73 red_m 0.38 green_m 0.17 blue_m 0.87 black 0.00 label \{Kodak 5218\}\}" presets/other "knobs this \{label other\}"}}
  479. addUserKnob {26 "" l "@b;Size"}
  480. addUserKnob {14 red_size l red R 0 100}
  481. red_size 3.3
  482. addUserKnob {14 green_size l green R 0 100}
  483. green_size 2.9
  484. addUserKnob {14 blue_size l blue R 0 100}
  485. blue_size 2.5
  486. addUserKnob {26 "" l "@b;Irregularity"}
  487. addUserKnob {7 red_i l red}
  488. red_i 0.6
  489. addUserKnob {7 green_i l green}
  490. green_i 0.6
  491. addUserKnob {7 blue_i l blue}
  492. blue_i 0.6
  493. addUserKnob {26 "" l "@b;Intensity"}
  494. addUserKnob {7 red_m l red t "Amount of grain to add to a white pixel"}
  495. red_m 0.42
  496. addUserKnob {7 green_m l green}
  497. green_m 0.46
  498. addUserKnob {7 blue_m l blue}
  499. blue_m 0.85
  500. addUserKnob {18 black t "Amount of grain to add everywhere"}
  501. black 0.01
  502. addUserKnob {18 minimum t "Minimum black level" R 0 0.01}
  503. minimum {0 0 0}
  504. addUserKnob {26 "" l "@b;Mask"}
  505. addUserKnob {6 maskgrain l "Apply only through alpha" -STARTLINE}
  506. maskgrain true
  507. addUserKnob {41 maskinvert l "Invert alpha" -STARTLINE T Copy1.invert_mask}
  508. }
  509. Input {
  510. inputs 0
  511. name Input1
  512. xpos 0
  513. }
  514. set N94577f0 [stack 0]
  515. Noise {
  516. output {rgba.red -rgba.green -rgba.blue -rgba.alpha}
  517. cliptype none
  518. replace true
  519. size {{parent.red_size.w} {parent.red_size.h}}
  520. zoffset {{frame+seed+red_i/2}}
  521. octaves 2
  522. gamma 1
  523. xrotate {{red_i*45}}
  524. yrotate {{red_i*45}}
  525. name red
  526. xpos 220
  527. }
  528. Noise {
  529. output {-rgba.red rgba.green -rgba.blue -rgba.alpha}
  530. cliptype none
  531. replace true
  532. size {{parent.green_size.w} {parent.green_size.h}}
  533. zoffset {{frame+2*seed+green_i/2}}
  534. octaves 2
  535. gamma 1
  536. xrotate {{green_i*45}}
  537. yrotate {{green_i*45}}
  538. name green
  539. xpos 220
  540. ypos 43
  541. }
  542. Noise {
  543. output {-rgba.red -rgba.green rgba.blue -rgba.alpha}
  544. cliptype none
  545. replace true
  546. size {{parent.blue_size.w} {parent.blue_size.h}}
  547. zoffset {{frame+3*seed+blue_i/2}}
  548. octaves 2
  549. gamma 1
  550. xrotate {{blue_i*45}}
  551. yrotate {{blue_i*45}}
  552. name blue
  553. xpos 220
  554. ypos 86
  555. }
  556. push $N94577f0
  557. MergeExpression {
  558. inputs 2
  559. expr0 max(minimum.r,r+(2*Ar-1)*(r*red_m+black.r))
  560. expr1 max(minimum.g,g+(2*Ag-1)*(g*green_m+black.g))
  561. expr2 max(minimum.b,b+(2*Ab-1)*(b*blue_m+black.b))
  562. name MergeExpression1
  563. xpos 220
  564. ypos 168
  565. }
  566. set N94597a0 [stack 0]
  567. push $N94577f0
  568. Copy {
  569. inputs 2
  570. channels rgb
  571. maskChannelInput rgba.alpha
  572. name Copy1
  573. xpos 0
  574. ypos 154
  575. }
  576. push $N94597a0
  577. Switch {
  578. inputs 2
  579. which {{maskgrain}}
  580. name Switch1
  581. selected true
  582. xpos 0
  583. ypos 241
  584. }
  585. Output {
  586. name Output1
  587. xpos 0
  588. ypos 286
  589. }
  590. end_group
  591. set N7c2ba70 [stack 0]
  592. Dot {
  593. name Dot19
  594. xpos -800
  595. ypos 552
  596. }
  597. Shuffle {
  598. red alpha
  599. green alpha
  600. blue alpha
  601. name Shuffle6
  602. xpos -834
  603. ypos 1199
  604. }
  605. Dot {
  606. name Dot20
  607. label red
  608. xpos -800
  609. ypos 1355
  610. }
  611. push $N93df610
  612. Expression {
  613. channel0 {-rgba.red -rgba.green -rgba.blue}
  614. channel1 {-rgba.red -rgba.green -rgba.blue}
  615. channel2 {-rgba.red -rgba.green -rgba.blue}
  616. expr3 a==0?0:a
  617. name Expression3
  618. xpos -147
  619. ypos 807
  620. }
  621. Unpremult {
  622. alpha -rgba.alpha
  623. name Unpremult1
  624. xpos -147
  625. ypos 866
  626. disable {{alpha==0?1:0 i x163 0}}
  627. }
  628. set N945c110 [stack 0]
  629. Dot {
  630. name Dot3
  631. xpos -4
  632. ypos 870
  633. }
  634. Dot {
  635. name Dot10
  636. xpos -4
  637. ypos 1311
  638. }
  639. Input {
  640. inputs 0
  641. name Mask
  642. xpos -377
  643. ypos 502
  644. number 1
  645. }
  646. Invert {
  647. name Invert1
  648. xpos -377
  649. ypos 647
  650. disable {{ControlGizmo.invertMask i}}
  651. }
  652. Expression {
  653. expr0 r==0?0:r
  654. expr1 g==0?0:g
  655. expr2 b==0?0:b
  656. expr3 a==0?0:a
  657. name Expression4
  658. xpos -377
  659. ypos 698
  660. }
  661. Invert {
  662. name Invert2
  663. xpos -377
  664. ypos 735
  665. }
  666. push $N90b58a0
  667. Dot {
  668. name Dot5
  669. xpos -747
  670. ypos 745
  671. }
  672. push $N90c00e0
  673. push $N7cee7a0
  674. push $N7c2ba70
  675. Copy {
  676. inputs 2
  677. from0 rgba.green
  678. to0 rgba.green
  679. name Copy4
  680. xpos -678
  681. ypos 621
  682. }
  683. Copy {
  684. inputs 2
  685. from0 rgba.blue
  686. to0 rgba.blue
  687. name Copy6
  688. xpos -678
  689. ypos 678
  690. }
  691. Merge2 {
  692. inputs 2+1
  693. invert_mask true
  694. name MergeMaskl
  695. xpos -678
  696. ypos 741
  697. }
  698. set N945dbe0 [stack 0]
  699. Shuffle {
  700. alpha white
  701. name Shuffle3
  702. xpos -678
  703. ypos 792
  704. }
  705. Blur {
  706. channels {rgba.red -rgba.green -rgba.blue}
  707. name BlurRed
  708. xpos -678
  709. ypos 850
  710. }
  711. Blur {
  712. channels {-rgba.red rgba.green -rgba.blue}
  713. name BlurGreen
  714. xpos -678
  715. ypos 885
  716. }
  717. Blur {
  718. channels {-rgba.red -rgba.green rgba.blue}
  719. name BlurBlue
  720. xpos -678
  721. ypos 920
  722. }
  723. Sharpen {
  724. channels {rgba.red -rgba.green -rgba.blue}
  725. amount 0
  726. name SharpenRed
  727. xpos -678
  728. ypos 994
  729. }
  730. Sharpen {
  731. channels {-rgba.red rgba.green -rgba.blue}
  732. amount 0
  733. name SharpenGreen
  734. xpos -678
  735. ypos 1033
  736. }
  737. Sharpen {
  738. channels {-rgba.red -rgba.green rgba.blue}
  739. amount 0
  740. name SharpenBlue
  741. xpos -678
  742. ypos 1072
  743. }
  744. Saturation {
  745. name SaturationGrain
  746. xpos -678
  747. ypos 1138
  748. }
  749. push $N945c110
  750. Log2Lin {
  751. operation lin2log
  752. name Lin2Log_in
  753. xpos -147
  754. ypos 976
  755. }
  756. Merge2 {
  757. inputs 2
  758. operation multiply
  759. name Merge13
  760. xpos -147
  761. ypos 1138
  762. }
  763. push $N94570a0
  764. Dot {
  765. name Dot7
  766. xpos -560
  767. ypos 497
  768. }
  769. Dot {
  770. name Dot8
  771. xpos -560
  772. ypos 1254
  773. }
  774. Merge2 {
  775. inputs 2
  776. operation divide
  777. name Merge14
  778. xpos -147
  779. ypos 1250
  780. }
  781. Copy {
  782. inputs 2
  783. from0 rgba.alpha
  784. to0 rgba.alpha
  785. name Copy2
  786. xpos -147
  787. ypos 1301
  788. }
  789. Log2Lin {
  790. black {{parent.Lin2Log_in.black i}}
  791. white {{parent.Lin2Log_in.white i}}
  792. gamma {{parent.Lin2Log_in.gamma i}}
  793. name Log2Lin_out
  794. xpos -147
  795. ypos 1353
  796. disable {{Lin2Log_in.disable i}}
  797. }
  798. Premult {
  799. name Premult1
  800. xpos -147
  801. ypos 1390
  802. disable {{Unpremult1.disable}}
  803. }
  804. push $N93df610
  805. Dot {
  806. name Dot24
  807. xpos 254
  808. ypos 139
  809. }
  810. Dot {
  811. name Dot23
  812. xpos 254
  813. ypos 1479
  814. }
  815. Dissolve {
  816. inputs 2
  817. which 1
  818. name MixOrig
  819. xpos -147
  820. ypos 1469
  821. }
  822. Switch {
  823. inputs 4
  824. which {{ControlGizmo.output i}}
  825. name SwitchGrainAlpha
  826. xpos -147
  827. ypos 1537
  828. }
  829. Output {
  830. name Output1
  831. xpos -147
  832. ypos 1829
  833. }
  834. NoOp {
  835. inputs 0
  836. name ControlGizmo
  837. xpos -450
  838. ypos 1641
  839. addUserKnob {20 User}
  840. addUserKnob {6 invertMask l "invert mask" +STARTLINE}
  841. addUserKnob {26 version l v2.1}
  842. addUserKnob {4 output M {"final result" "red matte" "green matte" "blue matte"}}
  843. }
  844. push $N945dbe0
  845. Viewer {
  846. gain 0.8
  847. input_process false
  848. name Viewer1
  849. xpos 115
  850. ypos 836
  851. }
  852. end_group