Add image resizing in DallEAssetsEngine

This commit is contained in:
2024-02-18 22:49:56 +01:00
parent 3a4e032799
commit 56ae10301a

View File

@@ -1,6 +1,7 @@
import gradio as gr import gradio as gr
import openai import openai
import moviepy.editor as mp import moviepy.editor as mp
from moviepy.video.fx.resize import resize
import io import io
import base64 import base64
import time import time
@@ -38,6 +39,7 @@ class DallEAssetsEngine(BaseAssetsEngine):
super().__init__() super().__init__()
def get_assets(self, options: list[Spec]) -> list[mp.ImageClip]: def get_assets(self, options: list[Spec]) -> list[mp.ImageClip]:
max_width = self.ctx.width / 3 * 2
clips = [] clips = []
for option in options: for option in options:
prompt = option["prompt"] prompt = option["prompt"]
@@ -67,9 +69,10 @@ class DallEAssetsEngine(BaseAssetsEngine):
os.remove("temp.png") os.remove("temp.png")
img: mp.ImageClip = img.set_duration(end - start) img: mp.ImageClip = img.set_duration(end - start)
img = img.set_start(start) img: mp.ImageClip = img.set_start(start)
img: mp.ImageClip = resize(img, width=max_width)
if self.aspect_ratio == "portrait": if self.aspect_ratio == "portrait":
img = img.set_position(("center", "top")) img: mp.ImageClip = img.set_position(("center", "top"))
elif self.aspect_ratio == "landscape": elif self.aspect_ratio == "landscape":
img = img.set_position(("center", "center")) img = img.set_position(("center", "center"))
elif self.aspect_ratio == "square": elif self.aspect_ratio == "square":