diff --git a/app.py b/app.py index e1d84367..19025d57 100644 --- a/app.py +++ b/app.py @@ -397,22 +397,14 @@ try: self.add_endpoint("/install_sd", "install_sd", self.install_sd, methods=["GET"]) - + + self.add_endpoint("/get_presets", "get_presets", self.get_presets, methods=["GET"]) + self.add_endpoint("/add_preset", "add_preset", self.add_preset, methods=["POST"]) + # ---- - - - - - self.add_endpoint( - "/get_presets", "get_presets", self.get_presets, methods=["GET"] - ) - - self.add_endpoint( - "/add_preset", "add_preset", self.add_preset, methods=["POST"] - ) self.add_endpoint( "/save_presets", "save_presets", self.save_presets, methods=["POST"] @@ -422,8 +414,6 @@ try: "/execute_code", "execute_code", self.execute_code, methods=["POST"] ) - - self.add_endpoint("/update_binding_settings", "update_binding_settings", self.update_binding_settings, methods=["GET"]) diff --git a/endpoints/lollms_playground.py b/endpoints/lollms_playground.py index 16189fdb..76d52417 100644 --- a/endpoints/lollms_playground.py +++ b/endpoints/lollms_playground.py @@ -18,7 +18,7 @@ from pathlib import Path from ascii_colors import ASCIIColors import os import platform -import yaml +import yaml, json # ----------------------- Defining router and main class ------------------------------ router = APIRouter() @@ -26,7 +26,7 @@ lollmsElfServer:LOLLMSWebUI = LOLLMSWebUI.get_instance() # ----------------------- voice ------------------------------ -@router.get("/install_ollama") +@router.get("/get_presets") def get_presets(): presets = [] presets_folder = Path("__file__").parent/"presets" @@ -42,4 +42,57 @@ def get_presets(): preset = yaml.safe_load(file) if preset is not None: presets.append(preset) - return presets \ No newline at end of file + return presets + +@router.post("/add_preset") +async def add_preset(request: Request): + """ + Changes current voice + + :param request: The HTTP request object. + :return: A JSON response with the status of the operation. + """ + # Get the JSON data from the POST request. + preset_data = request.get_json() + presets_folder = lollmsElfServer.lollms_paths.personal_databases_path/"lollms_playground_presets" + if not presets_folder.exists(): + presets_folder.mkdir(exist_ok=True, parents=True) + + fn = preset_data["name"].lower().replace(" ","_") + filename = presets_folder/f"{fn}.yaml" + with open(filename, 'w', encoding='utf-8') as file: + yaml.dump(preset_data, file) + return {"status": True} + +@router.post("/del_preset") +async def del_preset(request: Request): + """ + Saves a preset to a file. + + :param request: The HTTP request object. + :return: A JSON response with the status of the operation. + """ + # Get the JSON data from the POST request. + preset_data = request.get_json() + presets_folder = lollmsElfServer.lollms_paths.personal_databases_path/"lollms_playground_presets" + # TODO : process + return {"status":True} + + +@router.post("/save_presets") +async def save_presets(request: Request): + """ + Saves a preset to a file. + + :param request: The HTTP request object. + :return: A JSON response with the status of the operation. + """ + # Get the JSON data from the POST request. + preset_data = request.get_json() + + presets_file = lollmsElfServer.lollms_paths.personal_databases_path/"presets.json" + # Save the JSON data to a file. + with open(presets_file, "w") as f: + json.dump(preset_data, f, indent=4) + + return {"status":True,"message":"Preset saved successfully!"} \ No newline at end of file diff --git a/endpoints/lollms_xtts.py b/endpoints/lollms_xtts.py index 1f551c6d..05f8a780 100644 --- a/endpoints/lollms_xtts.py +++ b/endpoints/lollms_xtts.py @@ -38,7 +38,7 @@ def list_voices(): @router.post("/set_voice") async def set_voice(request: Request): """ - Executes Python code and returns the output. + Changes current voice :param request: The HTTP request object. :return: A JSON response with the status of the operation. @@ -74,7 +74,6 @@ async def text2Audio(request: Request): except: return {"url": None} - data = request.get_json() voice=data.get("voice",lollmsElfServer.config.current_voice) index = find_first_available_file_index(lollmsElfServer.tts.output_folder, "voice_sample_",".wav") output_fn=data.get("fn",f"voice_sample_{index}.wav") diff --git a/new_app.py b/new_app.py index 76a88104..c63cb139 100644 --- a/new_app.py +++ b/new_app.py @@ -80,6 +80,8 @@ if __name__ == "__main__": from endpoints.lollms_xtts import router as lollms_xtts_add_router from endpoints.lollms_sd import router as lollms_sd_router from endpoints.lollms_ollama import router as lollms_ollama_router + from endpoints.lollms_playground import router as lollms_playground_router + from lollms.server.events.lollms_generation_events import add_events as lollms_generation_events_add @@ -114,6 +116,8 @@ if __name__ == "__main__": app.include_router(lollms_sd_router) app.include_router(lollms_ollama_router) + app.include_router(lollms_playground_router) +