Spaces:
Runtime error
Runtime error
File size: 4,492 Bytes
9a87834 094f795 362de3f 508e2de 8b6cf81 508e2de 362de3f 8b6cf81 97ad6b1 094f795 8b6cf81 362de3f 75ece5a 9a87834 75ece5a 9a87834 508e2de 362de3f 75ece5a 8b6cf81 508e2de 362de3f 8b6cf81 362de3f 508e2de 8b6cf81 362de3f 8b6cf81 362de3f 508e2de 8b6cf81 75ece5a 97ad6b1 8b6cf81 094f795 8b6cf81 508e2de 8b6cf81 362de3f 508e2de 362de3f 8b6cf81 362de3f 8b6cf81 362de3f 508e2de 8b6cf81 97ad6b1 094f795 4dc9e2b 8b6cf81 4dc9e2b 8b6cf81 094f795 508e2de 094f795 97ad6b1 8b6cf81 094f795 97ad6b1 094f795 97ad6b1 8b6cf81 97ad6b1 8b6cf81 97ad6b1 094f795 97ad6b1 8ddf994 094f795 1f95340 094f795 97ad6b1 |
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 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 |
"""See https://huggingface.co/spaces/Gradio-Blocks/Story-to-video/blob/main/app.py."""
import base64
import io
import logzero
import os
import re
import time
from random import choice, choices
import gradio as gr
import translators as ts
from fastlid import fastlid
from logzero import logger
from PIL import Image # opencv-python
from tenacity import retry
from tenacity.stop import stop_after_attempt, stop_after_delay
# from PIL import Image
# from transformers import AutoTokenizer, AutoModelForSeq2SeqLM,pipeline
# import requests
# import torch
image_gen = gr.Interface.load("spaces/multimodalart/latentdiffusion")
# image_gen = gr.Interface.load("huggingface/multimodalart/latentdiffusion")
os.environ["TZ"] = "Asia/Shanghai"
try:
time.tzset()
except Exception:
... # Windows
loglevel = 10 # change to 20 to switch off debug
logzero.loglevel(loglevel)
examples_ = [
"黄金在河里流淌,宝石遍地,空中铺满巨大的彩虹。",
"蓝色的夜,森林中好多萤火虫",
"黑云压城城欲摧 ,甲光向日金鳞开。",
"季姬寂,集鸡,鸡即棘鸡。棘鸡饥叽,季姬及箕稷济鸡。",
"an apple",
"a cat",
"blue moon",
"metaverse",
]
# @retry(stop=stop_after_attempt(5))
@retry(stop=(stop_after_delay(10) | stop_after_attempt(5)))
def tr_(
text: str,
from_language="auto",
to_language="en",
) -> str:
"""Wrap [ts.deepl, ts.baidu, ts.google] with tenacity.
not working: sogou; ?tencent
"""
cand = [ts.baidu, ts.youdao, ts.google]
for tr in [ts.deepl] + choices(cand, k=len(cand)):
try:
res = tr(
text,
from_language=from_language,
to_language=to_language,
)
logger.info(" api used: %s", tr.__name__)
tr_.api_used = tr.__name__
break
except Exception:
continue
else:
res = "Something is probably wrong, ping dev to fix it if you like."
return res
def generate_images(phrase: str, steps: int = 125):
if not phrase.strip():
phrase = choice(examples_)
generated_text = phrase
detected = "en"
extra_info = ""
try:
detected = fastlid(phrase)[0]
except Exception as exc:
logger.error(exc)
logzero.loglevel(loglevel)
logger.debug("phrase: %s, deteted: %s", phrase, detected)
# safeguard short Chinese phrases
if len(phrase) <= 10 and re.search(r"[一-龟]+", phrase):
detected = "zh"
logger.debug(" safeguard branch ")
if detected not in ["en"]:
try:
generated_text = tr_(
phrase,
detected,
"en",
)
extra_info = f"({tr_.api_used}: {generated_text})"
except Exception as exc:
logger.error(exc)
return None, f"{phrase:}, errors: {str(exc)}"
# steps = 125
width = 256
height = 256
num_images = 4
num_images = 1
diversity = 6
try:
image_bytes = image_gen(
generated_text, steps, width, height, num_images, diversity
)
except Exception as exc:
logger.error(exc)
return None, f"phrase: {phrase}, errors: {str(exc)}. Try again."
# Algo from spaces/Gradio-Blocks/latent_gpt2_story/blob/main/app.py
# generated_images = []
img = None
err_msg = f"{phrase} {extra_info}"
for image in image_bytes[1]:
image_str = image[0]
try:
image_str = image_str.replace("data:image/png;base64,", "")
except Exception as exc:
logger.error(exc)
err_msg = str(exc)
return None, f"errors: {err_msg}. Try again."
decoded_bytes = base64.decodebytes(bytes(image_str, "utf-8"))
img = Image.open(io.BytesIO(decoded_bytes))
# generated_images.append(img)
# return generated_images
return img, err_msg
# examples = [["an apple", 125], ["Donald Trump", 125]]
examples = [list(_) for _ in zip(examples_, [125] * len(examples_))]
inputs = [
# "text",
gr.Text(value="a dog with a funny hat"),
gr.Slider(minimum=2, maximum=250, value=115, step=5),
]
iface = gr.Interface(
generate_images,
inputs,
# ["image", gr.Text(value="", label="phrase")],
[gr.Image(label=""), gr.Text(value="", label="phrase")],
examples=examples,
cache_examples=False,
allow_flagging="never",
)
iface.launch(enable_queue=True)
|