Hello,
just posting the code for this so people can play with it. I’m curious what you can do with it.
I think it’s kinda slow and i’m trying to make it faster but i don’t have enough knowledge to do so… Anyway i also like the output for low resolutions (around 1000px or 1500px)
Also i don’t know how i can make broader lines for the sketch part, it’s too thin when using larger resolutions.
Here goes (sorry for bad code heh)
Code
#@gui WaterGmicB : watergmicB, watergmic_previewB(1)*
#@gui : note = note("<small>Author: <i><a href="http://prawnsushi.free.fr">Prawnsushi</i></a>. Latest Update: <i>2023/14/03</i>.</small>")
#@gui : sep = separator()
#@gui : Write settings on picture = bool(0)
#@gui : note = note("<small>Use original input image resolution or choose processing resolution.\nHigher Res is slower and not always better. </small>")
#@gui : Original Resolution = bool(0)
#@gui : Processing Resolution = int(1000,500,5000)
#@gui : Garagecoder's DCCI2x rescale (Post) = int(0,0,5)
#@gui : sep = separator()
#@gui : Pre-Process = bool(1)
#@gui : - Sharpening = int(0,0,500)
#@gui : - Blur = float(0,0,10)
#@gui : - Local normalization = float(0.5,0.3,3)
#@gui : Sloppiness = bool(1)
#@gui : - Distort = float(3,0,20)
#@gui : - Blur = float(3,0,50)
#@gui : - Blend Mode = choice(13,"add","and","average","blue","burn","darken","difference","divide","dodge","exclusion","grainextract","grainmerge","green","hardlight","hardmix","hue","interpolation","lighten","lightness","linearburn","linearlight","luminance","multiply","negation","or","overlay","pinlight","red","reflect","saturation","screen","shapeaverage","softburn","softdodge","softlight","stamp","subtract","value","vividlight","xor")
#@gui : - Strength = float(0.5,0.0,1.0)
#@gui : sep = separator()
#@gui : Watering = bool(1)
#@gui : - Smoothing = int(12,0,40)
#@gui : - Iterations = int(1,0,10)
#@gui : Fuzzy Frame Size = int(30,0,350)
#@gui : - Frame Blur = int(20,0,150)
#@gui : - Frame Strentgh = float(0.5,0,5)
#@gui : Plasma Seed = int(-1,-1,9999999)
#@gui : - Plasma Saturation = int(-100,-100,100)
#@gui : - Blend Mode = choice(23,"add","and","average","blue","burn","darken","difference","divide","dodge","exclusion","grainextract","grainmerge","green","hardlight","hardmix","hue","interpolation","lighten","lightness","linearburn","linearlight","luminance","multiply","negation","or","overlay","pinlight","red","reflect","saturation",screen","shapeaverage","softburn","softdodge","softlight","stamp","subtract","value","vividlight","xor")
#@gui : - Plasma Strength = float(0.5,0,1)
#@gui : sep = separator()
#@gui : Cracks = bool(1)
#@gui : Sharpening = int(150,0,500)
#@gui : - Shock Filter = int(1,0,1)
#@gui : Light1(0 means all off) = float(0.15,0,1)
#@gui : - Light2 = float(0.02,0,1)
#@gui : - Light3 = float(0.02,0,1)
#@gui : sep = separator()
#@gui : Sketch = bool(1)
#@gui : - Likeness = int(25,0,30)
#@gui : - Threshold Min = int(0,0,255)
#@gui : - Threshold Max = int(20,0,255)
#@gui : - Sketch strength = float(1,0,1)
#@gui : --- Messy lines = float(0.9,0,1)
#@gui : - Blend Mode = choice(22,"add","and","average","blue","burn","darken","difference","divide","dodge","exclusion","grainextract","grainmerge","green","hardlight","hardmix","hue","interpolation","lighten","lightness","linearburn","linearlight","luminance","multiply","negation","or","overlay","pinlight","red","reflect","saturation",screen","shapeaverage","softburn","softdodge","softlight","stamp","subtract","value","vividlight","xor")
#@gui : note = note("<small>Setting Sktech Strength to 0 disables Messy lines too.\n Messy lines uses <Breaks> by David Tschumperlé.</small>")
#@gui : Noise = float(3,0,6)
#@gui : Canvas = float(0.3,0,1)
#@gui : sep = separator()
#@gui : Post-Process = bool(1)
#@gui : Mix Original Hue/Sat = float(0.5,0,1)
#@gui : Brightness = float(0,-100,100)
#@gui : Contrast = float(0,-100,100)
#@gui : Gamma = float(0,-100,100)
#@gui : Hue = float(0,-100,100)
#@gui : Saturation = float(0,-100,100)
#@gui : sep = separator()
#@gui : Preview Type = choice("Full","Forward Horizontal","Forward Vertical","Backward Horizontal","Backward Vertical","Duplicate Top","Duplicate Left","Duplicate Bottom","Duplicate Right","Duplicate Horizontal","Duplicate Vertical","Checkered","Checkered Inverse")
#@gui :Preview Split=point(50,50,0,0,200,200,200,0,10)_0
#@gui : sep = separator()
watergmicB :
com,__origres,__procres,dccires,__bst,__bstsharp,_bstblur,__locnorm,__filt,__dist,__distblur,__distmerge,__diststr,__wc,__bilsize,__bilrep,__fuzz,__fuzzblur,__fuzstr,__plsmseed,__plsmsat,__plasmerge,__plastr,\
__cracks,__sckrad,__sck,__lgtone,__lgttwo,__lgthree,__sketch,__sklike,__cutmin,__cutmax,__linestr,__brkstr,__skmerge,__noistr,cnvs,__post,__huestr,__bri,__con,__gam,__hue,__sat=${1-45}
m "BlendMode : $""=__mode" BlendMode "add","and","average","blue","burn","darken","difference","divide","dodge","exclusion","grainextract","grainmerge","green","hardlight","hardmix","hue","interpolation","lighten","lightness","linearburn","linearlight","luminance","multiply","negation","or","overlay","pinlight","red","reflect","saturation","screen","shapeaverage","softburn","softdodge","softlight","stamp","subtract","value","vividlight","xor","error"
m "BlendModeP : $""=__modep" BlendModeP "add","and","average","blue","burn","darken","difference","divide","dodge","exclusion","grainextract","grainmerge","green","hardlight","hardmix","hue","interpolation","lighten","lightness","linearburn","linearlight","luminance","multiply","negation","or","overlay","pinlight","red","reflect","saturation","screen","shapeaverage","softburn","softdodge","softlight","stamp","subtract","value","vividlight","xor","error"
m "BlendModeL : $""=__model" BlendModeL "add","and","average","blue","burn","darken","difference","divide","dodge","exclusion","grainextract","grainmerge","green","hardlight","hardmix","hue","interpolation","lighten","lightness","linearburn","linearlight","luminance","multiply","negation","or","overlay","pinlight","red","reflect","saturation","screen","shapeaverage","softburn","softdodge","softlight","stamp","subtract","value","vividlight","xor","error"
#~ to_rgb
normalize 0,255
nm[0] ORIG
__ORIGW={0,w}
__ORIGH={0,h}
if !$__origres
__res=$__procres,$__procres
rr2d[ORIG] $__res,0,6
fi
if $__bst
blur $_bstblur sharpen $__bstsharp normalize_local $__locnorm,$__locnorm
fi
[ORIG] nm. REND
if $__filt
[ORIG] nm. FILT
local[FILT]
repeat 3
apc "deform $__dist blur $__distblur"
done
done
blend[REND,FILT] ${__mode{$__distmerge+1}},$__diststr
normalize[REND] 0,255
fi
if $__wc
if $__plastr>0
[ORIG] nm. PLAS
local[PLAS]
if $__plsmseed>-1
srand $__plsmseed
fi
#~ plasma 1,2,2
plasma 1,2,5
adjust_colors 0,0,0,0,$__plsmsat
done
blend[REND,PLAS] ${__modep{$__plasmerge+1}},$__plastr
fi
fi
if $__wc
if $__fuzz>0
[ORIG] nm. FUZZ
local[FUZZ]
fill_color 0,0,0
spread {$__fuzz/2},{$__fuzz/2},0
negate
frame_fuzzy $__fuzz
blur $__fuzzblur,0
deform $__fuzz
spread {$__fuzz/2},{$__fuzz/2}
spread 10
split c rm. . negate. append c
if $__fuzstr!=1
mul $__fuzstr
fi
done
blend_median[REND,FUZZ]
channels 0,2
normalize[REND] 0,255
fi
fi
local[REND]
if $__cracks
if $__sckrad>0
repeat 3
deform 1.5 sharpen $__sckrad,$__sck dilate_circ 1.5 sharpen $__sckrad,$__sck
done
fi
if $__lgtone>0
repeat 3
fx_light_relief $__lgtone,$__lgttwo,$__lgthree,0,0.2,50,50,20,0.084,0,0
blur 2 erode_circ 3 sharpen $__sckrad
done
fi
fi
if $__wc
repeat $__bilrep
deform 0.3 sharpen 80,0,10,10 bilateral $__bilsize,$__bilsize,$__bilsize,$__bilsize
#~ deform 0.3 sharpen 80,0,10,10 rolling_guidance $__bilsize,$__bilsize,0
done
sharpen 80,0,10,10 sharpen 50 normalize 0,255
fi
done
if $__post
if $__huestr>0
[ORIG] nm. HUE
[ORIG] nm. SAT
move[ORIG] -1
blend[HUE,REND] hue,$__huestr
blend[SAT,REND] saturation,{$__huestr/3}
fi
fi
if $__sketch
if $__linestr>0
[ORIG] nm. LINE
local[LINE]
lw={LINE,w}
deform 1.5 rolling_guidance {31-$__sklike},10,0.5
gradient_norm negate
if $__brkstr>0
+fx_breaks. 0,5,30,0,3
blend[-1,-2,LINE] multiply,$__brkstr
fi
#~ equalize. 100,$__cutmin,$__cutmax d
normalize. $__cutmin,$__cutmax
sharpen. 100
spread. 0.7
done
blend[LINE,REND] ${__model{$__skmerge+1}},$__linestr
fi
fi
normalize[REND] 0,255
keep[REND]
if $__post
adjust_colors[REND] $__bri,$__con,$__gam,$__hue,$__sat
fi
if $dccires>0
repeat $dccires
fx_scale_dcci2x[REND] 1.15,5,1
done
fi
if $__sketch
if $__noistr>0 fx_noise $__noistr,0,11,1,0,50,50 fi
# canvas effect
if $cnvs>0
+fill_color 255,255,255
noise. 1000,2 to_gray.
. .
parallel " repeat 20 blur_x. 10 sharpen. 5 spread. 0.7 deform. 0.5 done ","
repeat 20 blur_y.. 10 sharpen.. 5 spread.. 0.7 deform.. 0.5 done "
*. ..
n 0,255
+gradient. xy,1 -a[-2,-1] c
*. {$cnvs/100}
warp[REND] [-1],3,1,1,1
fi
fi
keep[REND]
if $com
RENDW={0,w}
RENDH={0,h}
expand_y 35,0
shift 0,35
text "${1-45}",10,30,12,1,255
text ${__mode{$__distmerge+1}}" "${__modep{$__plasmerge+1}}" "${__model{$__skmerge+1}},10,50,20,1,255
fi
watergmic_previewB :
gui_split_preview "watergmicB $*",${-3--1}