Spaces:
Runtime error
Runtime error
File size: 1,102 Bytes
3dd44f5 1498fd7 3dd44f5 4f43ae1 3dd44f5 1498fd7 3dd44f5 4f43ae1 1498fd7 3dd44f5 1498fd7 3dd44f5 4f43ae1 3dd44f5 4f43ae1 1498fd7 b776af9 4f43ae1 |
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 |
import gradio as gr
from pygltflib import GLTF2, Texture, Image
import base64
import io
def modify_texture():
# Load the GLB file
glb = GLTF2().load("train.glb")
# Load the default texture image
with open("defect.jpg", "rb") as f:
default_texture = Image(uri=f"data:image/jpeg;base64,{base64.b64encode(f.read()).decode()}")
# Assuming there's at least one image in the original GLB
if glb.images:
# Replace the first image with the default texture
glb.images[0] = default_texture
else:
# Add default image if none exists
glb.images.append(default_texture)
# Update texture to point to the default image
default_texture = Texture(source=len(glb.images)-1)
glb.textures.append(default_texture)
# Save the modified GLB to a temporary file and return it
output_file = io.BytesIO()
glb.save(output_file)
output_file.seek(0)
return output_file
gr.Interface(
fn=modify_texture,
inputs=[],
outputs=gr.Model3D(label="Modified 3D Model"),
title="GLB Texture Modifier"
).launch()
|