From 739768a61d4015e6718967ae55b54ea3e272cc74 Mon Sep 17 00:00:00 2001 From: Saifeddine ALOUI Date: Fri, 13 Dec 2024 01:41:48 +0100 Subject: [PATCH] integrated suno --- lollms/functions/music_gen.py | 133 +++++++++++++++++++++++++++++++++- 1 file changed, 130 insertions(+), 3 deletions(-) diff --git a/lollms/functions/music_gen.py b/lollms/functions/music_gen.py index 9b66355..781e80d 100644 --- a/lollms/functions/music_gen.py +++ b/lollms/functions/music_gen.py @@ -63,9 +63,136 @@ def open_and_fill_udio_function(): ] } + +#suno + +def open_and_fill_suno(song_description: str, lyrics: str, title:str) -> str: + """ + Opens the udio.com page, interacts with the UI to fill in the song description and lyrics fields. + + Parameters: + - song_description (str): The description of the song. + - lyrics (str): The lyrics of the song. + + Returns: + - str: Success message or exception trace. + """ + try: + # Open the specified webpage + webbrowser.open('https://suno.ai') + time.sleep(5) # Wait for the page to load + + # Click the input field near the "Create" button + # Adjust the x, y coordinates based on your screen resolution + pyautogui.click(x=50, y=280) + + time.sleep(2) # Wait for the page to load + + + def is_sufficiently_white(color, threshold=150): + """ + Check if a color is sufficiently white. + + :param color: Tuple of (R, G, B) values + :param threshold: Minimum value for each channel to be considered "white" + :return: Boolean indicating if the color is sufficiently white + """ + return all(channel >= threshold for channel in color) + + # Define the coordinates of the button + button_x = 220 + button_y = 150 + + # Get the color of the pixel at the button's location + pixel_color = pyautogui.pixel(button_x, button_y) + print(pixel_color) + + # Check if the color is not sufficiently white + if not is_sufficiently_white(pixel_color): + # # Select the "Custom" option + pyautogui.click(x=220, y=150) + + time.sleep(1) # Wait for the page to load + + pyautogui.click(x=250, y=280) + # # Fill the song lerycs field + pyautogui.write(lyrics) + time.sleep(3) # Wait for the lyricsto be written + + pyautogui.click(x=370, y=620) + # # Fill the song_description field + pyautogui.write(song_description) + + pyautogui.click(x=370, y=440) + # # Fill the song_description field + + pyautogui.click(x=370, y=440) + # # Fill the song_description field + pyautogui.write(song_description) + + + pyautogui.click(x=370, y=770) + # # Fill the song_description field + pyautogui.write(title) + + # # Start generation + pyautogui.click(x=370, y=870) + + # pyautogui.click(x=500, y=120) + return "Successfully filled the song description and lyrics." + except Exception as e: + return trace_exception(e) + +def open_and_fill_suno_function(): + return { + "function_name": "open_and_fill_udio", + "function": open_and_fill_udio, + "function_description": "Opens udio.com page and fills in the song description and lyrics fields to start generating the music.", + "function_parameters": [ + {"name": "song_description", "type": "str", "description":"a list of tags describing the song style and vibes. Make it short"}, + {"name": "lyrics", "type": "str","description":"The lyrics of the song"}, + {"name": "title", "type": "str","description":"The title of the song"} + + ] + } + if __name__ == "__main__": # Test the function with sample data - song_description = "A beautiful song about nature." - lyrics = "The sun sets over the hills, birds sing their evening song." - result = open_and_fill_udio(song_description, lyrics) + song_description = "Modern hip-hop/rap with electronic beats and a futuristic vibe." + lyrics = """Verse 1: +Yo, listen up, it's time to get smart +Lollms on the scene, it's a brand new start +AI's evolving, changing the game +Open-source power, rising to fame + +Chorus: +Lollms, AI, digital revolution +Bringing solutions, tech evolution +Neural networks, learning so fast +The future is now, the die has been cast + +Verse 2: +Customizable, flexible, adapt with ease +Lollms got the tools to do as you please +Language models, chatbots galore +Pushing boundaries, opening new doors + +(Repeat Chorus) + +Verse 3: +From Paris to Tokyo, global connection +Lollms community, no need for correction +Ethical AI, that's how we roll +Empowering humans, that's the ultimate goal + +(Repeat Chorus) + +Outro: +Lollms and AI, hand in hand +Shaping tomorrow, across every land +The revolution's here, it's time to join in +With Lollms leading, everyone can win +""" + title = "Digital Revolution (Lollms AI Flow)" + result = open_and_fill_suno(song_description, lyrics, title) print(result)