mbarnig's picture
Update app.py
6d5b826
import gradio as gr
import numpy as np
import paddlehub as hub
import torch
from huggingface_hub import hf_hub_download
from transformers import pipeline
from PIL import Image
myTitle = "🎨 Mol mer e Bild ! 🇱🇺"
myDescription = "### Zënter dem 20 November 2022 ass den Baidu Model net méi fräi zougänglech. Dës Demo fonctionéiert duerfir net méi an huet nëmmen nach en historeschen Wäert.<br>Beschreif an e puer Wierder wéi ee Bild de chineeseschen AI-Model ERNIE-ViLG Dir soll molen. Probéier richteg Lëtzebuergesch ze schreiwen fir Iwwersetzungsfeeler ze reduzéieren. Du kanns Dir vum <a href='https://spellchecker.lu/online-checker/'>Spellchecker</a> oder <a href='https://lod.lu'>LOD</a> dobäi hëllefen loossen. Vill Spaass!"
myArticle = "<h3>Informatiounen iwwert d'Text2Image Technologie.</h3><p>Bild-Generatoren op Basis vun neuronalen Netzer sinn säit e puer Wochen e vill diskutéiert Thema. Dës AI-Modeller goufen mat Milliounen Fotoen a Biller aus dem Internet trainéiert. Dorënner befannen sech och Biller vun Konschtwierker déi vun Websäiten vun Kënschtler an Konschtgalerien erofgelueden goufen. Vill Artisten sinn der Meenung dass mat AI generéiert Biller Déifstall a Plagiat sinn a si hunn der AI-Communautéit de Krich erkläert.</p><p>Déi bekanntsten Text2Image Modeller sinn <a href='https://openai.com/dall-e-2/'>DALL-E2</a> vun OpenAI, <a href='https://imagen.research.google'>Imagen</a> vun Google, <a href='https://stability.ai/blog/stable-diffusion-public-release'>Stable Diffusion</a> vun CompVis/Stability.ai souwéi <a href='https://www.craiyon.com'>Craiyon</a> (DALL-E mini) an <a href='https://www.midjourney.com/home/'>Midjourney</a> vun onofhängege Entwéckler. Manner bekannt an Europa sinn déi chineesesch Modeller <a href='https://github.com/PaddlePaddle/PaddleHub/tree/develop/modules/image/text_to_image/ernie_vilg'>ERNIE-ViLG</a> vun Baidu an <a href='https://github.com/THUDM/CogView2'>Cog2View</a> vun der Universitéit Tsinghua.</p><p>Well de Code vum Stable Diffusion Model open-source ass goufen an de leschten Deeg eng Hellewull vun Websäiten an Apps mat deem Model realiséiert. Domat kann elo Jänni a Männi fir e puer Euro honnerte vun impressionnante Konschtwierker generéieren. Et brauch een nëmmen eng Beschreiwung (als Text oder Sprooch) engem AI-Programm matzedeelen. Eleng am <a href='https://www.linkedin.com/posts/marco-barnig-b33074118_ai-text2image-stablediffusion-activity-6980124015168221185-ybo2'>AppStore vun Apple</a> fënnt een net manner wéi 24 Apps fir mam iPhone Biller duerch Text ze generéieren.</p><p>De Baidu Model ass am Moment deen eenzege deen et erlaabt eng fräi zougänglech Demo-Applikatioun ze programméieren. Dat erkläert firwat mäin Projet op dësem Model baséiert. Trotz engem performanten Serveur am Hannergrond dauert d'Generatioun vun engem Bild awer ongeféier 90 Sekonnen.</p><p>Fir d'Iwwersetzung vun der lëtzebuergescher Beschreiwung op chineesesch benotzen ech den <a href='https://huggingface.co/spaces/mbarnig/translation-lb-en-with-3-models'>AI-Model NLLB vu Facebook</a>. Als Kontroll maachen ech eng Réckiwwersetzung vun chineesesch op englesch, well verschidde Begrëffer falsch iwwersat ginn : aus Krokodil gëtt e Fësch, aus Giraff en Hirsch, aus Hues e Puppy, aus Cleopatra e Bouf mam Numm Cleobatra asw.</p><p>Et muss een bei der Beschreiwung vun sengem Wonsch-Bild och beuechten dass verschidde Begrëffer an China zenséiert ginn, wéi komescherweis d'Wuert Hond. Ausserdeem spigelen déi generéiert Biller déi chineesesch Kultur erëm.</p><p>Hei sinn e puer Beispiller vun Biller (mat den Beschreiwungen), déi ech mat dëser Demo generéiert hunn.</p><table><tr><th>Konschtwierk</th><th>Beschreiwung</th><th>Stil</th><th>Réckiwwersetzung</th></tr><tr><td><img src='https://www.web3.lu/wp-content/uploads/2022/09/Panda_um_Velo.png' width='300'/></td><td>E Panda fiert um Velo</td><td>Aquarell</td><td>a panda riding a bike</td></tr><tr><td><img src='https://www.web3.lu/wp-content/uploads/2022/09/deer-instead-of-giraff.png' width='300'/></td><td>Eng Giraff fiert um Velo</td><td>Aquarell</td><td>A deer riding a bicycle <br>(Iwwersetzungsproblem)</td></tr><tr><td><img src='https://www.web3.lu/wp-content/uploads/2022/09/meedercher-laechelnd-aquarell.png' width='300'/></td><td>Zwee lächelnd Meedercher</td><td>Aquarell</td><td>two smiling girls</td></tr><tr><td><img src='https://www.web3.lu/wp-content/uploads/2022/09/2girls-smiling-oil.png' width='300'/></td><td>Zwee lächelnd Meedercher</td><td>Uelechbild</td><td>two smiling girls</td></tr><tr><td><img src='https://www.web3.lu/wp-content/uploads/2022/09/2meedercher_laachen.png' width='300'/></td><td>Zwee Meedercher laachen</td><td>Cartoon</td><td>two girls laughing</td></tr><tr><td><img src='https://www.web3.lu/wp-content/uploads/2022/09/three-children-laughing.png' width='300'/></td><td>Dräi Kanner laachen</td><td>Uelechbild</td><td>three children laughing</td></tr><tr><td><img src='https://www.web3.lu/wp-content/uploads/2022/09/drai-jongen-laachen.png' width='300'/></td><td>Dräi Jongen laachen</td><td>Cartoon</td><td>three boys laughing</td></tr><tr><td><img src='https://www.web3.lu/wp-content/uploads/2022/09/cat-aquarell-6.png' width='300'/></td><td>Eng Kaatz</td><td>Aquarell</td><td>A cat</td></tr><tr><td><img src='https://www.web3.lu/wp-content/uploads/2022/09/blummen-uelechbild.png' width='300'/></td><td>Blummen</td><td>Uelechbild</td><td>flowers</td></tr><tr><td><img src='https://www.web3.lu/wp-content/uploads/2022/09/hues-besch.png' width='300'/></td><td>En Hues leeft am Bësch</td><td>D'Onendlechkeet exploréieren</td><td>a puppy in the woods <br>(Iwwersetzungproblem)</td></tr><tr><td><img src='https://www.web3.lu/wp-content/uploads/2022/09/cleopatra.png' width='300'></td><td>Cleopatra</td><td>Uelechbild</td><td>The film is about a young boy named Cleobatra<br>(Iwwersetzungsproblem)<br>chinesësch Iwwersetzung : 克利奥巴特拉</td></tr></table>"
# model_ernie = hub.Module(name="ernie_vilg")
model_nllb = "facebook/nllb-200-distilled-600M"
translator = pipeline("translation", model=model_nllb)
IMAGE_STYLES = [
"Aquarell",
"Uelegbild",
#"Molerei", # parameter error
"Cartoon",
# "Bläistëftzeechnung", # parameter error
# "Kannermolerei", # parameter error
"d'Onendlechkeet exploréieren"
]
myInputs = [
gr.Textbox(label="Beschreiwung"),
gr.Radio(label="Molerei Stiler", choices = IMAGE_STYLES, value = "Uelegbild"),
]
myOutputs = [
# gr.Gallery(label="Konschtwierker", type="pil"), # ::: jpegImageFile is not iterable error when topk=1
# gr.Image(label="Konschtwierk", type="pil"), # ::: jpegImageFile is not iterable error when topk>1
gr.Textbox(label="Iwwersetzungen")
]
def create(prompt, style):
chinese_translation = translator(prompt, src_lang="ltz_Latn", tgt_lang="zho_Hans")
if style == "Aquarell":
ernie_style = '水彩'
elif style == "Uelegbild":
ernie_style = '油画'
# elif style == "Molerei":
# ernie_style = '粉笔画'
elif style == "Cartoon":
ernie_style = '卡通'
# elif style == "Bläistëftzeechnung":
# ernie_style = '蜡笔画'
# elif style == "Kannermolerei":
# ernie_style = '儿童画'
elif style == "d'Onendlechkeet exploréieren":
ernie_style = '探索无限'
else:
ernie_style = '水彩'
"""
try:
artworks = model_ernie.generate_image(
text_prompts = chinese_translation[0]['translation_text'],
style = ernie_style,
topk = 1,
visualization=False
)
except Exception as e:
error_text=str(e)
error = translator(error_text, src_lang="zho_Hans", tgt_lang="ltz_Latn")
warnung = "Feeler! : " + str(error[0]['translation_text'])
return None, warnung
"""
english_back_translation = translator(chinese_translation[0]['translation_text'], src_lang="zho_Hans", tgt_lang="eng_Latn")
translation = "chinesësch Iwwersetzung : " + str(chinese_translation[0]['translation_text']) + " ; englesch Réckiwwersetzung : " + str(english_back_translation[0]['translation_text'])
# print(artworks)
# print(artworks[0])
return translation
# return artworks[0], translation
demo = gr.Interface(
fn=create,
inputs=myInputs,
outputs=myOutputs,
title=myTitle,
description=myDescription,
article = myArticle
)
demo.launch()