§5 TEXT EFFECTS — 19 Verified Recipes
5.1 LIQUID DRIP / MELTING TEXT
Result: Flowing tendrils/streams dripping DOWNWARD from text bottom
CRITICAL DIRECTION LOGIC (verified by testing):
CORRECT: Rotate -90 CCW → apply_wind("left") x 5-7 → Rotate +90 CW back = DRIPS DOWN
WRONG: Rotate +90 CW → apply_wind("right") x 5 → Rotate -90 CCW back = DRIPS UP
Why: Rotate -90 CCW → text bottom faces RIGHT → Wind "from left" pushes pixels RIGHT (toward bottom) → Rotate +90 CW back → RIGHT streaks become DOWNWARD
CRITICAL: White text on BLACK background (not transparent) — SCREEN blend removes black
MCP Tool Chain:
1. duplicate_layer (preserve original text) 2. rasterize_layer 3. Create BLACK pixel layer → merge with text (white on black) 4. scale_layer 300% height from TOPCENTER (elongate before wind) 5. rotate_canvas(angle=-90) 6. apply_wind(method="wind", direction="left") x 5-7 times 7. rotate_canvas(angle=90) 8. apply_gaussian_blur(radius=2-3) 9. set_layer_properties(blend_mode="SCREEN", layer_opacity=90) 10. add_gradient_map_adjustment_layer (clipped — colorize) 11. add_outer_glow_layer_style (neon color glow) 12. add_layer_mask + fill_mask_with_gradient (hide top, show bottom)
Common Mistakes:
- •Rotating CW (+90) first → drips go UP
- •Wind "from right" after CW rotation → drips go UP
- •Using "blast" method → too messy/aggressive, layer goes off-canvas
- •White on TRANSPARENT + SCREEN → colors invisible
- •Wave amplitude too high (>40) → text destroyed
5.2 CHROME / METALLIC TEXT
Gradient Overlay: reflected, angle: 90
- •stops: {0: (26,26,26)}, {25: (216,216,216)}, {50: (26,26,26)}, {75: (250,250,250)}, {100: (26,26,26)}
Bevel & Emboss: innerBevel, chiselHard, depth: 300, size: 5, angle: 120, altitude: 30
- •highlight: SCREEN white 90%, shadow: MULTIPLY black 75%
5.3 NEON GLOW TEXT
Neon Color Palette:
| Color | RGB |
|---|---|
| Pink | (255, 17, 119) |
| Blue | (0, 212, 255) |
| Green | (57, 255, 20) |
| Red | (255, 7, 58) |
| Yellow | (255, 229, 0) |
| Cyan | (5, 217, 255) |
| Purple | (204, 0, 255) |
Layer Styles on text:
- •
add_inner_glow_layer_style(blend_mode="NORMAL", opacity=100, color=NEON_COLOR, source="center", choke=0, size=8) - •
add_outer_glow_layer_style(blend_mode="SCREEN", opacity=100, color=NEON_COLOR, spread=0, size=20) - •
add_drop_shadow_layer_style(blend_mode="SCREEN", color=NEON_COLOR, opacity=100, distance=0, spread=0, size=60)- •drop shadow with SCREEN + distance=0 = wide ambient glow
Multi-Layer Glow Stacking (for INTENSE glow):
- •Duplicate text → fill_opacity=0, layer_opacity=20% → Gaussian Blur 15px → SCREEN
- •Duplicate again → Gaussian Blur 40px → SCREEN 50%
- •Duplicate again → Gaussian Blur 80px → SCREEN 30%
- •Result: 4 layers creating photorealistic multi-radius glow
5.4 GLASS / FROSTED TEXT
Key: set_layer_properties(fill_opacity=0) — NOT layer opacity
- •
add_bevel_emboss_layer_style(style="innerBevel", technique="smooth", depth=150, size=10, soften=2, angle=120, altitude=30, highlight_mode="SCREEN", highlight_opacity=85, shadow_mode="MULTIPLY", shadow_opacity=50) - •
add_inner_shadow_layer_style(blend_mode="MULTIPLY", opacity=30, angle=120, distance=3, choke=0, size=5) - •
add_inner_glow_layer_style(blend_mode="SCREEN", color={255,255,255}, opacity=30, source="edge", choke=0, size=8) - •
add_stroke_layer_style(size=1, position="INSIDE", blend_mode="SCREEN", color={255,255,255}, opacity=50)
5.5 FIRE / FLAME TEXT
Same Wind technique as drip but OPPOSITE direction:
Rotate +90 CW → apply_wind("left") x 3-5 → Rotate -90 CCW back = FLAMES UP
Steps:
- •White text on black background → rasterize → merge to single layer
- •
rotate_canvas(angle=90)→ CW - •
apply_wind(method="wind", direction="left")x 3-5 - •
rotate_canvas(angle=-90)→ back - •
apply_gaussian_blur(radius=1.5) - •Optional:
apply_ripple(amount=110, size="medium")for flicker - •Gradient Map fire colors:
- •{0: (0,0,0)}, {30: (255,0,0)}, {55: (255,102,0)}, {80: (255,204,0)}, {100: (255,255,255)}
5.6 ICE / FROZEN TEXT
Text color: RGB (168, 216, 234)
- •
add_bevel_emboss_layer_style(style="innerBevel", technique="chiselHard", depth=250, size=5, angle=120, altitude=30, highlight_mode="SCREEN", highlight_opacity=90, shadow_mode="MULTIPLY", shadow_color={26,58,92}, shadow_opacity=70) - •
add_inner_glow_layer_style(blend_mode="SCREEN", color={200,232,255}, opacity=50, source="edge", size=12) - •
add_satin_layer_style(blend_mode="SCREEN", color={200,232,255}, opacity=30, angle=19, distance=11, size=14, invert=true)
Frost texture: Duplicate → rasterize → apply_crystallize(cell_size=5) → OVERLAY 40% → apply_noise(5)
5.7 GOLD / LUXURY TEXT
Gold Gradient Stops:
- •{0: (191,149,63)}, {25: (252,246,186)}, {50: (179,135,40)}, {75: (251,245,183)}, {100: (170,119,28)}
- •
add_gradient_overlay_layer_stylewith gold stops, angle: 90, type: "linear" - •
add_bevel_emboss_layer_style(style="innerBevel", technique="smooth", depth=200, size=3, highlight_color={252,246,186}, shadow_color={92,58,10}) - •
add_stroke_layer_style(size=2, position="OUTSIDE")with same gold gradient - •
add_satin_layer_style(blend_mode="MULTIPLY", color={92,58,10}, opacity=25, angle=19, distance=8, size=10)
5.8 HOLOGRAPHIC / IRIDESCENT TEXT
Rainbow Gradient:
- •{0: (255,0,153)}, {15: (255,102,0)}, {30: (255,255,0)}, {45: (0,255,102)}, {60: (0,204,255)}, {75: (102,51,255)}, {100: (255,0,153)}
Gradient Overlay angle: 135 + innerBevel smooth depth: 150, size: 4, soften: 2 + Satin LINEAR_DODGE white 30%
5.9 GLITCH EFFECT TEXT
- •Duplicate text 3x (Red, Green, Blue) + rasterize each
- •Red layer:
set_channel_restrictionsto red → translate 5px left, 2px up → SCREEN - •Blue layer:
set_channel_restrictionsto blue → translate 5px right, 2px down → SCREEN - •Green layer: keep position, channel to green → SCREEN
- •Scan lines: new layer →
apply_halftone_pattern(line, size:1) → OVERLAY 15% - •Color bands: thin rects, red/cyan, SCREEN 60-80%
- •
apply_noise(amount=15)→ SCREEN 30%
5.10 EMBOSS / LETTERPRESS TEXT
Dark bg: white text, fill_opacity=0, pillowEmboss direction=down depth=150 size=2, inner shadow 30% Light bg: same but direction=up, swap highlight/shadow
5.11 OUTLINE / STROKE TEXT
fill_opacity=0 + add_stroke_layer_style(size=2, position="CENTER", color=DESIRED)
5.12 3D EXTRUDE TEXT
Duplicate 20+ times, each translate 1px right+down, merge all copies, place below original, color overlay darker shade
5.13 WATERCOLOR TEXT
Rasterize → duplicate → blur copy MULTIPLY 80% → wave on original (low amplitude) → ripple edge bleed MULTIPLY 40%
5.14 SMOKE TEXT
White on black → rasterize → wave (gen 5, wavelength 10-80, amplitude 5-20) → Gaussian 3px → liquify upward → gradient mask → SCREEN
5.15 RETRO / VINTAGE TEXT
Warm off-white (240,230,210), stroke 3px red, hard shadow (spread=100, distance=4, size=0), noise 8%
5.16 GRADIENT FILL TEXT (scene colors)
Method A: add_gradient_overlay_layer_style with sampled colors
Method B: place image above text → clip to text (is_clipping_mask=true)
5.17 LAVA / MOLTEN TEXT
3-layer stack:
- •Base text with Inner Glow #FF6600 SCREEN 75% size 15, Outer Glow #FF3300 SCREEN 80% size 25, Bevel innerBevel depth 300% size 7
- •Duplicate → rasterize → Gaussian blur 3px → COLOR_DODGE 60%
- •Gradient Map: {0: (0,0,0)}, {30: (128,0,0)}, {60: (255,100,0)}, {85: (255,200,0)}, {100: (255,255,200)}
5.18 LIQUID TEXT — GAUSSIAN + WAVE + LIQUIFY
- •Rasterize text → duplicate
- •
apply_gaussian_blur(radius=8-12)on copy - •
apply_wave(generators=3, wavelength_min=10, wavelength_max=80, amplitude_min=5, amplitude_max=25) - •
liquify_forward— push downward at text edges - •Gradient mask: show bottom, hide top
- •Gradient Map for colorization → SCREEN 85%
5.19 LIQUID TEXT — BEVEL & EMBOSS STACKING
Pure layer styles — no filters needed:
- •Text layer with 2px stroke
- •
add_bevel_emboss_layer_style(style="innerBevel", technique="smooth", depth=100, size=20, angle=120, altitude=47, highlight_mode="SCREEN", highlight_opacity=100, shadow_mode="MULTIPLY", shadow_opacity=100) - •
add_inner_glow_layer_style(size=15, opacity=50, source="edge") - •
add_outer_glow_layer_style(size=30, opacity=60) - •Set fill_opacity=0 for glass-liquid hybrid