File size: 3,600 Bytes
c4823f8
 
 
 
 
61a47ab
 
c4823f8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
"""
app.py — Hugging Face Space entry point for Sage & Sand Neumorphic theme.
This file runs the live demo that visitors see on your Space page.
"""

import time

import gradio as gr
from theme import SageAndSandNeumorphic, NEUMORPHIC_CSS

with gr.Blocks(
    theme=SageAndSandNeumorphic(),
    css=NEUMORPHIC_CSS,
    title="Sage & Sand Neumorphic",
) as demo:

    gr.Markdown(
        """
# 🌿 Sage & Sand — Neumorphic Theme
A warm, soft-extruded Gradio theme for Stable Diffusion interfaces.
Install: `pip install gradio` then copy `theme.py` into your project.
        """
    )

    with gr.Row():
        with gr.Column(scale=1):
            prompt      = gr.Textbox(label="Prompt", lines=3,
                                     placeholder="A serene landscape at golden hour…")
            neg_prompt  = gr.Textbox(label="Negative prompt", lines=2,
                                     placeholder="blurry, low quality, watermark…")
            with gr.Row():
                steps   = gr.Slider(1, 150, value=20, step=1,   label="Steps")
                cfg     = gr.Slider(1, 30,  value=7,  step=0.5, label="CFG Scale")
            with gr.Row():
                sampler = gr.Dropdown(
                    ["Euler a", "DPM++ 2M", "DPM++ SDE", "DDIM", "UniPC"],
                    value="Euler a", label="Sampler"
                )
                faces   = gr.Checkbox(label="Restore faces", value=False)
                tiling  = gr.Checkbox(label="Tiling", value=False)
            with gr.Row():
                generate_btn  = gr.Button("Generate",  variant="primary")
                interrupt_btn = gr.Button("Interrupt", variant="stop")

        with gr.Column(scale=1):
            output_image = gr.Image(label="Output", height=360)
            with gr.Accordion("Generation info", open=False):
                gen_info = gr.Textbox(label="Parameters", lines=4, interactive=False)

    with gr.Tabs():
        with gr.Tab("Settings"):
            with gr.Row():
                width   = gr.Slider(512, 2048, value=512, step=64, label="Width")
                height  = gr.Slider(512, 2048, value=512, step=64, label="Height")
            with gr.Row():
                batch_s = gr.Slider(1, 8,  value=1, step=1,  label="Batch size")
                batch_c = gr.Slider(1, 16, value=1, step=1,  label="Batch count")
            seed    = gr.Number(label="Seed", value=-1, precision=0)

        with gr.Tab("ControlNet"):
            cn_model  = gr.Textbox(label="ControlNet model",
                                   placeholder="control_v11p_sd15_openpose")
            cn_weight = gr.Slider(0, 2, value=1, step=0.05, label="Control weight")
            cn_start  = gr.Slider(0, 1, value=0, step=0.05, label="Starting control step")
            cn_end    = gr.Slider(0, 1, value=1, step=0.05, label="Ending control step")

        with gr.Tab("Hires. fix"):
            hires_on     = gr.Checkbox(label="Enable Hires. fix", value=False)
            hires_upscaler = gr.Dropdown(
                ["Latent", "ESRGAN_4x", "R-ESRGAN 4x+", "SwinIR_4x"],
                value="Latent", label="Upscaler"
            )
            with gr.Row():
                hires_steps = gr.Slider(0, 150, value=0,   step=1,   label="Hires steps")
                hires_denoise = gr.Slider(0, 1,  value=0.7, step=0.01, label="Denoising strength")

        with gr.Tab("Scripts"):
            script = gr.Dropdown(["None", "X/Y/Z plot", "Prompt matrix", "Ultimate SD upscale"],
                                  value="None", label="Script")

if __name__ == "__main__":
    demo.launch()