(edit_type, prompt, ref_image, edit_image, edit_mask,
output_h, output_w, seed, use_change, keep_pixel,
keep_pixels_rate,
progress=gr.Progress(track_tqdm=True))
| 444 | queue=True) |
| 445 | |
| 446 | def run_example(edit_type, prompt, ref_image, edit_image, edit_mask, |
| 447 | output_h, output_w, seed, use_change, keep_pixel, |
| 448 | keep_pixels_rate, |
| 449 | progress=gr.Progress(track_tqdm=True)): |
| 450 | |
| 451 | step = self.pipe.input.get("sample_steps", 20) |
| 452 | cfg_scale = self.pipe.input.get("guide_scale", 20) |
| 453 | edit_info = self.edit_type_dict[edit_type] |
| 454 | |
| 455 | edit_image = self.construct_edit_image(edit_image, edit_mask) |
| 456 | |
| 457 | pre_edit_image, pre_edit_mask, pre_ref_image, _, _ = preprocess_input(ref_image, edit_image) |
| 458 | |
| 459 | icon = pre_edit_image or pre_ref_image |
| 460 | |
| 461 | pre_edit_image = edit_preprocess(edit_info.ANNOTATOR, we.device_id, pre_edit_image, pre_edit_mask) |
| 462 | edit_info = edit_info or {} |
| 463 | repainting_scale = edit_info.get("REPAINTING_SCALE", 1.0) |
| 464 | st = time.time() |
| 465 | image, edit_image, change_image, mask, seed = self.pipe( |
| 466 | reference_image=pre_ref_image, |
| 467 | edit_image=pre_edit_image, |
| 468 | edit_mask=pre_edit_mask, |
| 469 | prompt=prompt, |
| 470 | output_height=output_h, |
| 471 | output_width=output_w, |
| 472 | sampler='flow_euler', |
| 473 | sample_steps=step, |
| 474 | guide_scale=cfg_scale, |
| 475 | seed=seed, |
| 476 | repainting_scale=repainting_scale, |
| 477 | use_change=use_change, |
| 478 | keep_pixels=keep_pixel, |
| 479 | keep_pixels_rate=keep_pixels_rate |
| 480 | ) |
| 481 | et = time.time() |
| 482 | msg = f"prompt: {prompt}; seed: {seed}; cost time: {et - st}s; repaiting scale: {repainting_scale}" |
| 483 | if pre_edit_image is not None: |
| 484 | ret_image = Image.composite(Image.new("RGB", pre_edit_image.size, (0, 0, 0)), pre_edit_image, pre_edit_mask) |
| 485 | else: |
| 486 | ret_image = None |
| 487 | |
| 488 | if icon is not None: |
| 489 | icon = resize_image(icon, 150) |
| 490 | return (gr.Image(value=image), gr.Column(visible=True), |
| 491 | gr.Image(value=edit_image if edit_image is not None else edit_image), |
| 492 | gr.Image(value=change_image), |
| 493 | gr.Image(value=pre_edit_mask if pre_edit_mask is not None else None), |
| 494 | gr.Text(value=msg), |
| 495 | gr.update(value=ret_image), |
| 496 | gr.Image(value= icon)) |
| 497 | |
| 498 | with self.eg: |
| 499 | self.example_edit_image = gr.Image(label='Edit Image', |
nothing calls this directly
no test coverage detected