Imagine / app.py
Rooni's picture
Update app.py
cfe183b
raw
history blame
3.63 kB
import gradio as gr
import requests
import time
import json
from contextlib import closing
from websocket import create_connection
from deep_translator import GoogleTranslator
from langdetect import detect
import os
from PIL import Image
import io
import base64
def flip_text(prompt, negative_prompt, task, steps, sampler, cfg_scale, seed):
result = {"prompt": prompt, "negative_prompt": negative_prompt, "task": task, "steps": steps, "sampler": sampler, "cfg_scale": cfg_scale, "seed": seed}
print(result)
language = detect(prompt)
if language == 'ru':
prompt = GoogleTranslator(source='ru', target='en').translate(prompt)
print(prompt)
cfg = int(cfg_scale)
steps = int(steps)
seed = int(seed)
url_sd1 = "https://stable-diffusion-open.api.replicate.com/infer"
url_sd2 = "https://api.replicate.com/predictions/10720/jobs/"
url_sd3 = "https://stable-diffusion-open.api.replicate.com/predictions/10720/output/"
if task == 'Realistic Vision 5.0':
model = 'Realistic Vision V5.0.safetensors+%5B614d1063%5D'
elif task == 'Dreamshaper 8':
model = 'dreamshaper_8.safetensors+%5B9d40847d%5D'
elif task == 'Deliberate 3':
model = 'deliberate_v3.safetensors+%5Bafd9d2d4%5D'
elif task == 'Analog Diffusion':
model = 'analog-diffusion-1.0.ckpt+%5B9ca13f02%5D'
elif task == 'Lyriel 1.6':
model = 'lyriel_v16.safetensors+%5B68fceea2%5D'
elif task == "Elldreth's Vivid Mix":
model = 'elldreths-vivid-mix.safetensors+%5B342d9d26%5D'
elif task == 'Anything V5':
model = 'anything-v4.5-pruned.ckpt+%5B65745d25%5D'
elif task == 'Openjourney V4':
model = 'openjourney_V4.ckpt+%5Bca2f377f%5D'
elif task == 'AbsoluteReality 1.8.1':
model = 'absolutereality_v181.safetensors+%5B3d9d4d2b%5D'
elif task == 'epiCRealism v5':
model = 'epicrealism_naturalSinRC1VAE.safetensors+%5B90a4c676%5D'
elif task == 'CyberRealistic 3.3':
model = 'cyberrealistic_v33.safetensors+%5B82b0d085%5D'
elif task == 'ToonYou 6':
model = 'toonyou_beta6.safetensors+%5B980f6b15%5D'
c = 0
r = requests.get(f'{url_sd1}?prompt={prompt}&model={model}&negative_prompt={negative_prompt}&steps={steps}&cfg={cfg}&seed={seed}&sampler={sampler}&aspect_ratio=square', timeout=10)
job = r.json()['job']
while c < 10:
c += 1
time.sleep(2)
r2 = requests.get(f'{url_sd2}{job}', timeout=10)
status = r2.json()['status']
if status == 'succeeded':
photo = f'{url_sd3}{job}.png'
return photo
if status == "queued":
continue
if status == 'failed':
return None
def mirror(image_output, scale_by, method, gfpgan, codeformer):
url_up = "https://scale-diffusion-open.api.replicate.com/infer"
url_up_f = "https://scale-diffusion-open.api.replicate.com/output/"
scale_by = int(scale_by)
gfpgan = int(gfpgan)
codeformer = int(codeformer)
with open(image_output, "rb") as image_file:
encoded_string2 = base64.b64encode(image_file.read())
encoded_string2 = str(encoded_string2).replace("b'", '')
encoded_string2 = "data:image/png;base64," + encoded_string2
data = {
"fn_index": 81,
"data": [0, 0, encoded_string2, None, "", "", True, gfpgan, codeformer, 0, scale_by, 512, 512, None, method, "None", 1, False, [], "", ""],
"session_hash": ""
}
r = requests.post(f"{url_up}", json=data, timeout=100)
print(r.text)
ph = f"{url_up_f}" + str(r.json()['data'][0][0]['name'])
return ph