Spaces:
Paused
Paused
File size: 2,612 Bytes
a15c0ab 30f0bac ad5cb25 583955f 66a8046 583955f a15c0ab 30f0bac 17397c2 66a8046 30f0bac 66a8046 30f0bac ad5cb25 30f0bac 66a8046 30f0bac ad5cb25 30f0bac 17397c2 30f0bac ad5cb25 66a8046 30f0bac 17397c2 a15c0ab 30f0bac 66a8046 |
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 |
import gradio as gr
import tempfile
import os
from SDXLImageGenerator import SDXLImageGenerator # Import your existing class
import sys
from Image3DProcessor import Image3DProcessor # Import your 3D processing class
# Ensure setup.sh runs and paths are appended
os.system('bash setup.sh')
sys.path.append('./splatter-image')
sys.path.append('./diff-gaussian-rasterization')
class ControlNetProcessor:
def controlnet_image(self, image):
# Placeholder for ControlNet processing (e.g., returning a processed image or placeholder text)
return image # Returning the image for further processing
class VideoGenerator:
def __init__(self, model_cfg_path, model_repo_id, model_filename):
# Initialize the Image3DProcessor
self.processor = Image3DProcessor(model_cfg_path, model_repo_id, model_filename)
def generate_3d_video(self, image):
# Process the image and create a 3D video
processed_image = self.processor.preprocess(image, preprocess_background=False)
mesh_path, video_path = self.processor.reconstruct_and_export(processed_image)
return video_path
class GradioApp:
def __init__(self):
self.sdxl_generator = SDXLImageGenerator() # Use your existing class
self.controlnet_processor = ControlNetProcessor()
# Initialize VideoGenerator with required paths and details
self.video_generator = VideoGenerator(
model_cfg_path="path/to/gradio_config.yaml",
model_repo_id="szymanowiczs/splatter-image-multi-category-v1",
model_filename="model_latest.pth"
)
def full_pipeline(self, prompt):
initial_image = self.sdxl_generator.generate_images([prompt])[0]
controlled_image = self.controlnet_processor.controlnet_image(initial_image)
video_path = self.video_generator.generate_3d_video(controlled_image)
return initial_image, controlled_image, video_path
def launch(self):
interface = gr.Interface(
fn=self.full_pipeline,
inputs=gr.Textbox(label="Input Prompt"),
outputs=[
gr.Image(label="Generated Image"),
gr.Image(label="ControlNet Processed Image"),
gr.Video(label="3D Model Video")
],
title="SDXL to ControlNet to 3D Pipeline",
description="Generate an image using SDXL, refine it with ControlNet, and generate a 3D video output."
)
interface.launch(share=True) # Added `share=True` for public link
if __name__ == "__main__":
app = GradioApp()
app.launch() |