Spaces:
Runtime error
Runtime error
File size: 3,166 Bytes
d9f0669 c64d829 d9f0669 c64d829 faf98f2 a8c6d92 c64d829 faf98f2 c64d829 faf98f2 c64d829 faf98f2 c64d829 a8c6d92 c64d829 a8c6d92 faf98f2 c64d829 a8c6d92 c64d829 3a9a368 a8c6d92 3a9a368 |
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 |
import gradio as gr
import requests
import json
API_URL = "https://api.openai.com/v1/chat/completions"
# ์คํฌ๋ฆฝํธ ์์ฑ ํจ์
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.split('\n') # ์คํฌ๋ฆฝํธ๋ฅผ ์ค ๋จ์๋ก ๋ถ๋ฆฌํ์ฌ ๋ฐํ
else:
return ["Error: Unable to generate response."]
# ์ด๋ฏธ์ง ์์ฑ ํจ์
def generate_image(script_line, model_name="models/goofyai/3d_render_style_xl"):
# ์ด ํจ์ ๋ด์์๋ ์ด๋ฏธ์ง ์์ฑ ์์ฒญ์ ๋ณด๋ด๊ณ ๊ฒฐ๊ณผ๋ฅผ ์ฒ๋ฆฌํ๋ ์ฝ๋๋ฅผ ๊ตฌํํฉ๋๋ค.
# ์์๋ก๋ gr.Interface.load ๋๋ gr.load๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ์ ์ํฉ๋๋ค.
# ์ค์ ๊ตฌํ ์์๋ API ํธ์ถ ๋๋ Gradio์ ์ธ๋ถ ๋ชจ๋ธ ๋ก๋ฉ ๊ธฐ๋ฅ์ ๋ฐ๋ผ ์ ์ ํ ์์ ํด์ผ ํฉ๋๋ค.
pass # ์ฌ๊ธฐ์ ์ด๋ฏธ์ง ์์ฑ ์ฝ๋ ๊ตฌํ
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)
image_output = gr.Gallery(label="Generated Images") # ์์ฑ๋ ์ด๋ฏธ์ง๋ฅผ ํ์ํ ๊ฐค๋ฌ๋ฆฌ
submit_button = gr.Button("Generate")
def process_and_generate_images(inputs, top_p, temperature, openai_api_key):
scripts = predict(inputs, top_p, temperature, openai_api_key)
images = [generate_image(script) for script in scripts] # ๊ฐ ์คํฌ๋ฆฝํธ ์ค์ ๋ํ ์ด๋ฏธ์ง ์์ฑ
return scripts, images # ์คํฌ๋ฆฝํธ์ ์ด๋ฏธ์ง URL ๋ฐํ
submit_button.click(fn=process_and_generate_images, inputs=[inputs, top_p, temperature, openai_api_key], outputs=[output, image_output])
demo.launch()
|