Spaces:
Runtime error
Runtime error
File size: 5,947 Bytes
61cdcf9 b938b85 86845b7 b938b85 61cdcf9 8fa8203 61cdcf9 b938b85 86845b7 61cdcf9 b938b85 2add774 b938b85 61cdcf9 25c2b18 61cdcf9 b938b85 61cdcf9 86845b7 61cdcf9 2add774 f4ecd50 61cdcf9 25c2b18 61cdcf9 b938b85 61cdcf9 86845b7 61cdcf9 2add774 f4ecd50 61cdcf9 25c2b18 61cdcf9 25c2b18 61cdcf9 |
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 107 108 109 110 111 112 |
import numpy as np
import gradio as gr
import os
from PIL import Image
from functools import partial
def retrieve_input_image_wild(dataset, inputs):
img_id = inputs
img_path = os.path.join('online_demo', dataset, 'step-100_scale-6.0')
try:
image = Image.open(os.path.join(img_path, '%s.jpg' % img_id))
except:
image = Image.open(os.path.join(img_path, '%s.png' % img_id))
image.thumbnail([256, 256], Image.Resampling.LANCZOS)
return image
def retrieve_input_image(dataset, inputs):
img_id = inputs
img_path = os.path.join('online_demo', dataset, 'step-100_scale-6.0', img_id, 'input.png')
image = Image.open(img_path)
return image
def retrieve_novel_view(dataset, img_id, polar, azimuth, zoom, seed):
polar = polar // 30 + 1
azimuth = azimuth // 30
zoom = int(zoom * 2 + 1)
img_path = os.path.join('online_demo', dataset, 'step-100_scale-6.0', img_id,\
'polar-%d_azimuth-%d_distance-%d_seed-%d.png' % (polar, azimuth, zoom, seed))
image = Image.open(img_path)
return image
with gr.Blocks() as demo:
# gr.Markdown("Stable Diffusion Novel View Synthesis (Precomputed Results)")
with gr.Tab("In-the-wild Images"):
with gr.Row():
with gr.Column(scale=1):
default_input_image = Image.open( os.path.join('online_demo', 'nerf_wild', 'step-100_scale-6.0', 'car1.png'))
default_input_image.thumbnail([256, 256], Image.Resampling.LANCZOS)
input_image = gr.Image(default_input_image, shape=[256, 256])
options = sorted(next(os.walk('online_demo/nerf_wild/step-100_scale-6.0'))[1])
img_id = gr.Dropdown(options, value='car1', label='options')
text_button = gr.Button("Load Input Image")
retrieve_input_image_dataset = partial(retrieve_input_image_wild, 'nerf_wild')
text_button.click(retrieve_input_image_dataset, inputs=img_id, outputs=input_image)
with gr.Column(scale=1):
novel_view = gr.Image(shape=[256, 256])
inputs = [img_id,
gr.Slider(-30, 30, value=0, step=30, label='Polar angle (vertical rotation in degrees)'),
gr.Slider(0, 330, value=0, step=30, label='Azimuth angle (horizontal rotation in degrees)'),
gr.Slider(-0.5, 0.5, value=0, step=0.5, label='Zoom'),
gr.Slider(0, 3, value=1, step=1, label='Random seed')]
submit_button = gr.Button("Generate Novel View")
retrieve_novel_view_dataset = partial(retrieve_novel_view, 'nerf_wild')
submit_button.click(retrieve_novel_view_dataset, inputs=inputs, outputs=novel_view)
with gr.Tab("Google Scanned Objects"):
with gr.Row():
with gr.Column(scale=1):
default_input_image = Image.open( os.path.join('online_demo', 'GSO', 'step-100_scale-6.0', 'SAMBA_HEMP', 'input.png'))
default_input_image.thumbnail([256, 256], Image.Resampling.LANCZOS)
input_image = gr.Image(default_input_image, shape=[256, 256])
options = sorted(os.listdir('online_demo/GSO/step-100_scale-6.0'))
img_id = gr.Dropdown(options, value='SAMBA_HEMP', label='options')
text_button = gr.Button("Load Input Image")
retrieve_input_image_dataset = partial(retrieve_input_image, 'GSO')
text_button.click(retrieve_input_image_dataset, inputs=img_id, outputs=input_image)
with gr.Column(scale=1):
novel_view = gr.Image(shape=[256, 256])
inputs = [img_id,
gr.Slider(-30, 30, value=0, step=30, label='Polar angle (vertical rotation in degrees)'),
gr.Slider(0, 330, value=0, step=30, label='Azimuth angle (horizontal rotation in degrees)'),
gr.Slider(-0.5, 0.5, value=0, step=0.5, label='Zoom'),
gr.Slider(0, 3, value=1, step=1, label='Random seed')]
submit_button = gr.Button("Generate Novel View")
retrieve_novel_view_dataset = partial(retrieve_novel_view, 'GSO')
submit_button.click(retrieve_novel_view_dataset, inputs=inputs, outputs=novel_view)
with gr.Tab("RTMV"):
with gr.Row():
with gr.Column(scale=1):
default_input_image = Image.open( os.path.join('online_demo', 'RTMV', 'step-100_scale-6.0', '00000', 'input.png'))
default_input_image.thumbnail([256, 256], Image.Resampling.LANCZOS)
input_image = gr.Image(default_input_image, shape=[256, 256])
options = sorted(os.listdir('online_demo/RTMV/step-100_scale-6.0'))
img_id = gr.Dropdown(options, value='00000', label='options')
text_button = gr.Button("Load Input Image")
retrieve_input_image_dataset = partial(retrieve_input_image, 'RTMV')
text_button.click(retrieve_input_image_dataset, inputs=img_id, outputs=input_image)
with gr.Column(scale=1):
novel_view = gr.Image(shape=[256, 256])
inputs = [img_id,
gr.Slider(-30, 30, value=0, step=30, label='Polar angle (vertical rotation in degrees)'),
gr.Slider(0, 330, value=0, step=30, label='Azimuth angle (horizontal rotation in degrees)'),
gr.Slider(-0.5, 0.5, value=0, step=0.5, label='Zoom'),
gr.Slider(0, 3, value=1, step=1, label='Random seed')]
submit_button = gr.Button("Generate Novel View")
retrieve_novel_view_dataset = partial(retrieve_novel_view, 'RTMV')
submit_button.click(retrieve_novel_view_dataset, inputs=inputs, outputs=novel_view)
if __name__ == "__main__":
demo.launch()
|