Spaces:
Running
on
Zero
Running
on
Zero
File size: 3,152 Bytes
feb3220 d0fbcd0 feb3220 7192eed feb3220 3f8fe83 feb3220 d0fbcd0 feb3220 6a6f2a6 feb3220 d0fbcd0 6f4230d d0fbcd0 feb3220 c4bc238 3f8fe83 6da09c4 3f8fe83 feb3220 3f8fe83 2d40e1e feb3220 3f8fe83 feb3220 3f8fe83 feb3220 6da09c4 feb3220 3f8fe83 c4bc238 feb3220 d0fbcd0 e3aa0e4 feb3220 3f8fe83 c4bc238 feb3220 |
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 |
#!/usr/bin/env python
import gradio as gr
import spaces
from model import Model
from settings import MAX_SEED
from utils import randomize_seed_fn
def create_demo(model: Model) -> gr.Blocks:
examples = [
"A chair that looks like an avocado",
"An airplane that looks like a banana",
"A spaceship",
"A birthday cupcake",
"A chair that looks like a tree",
"A green boot",
"A penguin",
"Ube ice cream cone",
"A bowl of vegetables",
]
@spaces.GPU
def process_example_fn(prompt: str) -> str:
return model.run_text(prompt)
@spaces.GPU
def run(prompt: str, seed: int, guidance_scale: float, num_inference_steps: int) -> str:
"""Generate a 3D model from a text prompt.
Args:
prompt (str): The text prompt.
seed (int): The seed for the random number generator.
guidance_scale (float): The guidance scale for the model.
num_inference_steps (int): The number of inference steps for the model.
Returns:
str: The path to the 3D model.
"""
return model.run_text(prompt, seed, guidance_scale, num_inference_steps)
with gr.Blocks() as demo:
with gr.Group():
with gr.Row(elem_id="prompt-container"):
prompt = gr.Text(
label="Prompt",
show_label=False,
max_lines=1,
placeholder="Enter your prompt",
submit_btn=True,
)
result = gr.Model3D(label="Result", show_label=False)
with gr.Accordion("Advanced options", open=False):
seed = gr.Slider(
label="Seed",
minimum=0,
maximum=MAX_SEED,
step=1,
value=0,
)
randomize_seed = gr.Checkbox(label="Randomize seed", value=True)
guidance_scale = gr.Slider(
label="Guidance scale",
minimum=1,
maximum=20,
step=0.1,
value=15.0,
)
num_inference_steps = gr.Slider(
label="Number of inference steps",
minimum=2,
maximum=100,
step=1,
value=64,
)
gr.Examples(
examples=examples,
inputs=prompt,
outputs=result,
fn=process_example_fn,
)
prompt.submit(
fn=randomize_seed_fn,
inputs=[seed, randomize_seed],
outputs=seed,
api_name=False,
concurrency_limit=None,
).then(
fn=run,
inputs=[
prompt,
seed,
guidance_scale,
num_inference_steps,
],
outputs=result,
api_name="text-to-3d",
concurrency_id="gpu",
concurrency_limit=1,
)
return demo
|