radames commited on
Commit
ef67b7b
·
1 Parent(s): 31d2422

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +34 -30
app.py CHANGED
@@ -9,7 +9,7 @@ import tempfile
9
 
10
 
11
  def enable_GPUS():
12
- bpy.data.scenes[0].render.engine = "CYCLES"
13
  # Set the device_type
14
  bpy.context.preferences.addons[
15
  "cycles"
@@ -28,11 +28,10 @@ def enable_GPUS():
28
  print(d["name"])
29
 
30
 
31
- enable_GPUS()
32
 
33
  # bpy.ops.wm.read_factory_settings(use_empty=True)
34
 
35
-
36
  def generate(
37
  color1,
38
  color2,
@@ -48,6 +47,8 @@ def generate(
48
  rgb1 = tuple(v / 255.0 for v in rgb1)
49
  rgb2 = ImageColor.getcolor(color2, "RGBA")
50
  rgb2 = tuple(v / 255.0 for v in rgb2)
 
 
51
 
52
  # Delete all mesh objects from the scene
53
  bpy.ops.object.select_all(action="DESELECT")
@@ -58,16 +59,17 @@ def generate(
58
  bpy.ops.mesh.primitive_torus_add(
59
  major_radius=1.5,
60
  minor_radius=0.75,
61
- major_segments=48 * 4,
62
- minor_segments=12 * 4,
63
  align="WORLD",
64
  location=(0, 1, 1),
 
 
65
  )
66
 
67
  # Assigning the torus to a variable
68
- # torus = bpy.context.active_object
69
  torus = bpy.context.view_layer.objects.active
70
- # print(torus)
71
  # Create a new material and assign it to the torus
72
  material = bpy.data.materials.new(name="RainbowGradient")
73
  torus.data.materials.append(material)
@@ -104,11 +106,8 @@ def generate(
104
  material.node_tree.links.new(bsdf.outputs["BSDF"], output.inputs["Surface"])
105
 
106
  # Rotate the gradient to apply it from left to right
107
- torus.rotation_euler = (
108
- torus_X,
109
- torus_Y,
110
- torus_Z,
111
- ) # Rotate 90 degrees on the Z axis
112
 
113
  # Light
114
  light = bpy.data.objects["Light"]
@@ -120,26 +119,31 @@ def generate(
120
  camera.data.dof.use_dof = True
121
  camera.data.dof.focus_distance = 5
122
  camera.data.dof.aperture_fstop = 4
123
-
124
  # Render
125
- with tempfile.NamedTemporaryFile(suffix=".png", delete=False) as f:
126
- bpy.context.scene.render.resolution_y = 128
127
- bpy.context.scene.render.resolution_x = 128
128
- bpy.context.scene.render.image_settings.file_format = "PNG"
 
129
  bpy.context.scene.render.filepath = f.name
 
130
 
131
  with tqdm(total=bpy.context.scene.frame_end) as pbar:
132
 
133
- def elapsed(dummy):
134
- pbar.update()
135
 
136
- bpy.app.handlers.render_stats.append(elapsed)
137
- bpy.ops.render.render(animation=False, write_still=True)
138
- bpy.data.images["Render Result"].save_render(
139
- filepath=bpy.context.scene.render.filepath
140
- )
141
- bpy.app.handlers.render_stats.clear()
142
- return f.name
 
 
 
143
 
144
 
145
  # generate("#ffffff", "#aaa", 1)
@@ -152,11 +156,11 @@ with gr.Blocks() as demo:
152
  camera_Y = gr.Slider(minimum=-100, maximum=100, value=-3, label="Camera Y")
153
  camera_Z = gr.Slider(minimum=-100, maximum=100, value=4, label="Camera Z")
154
  torus_X = gr.Slider(minimum=-pi, maximum=pi, value=0, label="Torus φ")
155
- torus_Y = gr.Slider(minimum=-pi, maximum=pi, value=0, label="Torus θ")
156
- torus_Z = gr.Slider(minimum=-pi, maximum=pi, value=pi / 2, label="Torus ψ")
157
 
158
  render_btn = gr.Button("Render")
159
- with gr.Column():
160
  image = gr.Image(type="filepath")
161
 
162
  render_btn.click(
@@ -175,4 +179,4 @@ with gr.Blocks() as demo:
175
  )
176
 
177
  demo.queue()
178
- demo.launch(debug=True, inline=True)
 
9
 
10
 
11
  def enable_GPUS():
12
+ bpy.data.scenes[0].render.engine = "CYCLES" #"CYCLES"
13
  # Set the device_type
14
  bpy.context.preferences.addons[
15
  "cycles"
 
28
  print(d["name"])
29
 
30
 
31
+ # enable_GPUS()
32
 
33
  # bpy.ops.wm.read_factory_settings(use_empty=True)
34
 
 
35
  def generate(
36
  color1,
37
  color2,
 
47
  rgb1 = tuple(v / 255.0 for v in rgb1)
48
  rgb2 = ImageColor.getcolor(color2, "RGBA")
49
  rgb2 = tuple(v / 255.0 for v in rgb2)
50
+ # bpy.ops.wm.read_homefile(use_empty=True)
51
+
52
 
53
  # Delete all mesh objects from the scene
54
  bpy.ops.object.select_all(action="DESELECT")
 
59
  bpy.ops.mesh.primitive_torus_add(
60
  major_radius=1.5,
61
  minor_radius=0.75,
62
+ major_segments=12,
63
+ minor_segments=12,
64
  align="WORLD",
65
  location=(0, 1, 1),
66
+ rotation=(torus_X,torus_Y,torus_Z)
67
+
68
  )
69
 
70
  # Assigning the torus to a variable
 
71
  torus = bpy.context.view_layer.objects.active
72
+
73
  # Create a new material and assign it to the torus
74
  material = bpy.data.materials.new(name="RainbowGradient")
75
  torus.data.materials.append(material)
 
106
  material.node_tree.links.new(bsdf.outputs["BSDF"], output.inputs["Surface"])
107
 
108
  # Rotate the gradient to apply it from left to right
109
+ torus = bpy.context.view_layer.objects.active
110
+ # torus.rotation_euler =
 
 
 
111
 
112
  # Light
113
  light = bpy.data.objects["Light"]
 
119
  camera.data.dof.use_dof = True
120
  camera.data.dof.focus_distance = 5
121
  camera.data.dof.aperture_fstop = 4
122
+
123
  # Render
124
+ with tempfile.NamedTemporaryFile(suffix=".JPEG", delete=False) as f:
125
+
126
+ bpy.context.scene.render.resolution_y = 256
127
+ bpy.context.scene.render.resolution_x = 256
128
+ bpy.context.scene.render.image_settings.file_format = "JPEG"
129
  bpy.context.scene.render.filepath = f.name
130
+ bpy.context.scene.frame_current = bpy.context.scene.frame_end
131
 
132
  with tqdm(total=bpy.context.scene.frame_end) as pbar:
133
 
134
+ def elapsed(dummy):
135
+ pbar.update()
136
 
137
+ bpy.app.handlers.render_stats.append(elapsed)
138
+ # bpy.ops.render.render(animation=False, write_still=True)
139
+ # bpy.ops.render.render(animation=False, write_still=True)
140
+ bpy.ops.render.render(animation=False, write_still=True)
141
+
142
+ bpy.data.images["Render Result"].save_render(
143
+ filepath=bpy.context.scene.render.filepath
144
+ )
145
+ bpy.app.handlers.render_stats.clear()
146
+ return f.name
147
 
148
 
149
  # generate("#ffffff", "#aaa", 1)
 
156
  camera_Y = gr.Slider(minimum=-100, maximum=100, value=-3, label="Camera Y")
157
  camera_Z = gr.Slider(minimum=-100, maximum=100, value=4, label="Camera Z")
158
  torus_X = gr.Slider(minimum=-pi, maximum=pi, value=0, label="Torus φ")
159
+ torus_Y = gr.Slider(minimum=-pi, maximum=pi, value=-3, label="Torus θ")
160
+ torus_Z = gr.Slider(minimum=-pi, maximum=pi, value=1.5, label="Torus ψ")
161
 
162
  render_btn = gr.Button("Render")
163
+ with gr.Column(scale=3):
164
  image = gr.Image(type="filepath")
165
 
166
  render_btn.click(
 
179
  )
180
 
181
  demo.queue()
182
+ demo.launch(debug=True, inline=True)