abreza commited on
Commit
2f36e31
1 Parent(s): 7c76810

refactor: Update generate_image function to accept subject, style, color_scheme, angle, lighting_type, and additional_details as parameters

Browse files
Files changed (1) hide show
  1. app.py +30 -18
app.py CHANGED
@@ -64,6 +64,28 @@ def preprocess(input_image):
64
  return input_image
65
 
66
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
67
  @spaces.GPU
68
  def generate_mvs(input_image, sample_steps, sample_seed):
69
  seed_everything(sample_seed)
@@ -124,21 +146,6 @@ def make3d(images):
124
  return mesh_fpath, mesh_glb_fpath
125
 
126
 
127
- @spaces.GPU
128
- def generate_image(prompt):
129
- checkpoint = "sdxl_lightning_8step_unet.safetensors"
130
- num_inference_steps = 8
131
-
132
- pipe.scheduler = EulerDiscreteScheduler.from_config(
133
- pipe.scheduler.config, timestep_spacing="trailing")
134
- pipe.unet.load_state_dict(
135
- load_file(hf_hub_download(repo, checkpoint), device="cuda"))
136
-
137
- results = pipe(
138
- prompt, num_inference_steps=num_inference_steps, guidance_scale=0)
139
- return results.images[0]
140
-
141
-
142
  # Configuration
143
  cuda_path = find_cuda()
144
  config_path = 'configs/instant-mesh-large.yaml'
@@ -193,8 +200,13 @@ with gr.Blocks() as demo:
193
  with gr.Group():
194
  with gr.Tab("Generate Image and Remove Background"):
195
  with gr.Row():
196
- prompt = gr.Textbox(
197
- label='Enter your prompt (English)', scale=2)
 
 
 
 
 
198
  submit_prompt = gr.Button(
199
  'Generate Image', scale=1, variant='primary')
200
 
@@ -267,7 +279,7 @@ with gr.Blocks() as demo:
267
 
268
  mv_images = gr.State()
269
 
270
- submit_prompt.click(fn=generate_image, inputs=[prompt], outputs=input_image).success(
271
  fn=preprocess, inputs=[input_image], outputs=[processed_image]
272
  )
273
  submit_process.click(fn=check_input_image, inputs=[input_image]).success(
 
64
  return input_image
65
 
66
 
67
+ def generate_prompt(subject, style, color_scheme, angle, lighting_type, additional_details):
68
+ prompt = f"A 3D cartoon render of {subject}, featuring the entire body and shape, on a transparent background. The style should be {style}, with {color_scheme} colors, emphasizing the essential features and lines. The pose should clearly showcase the full form of the {subject} from a {angle} perspective. Lighting is {lighting_type}, highlighting the volume and depth of the subject. {additional_details}. Output as a high-resolution PNG with no background."
69
+ return prompt
70
+
71
+
72
+ @spaces.GPU
73
+ def generate_image(subject, style, color_scheme, angle, lighting_type, additional_details):
74
+ checkpoint = "sdxl_lightning_8step_unet.safetensors"
75
+ num_inference_steps = 8
76
+
77
+ pipe.scheduler = EulerDiscreteScheduler.from_config(
78
+ pipe.scheduler.config, timestep_spacing="trailing")
79
+ pipe.unet.load_state_dict(
80
+ load_file(hf_hub_download(repo, checkpoint), device="cuda"))
81
+
82
+ prompt = generate_prompt(subject, style, color_scheme,
83
+ angle, lighting_type, additional_details)
84
+ results = pipe(
85
+ prompt, num_inference_steps=num_inference_steps, guidance_scale=0)
86
+ return results.images[0]
87
+
88
+
89
  @spaces.GPU
90
  def generate_mvs(input_image, sample_steps, sample_seed):
91
  seed_everything(sample_seed)
 
146
  return mesh_fpath, mesh_glb_fpath
147
 
148
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
149
  # Configuration
150
  cuda_path = find_cuda()
151
  config_path = 'configs/instant-mesh-large.yaml'
 
200
  with gr.Group():
201
  with gr.Tab("Generate Image and Remove Background"):
202
  with gr.Row():
203
+ subject = gr.Textbox(label='Subject', scale=2)
204
+ style = gr.Textbox(label='Style', scale=2)
205
+ color_scheme = gr.Textbox(label='Color Scheme', scale=2)
206
+ angle = gr.Textbox(label='Angle', scale=2)
207
+ lighting_type = gr.Textbox(label='Lighting Type', scale=2)
208
+ additional_details = gr.Textbox(
209
+ label='Additional Details', scale=2)
210
  submit_prompt = gr.Button(
211
  'Generate Image', scale=1, variant='primary')
212
 
 
279
 
280
  mv_images = gr.State()
281
 
282
+ submit_prompt.click(fn=generate_image, inputs=[subject, style, color_scheme, angle, lighting_type, additional_details], outputs=input_image).success(
283
  fn=preprocess, inputs=[input_image], outputs=[processed_image]
284
  )
285
  submit_process.click(fn=check_input_image, inputs=[input_image]).success(