Spaces:
Runtime error
Runtime error
erwold
commited on
Commit
·
bb47725
1
Parent(s):
ac06db6
Initial Commit
Browse files
app.py
CHANGED
@@ -285,6 +285,28 @@ class FluxInterface:
|
|
285 |
# Initialize the interface
|
286 |
interface = FluxInterface()
|
287 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
288 |
# Create Gradio interface
|
289 |
with gr.Blocks(
|
290 |
theme=gr.themes.Soft(),
|
@@ -409,32 +431,8 @@ with gr.Blocks(
|
|
409 |
- 🎲 Use seeds for reproducible results
|
410 |
""")
|
411 |
|
412 |
-
# Set up the generation function
|
413 |
-
def generate_with_error_handling(*args):
|
414 |
-
try:
|
415 |
-
logger.info("Starting image generation with args: %s", str(args))
|
416 |
-
|
417 |
-
# 输入参数验证
|
418 |
-
input_image, prompt, guidance, steps, num_images, seed, aspect_ratio = args
|
419 |
-
logger.info(f"Input validation - Image: {type(input_image)}, Prompt: '{prompt}', "
|
420 |
-
f"Guidance: {guidance}, Steps: {steps}, Num Images: {num_images}, "
|
421 |
-
f"Seed: {seed}, Aspect Ratio: {aspect_ratio}")
|
422 |
-
|
423 |
-
if input_image is None:
|
424 |
-
raise ValueError("No input image provided")
|
425 |
-
|
426 |
-
gr.Info("Starting image generation...")
|
427 |
-
results = interface.generate(*args)
|
428 |
-
logger.info("Generation completed successfully")
|
429 |
-
gr.Info("Generation complete!")
|
430 |
-
return [results, None]
|
431 |
-
except Exception as e:
|
432 |
-
error_msg = str(e)
|
433 |
-
logger.error(f"Error in generate_with_error_handling: {error_msg}", exc_info=True)
|
434 |
-
return [None, error_msg]
|
435 |
-
|
436 |
submit_btn.click(
|
437 |
-
fn=
|
438 |
inputs=[
|
439 |
input_image,
|
440 |
prompt,
|
@@ -443,11 +441,8 @@ with gr.Blocks(
|
|
443 |
num_images,
|
444 |
seed,
|
445 |
aspect_ratio
|
446 |
-
],
|
447 |
-
outputs=[
|
448 |
-
output_gallery,
|
449 |
-
error_message
|
450 |
-
],
|
451 |
show_progress=True
|
452 |
)
|
453 |
|
|
|
285 |
# Initialize the interface
|
286 |
interface = FluxInterface()
|
287 |
|
288 |
+
# 直接将 GPU 装饰器应用在最外层的处理函数上
|
289 |
+
@spaces.GPU(duration=300)
|
290 |
+
def process_request(input_image, prompt="", guidance_scale=3.5, num_inference_steps=28, num_images=2, seed=None, aspect_ratio="1:1"):
|
291 |
+
"""主处理函数,直接处理用户请求"""
|
292 |
+
try:
|
293 |
+
interface = FluxInterface()
|
294 |
+
if interface.models is None:
|
295 |
+
interface.load_models()
|
296 |
+
|
297 |
+
return interface.generate(
|
298 |
+
input_image=input_image,
|
299 |
+
prompt=prompt,
|
300 |
+
guidance_scale=guidance_scale,
|
301 |
+
num_inference_steps=num_inference_steps,
|
302 |
+
num_images=num_images,
|
303 |
+
seed=seed,
|
304 |
+
aspect_ratio=aspect_ratio
|
305 |
+
)
|
306 |
+
except Exception as e:
|
307 |
+
logger.error(f"Error during generation: {str(e)}")
|
308 |
+
raise gr.Error(f"Generation failed: {str(e)}")
|
309 |
+
|
310 |
# Create Gradio interface
|
311 |
with gr.Blocks(
|
312 |
theme=gr.themes.Soft(),
|
|
|
431 |
- 🎲 Use seeds for reproducible results
|
432 |
""")
|
433 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
434 |
submit_btn.click(
|
435 |
+
fn=process_request,
|
436 |
inputs=[
|
437 |
input_image,
|
438 |
prompt,
|
|
|
441 |
num_images,
|
442 |
seed,
|
443 |
aspect_ratio
|
444 |
+
],
|
445 |
+
outputs=[output_gallery],
|
|
|
|
|
|
|
446 |
show_progress=True
|
447 |
)
|
448 |
|