Spaces:
Running
on
Zero
Running
on
Zero
File size: 5,717 Bytes
12c887a d90acf0 c89e6c8 d90acf0 12c887a d90acf0 12c887a 6e75167 d90acf0 cab6c41 c89e6c8 d90acf0 9407c61 d90acf0 6e75167 d90acf0 e09b6d2 8a2d75b e09b6d2 8a2d75b e09b6d2 8a2d75b e09b6d2 8a2d75b e09b6d2 d90acf0 e09b6d2 d90acf0 2b6bf66 d90acf0 521407c 6e75167 d90acf0 |
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 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 |
import gradio as gr
import time
from src.constructor import generate_presentation
from src.prompt_configs import en_gigachat_config, ru_gigachat_config
from src.gigachat import giga_generate
# from src.kandinsky import api_k31_generate
from src.kandinsky import generate_image
from src.font import Font
logs_dir = "logs"
fonts_dir = "fonts"
def create_presentation(description: str, slides_num: int, language: str, num_inference_steps: int, image_size_coef: float):
# Select the appropriate prompt configuration based on the selected language
if language == "English":
prompt_config = en_gigachat_config
elif language == "Русский":
prompt_config = ru_gigachat_config
else:
# set default to prevent interruptions in unexpected scenario
prompt_config = en_gigachat_config
font = Font(fonts_dir)
font.set_random_font()
output_dir = f'{logs_dir}/{int(time.time())}'
generate_presentation(
llm_generate=giga_generate,
# generate_image=api_k31_generate,
generate_image=generate_image,
prompt_config=prompt_config,
description=description,
slides_num=slides_num,
font=font,
output_dir=output_dir,
num_inference_steps=num_inference_steps,
image_size_coef=image_size_coef
)
filename = f'{output_dir}/presentation.pptx'
return filename
# Updated examples to include language selection
examples = [
["Generate a presentation on economics", 7, "English"],
["Сгенерируйте презентацию по экономике", 7, "Русский"],
["Create a presentation on climate change", 6, "English"],
["Создайте презентацию об изменении климата", 6, "Русский"],
["Create a presentation on artificial intelligence", 5, "English"],
["Создайте презентацию об искусственном интеллекте", 5, "Русский"],
["Design a presentation on space exploration", 7, "English"],
["Разработайте презентацию о космических исследованиях", 7, "Русский"],
["Prepare a presentation on the future of renewable energy", 7, "English"],
["Подготовьте презентацию о будущем возобновляемой энергетики", 7, "Русский"],
["Develop a presentation on the history of art movements", 6, "English"],
["Разработайте презентацию о истории художественных движений", 6, "Русский"],
["Generate a presentation on the impact of social media", 6, "English"],
["Сгенерируйте презентацию о влиянии социальных сетей", 6, "Русский"],
["Create a presentation on sustainable urban planning", 7, "English"],
["Создайте презентацию о устойчивом градостроительстве", 7, "Русский"],
["Разработайте презентацию о новшествах в области медицинских технологий", 7, "Русский"],
["Design a presentation on innovations in healthcare technology", 7, "English"],
["Подготовьте презентацию о глобальных экономических тенденциях", 5, "Русский"],
["Prepare a presentation on global economic trends", 5, "English"],
["Разработайте презентацию о психологии потребительского поведения", 6, "Русский"],
["Develop a presentation on the psychology of consumer behavior", 6, "English"],
["Сгенерируйте презентацию о преимуществах осознанности и медитации", 7, "Русский"],
["Generate a presentation on the benefits of mindfulness and meditation", 7, "English"],
["Создайте презентацию о достижениях в области автономных транспортных средств", 7, "Русский"],
["Create a presentation on advancements in autonomous vehicles", 7, "English"],
["Разработайте презентацию о влиянии изменений климатической политики", 5, "Русский"],
["Design a presentation on the impact of climate policy changes", 5, "English"],
]
iface = gr.Interface(
fn=create_presentation,
inputs=[
gr.Textbox(
label="Presentation Description",
placeholder="Enter the description for the presentation..."
),
gr.Dropdown(
label="Number of slides",
choices=range(1, 11),
value=5
),
gr.Dropdown(
label="Language",
choices=["English", "Русский"],
value="English"
),
gr.Slider(
label="number of diffusion steps",
minimum=2,
maximum=50,
step=1,
value=50,
),
gr.Slider(
label="scaling factor for image reduction",
minimum=0.25,
maximum=1.0,
step=0.05,
value=1.0,
)
],
outputs=gr.File(
label="Download Presentation"
),
title="Presentation Generator",
description="Generate a presentation based on the provided description and selected language. Click the button to download the presentation.",
css="footer {visibility: hidden}",
allow_flagging="never",
examples=examples
)
iface.launch() |