| import gradio as gr |
| import replicate |
| import requests |
| import uuid |
| import os |
|
|
| |
| os.environ["REPLICATE_API_TOKEN"] = "r8_FqBcLY8OR6F3Fsf4D4fT415tb1CN3790UGzYE" |
|
|
| def generate_3d(prompt): |
| try: |
| print("Prompt received:", prompt) |
|
|
| output = replicate.run( |
| "lucataco/text-to-3d:e461273fe25ac0b2b3fe14b7551636ee58b78f12fe25aa0f141e4cd32b2f3c2d", |
| input={"prompt": prompt} |
| ) |
|
|
| print("Model output:", output) |
|
|
| if not output or not isinstance(output, str): |
| return None |
|
|
| response = requests.get(output) |
| if response.status_code != 200: |
| print("Download failed:", response.status_code) |
| return None |
|
|
| file_name = f"{uuid.uuid4()}.glb" |
| with open(file_name, 'wb') as f: |
| f.write(response.content) |
|
|
| return file_name |
|
|
| except Exception as e: |
| print("Exception:", str(e)) |
| return None |
|
|
| demo = gr.Interface( |
| fn=generate_3d, |
| inputs=gr.Textbox(label="Enter your prompt"), |
| outputs=gr.Model3D(label="Generated 3D Model"), |
| title="Text to 3D Model Viewer", |
| description="Enter a prompt to generate and view a 3D model", |
| ) |
|
|
| demo.launch(share=True) |