Laurent
commited on
add examples
Browse files- src/app.py +37 -4
- src/utils.py +2 -4
src/app.py
CHANGED
|
@@ -114,10 +114,20 @@ with gr.Blocks() as demo:
|
|
| 114 |
|
| 115 |
with gr.Row():
|
| 116 |
with gr.Column():
|
| 117 |
-
input_image = gr.Image(
|
| 118 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 119 |
with gr.Column():
|
| 120 |
-
output_image = gr.Image(
|
|
|
|
|
|
|
|
|
|
|
|
|
| 121 |
|
| 122 |
with gr.Accordion("Advanced Settings", open=True):
|
| 123 |
prompt = gr.Textbox(
|
|
@@ -221,6 +231,28 @@ with gr.Blocks() as demo:
|
|
| 221 |
25,
|
| 222 |
69_420,
|
| 223 |
],
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 224 |
],
|
| 225 |
inputs=[
|
| 226 |
input_image,
|
|
@@ -235,7 +267,8 @@ with gr.Blocks() as demo:
|
|
| 235 |
],
|
| 236 |
outputs=output_image,
|
| 237 |
fn=process,
|
| 238 |
-
cache_examples=
|
|
|
|
| 239 |
run_on_click=False,
|
| 240 |
)
|
| 241 |
|
|
|
|
| 114 |
|
| 115 |
with gr.Row():
|
| 116 |
with gr.Column():
|
| 117 |
+
input_image = gr.Image(
|
| 118 |
+
label="Input Image (RGBA)",
|
| 119 |
+
image_mode="RGBA",
|
| 120 |
+
type="pil",
|
| 121 |
+
)
|
| 122 |
+
run_button = gr.Button(
|
| 123 |
+
value="Relight Image",
|
| 124 |
+
)
|
| 125 |
with gr.Column():
|
| 126 |
+
output_image = gr.Image(
|
| 127 |
+
label="Relighted Image (RGB)",
|
| 128 |
+
image_mode="RGB",
|
| 129 |
+
type="pil",
|
| 130 |
+
)
|
| 131 |
|
| 132 |
with gr.Accordion("Advanced Settings", open=True):
|
| 133 |
prompt = gr.Textbox(
|
|
|
|
| 231 |
25,
|
| 232 |
69_420,
|
| 233 |
],
|
| 234 |
+
[
|
| 235 |
+
"examples/chair.png",
|
| 236 |
+
"Right",
|
| 237 |
+
"god rays, fluffy clouds, peaceful surreal atmosphere, high-quality, HEIC, CR2, NEF",
|
| 238 |
+
"dirty, messy, worst quality, low quality, watermark, signature, jpeg artifacts, deformed, monochrome, black and white",
|
| 239 |
+
0.9,
|
| 240 |
+
0.5,
|
| 241 |
+
1.25,
|
| 242 |
+
25,
|
| 243 |
+
69,
|
| 244 |
+
],
|
| 245 |
+
[
|
| 246 |
+
"examples/bunny.png",
|
| 247 |
+
"Left",
|
| 248 |
+
"grass field, high-quality, HEIC, CR2, NEF",
|
| 249 |
+
"dirty, messy, worst quality, low quality, watermark, signature, jpeg artifacts, deformed, monochrome, black and white",
|
| 250 |
+
0.9,
|
| 251 |
+
0.5,
|
| 252 |
+
1.25,
|
| 253 |
+
25,
|
| 254 |
+
420,
|
| 255 |
+
],
|
| 256 |
],
|
| 257 |
inputs=[
|
| 258 |
input_image,
|
|
|
|
| 267 |
],
|
| 268 |
outputs=output_image,
|
| 269 |
fn=process,
|
| 270 |
+
cache_examples=True,
|
| 271 |
+
cache_mode="lazy",
|
| 272 |
run_on_click=False,
|
| 273 |
)
|
| 274 |
|
src/utils.py
CHANGED
|
@@ -53,8 +53,7 @@ def resize_modulo_8(
|
|
| 53 |
resample: Image.Resampling | None = None,
|
| 54 |
on_short: bool = True,
|
| 55 |
) -> Image.Image:
|
| 56 |
-
"""
|
| 57 |
-
Resize an image respecting the aspect ratio and ensuring the size is a multiple of 8.
|
| 58 |
|
| 59 |
The `on_short` parameter determines whether the resizing is based on the shortest side.
|
| 60 |
"""
|
|
@@ -73,8 +72,7 @@ class LightingPreference(str, Enum):
|
|
| 73 |
NONE = auto()
|
| 74 |
|
| 75 |
def get_init_image(self, width: int, height: int, interval: tuple[float, float] = (0.0, 1.0)) -> Image.Image | None:
|
| 76 |
-
"""
|
| 77 |
-
Generate an image with a linear gradient based on the lighting preference.
|
| 78 |
|
| 79 |
In the original code, interval is always (0., 1.) ; we added it as a parameter to make the function more
|
| 80 |
flexible and allow for less contrasted images with a smaller interval.
|
|
|
|
| 53 |
resample: Image.Resampling | None = None,
|
| 54 |
on_short: bool = True,
|
| 55 |
) -> Image.Image:
|
| 56 |
+
"""Resize an image respecting the aspect ratio and ensuring the size is a multiple of 8.
|
|
|
|
| 57 |
|
| 58 |
The `on_short` parameter determines whether the resizing is based on the shortest side.
|
| 59 |
"""
|
|
|
|
| 72 |
NONE = auto()
|
| 73 |
|
| 74 |
def get_init_image(self, width: int, height: int, interval: tuple[float, float] = (0.0, 1.0)) -> Image.Image | None:
|
| 75 |
+
"""Generate an image with a linear gradient based on the lighting preference.
|
|
|
|
| 76 |
|
| 77 |
In the original code, interval is always (0., 1.) ; we added it as a parameter to make the function more
|
| 78 |
flexible and allow for less contrasted images with a smaller interval.
|