File size: 2,911 Bytes
d8fcee4
d767ca6
d8fcee4
 
 
9c2a5f6
8ec67ee
871bf7f
d8fcee4
 
 
9c2a5f6
bc8b335
871bf7f
9c2a5f6
871bf7f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9c2a5f6
 
8b28b93
d767ca6
871bf7f
7d80404
d767ca6
 
b126be6
8b28b93
9c2a5f6
8b28b93
 
9c2a5f6
 
d767ca6
f606112
d767ca6
f606112
d767ca6
f606112
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
import gradio as gr
import torch
import numpy as np
import modin.pandas as pd
from PIL import Image
from diffusers import StableDiffusion3Pipeline #DiffusionPipeline #, StableDiffusion3Pipeline
from huggingface_hub import hf_hub_download
from diffusers import BitsAndBytesConfig, SD3Transformer2DModel

device = 'cuda' if torch.cuda.is_available() else 'cpu'
torch.cuda.max_memory_allocated(device=device)
torch.cuda.empty_cache() 

model_id = "stabilityai/stable-diffusion-3.5-large-turbo"

nf4_config = BitsAndBytesConfig(
    load_in_4bit=True,
    bnb_4bit_quant_type="nf4",
    bnb_4bit_compute_dtype=torch.bfloat16
)
model_nf4 = SD3Transformer2DModel.from_pretrained(
    model_id,
    subfolder="transformer",
    quantization_config=nf4_config,
    torch_dtype=torch.bfloat16
)

t5_nf4 = T5EncoderModel.from_pretrained("diffusers/t5-nf4", torch_dtype=torch.bfloat16)

pipeline = StableDiffusion3Pipeline.from_pretrained(
    model_id, 
    transformer=model_nf4,
    text_encoder_3=t5_nf4,
    torch_dtype=torch.bfloat16
)
pipeline.enable_model_cpu_offload()

def genie (Prompt, height, width, seed):
    generator = np.random.seed(0) if seed == 0 else torch.manual_seed(seed)
       
    image = pipeline(Prompt, num_inference_steps=4, height=height, width=width, guidance_scale=0.0,).images[0]

    return image
    
gr.Interface(fn=genie, inputs=[#gr.Radio(['PhotoReal', 'Animagine XL 4',], value='PhotoReal', label='Choose Model'),
                               gr.Textbox(label='What you want the AI to generate. 77 Token Limit.'), 
                               #gr.Textbox(label='What you Do Not want the AI to generate. 77 Token Limit'),
                               gr.Slider(512, 1024, 768, step=128, label='Height'),
                               gr.Slider(512, 1024, 768, step=128, label='Width'),
                               #gr.Slider(3, maximum=12, value=5, step=.25, label='Guidance Scale', info="5-7 for PhotoReal and 7-10 for Animagine"), 
                               #gr.Slider(25, maximum=50, value=25, step=25, label='Number of Iterations'), 
                               gr.Slider(minimum=0, step=1, maximum=9999999999999999, randomize=True, label='Seed: 0 is Random'), 
                               ],
             outputs=gr.Image(label='Generated Image'), 
             title="Manju Dream Booth V2.5 - GPU", 
             description="<br><br><b/>Warning: This Demo is capable of producing NSFW content.", 
             article = "If You Enjoyed this Demo and would like to Donate, you can send any amount to any of these Wallets. <br><br>SHIB (BEP20): 0xbE8f2f3B71DFEB84E5F7E3aae1909d60658aB891 <br>PayPal: https://www.paypal.me/ManjushriBodhisattva <br>ETH: 0xbE8f2f3B71DFEB84E5F7E3aae1909d60658aB891 <br>DOGE: DL5qRkGCzB2ENBKfEhHarvKm1qas3wyHx7<br><br>Code Monkey: <a href=\"https://huggingface.co/Manjushri\">Manjushri</a>").launch(debug=True, max_threads=80)