From 1404d7863e22d25cc99449767612774ba3ad8623 Mon Sep 17 00:00:00 2001 From: Chev Date: Sun, 25 Jan 2026 17:34:00 -0800 Subject: [PATCH] Add images support --- README.md | 12 ++-- input_image_sources/tennis-ball-bird.jpg | Bin 0 -> 58792 bytes input_image_sources/troll-face.jpg | Bin 0 -> 43384 bytes main.py | 79 +++++++++++++++++++---- 4 files changed, 75 insertions(+), 16 deletions(-) create mode 100644 input_image_sources/tennis-ball-bird.jpg create mode 100644 input_image_sources/troll-face.jpg diff --git a/README.md b/README.md index 3c34b3b..f522e4c 100644 --- a/README.md +++ b/README.md @@ -3,13 +3,14 @@ Generates an output video with overlayed audio and effects using a list of audio ## How it works Here's how it works: -1. Gets all video & audio sources to use from the `input_video_sources/` and `input_audio_sources/` directories. This is where you put your sources. +1. Gets all sources to use from the `input_video_sources/`, `input_audio_sources/` and `input_image_sources/` directories. This is where you put your sources. 2. Gets a seed for the random number generator, which can be used if a user wants to re-generate the same exact video again. 3. Chooses _n_ random videos where _n_ is the number of videos the user wants to merge into the final results (e.g. if you want to merge 40 different videos, it chooses 40 random videos). The script will first to attempt to avoid duplicate videos. If the chosen video amount is higher than the available videos, then the script will add duplicate videos to meet that amount. 4. Applies a bunch of random effects to the video files, which include trimming the video to be a random short length, mirroring the video, speeding it up or slowing it down, reversing the video, as well as other effects. 5. Merges all the now effect-applied videos into one big video. -6. Applies effects to the audio files, which include trimming the audio to be a random short length. The script will also attempt to repeat audio clips less than 5 seconds to give a repetitive-like nature to the end result. -7. The merged video clip & merged audio clip is then merged together to produce the final result, which is put into the `output/` directory. +6. Applies images onto this big video at random, at random positions and sizes. +7. Also adds audio files at random spots, and can additionally apply effects to them, which include trimming the audio to be a random short length. The script will also attempt to repeat audio clips less than 5 seconds to give a repetitive-like nature to the end result. +8. Everything is then merged together to produce the final result, which is put into the `output/` directory. ## Requirements Python `3.9` or greater is required. This project has been tested on Python `3.11`. @@ -35,7 +36,10 @@ If you'd prefer to use traditional pip/venv: Please take a look at the **requirements** above before following these steps. **uv** is the recommended install method. 1. Download the GitHub repo (click the green 'code' button, then 'Download ZIP') and extract it somewhere. -2. Put a list of desired video sources into the `input_video_sources/` directory, and a list of desired audio sources into the `input_audio_sources` directory. I recommend keeping the video file formats the same, but it shouldn't matter. The resolution of videos does not matter, either. +2. Put a list of desired sources into their respective directories: + - Videos in `input_video_sources/` + - Sounds in `input_audio_sources/` + - Images in `input_image_sources/` 3. Run the script, and choose a seed if you want to reproduce the same video later. Otherwise, type 'any' to choose a random seed. 4. Choose the amount of videos you want the script to merge together to produce the final result. 5. The script will do the rest, and generate the final video in the root directory, which will be formatted as `result_seed-__.mp4`. diff --git a/input_image_sources/tennis-ball-bird.jpg b/input_image_sources/tennis-ball-bird.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c6be672e03755e44f4f73a9706f318820b1079dc GIT binary patch literal 58792 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 Vid43hwSDBz{3T&&?)l%^{{abr0P_F< literal 0 HcmV?d00001 diff --git a/input_image_sources/troll-face.jpg b/input_image_sources/troll-face.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4afa0ea91d16698a50b480f0360793c75992855b GIT binary patch literal 43384 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∨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 M!)gm{*(gH)*)rJQO#lD@ literal 0 HcmV?d00001 diff --git a/main.py b/main.py index 6c51d0f..118847c 100644 --- a/main.py +++ b/main.py @@ -4,8 +4,7 @@ from sys import maxsize from os import listdir, mkdir, path # MoviePy modules -from moviepy import VideoFileClip, AudioFileClip, CompositeAudioClip, concatenate_videoclips, Effect, vfx -from moviepy.Clip import Clip +from moviepy import VideoFileClip, AudioFileClip, CompositeAudioClip, CompositeVideoClip, ImageClip, concatenate_videoclips, vfx, VideoClip from src import custom_effects @@ -15,28 +14,36 @@ from tqdm import tqdm """ TODO: - flash random images in short bursts at long intervals try to overlap videos more and distort them spread out audio duplication a bit, so they don't end up directly next to one another """ VIDEO_SOURCE_FOLDER = "input_video_sources" AUDIO_SOURCE_FOLDER = "input_audio_sources" +IMAGE_SOURCE_FOLDER = "input_image_sources" videoFiles = [VIDEO_SOURCE_FOLDER + "/" + vid for vid in listdir(VIDEO_SOURCE_FOLDER)] audioFiles = [AUDIO_SOURCE_FOLDER + "/" + vid for vid in listdir(AUDIO_SOURCE_FOLDER)] +imageFiles = [IMAGE_SOURCE_FOLDER + "/" + vid for vid in listdir(IMAGE_SOURCE_FOLDER)] # All video clips will be trimmed to be between these two lengths -# default: 0.5, 3.5 | chaos: 0.3, 1.2 -video_clip_times = (0.4, 0.8) -# All audio clips will be trimemd to be between these two lengths -# default: 0.7, 13. chaos: 0.7, 3.0 +# default: 0.4, 3.0 | chaos: 0.3, 1.2 +video_clip_times = (0.4, 3.0) +# All audio clips will be trimmed to be between these two lengths +# default: 0.7, 3.0 | chaos: 0.2, 1.0 audio_clip_times = (0.7, 3.0) +# All image clips will be trimmed to be between these two lengths +# default: 0.3, 0.8 | chaos: 0.1, 0.5 +image_clip_times = (0.3, 0.8) # Audio amount multiplier (based off the amount of videos) # e.g. 60 videos with a multiplier of 0.75 means 45 audio clips will be put into the final result. -# default: 0.75. chaos: 1.5 -AUDIO_AMOUNT_MULTIPLIER = 1.5 +# default: 0.75 | chaos: 1.5 +AUDIO_AMOUNT_MULTIPLIER = 0.75 + +# Image amount multiplier (pretty much ditto as audio amount multiplier) +# default: 0.6 | chaos: 2.0 +IMAGE_AMOUNT_MULTIPLIER = 2 # (min, max) random values range, inclusive #integer. default: 1, 7 @@ -92,6 +99,7 @@ videoEffects = [ videoObjects = [] audioObjects = [] +imageObjects = [] videoAmount = input("Amount of videos: ") while not videoAmount.isdecimal(): @@ -114,7 +122,6 @@ if videoAmount > len(videoFiles): #if there is a higher chosen amount than total randomVideos += additionalVideos print("") -print(f"Compiling {videoAmount} videos... ", end="\r") with tqdm(desc="Compiling videos", total=len(randomVideos)) as pbar: for index, video in enumerate(randomVideos): @@ -138,7 +145,7 @@ with tqdm(desc="Compiling videos", total=len(randomVideos)) as pbar: print("Finished compiling videos.") -finalVideo = concatenate_videoclips(videoObjects, method="compose") # method="compose" +finalVideo: VideoClip = concatenate_videoclips(videoObjects, method="compose") audioAmount = int(videoAmount*AUDIO_AMOUNT_MULTIPLIER) @@ -151,7 +158,6 @@ if audioAmount > len(audioFiles): randomSounds += additionalAudio print("") -print(f"Compiling {audioAmount} sounds...", end="\r") copiedSoundAmount = 0 with tqdm(desc="Compiling sounds", total=len(randomSounds)) as pbar: @@ -200,6 +206,53 @@ with tqdm(desc="Compiling sounds", total=len(randomSounds)) as pbar: print(f"Finished compiling audio. Added {copiedSoundAmount} duplicate sounds, total {audioAmount+copiedSoundAmount}.") +imageAmount = int(videoAmount * IMAGE_AMOUNT_MULTIPLIER) + +randomImages = rng.sample(imageFiles, k=min(audioAmount, len(imageFiles))) + +if imageAmount > len(imageFiles): + imageAmountToAdd = imageAmount - len(imageFiles) + print(f"Chosen image amount is higher than available image amount - re-using {imageAmountToAdd} image sources...") + additionalImages = rng.choices(imageFiles, k=imageAmountToAdd) + randomImages += additionalImages + +print("") + +with tqdm(desc="Compiling images", total=len(randomImages)) as pbar: + for index, imagePath in enumerate(randomImages): + # Load the image as a clip + clipDuration = rng.uniform(*image_clip_times) + newClip = ImageClip(imagePath, duration=clipDuration) + + # Resize the image randomly, relative to the video's output resolution + clipWidthNormal = rng.uniform(0.15, 1) + clipWidth = int(finalVideo.w * clipWidthNormal) + clipHeightNormal = rng.uniform(0.15, 1) + clipHeight = int(finalVideo.h * clipHeightNormal) + newClip = newClip.with_effects([vfx.Resize((clipWidth, clipHeight))]) + + # Place the image randomly (coordinates-wise) in the final video + clipOffsetXNormal = rng.uniform(0, 1) + clipOffsetX = min( + int(finalVideo.w * clipOffsetXNormal), + finalVideo.w - clipWidth + ) + clipOffsetYNormal = rng.uniform(0, 1) + clipOffsetY = min( + int(finalVideo.h * clipOffsetYNormal), + finalVideo.h - clipHeight + ) + newClip = newClip.with_position((clipOffsetX, clipOffsetY)) + + # Place the image at a random spot (duration-wise) in the final video + newClip = newClip.with_start(rng.uniform(0, finalVideo.duration - newClip.duration)) + + imageObjects.append(newClip) + + pbar.update(1) + +finalVideo = CompositeVideoClip([finalVideo] + imageObjects) + # The video's filename finalVideoFilename = f"output/result_seed-{seed}_{videoAmount}{'_effects' if shouldUseEffects else ''}.mp4" @@ -226,3 +279,5 @@ for video in videoObjects: video.close() for audio in audioObjects: audio.close() +for image in imageObjects: + image.close()