Sketch2Motion README

The project's README from github.com/leeyeel/Sketch2Motion. As one markdown file: README.md.

Sketch to Motion Preview

Sketch to Motion

English | 简体中文

Colorful Version Demo

Input image Colorful drawing animation

Generate it with the color pipeline:

python sketch2svg_color.py input.png 16
python render_color.py input_color.svg --duration 5.0 --delay 0.05 --scale 3.55 --output-file output

The color pipeline quantizes the image into up to 16 colors, traces each color layer separately with potrace, and renders a colored drawing animation with Manim. Generated SVGs include their own background color, so they can be moved or shared without a companion file.

Convert a static image into a smooth drawing animation using Manim.

This project takes a doodle, photo, or sketch, converts it into an SVG vector graphic, and renders it into an animated MP4 video with Manim.
It also prepends the last frame to the start of the video, creating a short pause for a more polished look.


Features


Installation

1. Clone this repository

git clone https://github.com/yourusername/sketch-to-motion.git
cd Sketch2Motion

2. Install Python dependencies

Make sure you have Python 3.9+ installed.

pip install -r requirements.txt

Key dependencies:

Install Manim:

Installing Manim

Install ffmpeg:

Install Potrace:


Usage

Launch the Gradio app

python app.py

Access the app at:

http://127.0.0.1:7880

3. Web interface workflow

  1. Use the Language / 语言 selector to switch between English and Chinese.
  2. Upload a doodle/photo as the Input image. Enable Preserve colors to use the color pipeline and choose its palette size.
  3. Click Generate sketch to convert it to SVG.
  4. Adjust Animation duration, Subpath delay ratio, Scale factor, and Drawing style.
  5. Choose the Video format (landscape is selected by default), then click Generate video to render and preview the animation.
  6. Download the generated MP4.

Sketch2Motion (leeyeel/Sketch2Motion)

Searching Database…

Что это?Sketch2Motion превращает фото, каракулю или набросок в анимированное MP4-видео в стиле рисунка, как будто кто-то рисует его от руки.
Это библиотека для импорта или отдельное приложение?Это отдельный инструмент с веб-интерфейсом на Gradio, который вы запускаете локально; импортировать его как библиотеку не предполагается.
Как это запустить?Склонируйте репозиторий, установите Python-зависимости, затем запустите Gradio-приложение и откройте его в браузере.
Что нужно установить, кроме Python?Нужен Python 3.9+, а также Gradio и Manim как Python-пакеты, и ffmpeg с Potrace в системном PATH для рендеринга и трассировки.
Есть ли подводные камни установки, которые стоит учитывать?ffmpeg и Potrace нужно устанавливать отдельно и добавлять в PATH (сами через pip они не подтягиваются), что часто становится причиной неудач при настройке на Windows.
Кому это пригодится?Художникам, любителям или создателям контента, которые хотят превратить статичный рисунок или фото в распространяемую анимацию «процесса рисования» без ручной векторной анимации.
Работает ли это на Windows, macOS и Linux?Да, в README есть инструкции по установке ffmpeg и Potrace на Windows, macOS и Linux.
Можно сохранить исходные цвета в анимации?Да, есть опциональный конвейер с сохранением цвета: он квантизирует изображение до 16 цветов, отдельно трассирует каждый цветовой слой через Potrace и рендерит цветную рисовальную анимацию.
Какие стили и форматы анимации можно выбрать?Можно настроить длительность, коэффициент задержки подпутей, масштаб зума и выбрать стиль рисования (linear, smooth, thereandback, wiggle), а рендерить в альбомном 16:9 или портретном 9:16.
Зачем добавлять последний кадр в начало?Инструмент автоматически добавляет финальный нарисованный кадр в начало видео, создавая короткую паузу, которая даёт анимации более завершённое вступление.
Как технически выглядит результат?Изображения трассируются в векторную графику SVG (со встроенным цветом фона), а затем рендерятся в MP4 с помощью анимационного движка Manim.
Creator
leeyeel
Size
5.3 MB
Stars
381
Updated
CommitAug 26
Age
1y
Commits · 90 Days