Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
|
@@ -32,7 +32,7 @@ def generate(input_image, input_video, gender):
|
|
| 32 |
# Pre-run nudge (small)
|
| 33 |
gr.Warning(
|
| 34 |
f'Skip the line β HD, no watermark, priority queue at '
|
| 35 |
-
f'<a href="https://www.face-swap.co/?utm_source=
|
| 36 |
)
|
| 37 |
|
| 38 |
if gender == "all":
|
|
@@ -60,7 +60,7 @@ def generate(input_image, input_video, gender):
|
|
| 60 |
gr.Info(
|
| 61 |
f"β¨ Your preview is ready.<br>"
|
| 62 |
f"<strong>Get HD</strong> (4Γ quality, no watermark, priority) β "
|
| 63 |
-
f'<a href="https://www.face-swap.co/?utm_source=
|
| 64 |
duration=8
|
| 65 |
)
|
| 66 |
|
|
@@ -126,7 +126,7 @@ CUSTOM_CSS = """
|
|
| 126 |
with gr.Blocks(title="Video Face Swap", theme=gr.themes.Soft(), css=CUSTOM_CSS) as demo:
|
| 127 |
# Sticky banner
|
| 128 |
gr.HTML(
|
| 129 |
-
f"""<a class="sticky-cta" href="https://www.face-swap.co/?utm_source=
|
| 130 |
aria-label="Upgrade to Pro on face-swap.co">
|
| 131 |
β‘ <strong>Upgrade to HD</strong> β priority queue & no duration limit!
|
| 132 |
<span class="pill">GPU</span>
|
|
@@ -137,10 +137,10 @@ with gr.Blocks(title="Video Face Swap", theme=gr.themes.Soft(), css=CUSTOM_CSS)
|
|
| 137 |
gr.Markdown(
|
| 138 |
f"""
|
| 139 |
### Video Face Swap (Preview)
|
| 140 |
-
[face-swap.co](https://www.face-swap.co/?utm_source=
|
| 141 |
|
| 142 |
**Free preview** is downsampled to 800px β’ 4s β’ 12fps to reduce wait time.
|
| 143 |
-
Want full-length **HD deep fake video** with GPU speed? **[Go Pro β](https://www.face-swap.co/?utm_source=
|
| 144 |
""",
|
| 145 |
elem_id="hero-md"
|
| 146 |
)
|
|
@@ -177,7 +177,7 @@ with gr.Blocks(title="Video Face Swap", theme=gr.themes.Soft(), css=CUSTOM_CSS)
|
|
| 177 |
# Floating bottom promo
|
| 178 |
gr.HTML(
|
| 179 |
f'<div class="bottom-promo">'
|
| 180 |
-
f'Want HD & no duration limits? <a href="https://www.face-swap.co/?utm_source=
|
| 181 |
f'</div>'
|
| 182 |
)
|
| 183 |
|
|
@@ -189,9 +189,9 @@ with gr.Blocks(title="Video Face Swap", theme=gr.themes.Soft(), css=CUSTOM_CSS)
|
|
| 189 |
|
| 190 |
# Open Pro in new tab via JS (no Python call)
|
| 191 |
pro.click(fn=None, inputs=None, outputs=None,
|
| 192 |
-
js=f"()=>window.open('https://www.face-swap.co/?utm_source=
|
| 193 |
pro2.click(fn=None, inputs=None, outputs=None,
|
| 194 |
-
js=f"()=>window.open('https://www.face-swap.co/?utm_source=
|
| 195 |
|
| 196 |
# Queue for long jobs + to ensure alerts appear as modals
|
| 197 |
demo.queue()
|
|
|
|
| 32 |
# Pre-run nudge (small)
|
| 33 |
gr.Warning(
|
| 34 |
f'Skip the line β HD, no watermark, priority queue at '
|
| 35 |
+
f'<a href="https://www.face-swap.co/?utm_source=hfspace_videofaceswap&utm_medium=warning" target="_blank" rel="noopener">face-swap.co</a>'
|
| 36 |
)
|
| 37 |
|
| 38 |
if gender == "all":
|
|
|
|
| 60 |
gr.Info(
|
| 61 |
f"β¨ Your preview is ready.<br>"
|
| 62 |
f"<strong>Get HD</strong> (4Γ quality, no watermark, priority) β "
|
| 63 |
+
f'<a href="https://www.face-swap.co/?utm_source=hfspace_videofaceswap&utm_medium=info" target="_blank" rel="noopener">Upgrade on face-swap.co</a>',
|
| 64 |
duration=8
|
| 65 |
)
|
| 66 |
|
|
|
|
| 126 |
with gr.Blocks(title="Video Face Swap", theme=gr.themes.Soft(), css=CUSTOM_CSS) as demo:
|
| 127 |
# Sticky banner
|
| 128 |
gr.HTML(
|
| 129 |
+
f"""<a class="sticky-cta" href="https://www.face-swap.co/?utm_source=hfspace_videofaceswap&utm_medium=banner" target="_blank" rel="noopener"
|
| 130 |
aria-label="Upgrade to Pro on face-swap.co">
|
| 131 |
β‘ <strong>Upgrade to HD</strong> β priority queue & no duration limit!
|
| 132 |
<span class="pill">GPU</span>
|
|
|
|
| 137 |
gr.Markdown(
|
| 138 |
f"""
|
| 139 |
### Video Face Swap (Preview)
|
| 140 |
+
[face-swap.co](https://www.face-swap.co/?utm_source=hfspace_videofaceswap&utm_medium=subtitle)
|
| 141 |
|
| 142 |
**Free preview** is downsampled to 800px β’ 4s β’ 12fps to reduce wait time.
|
| 143 |
+
Want full-length **HD deep fake video** with GPU speed? **[Go Pro β](https://www.face-swap.co/?utm_source=hfspace_videofaceswap&utm_medium=go_pro)**
|
| 144 |
""",
|
| 145 |
elem_id="hero-md"
|
| 146 |
)
|
|
|
|
| 177 |
# Floating bottom promo
|
| 178 |
gr.HTML(
|
| 179 |
f'<div class="bottom-promo">'
|
| 180 |
+
f'Want HD & no duration limits? <a href="https://www.face-swap.co/?utm_source=hfspace_videofaceswap&utm_medium=upgrade" target="_blank" rel="noopener">Upgrade</a>'
|
| 181 |
f'</div>'
|
| 182 |
)
|
| 183 |
|
|
|
|
| 189 |
|
| 190 |
# Open Pro in new tab via JS (no Python call)
|
| 191 |
pro.click(fn=None, inputs=None, outputs=None,
|
| 192 |
+
js=f"()=>window.open('https://www.face-swap.co/?utm_source=hfspace_videofaceswap&utm_medium=upgrade_to_hd','_blank')")
|
| 193 |
pro2.click(fn=None, inputs=None, outputs=None,
|
| 194 |
+
js=f"()=>window.open('https://www.face-swap.co/?utm_source=hfspace_videofaceswap&utm_medium=sidebar','_blank')")
|
| 195 |
|
| 196 |
# Queue for long jobs + to ensure alerts appear as modals
|
| 197 |
demo.queue()
|