Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| import bpy | |
| import tempfile | |
| def enable_GPUS(): | |
| bpy.data.scenes[0].render.engine = "CYCLES" #"CYCLES" | |
| # Set the device_type | |
| bpy.context.preferences.addons[ | |
| "cycles" | |
| ].preferences.compute_device_type = "CUDA" # or "OPENCL" | |
| # Set the device and feature set | |
| bpy.context.scene.cycles.device = "GPU" | |
| for scene in bpy.data.scenes: | |
| scene.cycles.device = "GPU" | |
| bpy.context.preferences.addons["cycles"].preferences.get_devices() | |
| print(bpy.context.preferences.addons["cycles"].preferences.compute_device_type) | |
| for d in bpy.context.preferences.addons["cycles"].preferences.devices: | |
| d["use"] = True # Using all devices, include GPU and CPU | |
| print(d["name"]) | |
| def generate(): | |
| with tempfile.NamedTemporaryFile(suffix=".JPEG", delete=False) as f: | |
| bpy.context.scene.render.resolution_y = 200 | |
| bpy.context.scene.render.resolution_x = 400 | |
| bpy.context.scene.render.image_settings.file_format = "JPEG" | |
| bpy.context.scene.render.filepath = f.name | |
| enable_GPUS() | |
| bpy.ops.render.render(animation=False, write_still=True) | |
| bpy.data.images["Render Result"].save_render( | |
| filepath=bpy.context.scene.render.filepath | |
| ) | |
| bpy.app.handlers.render_stats.clear() | |
| return f.name | |
| with gr.Blocks() as demo: | |
| with gr.Row(): | |
| with gr.Column(): | |
| render_btn = gr.Button("Render") | |
| with gr.Column(scale=3): | |
| image = gr.Image(type="filepath") | |
| render_btn.click( | |
| generate, | |
| outputs=[image], | |
| ) | |
| demo.queue(concurrency_count=1) | |
| demo.launch(debug=True, inline=True) | |
| w |