Spaces:
Paused
Paused
File size: 2,525 Bytes
fc352b3 a15c0ab 30f0bac ad5cb25 583955f 66a8046 fc352b3 30f0bac 17397c2 66a8046 30f0bac 66a8046 30f0bac ad5cb25 30f0bac 66a8046 27c0c4f 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 |
import os
print("Current working directory:", os.getcwd())
import gradio as gr
import tempfile
from SDXLImageGenerator import SDXLImageGenerator # Import your existing class
import sys
from Image3DProcessor import Image3DProcessor # Import your 3D processing class
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="/home/user/app/splatter-image/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() |