Spaces:
				
			
			
	
			
			
		Paused
		
	
	
	
			
			
	
	
	
	
		
		
		Paused
		
	Update app.py
Browse files
    	
        app.py
    CHANGED
    
    | @@ -315,94 +315,53 @@ button.primary:hover { | |
| 315 | 
             
            }
         | 
| 316 | 
             
            """
         | 
| 317 |  | 
| 318 | 
            -
            # UI 부분만 수정
         | 
| 319 | 
            -
            # Main Gradio app
         | 
| 320 | 
             
            # UI 부분 수정
         | 
| 321 | 
             
            with gr.Blocks(theme=gr.themes.Soft(), css=css) as demo:
         | 
| 322 | 
             
                gr.HTML("""
         | 
| 323 | 
             
                    <div class="main-title">
         | 
| 324 | 
             
                        <h1>🎨 Image Object Extractor</h1>
         | 
| 325 | 
            -
                        <p>Extract objects from images using text prompts | 
| 326 | 
             
                    </div>
         | 
| 327 | 
             
                """)
         | 
| 328 |  | 
| 329 | 
            -
                with gr. | 
| 330 | 
            -
                     | 
| 331 | 
            -
             | 
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
| 332 | 
             
                        with gr.Row():
         | 
| 333 | 
            -
                             | 
| 334 | 
            -
                                 | 
| 335 | 
            -
             | 
| 336 | 
            -
             | 
| 337 | 
            -
             | 
| 338 | 
            -
             | 
| 339 | 
            -
                                text_prompt = gr.Textbox(
         | 
| 340 | 
            -
                                    label="Object to Extract",
         | 
| 341 | 
            -
                                    placeholder="Enter what you want to extract...",
         | 
| 342 | 
            -
                                    interactive=True
         | 
| 343 | 
            -
                                )
         | 
| 344 | 
            -
                                bg_prompt = gr.Textbox(
         | 
| 345 | 
            -
                                    label="Background Prompt (optional)",
         | 
| 346 | 
            -
                                    placeholder="Describe the background...",
         | 
| 347 | 
            -
                                    interactive=True
         | 
| 348 | 
            -
                                )
         | 
| 349 | 
            -
                                process_btn = gr.Button(
         | 
| 350 | 
            -
                                    "Process",
         | 
| 351 | 
            -
                                    variant="primary",
         | 
| 352 | 
            -
                                    interactive=False
         | 
| 353 | 
            -
                                )
         | 
| 354 | 
            -
             | 
| 355 | 
            -
                            with gr.Column(scale=1):
         | 
| 356 | 
            -
                                with gr.Row():
         | 
| 357 | 
            -
                                    combined_image = gr.Image(
         | 
| 358 | 
            -
                                        label="Combined Result",
         | 
| 359 | 
            -
                                        show_download_button=True,
         | 
| 360 | 
            -
                                        type="pil",
         | 
| 361 | 
            -
                                        height=512
         | 
| 362 | 
            -
                                    )
         | 
| 363 | 
            -
                                with gr.Row():
         | 
| 364 | 
            -
                                    extracted_image = gr.Image(
         | 
| 365 | 
            -
                                        label="Extracted Object",
         | 
| 366 | 
            -
                                        show_download_button=True,
         | 
| 367 | 
            -
                                        type="pil",
         | 
| 368 | 
            -
                                        height=256
         | 
| 369 | 
            -
                                    )
         | 
| 370 | 
            -
             | 
| 371 | 
            -
                    # Box-based extraction tab
         | 
| 372 | 
            -
                    with gr.TabItem("Extract by Box"):
         | 
| 373 | 
             
                        with gr.Row():
         | 
| 374 | 
            -
                             | 
| 375 | 
            -
                                 | 
| 376 | 
            -
             | 
| 377 | 
            -
             | 
| 378 | 
            -
             | 
| 379 | 
            -
             | 
| 380 | 
            -
                                box_input = gr.Textbox(
         | 
| 381 | 
            -
                                    label="Bounding Box (xmin, ymin, xmax, ymax)",
         | 
| 382 | 
            -
                                    placeholder="Enter coordinates as [x1, y1, x2, y2]",
         | 
| 383 | 
            -
                                    interactive=True
         | 
| 384 | 
            -
                                )
         | 
| 385 | 
            -
                                box_btn = gr.Button(
         | 
| 386 | 
            -
                                    "Extract Selection",
         | 
| 387 | 
            -
                                    variant="primary",
         | 
| 388 | 
            -
                                    interactive=False
         | 
| 389 | 
            -
                                )
         | 
| 390 | 
            -
             | 
| 391 | 
            -
                            with gr.Column(scale=1):
         | 
| 392 | 
            -
                                with gr.Row():
         | 
| 393 | 
            -
                                    box_combined_image = gr.Image(
         | 
| 394 | 
            -
                                        label="Combined Result",
         | 
| 395 | 
            -
                                        show_download_button=True,
         | 
| 396 | 
            -
                                        type="pil",
         | 
| 397 | 
            -
                                        height=512
         | 
| 398 | 
            -
                                    )
         | 
| 399 | 
            -
                                with gr.Row():
         | 
| 400 | 
            -
                                    box_extracted_image = gr.Image(
         | 
| 401 | 
            -
                                        label="Extracted Object",
         | 
| 402 | 
            -
                                        show_download_button=True,
         | 
| 403 | 
            -
                                        type="pil",
         | 
| 404 | 
            -
                                        height=256
         | 
| 405 | 
            -
                                    )
         | 
| 406 |  | 
| 407 | 
             
                # Event bindings
         | 
| 408 | 
             
                input_image.change(
         | 
| @@ -422,30 +381,9 @@ with gr.Blocks(theme=gr.themes.Soft(), css=css) as demo: | |
| 422 | 
             
                process_btn.click(
         | 
| 423 | 
             
                    fn=process_prompt,
         | 
| 424 | 
             
                    inputs=[input_image, text_prompt, bg_prompt],
         | 
| 425 | 
            -
                    outputs=[combined_image, extracted_image], | 
| 426 | 
            -
                    queue=True
         | 
| 427 | 
            -
                )
         | 
| 428 | 
            -
             | 
| 429 | 
            -
                box_image.change(
         | 
| 430 | 
            -
                    fn=update_box_button,
         | 
| 431 | 
            -
                    inputs=[box_image, box_input],
         | 
| 432 | 
            -
                    outputs=box_btn,
         | 
| 433 | 
            -
                    queue=False
         | 
| 434 | 
            -
                )
         | 
| 435 | 
            -
             | 
| 436 | 
            -
                box_input.change(
         | 
| 437 | 
            -
                    fn=update_box_button,
         | 
| 438 | 
            -
                    inputs=[box_image, box_input],
         | 
| 439 | 
            -
                    outputs=box_btn,
         | 
| 440 | 
            -
                    queue=False
         | 
| 441 | 
            -
                )
         | 
| 442 | 
            -
             | 
| 443 | 
            -
                box_btn.click(
         | 
| 444 | 
            -
                    fn=process_bbox,
         | 
| 445 | 
            -
                    inputs=[box_image, box_input],
         | 
| 446 | 
            -
                    outputs=[box_combined_image, box_extracted_image],  # 출력 변경
         | 
| 447 | 
             
                    queue=True
         | 
| 448 | 
             
                )
         | 
| 449 |  | 
| 450 | 
             
            demo.queue(max_size=30, api_open=False)
         | 
| 451 | 
            -
            demo.launch()
         | 
|  | |
| 315 | 
             
            }
         | 
| 316 | 
             
            """
         | 
| 317 |  | 
|  | |
|  | |
| 318 | 
             
            # UI 부분 수정
         | 
| 319 | 
             
            with gr.Blocks(theme=gr.themes.Soft(), css=css) as demo:
         | 
| 320 | 
             
                gr.HTML("""
         | 
| 321 | 
             
                    <div class="main-title">
         | 
| 322 | 
             
                        <h1>🎨 Image Object Extractor</h1>
         | 
| 323 | 
            +
                        <p>Extract objects from images using text prompts</p>
         | 
| 324 | 
             
                    </div>
         | 
| 325 | 
             
                """)
         | 
| 326 |  | 
| 327 | 
            +
                with gr.Row():
         | 
| 328 | 
            +
                    with gr.Column(scale=1):
         | 
| 329 | 
            +
                        input_image = gr.Image(
         | 
| 330 | 
            +
                            type="pil",
         | 
| 331 | 
            +
                            label="Upload Image",
         | 
| 332 | 
            +
                            interactive=True
         | 
| 333 | 
            +
                        )
         | 
| 334 | 
            +
                        text_prompt = gr.Textbox(
         | 
| 335 | 
            +
                            label="Object to Extract",
         | 
| 336 | 
            +
                            placeholder="Enter what you want to extract...",
         | 
| 337 | 
            +
                            interactive=True
         | 
| 338 | 
            +
                        )
         | 
| 339 | 
            +
                        bg_prompt = gr.Textbox(
         | 
| 340 | 
            +
                            label="Background Prompt (optional)",
         | 
| 341 | 
            +
                            placeholder="Describe the background...",
         | 
| 342 | 
            +
                            interactive=True
         | 
| 343 | 
            +
                        )
         | 
| 344 | 
            +
                        process_btn = gr.Button(
         | 
| 345 | 
            +
                            "Process",
         | 
| 346 | 
            +
                            variant="primary",
         | 
| 347 | 
            +
                            interactive=False
         | 
| 348 | 
            +
                        )
         | 
| 349 | 
            +
             | 
| 350 | 
            +
                    with gr.Column(scale=1):
         | 
| 351 | 
             
                        with gr.Row():
         | 
| 352 | 
            +
                            combined_image = gr.Image(
         | 
| 353 | 
            +
                                label="Combined Result",
         | 
| 354 | 
            +
                                show_download_button=True,
         | 
| 355 | 
            +
                                type="pil",
         | 
| 356 | 
            +
                                height=512
         | 
| 357 | 
            +
                            )
         | 
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
| 358 | 
             
                        with gr.Row():
         | 
| 359 | 
            +
                            extracted_image = gr.Image(
         | 
| 360 | 
            +
                                label="Extracted Object",
         | 
| 361 | 
            +
                                show_download_button=True,
         | 
| 362 | 
            +
                                type="pil",
         | 
| 363 | 
            +
                                height=256
         | 
| 364 | 
            +
                            )
         | 
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
| 365 |  | 
| 366 | 
             
                # Event bindings
         | 
| 367 | 
             
                input_image.change(
         | 
|  | |
| 381 | 
             
                process_btn.click(
         | 
| 382 | 
             
                    fn=process_prompt,
         | 
| 383 | 
             
                    inputs=[input_image, text_prompt, bg_prompt],
         | 
| 384 | 
            +
                    outputs=[combined_image, extracted_image],
         | 
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
| 385 | 
             
                    queue=True
         | 
| 386 | 
             
                )
         | 
| 387 |  | 
| 388 | 
             
            demo.queue(max_size=30, api_open=False)
         | 
| 389 | 
            +
            demo.launch()
         | 
 
			
