Quick Syntax
| Syntax | What it does |
|---|---|
| or -> or |> | Chain pipeline steps |
>> | Multi-line mode — each newline is a step |
::N | Primary param shorthand (e.g. pixelate::12) |
{:key value} | EDN params — numbers auto-parse, strings need quotes |
// | Comment — stripped before parsing |
Effects Reference
rgb-shift
rgbshift Chromatic aberration via RGB channel offset.
Param Short Default Info shift sh 15 Uniform shift all channels rShift rs — Red channel override gShift gs — Green channel override bShift bs — Blue channel override noise — 0.05 Noise intensity
rgb-shift {:rShift 25 :bShift -15} Presets :rgb-ghost :rgb-shatter
pixel-sort
pixelsort Shuffle rows by brightness with channel offset.
Param Short Default Info sortFraction — 0.15 Fraction of rows threshold — 0.1 Shuffle probability shift — 5 RGB channel offset px lines — 3 Scanline glitch lines
pixel-sort {:threshold 0.4 :shift 10} Presets :sort-cascade :sort-bleed
kaleidoscope
::N Triangular mirror reflection with zoom, rotation, and pan.
Param Short Default Info segments ::N 6 Visual segments zoom z 1.5 >1 zoom out, <1 zoom in rotate rot 0 Rotate output 0/90/180/270 angle a 0 Rotate pattern degrees x — 0 Center offset % (±100) y — 0 Center offset % (±100) sx — 0 Source pan % (±100) sy — 0 Source pan % (±100) sangle sa 0 Rotate source degrees
kaleidoscope::8 {:z 1.2 :sa 30} Presets :kaleido-mandala :kaleido-crystal :kaleido-infinity
pixelate
::N Block averaging mosaic.
Param Short Default Info size sz, ::N 8 Block size px
pixelate::12 Presets :pixel-8bit
noise
::N Random grain/noise overlay.
Param Short Default Info intensity i, int, ::N 35 Noise strength density den 0.8 Fraction of pixels
noise::50 Presets :noise-film
posterize
::N Reduce color levels per channel.
Param Short Default Info levels lv, ::N 5 Levels per channel
posterize::3 Presets :poster-retro
invert
Negative image — invert all or individual channels.
Param Short Default Info channels — "rgb" "rgb" / "r" / "g" / "b"
invert {:channels rb}
colorswap
color-swap colorshift color-shift Seedable hue rotation with bands and luminosity preservation.
Param Short Default Info seed ::N random Deterministic seed 0–9999 bands — seed-driven 1 / 2 / 3 bands strength str, st 1 Blend original↔swapped 0–1 preserveLuma preserveL true Keep luminosity
colorswap {:seed 42 :bands 2} Presets :color-psychedelic
dither
::N Ordered Bayer dithering with configurable matrix size and levels.
Param Short Default Info size sz, ::N 4 Dither matrix size levels lv 2 Output levels strength — 1 Blend original↔dithered 0–1
dither::8 Presets :poster-retro :noise-film
halftone
::N Simulate continuous tones with discrete dots.
Param Short Default Info size sz, ::N 6 Dot size mode — "classic" "classic" / "cmyk" / "line"
halftone::4 {:mode cmyk}
slice
slc Band displacement — datamosh / VHS tracking look.
Param Short Default Info mode — "horizontal" "horizontal" / "vertical" / "color" bands — 3–12 Total bands (random if not set) offset — 2–15% Average shift per active band density — 0.33 Fraction of bands that shift
slice {:mode color :bands 8} Presets :combo-slice-dither
glow
bloom halo ::N Luminosity-based glow/bloom with hue shift and blend modes.
Param Short Default Info threshold t, th, thresh 0.5 Luminosity cutoff 0–1 radius r, rad 20 Blur radius px intensity i, int, ::N 1.0 Brightness multiplier passes p 1 Blur iterations 1–3 hue h null Hue shift degrees blend bl "addition" Blend mode
glow::2.0 {:t 0.3 :r 25 :h 180 :blend screen} Presets :glow-soft :glow-bloom :glow-halo
gradient
grad ::N Color overlay — linear, radial, or conic with blend modes.
Param Short Default Info mode — "linear" "linear" / "radial" / "conic" color c, c1 #ffffff Start color hex/name color2 c2 null End color (null = fade to transparent) direction d, dir, angle 180 Degrees for linear x — 0 Center offset % y — 0 Center offset % opacity o, alpha, ::N 0.5 0–1 feather f 0 Edge softness 0–1 blend bl "normal" Blend mode
gradient {:mode radial :c magenta :o 0.5 :blend screen} Presets :color-duotone
lens-distortion
lensdistortion lens-distort ::N Multiple distortion modes: barrel, pincushion, wave, swirl, spherical.
Param Short Default Info mode — "barrel" "barrel" / "pincushion" / "wave" / "swirl" / "spherical" strength str, st, ::N varies Intensity (varies by mode)
lens-distortion {:mode barrel :strength 1.5}
wave
::N Sine wave displacement.
Param Short Default Info frequency ::N 0.05 Wave frequency amplitude — 20 Wave height px
wave::0.08 Presets :distort-wave swirl
::N Rotational distortion around center.
Param Short Default Info strength str, st, ::N 1.0 Rotation amount
swirl::0.15 Presets :swirl-vortex :swirl-gentle :distort-funnel barrel
::N Barrel / pincushion lens distortion.
Param Short Default Info strength str, st, ::N ~1.0 Distortion intensity
barrel::1.5 Presets :distort-funnel spherical
::N Spherical projection distortion.
Param Short Default Info strength str, st, ::N ~1.0 Projection intensity
spherical::1.2 Presets :distort-globe globe
::N Superellipse globe lens with chromatic dispersion.
Param Short Default Info power ::N — Shape: 0=diamond, 1=circle, 100=square strength — — Lens projection intensity dispersion — — Chromatic fringe intensity radius — 0.65 Lens boundary size
globe::2 Presets :distort-globe Pipeline Actions
generate
action Create an image from a text prompt (Flux Schnell/Dev).
Param Short Default Info prompt — — Text description (positional) --schnell— yes Fast generation (default) --dev / --hq— — Higher quality, slower --model— — Explicit model name aspect-ratio ar "1:1" "1:1" / "16:9" / "9:16" / "4:3" ::N— 0.57 Strength 0–1
generate a cyberpunk cat Generate with default Schnell model remix
action Pull an image from the conversation thread into the pipeline.
Param Short Default Info target — smart "last" / "first" / "quote" / "prev" (smart fallback) imageIndex — 1 1-based index for multi-image casts, e.g. :image 2
remix quote Remix the quoted cast's image img2img
action Transform image with a text prompt (Qwen AI).
Param Short Default Info prompt — — Transformation instruction (positional)
img2img make it look like a painting mask
action pipeline Selective effect application — next effect only applies within masked regions.
Param Short Default Info mode — "saturation" See mask modes below threshold t varies Mode-dependent feather f 0 Edge softness 0–1
mask {:mode radial :r 0.5 :f 0.3} | kaleidoscope::6 Kaleidoscope only in the radial mask region Presets :mask-neon :mask-saturation-pop :mask-edges-reveal Mask Modes
Modes for the mask action. Each generates a different selection region.
saturation
Select pixels by saturation level. Low-saturation areas (grays/blacks) get masked out.
mask {:mode saturation :threshold 40} | posterize::3
radial
Circular gradient mask from center. Use r for radius, f for feather.
mask {:mode radial :r 0.5 :f 0.3} | kaleidoscope::6
noise
Random noise-based mask. Use scale for grain size, f for feather.
mask {:mode noise :scale 0.03 :f 0.5} | rgb-shift {:shift 25}
edges
Select based on edge detection. Use blur for pre-smooth, threshold for sensitivity.
mask {:mode edges :blur 3 :threshold 0.1} | colorswap
Combo Walkthrough
Multi-step pipelines chaining effects together. Click any command to copy.
1 Glow + Gradient Overlay gradient {:mode radial :c magenta :o 0.5 :blend screen} | glow::1.5 {:t 0.35 :r 35}
2 Kaleidoscope + Noise + Glow kaleidoscope::8 {:z 1.2 :sa 30} | noise::40 | glow::1.0 {:t 0.5 :r 15}
3 Dark Atmosphere gradient {:mode linear :c #000022 :o 0.7 :blend multiply} | glow::2.5 {:t 0.2 :r 40 :p 2 :blend screen}
4 Glitch Art rgb-shift {:shift 20} | pixel-sort {:threshold 0.3} | glow::1.8 {:t 0.4 :r 20 :h 90 :blend screen}
Presets
Built-in presets available to everyone. Use :name to expand a preset in any pipeline. Override params with {:key value} after the preset name.
Kaleidoscope
:kaleido-mandala mask radial → k6 → glow :kaleido-crystal mask radial → k4 zoomed → swirl :kaleido-infinity k8 zoomed → k3 rotated Pixel Sort
:sort-cascade sort vertical → sort horizontal :sort-bleed heavy sort → glow RGB Shift
:rgb-ghost mild rgb-shift → soft glow :rgb-shatter heavy rgb → sort → noise Mask Combos
:mask-neon color mask → colorswap → glow :mask-saturation-pop sat mask → posterize → glow :mask-edges-reveal edge mask → invert → glow Distortion
:distort-wave wave horizontal → wave vertical :distort-funnel barrel → swirl → glow :distort-globe spherical → k2 masked Glow / Light
:glow-soft ambient glow 0.3 :glow-bloom bloom 0.6 → glow 0.2 :glow-halo radial halo 0.5 Style
:poster-retro posterize 4 → dither 2 :pixel-8bit pixelate 8 → posterize 6 :noise-film noise → dither → posterize :color-psychedelic colorswap → hue-rotate → glow :color-duotone gradient overlay 2-color Swirl
:swirl-vortex strong swirl → glow :swirl-gentle subtle centered twist Full Combos
:combo-glitch-art sat mask → rgb → sort → glow :combo-ethereal luma mask → k6 → bloom → swirl :combo-slice-dither random slice → dither → posterize Usage
:kaleido-mandala Expand preset as the full pipeline :kaleido-mandala {:threshold 70} | swirl::0.1 Override mask threshold, then chain swirl Advanced
Snapshots
Save intermediate pipeline results. Use @name after any step to snapshot it, then reference it later with @name.
generate portrait @base | rgb-shift @shifted | @base | kaleidoscope::6 Snapshot base and shifted, reuse base for kaleidoscope Custom Presets
Save your own effect combos with preset save <name>. Use :name to expand, {:key value} to override params. Your presets are personal — built-in presets are listed in the Presets section above.
:myglitch | glow::2.0 Expand a saved preset, then add glow Range Sweep
Generate multiple outputs by sweeping a parameter across a range. Use {:param start..end :steps N}.
kaleidoscope::8 {:z 1.0..2.0 :steps 5} 5 images with zoom from 1.0 to 2.0