Spaces:
Runtime error
Runtime error
import gradio as gr | |
import requests | |
import json | |
from transformers import pipeline | |
API_URL = "https://api.openai.com/v1/chat/completions" | |
# ๋ฒ์ญ ํ์ดํ๋ผ์ธ ์ด๊ธฐํ | |
translator = pipeline("translation", model="Helsinki-NLP/opus-mt-ko-en") | |
def translate_and_generate_prompts(text): | |
# ์ ๋ ฅ๋ ํ ์คํธ๋ฅผ ์์ด๋ก ๋ฒ์ญ | |
translation = translator(text, max_length=512) | |
translated_text = translation[0]['translation_text'] | |
# ๊ธฐ๋ณธ ํค์๋ ์ถ๊ฐ | |
prompt = "3d style, 4k" | |
# ์ง์ ํค์๋ ์ถ๊ฐ | |
if "ํ ๋ฆฌ" in text: | |
prompt += ", like Brad Pitt young boy" | |
elif "์ค๋ฆฌ" in text: | |
prompt += ", like Emma Watson young girl" | |
# ๋ฒ์ญ๋ ํ ์คํธ ์ถ๊ฐ | |
prompt += f", {translated_text}" | |
return prompt | |
def predict(inputs, top_p, temperature, openai_api_key): | |
narration_prompt = f"์๋์ฉ ์ ๋๋ฉ์ด์ ๋์์์ ์ฌ์ฉํ ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํ๋ผ. ๋ฐ๋์ ํ๊ธ๋ก ์์ฑํ ๊ฒ. ์ผ์ฒด์ ์ง๋ฌธ์ด๋ ์ง์, ๊ธฐํธ ํ์, ๋ฐฐ๊ฒฝ ์ค๋ช ๋ฑ์ ๋ ธ์ถ ํ๊ฑฐ๋ ์ถ๋ ฅํ์ง ๋ง๊ณ ๊ธฐ์น์ ๊ฒฐ์ ๊ตฌ์กฐ๋ก ๋ชจํ์ ์ด์ /์๊ธฐ/๋์ /๋ฌธ์ ํด๊ฒฐ/๊ตํ์ ํฌํจํ์ฌ ์์ํ ๋๋ ์ด์ ๋ง 1์ค์ฉ ์ถ๋ ฅํ์ฌ ์ต๋ 10์ค ์ด๋ด๋ก ์ถ๋ ฅ. ์ ๋ ฅ: '{inputs}'" | |
headers = { | |
"Content-Type": "application/json", | |
"Authorization": f"Bearer {openai_api_key}" | |
} | |
payload = { | |
"model": "gpt-4-1106-preview", | |
"messages": [{"role": "system", "content": narration_prompt}], | |
"temperature": temperature, | |
"top_p": top_p, | |
"n": 1, | |
"max_tokens": 1000 | |
} | |
response = requests.post(API_URL, headers=headers, json=payload) | |
if response.status_code == 200: | |
response_data = response.json() | |
generated_text = response_data['choices'][0]['message']['content'] | |
return generated_text | |
else: | |
return "Error: Unable to generate response." | |
def generate_prompts(script): | |
# ์คํฌ๋ฆฝํธ์ ๊ฐ ์ค์ ์์ด๋ก ๋ฒ์ญํ๊ณ ํ๋กฌํํธ ์์ฑ | |
lines = script.split('\n') | |
translated_prompts = [translate_and_generate_prompts(line) for line in lines if line.strip() != ''] | |
return "\n".join(translated_prompts) | |
with gr.Blocks() as demo: | |
gr.Markdown("<h1 align='center'>ํ ๋ฆฌ์ ๋ชจํ: 3D ์ ๋๋ฉ์ด์ ์์ฑ๊ธฐ</h1>") | |
with gr.Row(): | |
openai_api_key = gr.Textbox(type='password', label="Enter your OpenAI API key here") | |
inputs = gr.Textbox(placeholder="์ฌ๊ธฐ์ ์ ๋ ฅํ์ธ์.", label="์๋์ฉ ์ ๋๋ฉ์ด์ ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํ๊ณ ์ถ์ ์ฃผ์ ์ด๋ ๋ฌธ์ฅ์ ์ ๋ ฅํ์ธ์.") | |
top_p = gr.Slider(minimum=0, maximum=1.0, value=1.0, step=0.05, label="Top-p (nucleus sampling)") | |
temperature = gr.Slider(minimum=0, maximum=5.0, value=1.0, step=0.1, label="Temperature") | |
output = gr.Textbox(label="Generated Script", readonly=True) | |
prompts_output = gr.TextArea(label="Translated Image Generation Prompts", readonly=True) | |
submit_button = gr.Button("Generate Script") | |
prompts_button = gr.Button("Translate Prompts") | |
submit_button.click(fn=predict, inputs=[inputs, top_p, temperature, openai_api_key], outputs=output) | |
prompts_button.click(fn=generate_prompts, inputs=[output], outputs=prompts_output) | |
demo.launch() | |