Nodes/GraftingRayman/GR Scroller
ComfyUI Node

GR Scroller

Bake animated scrolling, bouncing, or zooming text into a frame batch

By GraftingRayman·Created 2 years ago·Updated 3 months ago· 76
GR Scroller
  • background_image
  • FileDetails
  • Frames
◄textSample Text►
◄fps30►
◄resolutionHD 1280x720►
◄use_background_image_sizefalse►
◄use_background_imagefalse►
◄font_path/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf►
◄font_size100►
◄font_colorwhite►
◄font_opacity100►
◄font_strokefalse►
◄font_stroke_thickness2►
◄font_stroke_colourblack►
◄background_colourblack►
◄output_pathH:\scroller\output_video.mp4►
◄save_imagesfalse►
◄image_save_pathH:\scroller\frames\►
◄scroll_directionleft►
◄scroll_speed1.0►
◄movement_speed1.0►
◄movement_duration10►
◄movement_typescroll►
◄movement_distance20►
◄apply_to_each_characterfalse►
◄seed1140475649►
◄upscale1.0►

This is a kinetic-typography generator that lives entirely inside one node - no After Effects, no separate motion-graphics tool. Give it text, pick a resolution and frame rate, choose how it moves, and it renders the animation as a batch of frames you can pipe straight into a video-combine step. It's overkill for a simple static caption (see GR Text Overlay for that), but if you actually want a scrolling news-ticker, a bouncing title card, or letter-by-letter reveal text, this is a real timesaver.

How it works

text, resolution (seven presets from SD up to 4K, portrait variants included), and fps (1-120) set up the canvas. movement_type is the real headline - the schema lists 25 choices, including scroll, bounce, wave, jitter, circular, zoom, fade, rotate, oscillate, diagonal, spiral, and flip, with more beyond that. scroll_direction (left/right/up/down) presumably only bites when movement_type is actually scroll - setting a direction while running bounce or zoom likely won't do what you'd expect, since direction is a scroll-specific concept. movement_speed, movement_duration, and movement_distance control how fast, how long, and how far the animation runs; apply_to_each_character switches from moving the whole string as one block to animating each letter independently, which is the classic "each character bounces in on its own" effect. seed gives you reproducibility on whichever movement types have randomness baked in.

Font styling is its own block - font_path, font_size, font_color, font_opacity, and an optional font_stroke with its own thickness and color. You can render over a plain background_colour, or set use_background_image (plus use_background_image_size to match the canvas to it) and feed in a background_image to overlay the text on your own footage or still.

The inputs and outputs that matter

  • text, movement_type, scroll_direction - what it says and how it moves.
  • resolution, fps - canvas and frame rate.
  • output_path / save_images + image_save_path - where results get written.

Two outputs: FileDetails (STRING, a summary of the run) and Frames (IMAGE, the actual rendered frame batch - this is what you chain into a video-combine node downstream).

How to install it

ComfyUI Manager, search GraftingRayman. Manual:

cd ComfyUI/custom_nodes
git clone https://github.com/GraftingRayman/ComfyUI_GraftingRayman

Restart afterward. The pack won't import at all without OpenAI's CLIP installed separately, even though this node has nothing to do with CLIP - portable ComfyUI: .\python_embeded\python.exe -m pip install git+https://github.com/openai/CLIP.git; system Python: pip install git+https://github.com/openai/CLIP.git.

Common issues & troubleshooting

Pack fails to load. Check your startup console for the CLIP import error and run the pip install above.

Run fails on a fresh install or errors about a bad path. output_path defaults to a Windows path (H:\scroller\output_video.mp4), and image_save_path defaults similarly. Neither exists on a machine without an H: drive - which is most machines, and certainly any Linux box or cloud executor. Set both to a real, writable path before running.

Direction doesn't seem to affect the animation. scroll_direction is a scroll-specific setting - if movement_type is anything other than scroll (bounce, zoom, wave, and so on), direction likely has no effect on that motion style.

Font doesn't look right, or the dropdown feels limited. font_path is a literal filesystem path to a font file, not a family name - available choices depend on what fonts are actually installed on the machine running ComfyUI. A different OS or a bare container image may not have the same font set the pack's defaults assume.

Motion looks identical across otherwise-different runs, or you can't get a specific result back. Check seed - it's your reproducibility knob for whichever movement types use randomness.

CategoryGraftingRayman/Video

Inputs (26)

NameTypeDefaultDescription
textSTRINGSample Text—
fpsINT301–120—
resolutionCOMBOHD 1280x7207 options: 4K 3840x2160, Full HD 1920x1080, HD 1280x720, Portrait 4K 2160x3840, Portrait Full HD 1080x1920, Portrait HD 720x1280, +1
use_background_image_sizeBOOLEANfalse—
use_background_imageBOOLEANfalse—
font_pathCOMBO/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf10 options: /usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf, /usr/share/fonts/truetype/dejavu/DejaVuSans.ttf, /usr/share/fonts/truetype/dejavu/DejaVuSansMono-Bold.ttf, /usr/share/fonts/truetype/dejavu/DejaVuSansMono.ttf, /usr/share/fonts/truetype/dejavu/DejaVuSerif-Bold.ttf, /usr/share/fonts/truetype/dejavu/DejaVuSerif.ttf, +4
font_sizeINT10010–1000—
font_colorCOMBOwhite15 options: black, blue, cyan, gray, green, magenta, +9
font_opacityINT1000–100—
font_strokeBOOLEANfalse—
font_stroke_thicknessINT21–10—
font_stroke_colourCOMBOblack15 options: black, blue, cyan, gray, green, magenta, +9
background_colourCOMBOblack15 options: black, blue, cyan, gray, green, magenta, +9
output_pathSTRINGH:\scroller\output_video.mp4—
save_imagesBOOLEANfalse—
image_save_pathSTRINGH:\scroller\frames\—
scroll_directionCOMBOleft4 options: left, right, up, down
scroll_speedFLOAT1.00.1–250—
movement_speedFLOAT1.00.1–10—
movement_durationINT101–600—
movement_typeCOMBOscroll25 options: scroll, bounce, wave, jitter, circular, zoom, +19
movement_distanceINT201–100—
apply_to_each_characterBOOLEANfalse—
seedINT11404756490–4294967295—
upscaleFLOAT1.01–10—
background_imageoptIMAGE—

Outputs (2)

NameTypeDescription
FileDetailsSTRING—
FramesIMAGE—