File size: 8,623 Bytes
edf27e0
 
 
4267a5e
 
 
a4f322f
d067e8c
af2e259
6d5b826
da66926
4209c4d
ea4ec6f
5d53315
 
d067e8c
2b45bb1
 
 
5d53315
2b45bb1
5d53315
 
1fb1ed8
2b45bb1
 
 
 
09e63de
2b45bb1
f2db576
d067e8c
3e1bc2f
ea4ec6f
ba0e16d
d067e8c
 
2b45bb1
c93eafb
4267a5e
2b45bb1
 
f499c5b
2b45bb1
3e1bc2f
 
2b45bb1
 
3e1bc2f
 
 
 
2d9a56d
2b45bb1
 
b7b089c
c93eafb
d067e8c
8810efc
4267a5e
2b45bb1
f852d86
d067e8c
 
37b4cdc
 
1d6eeb9
889e331
d04411c
c93eafb
5a4247e
c93eafb
ea4ec6f
 
5a4247e
ea4ec6f
c93eafb
5a4247e
87d1d60
d067e8c
 
2b45bb1
4209c4d
 
fb579db
 
d067e8c
 
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
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 chineesescht 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
    """
    return "nothing"
    
demo = gr.Interface(
    fn=create,
    inputs=myInputs,
    outputs=myOutputs,
    title=myTitle,
    description=myDescription,
    article = myArticle
    )
demo.launch()