File size: 2,408 Bytes
78674cf
2e91dd6
551de58
a78f046
551de58
 
2e91dd6
 
 
c9fb157
2e91dd6
 
 
b8f881f
2e91dd6
 
 
 
c104f3f
 
2e91dd6
 
 
c104f3f
2e91dd6
 
fd0af6e
2e91dd6
 
fd0af6e
 
2e91dd6
 
 
 
 
 
fd0af6e
2e91dd6
 
 
 
 
 
 
857670b
2e91dd6
857670b
 
 
 
ff8efbe
fd0af6e
857670b
 
 
 
ff8efbe
857670b
 
 
 
 
ff8efbe
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
import streamlit as st
import os
import requests
import io
from PIL import Image
from IPython.display import Audio, display
from freeGPT import Client

api_token = os.environ.get("API_TOKEN")
API_URL = "https://api-inference.huggingface.co/models/facebook/musicgen-small"
API_URL_IMG = "https://api-inference.huggingface.co/models/goofyai/3d_render_style_xl"
headers = {"Authorization": f"Bearer {api_token}"}
st.title("✨ AI Tracks Generator")
st.write("Generate audio, cover and title for your track using ai tools!")
prompt = st.text_input("Enter prompt and generate track", placeholder="Eg. Nice holiday love melody")
generate_btn = st.button("✨ Generate")

def query(payload):
    response = requests.post(API_URL, headers=headers, json=payload)
    return response.content

def imgquery(payload):
    response = requests.post(API_URL_IMG, headers=headers, json=payload)
    return response.content

def generate_audio(prompt):
    return query({"inputs": prompt})

def generate_image(prompt):
    image_bytes = imgquery({"inputs": prompt})
    return Image.open(io.BytesIO(image_bytes))

if generate_btn:
    audio1 = generate_audio(prompt)
    audio2 = generate_audio(prompt)
    audio3 = generate_audio(prompt)

    title1 = Client.create_completion("gpt3", "generate name of song that have this description. In answer give only short title" + prompt)
    title2 = Client.create_completion("gpt3", "generate name of song that have this description. In answer give only short title" + prompt)
    title3 = Client.create_completion("gpt3", "generate name of song that have this description. In answer give just short title" + prompt)

    cover1 = generate_image("Generate a cover image for this song:" + prompt)
    cover2 = generate_image("Generate a cover for this song:" + prompt)
    cover3 = generate_image("Generate a thumbnail for this song:" + prompt)

    col1, col2, col3 = st.columns(3)

    with col1:
        st.image(cover1)
        st.header(title1)
        st.audio(audio1, format="audio/wav")
        st.download_button("Download Audio 1", audio1)

    with col2:
        st.image(cover2)
        st.header(title2)
        st.audio(audio2, format="audio/wav")
        st.download_button("Download Audio 2", audio2)

    with col3:
        st.image(cover3)
        st.header(title3)
        st.audio(audio3, format="audio/wav")
        st.download_button("Download Audio 3", audio3)