Cut and Drag GUI
We provide a GUI to generate cut-and-drag examples that will later be used for video generation given this input signal using Time to Move!
Given an input frame, you can cut and drag polygons from the initial image, transform their colors, and also add external images that can be dragged into the initial scene.
✨ General Guide
- Select an initial image.
- Draw polygons in the image and drag them in several segments.
- During segments you can rotate, scale, and change the polygon colors!
- Polygons can also be dragged from an external image you can add into the scene.
- Write an text prompt that will be used to generate the video afterwards.
- You can preview the motion signal in an in-app demo.
- In the end, all the inputs needed for Time-to-Move are saved automatically in a selected output directory.
🧰 Requirements
Install dependencies:
pip install PySide6 opencv-python numpy imageio imageio-ffmpeg
🚀 Run
Just run the python script:
python cut_and_drag.py
🖱️ How to Use
- Select Image — Click 🖼️ Select Image and choose an image.
- Choose Center Crop / Center Pad at the top of the toolbar if needed.
- Add a Polygon “cutting” the part of the image by clicking Add Polygon.
- Left-click to add points.
- After finishing drawing the polygon, press ✅ Finish Polygon Selection.
- Drag to move the polygon
- During segments you’ll see corner circles and a top dot which can be used for scaling and rotating during the segments; in the video the shape is interpolated between the initial frame status and the final segment one.
- Also, color transformation can be applied (using hue transformation) in the segments to change polygon colors.
- Click 🎯 End Segment to capture the segment annotated.
- The movement trajectory can be constructed from multiple segments: repeat move → 🎯 End Segment → move → 🎯 End Segment…
- External Image
- Another option is to add an external image to the scene.
- Click 🖼️➕ Add External Image, pick a new image.
- Position/scale/rotate it for its initial pose, then click ✅ Place External Image to lock its starting pose.
- Now animate it like before: mark a polygon, move, etc.
- Prompt
- Type any text prompt you want associated with this example; it will be used later for video generation with our method.
- Preview and Save
- Preview using ▶️ Play Demo.
- Click 💾 Save, choose an output folder and then enter a subfolder name.
- Click 🆕 New to start a new project.
Output Files
- first_frame.png — the initial frame for video generation
- motion_signal.mp4 — the reference warped video
- mask.mp4 — grayscale mask of the motion
- prompt.txt — your prompt text
🧾 License / Credits
Built with PySide6, OpenCV, and NumPy. You own the images and exports you create with this tool. Motivation for creating an easy-to-use tool from Go-With-The-Flow.