diff --git a/src/chore/GenerationContext.py b/src/chore/GenerationContext.py index fbb7a98..ae9c489 100644 --- a/src/chore/GenerationContext.py +++ b/src/chore/GenerationContext.py @@ -2,12 +2,10 @@ import os import time from datetime import datetime -import gradio as gr import moviepy.editor as mp from .. import engines from ..models import Video, SessionLocal -from ..utils.prompting import get_prompt class GenerationContext: diff --git a/src/engines/AssetsEngine/AssetsEngineSelector.py b/src/engines/AssetsEngine/AssetsEngineSelector.py index 6229248..0750fad 100644 --- a/src/engines/AssetsEngine/AssetsEngineSelector.py +++ b/src/engines/AssetsEngine/AssetsEngineSelector.py @@ -33,5 +33,5 @@ class AssetsEngineSelector: assets_opts = [ asset["args"] for asset in assets if asset["engine"] == engine.name ] - clips.extend(engine.get_assets(assets_opts)) + clips.extend(engine.generate(assets_opts)) self.ctx.index_3.extend(clips) diff --git a/src/engines/AssetsEngine/BaseAssetsEngine.py b/src/engines/AssetsEngine/BaseAssetsEngine.py index 1b69a9b..c79ddb8 100644 --- a/src/engines/AssetsEngine/BaseAssetsEngine.py +++ b/src/engines/AssetsEngine/BaseAssetsEngine.py @@ -1,7 +1,4 @@ -from abc import ABC, abstractmethod -from typing import TypedDict - -from moviepy.editor import ImageClip, VideoFileClip +from abc import abstractmethod from ..BaseEngine import BaseEngine @@ -21,5 +18,5 @@ class BaseAssetsEngine(BaseEngine): spec_description: str @abstractmethod - def get_assets(self, options: list) -> list: + def generate(self, options: list) -> list: ... diff --git a/src/engines/AssetsEngine/DallEAssetsEngine.py b/src/engines/AssetsEngine/DallEAssetsEngine.py index 14922c2..46f9d83 100644 --- a/src/engines/AssetsEngine/DallEAssetsEngine.py +++ b/src/engines/AssetsEngine/DallEAssetsEngine.py @@ -1,7 +1,4 @@ -import base64 -import io import os -import time from typing import Literal, TypedDict import gradio as gr @@ -41,7 +38,7 @@ class DallEAssetsEngine(BaseAssetsEngine): super().__init__() - def get_assets(self, options: list[Spec]) -> list[mp.ImageClip]: + def generate(self, options: list[Spec]) -> list[mp.ImageClip]: max_width = self.ctx.width / 3 * 2 clips = [] for option in options: @@ -49,7 +46,7 @@ class DallEAssetsEngine(BaseAssetsEngine): start = option["start"] end = option["end"] style = option["style"] - size = ( + size: Literal["1024x1024", "1024x1792", "1792x1024"] = ( "1024x1024" if self.aspect_ratio == "square" else "1024x1792" @@ -71,9 +68,9 @@ class DallEAssetsEngine(BaseAssetsEngine): continue else: raise - img = requests.get(response.data[0].url) + img_bytes = requests.get(response.data[0].url) with open("temp.png", "wb") as f: - f.write(img.content) + f.write(img_bytes.content) img = mp.ImageClip("temp.png") os.remove("temp.png") diff --git a/src/engines/AssetsEngine/GoogleAssetsEngine.py b/src/engines/AssetsEngine/GoogleAssetsEngine.py index 281b9a4..41b55f5 100644 --- a/src/engines/AssetsEngine/GoogleAssetsEngine.py +++ b/src/engines/AssetsEngine/GoogleAssetsEngine.py @@ -1,13 +1,9 @@ -import base64 -import io import os import shutil -import time -from typing import Literal, TypedDict +from typing import TypedDict import gradio as gr import moviepy.editor as mp -import requests from google_images_search import GoogleImagesSearch from moviepy.video.fx.resize import resize @@ -41,7 +37,7 @@ class GoogleAssetsEngine(BaseAssetsEngine): self.google = GoogleImagesSearch(api_key, project_cx) super().__init__() - def get_assets(self, options: list[Spec]) -> list[mp.ImageClip]: + def generate(self, options: list[Spec]) -> list[mp.ImageClip]: max_width = self.ctx.width / 3 * 2 clips = [] for option in options: diff --git a/src/engines/BackgroundEngine/BaseBackgroundEngine.py b/src/engines/BackgroundEngine/BaseBackgroundEngine.py index 1639c73..6ef6a74 100644 --- a/src/engines/BackgroundEngine/BaseBackgroundEngine.py +++ b/src/engines/BackgroundEngine/BaseBackgroundEngine.py @@ -1,6 +1,4 @@ -from abc import ABC, abstractmethod - -from moviepy.editor import VideoClip +from abc import abstractmethod from ..BaseEngine import BaseEngine diff --git a/src/engines/BackgroundEngine/VideoBackgroundEngine.py b/src/engines/BackgroundEngine/VideoBackgroundEngine.py index 551ee00..8c945ce 100644 --- a/src/engines/BackgroundEngine/VideoBackgroundEngine.py +++ b/src/engines/BackgroundEngine/VideoBackgroundEngine.py @@ -6,7 +6,6 @@ import time import gradio as gr import moviepy.editor as mp from moviepy.video.fx.crop import crop -from moviepy.video.fx.resize import resize from . import BaseBackgroundEngine @@ -60,7 +59,7 @@ class VideoBackgroundEngine(BaseBackgroundEngine): ) @classmethod - def get_settings(cls) -> list: + def get_settings(cls): def add_file(fp: str, name: str, credits: str): if name == "": raise ValueError("Name cannot be empty.") diff --git a/src/engines/BaseEngine.py b/src/engines/BaseEngine.py index 58980ab..7275312 100644 --- a/src/engines/BaseEngine.py +++ b/src/engines/BaseEngine.py @@ -1,6 +1,5 @@ from abc import ABC, abstractmethod -import gradio as gr import moviepy.editor as mp from sqlalchemy.future import select @@ -8,6 +7,7 @@ from ..chore import GenerationContext from ..models import SessionLocal, File, Setting +# noinspection PyTypeChecker class BaseEngine(ABC): num_options: int name: str @@ -33,6 +33,7 @@ class BaseEngine(ABC): def get_assets(cls, *, type: str = None, by_id: int = None) -> list[File] | File | None: with SessionLocal() as db: if type: + # noinspection PyTypeChecker return ( db.execute( select(File).filter( @@ -43,6 +44,7 @@ class BaseEngine(ABC): .all() ) elif by_id: + # noinspection PyTypeChecker return ( db.execute( select(File).filter( @@ -53,6 +55,7 @@ class BaseEngine(ABC): .first() ) else: + # noinspection PyTypeChecker return ( db.execute(select(File).filter(File.provider == cls.name)) .scalars() @@ -69,6 +72,7 @@ class BaseEngine(ABC): @classmethod def remove_asset(cls, *, path: str): with SessionLocal() as db: + # noinspection PyTypeChecker db.execute(select(File).filter(File.path == path)).delete() db.commit() @@ -77,6 +81,7 @@ class BaseEngine(ABC): def store_setting(cls, *, type: str = None, data: dict): with SessionLocal() as db: # check if setting exists + # noinspection PyTypeChecker setting = db.execute( select(Setting).filter( Setting.provider == cls.name, Setting.type == type @@ -112,6 +117,7 @@ class BaseEngine(ABC): if not identifier and type: identifier = type if identifier: + # noinspection PyTypeChecker result = db.execute( select(Setting).filter( Setting.provider == cls.name, Setting.type == identifier @@ -122,6 +128,7 @@ class BaseEngine(ABC): return result.data return None else: + # noinspection PyTypeChecker return [ s.data for s in db.execute( @@ -145,12 +152,14 @@ class BaseEngine(ABC): if not identifier and type: identifier = type if identifier: + # noinspection PyTypeChecker db.execute( select(Setting).filter( Setting.provider == cls.name, Setting.type == identifier ) ).delete() else: + # noinspection PyTypeChecker db.execute( select(Setting).filter(Setting.provider == cls.name) ).delete() diff --git a/src/engines/CaptioningEngine/BaseCaptioningEngine.py b/src/engines/CaptioningEngine/BaseCaptioningEngine.py index 7887628..be80b92 100644 --- a/src/engines/CaptioningEngine/BaseCaptioningEngine.py +++ b/src/engines/CaptioningEngine/BaseCaptioningEngine.py @@ -1,6 +1,4 @@ -from abc import ABC, abstractmethod - -from moviepy.editor import TextClip +from abc import abstractmethod from ..BaseEngine import BaseEngine diff --git a/src/engines/CaptioningEngine/SimpleCaptioningEngine.py b/src/engines/CaptioningEngine/SimpleCaptioningEngine.py index 3340eb7..2d0cf65 100644 --- a/src/engines/CaptioningEngine/SimpleCaptioningEngine.py +++ b/src/engines/CaptioningEngine/SimpleCaptioningEngine.py @@ -1,5 +1,4 @@ import gradio as gr -from PIL import ImageFont from moviepy.editor import TextClip from . import BaseCaptioningEngine diff --git a/src/engines/LLMEngine/AnthropicLLMEngine.py b/src/engines/LLMEngine/AnthropicLLMEngine.py index 7c888bd..5472c1e 100644 --- a/src/engines/LLMEngine/AnthropicLLMEngine.py +++ b/src/engines/LLMEngine/AnthropicLLMEngine.py @@ -34,8 +34,9 @@ class AnthropicLLMEngine(BaseLLMEngine): ) -> str | dict: prompt = f"""{anthropic.HUMAN_PROMPT} {system_prompt} {anthropic.HUMAN_PROMPT} {chat_prompt} {anthropic.AI_PROMPT}""" if json_mode: - # anthopic does not officially support JSON mode, but we can bias the output towards a JSON-like format + # anthropic does not officially support JSON mode, but we can bias the output towards a JSON-like format prompt += " {" + # noinspection PyArgumentList response: anthropic.types.Completion = self.client.completions.create( max_tokens_to_sample=max_tokens, prompt=prompt, diff --git a/src/engines/LLMEngine/BaseLLMEngine.py b/src/engines/LLMEngine/BaseLLMEngine.py index 8e6175e..685f723 100644 --- a/src/engines/LLMEngine/BaseLLMEngine.py +++ b/src/engines/LLMEngine/BaseLLMEngine.py @@ -1,6 +1,4 @@ -from abc import ABC, abstractmethod - -import openai +from abc import abstractmethod from ..BaseEngine import BaseEngine @@ -11,11 +9,11 @@ class BaseLLMEngine(BaseEngine): self, system_prompt: str, chat_prompt: str, - max_tokens: int, - temperature: float, - json_mode: bool, - top_p: float, - frequency_penalty: float, - presence_penalty: float, + max_tokens: int = 512, + temperature: float = 1.0, + json_mode: bool = False, + top_p: float = 1, + frequency_penalty: float = 0, + presence_penalty: float = 0, ) -> str | dict: pass diff --git a/src/engines/LLMEngine/OpenaiLLMEngine.py b/src/engines/LLMEngine/OpenaiLLMEngine.py index 31bfd4f..8751f9a 100644 --- a/src/engines/LLMEngine/OpenaiLLMEngine.py +++ b/src/engines/LLMEngine/OpenaiLLMEngine.py @@ -1,5 +1,3 @@ -from abc import ABC, abstractmethod - import gradio as gr import openai import orjson diff --git a/src/engines/ScriptEngine/BaseScriptEngine.py b/src/engines/ScriptEngine/BaseScriptEngine.py index cc44f47..2309156 100644 --- a/src/engines/ScriptEngine/BaseScriptEngine.py +++ b/src/engines/ScriptEngine/BaseScriptEngine.py @@ -1,4 +1,4 @@ -from abc import ABC, abstractmethod +from abc import abstractmethod from ..BaseEngine import BaseEngine diff --git a/src/engines/ScriptEngine/CustomScriptEngine.py b/src/engines/ScriptEngine/CustomScriptEngine.py index 67ce0b0..a485f8b 100644 --- a/src/engines/ScriptEngine/CustomScriptEngine.py +++ b/src/engines/ScriptEngine/CustomScriptEngine.py @@ -12,8 +12,8 @@ class CustomScriptEngine(BaseScriptEngine): self.script = options[0] super().__init__() - def generate(self, *args, **kwargs) -> str: - self.ctx.script = self.script.strip().copy() + def generate(self, *args, **kwargs): + self.ctx.script = self.script.strip() @classmethod def get_options(cls) -> list: diff --git a/src/engines/SettingsEngine/SettingsEngine.py b/src/engines/SettingsEngine/SettingsEngine.py index 2dcc771..9346209 100644 --- a/src/engines/SettingsEngine/SettingsEngine.py +++ b/src/engines/SettingsEngine/SettingsEngine.py @@ -1,5 +1,3 @@ -from abc import ABC, abstractmethod - import gradio as gr from ..BaseEngine import BaseEngine diff --git a/src/engines/TTSEngine/BaseTTSEngine.py b/src/engines/TTSEngine/BaseTTSEngine.py index 9389c33..f4cff54 100644 --- a/src/engines/TTSEngine/BaseTTSEngine.py +++ b/src/engines/TTSEngine/BaseTTSEngine.py @@ -1,4 +1,4 @@ -from abc import ABC, abstractmethod +from abc import abstractmethod from typing import TypedDict import moviepy.editor as mp diff --git a/src/engines/TTSEngine/CoquiTTSEngine.py b/src/engines/TTSEngine/CoquiTTSEngine.py index ca10dea..2914ddb 100644 --- a/src/engines/TTSEngine/CoquiTTSEngine.py +++ b/src/engines/TTSEngine/CoquiTTSEngine.py @@ -4,8 +4,7 @@ import gradio as gr import torch from TTS.api import TTS -from .BaseTTSEngine import BaseTTSEngine, Word -from ...utils.prompting import get_prompt +from .BaseTTSEngine import BaseTTSEngine class CoquiTTSEngine(BaseTTSEngine): diff --git a/src/engines/__init__.py b/src/engines/__init__.py index ad3a5c5..ebddf53 100644 --- a/src/engines/__init__.py +++ b/src/engines/__init__.py @@ -1,5 +1,3 @@ -from typing import TypedDict - from . import AssetsEngine from . import BackgroundEngine from . import CaptioningEngine diff --git a/src/models/DatabaseManager.py b/src/models/DatabaseManager.py index f02b099..85d205d 100644 --- a/src/models/DatabaseManager.py +++ b/src/models/DatabaseManager.py @@ -1,7 +1,5 @@ -import os - from sqlalchemy import create_engine -from sqlalchemy.orm import Session, sessionmaker +from sqlalchemy.orm import sessionmaker from . import Base diff --git a/src/models/File.py b/src/models/File.py index 50ff1e6..de8b884 100644 --- a/src/models/File.py +++ b/src/models/File.py @@ -1,5 +1,3 @@ -from typing import Optional - from sqlalchemy import String, Column, JSON, Integer from sqlalchemy.ext.mutable import MutableDict @@ -13,4 +11,4 @@ class File(Base): provider: str = Column(String, nullable=False) type: str = Column(String, nullable=True) path: str = Column(String, nullable=False) - data: dict = Column(MutableDict.as_mutable(JSON), nullable=False, default={}) + data: dict = Column(MutableDict.as_mutable(JSON), nullable=False, default={}) # type: ignore diff --git a/src/models/Setting.py b/src/models/Setting.py index 5929f19..6c7b7b2 100644 --- a/src/models/Setting.py +++ b/src/models/Setting.py @@ -1,5 +1,3 @@ -from typing import Optional - from sqlalchemy import String, Column, JSON, Integer from sqlalchemy.ext.mutable import MutableDict @@ -12,4 +10,4 @@ class Setting(Base): id = Column(Integer, primary_key=True, autoincrement=True) provider: str = Column(String, nullable=False) type: str = Column(String, nullable=True) - data: dict = Column(MutableDict.as_mutable(JSON), nullable=False, default={}) + data: dict = Column(MutableDict.as_mutable(JSON), nullable=False, default={}) # type: ignore diff --git a/src/models/Video.py b/src/models/Video.py index 771dc15..f4eedd1 100644 --- a/src/models/Video.py +++ b/src/models/Video.py @@ -1,5 +1,4 @@ from datetime import datetime -from typing import Optional from sqlalchemy import String, Column, JSON, Integer, DateTime from sqlalchemy.ext.mutable import MutableList