Add emoji beautifying. - annna - Annna the nice friendly bot. | |
git clone git://bitreich.org/annna/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws6… | |
Log | |
Files | |
Refs | |
Tags | |
README | |
--- | |
commit 7429173aef156876e4463fa07230c003ff8ef069 | |
parent b7639839f6f65c6cef63c8868360d3c20ed42eab | |
Author: Annna Robert-Houdin <[email protected]> | |
Date: Wed, 31 Jul 2024 17:08:01 +0200 | |
Add emoji beautifying. | |
Diffstat: | |
A stable-diffusion-beautify-prompt | 300 +++++++++++++++++++++++++++++… | |
M stable-diffusion-emoji | 6 ++++++ | |
2 files changed, 306 insertions(+), 0 deletions(-) | |
--- | |
diff --git a/stable-diffusion-beautify-prompt b/stable-diffusion-beautify-prompt | |
@@ -0,0 +1,300 @@ | |
+#!/usr/bin/env python | |
+# coding=utf-8 | |
+# | |
+# ©2024 Christoph Lohmann <20h at r-36 dot net> | |
+# | |
+# This file is published under the terms of the GPLv3. | |
+# | |
+ | |
+import os | |
+import sys | |
+import getopt | |
+import time | |
+from datetime import datetime, timedelta | |
+import pytz | |
+import subprocess | |
+import random | |
+ | |
+def beautify_prompt(text): | |
+ # TODO: Better background handling? | |
+ #background = "background fireworks and night sky" | |
+ background = None | |
+ modifiers = [None, "cinematic", "hd", "4k", "8k", "3d", "4d", | |
+ "highly detailed", "octane render", "trending artstation", | |
+ "Pixelate", "Blur", "Symmetrical", "Macabre", "at night"] | |
+ beauties = [None, "Beautiful", "Very Beautiful", "Very Very Beautiful"] | |
+ times = [None, "ancient", "futuristic", "modern", "antique", "Retro", | |
+ "old-fashioned", "youthful"] | |
+ colors = [None, "colorful", "black and white", "greyscale"] | |
+ lightnings = [None, "daylight", "moonlight", "natural light", "Front l… | |
+ "Backlight", "Soft light", "Hard light", "Moody light", | |
+ "Dynamic light"] | |
+ styles = [None, | |
+ "Abstract Painting", | |
+ "Acrylic Painting", | |
+ "Action Painting", | |
+ "Aestheticism Painting", | |
+ "Anamorphosis Painting", | |
+ "Art Deco Painting", | |
+ "Art nouveau Painting", | |
+ "Ashcan School Painting", | |
+ "Baroque Painting", | |
+ "Body Painting", | |
+ "Canvas Painting", | |
+ "Cartoon Painting", | |
+ "Chalk Painting", | |
+ "Child's Finger Painting", | |
+ "Chinese Painting", | |
+ "Classicism Painting", | |
+ "Collage Painting", | |
+ "Cubism Painting", | |
+ "Dadaism Painting", | |
+ "De Stijl Painting", | |
+ "Der Blaue Painting", | |
+ "Digital Painting", | |
+ "Drip Painting", | |
+ "Enamel Painting", | |
+ "Encaustic Painting", | |
+ "Expressionism Painting", | |
+ "Figurativism Painting", | |
+ "Fingerpainting Painting", | |
+ "Finger Painting", | |
+ "Fresco Secco Painting", | |
+ "Futurism Painting", | |
+ "Genre Painting", | |
+ "Glitter Glue Painting", | |
+ "Gothic Painting", | |
+ "Gouache Painting", | |
+ "History Painting", | |
+ "Hot Wax Painting", | |
+ "Impressionism Painting", | |
+ "Ink Wash Painting", | |
+ "Japanese Painting", | |
+ "Korean Painting", | |
+ "Landscape Painting", | |
+ "Leaf Painting", | |
+ "Marker Painting", | |
+ "Matte Painting", | |
+ "Miniature Painting", | |
+ "Modernism Painting", | |
+ "Mughal Painting", | |
+ "Mural Painting", | |
+ "Oil Painting", | |
+ "Pastel Painting", | |
+ "Pattachitra Painting", | |
+ "Photorealism Painting", | |
+ "Rajasthan Painting", | |
+ "Realism Painting", | |
+ "Reverse Glass Painting", | |
+ "Sand Painting", | |
+ "Speed Painting", | |
+ "Spray Painting", | |
+ "Still Life Painting", | |
+ "Surrealism Painting", | |
+ "Tanjore Painting", | |
+ "Tempera Painting", | |
+ "Velvet Painting", | |
+ "Watercolor Painting", | |
+ "Anime Art", | |
+ "Bedazzled Art Style", | |
+ "Button Art", | |
+ "Chalk Art", | |
+ "Comic Book Art", | |
+ "Conceptual Art", | |
+ "Leather Art Style", | |
+ "Line Art", | |
+ "Marble Art", | |
+ "Pop Art painting", | |
+ "Portrait Art", | |
+ "Sand Art", | |
+ "Street Art", | |
+ "Woven Art", | |
+ "Anime Style", | |
+ "Atari 2600 Style", | |
+ "Bauhaus Style", | |
+ "Coloring Book Style", | |
+ "Constructivism Style", | |
+ "Fauvism Style", | |
+ "Glitter Style", | |
+ "GTAV Style", | |
+ "NES Style", | |
+ "Retro Comic Book Style", | |
+ "SNES Style", | |
+ "Studio Ghibli Style", | |
+ "Woodburning Style", | |
+ "Woodcut Style", | |
+ "Ballpoint Pen Drawing", | |
+ "Blue Ballpoint Pen Drawing", | |
+ "Colored Pencil Drawing", | |
+ "Pencil Drawing", | |
+ "Red Ballpoint Pen Drawing", | |
+ "Comic Book Cover", | |
+ "Comic Book", | |
+ "Comic Book Panel", | |
+ "Colored Pencil Sketch", | |
+ "Pencil Sketch", | |
+ "3D Render", | |
+ "Boxart", | |
+ "Children's Book", | |
+ "Coloring Book", | |
+ "Copper Plate Engraving", | |
+ "Cross-Stitch", | |
+ "Diamond Engraving", | |
+ "Icon", | |
+ "Linocut", | |
+ "Lowpoly", | |
+ "Old Black and White Photograph", | |
+ "Photograph", | |
+ "Pixelart", | |
+ "Pop Up Book", | |
+ "Ring Engraving", | |
+ "Spray Paint", | |
+ "Stained Glass", | |
+ "Sticker", | |
+ "Stone Cut" | |
+ ] | |
+ artists = [None, | |
+ "Agnes Lawrence Pelton", | |
+ "Akihito Yoshida", | |
+ "Alex Grey", | |
+ "Alexander Jansson", | |
+ "Alphonse Mucha", | |
+ "Andy Warhol", | |
+ "Artgerm", | |
+ "Asaf Hanuka", | |
+ "Aubrey Beardsley", | |
+ "Banksy", | |
+ "Beeple", | |
+ "Ben Enwonwu", | |
+ "Bob Eggleton", | |
+ "Caravaggio Michelangelo Merisi", | |
+ "Caspar David Friedrich", | |
+ "Chris Foss", | |
+ "Claude Monet", | |
+ "Dan Mumford", | |
+ "David Mann", | |
+ "Diego Velázquez", | |
+ "Disney Animation Studios", | |
+ "Édouard Manet", | |
+ "Esao Andrews", | |
+ "Frida Kahlo", | |
+ "Gediminas Pranckevicius", | |
+ "Georgia O'Keeffe", | |
+ "Greg Rutkowski", | |
+ "Gustave Doré", | |
+ "Gustave Klimt", | |
+ "H.R. Giger", | |
+ "Hayao Miyazaki", | |
+ "Henri Matisse", | |
+ "HP Lovecraft", | |
+ "Ivan Shishkin", | |
+ "Jack Kirby", | |
+ "Jackson Pollock", | |
+ "James Jean", | |
+ "Jim Burns", | |
+ "Johannes Vermeer", | |
+ "John William Waterhouse", | |
+ "Katsushika Hokusai", | |
+ "Kim Tschang Yeul", | |
+ "Ko Young Hoon", | |
+ "Leonardo da Vinci", | |
+ "Lisa Frank", | |
+ "M.C. Escher", | |
+ "Mahmoud Saïd", | |
+ "Makoto Shinkai", | |
+ "Marc Simonetti", | |
+ "Mark Brooks", | |
+ "Michelangelo", | |
+ "Pablo Picasso", | |
+ "Paul Klee", | |
+ "Peter Mohrbacher", | |
+ "Pierre-Auguste Renoir", | |
+ "Pixar Animation Studios", | |
+ "Rembrandt", | |
+ "Richard Dadd", | |
+ "Rossdraws", | |
+ "Salvador Dalí", | |
+ "Sam Does Arts", | |
+ "Sandro Botticelli", | |
+ "Ted Nasmith", | |
+ "Ten Hundred", | |
+ "Thomas Kinkade", | |
+ "Tivadar Csontváry Kosztka", | |
+ "Victo Ngai", | |
+ "Vincent Di Fate", | |
+ "Vincent van Gogh", | |
+ "Wes Anderson", | |
+ "wlop", | |
+ "Yoshitaka Amano" | |
+ ] | |
+ style = random.choice(styles) | |
+ modifier = random.sample(modifiers, random.randint(0, len(modifiers))) | |
+ artist = random.choice(artists) | |
+ time = random.choice(times) | |
+ color = random.choice(colors) | |
+ lighting = random.choice(lightnings) | |
+ beauty = random.choice(beauties) | |
+ | |
+ etexta = [] | |
+ if beauty != None: | |
+ etexta.append(beauty) | |
+ if time != None: | |
+ etexta.append(time) | |
+ if style != None: | |
+ etexta.append(style) | |
+ if text != None: | |
+ etexta.append(text) | |
+ if background != None: | |
+ etexta.append("with") | |
+ etexta.append(background) | |
+ if artist != None: | |
+ etexta.append("by") | |
+ etexta.append(artist) | |
+ if len(modifier) > 0: | |
+ etexta.append(",") | |
+ modifiertext = "" | |
+ for m in modifier: | |
+ if m != None: | |
+ if len(modifiertext) > 0: | |
+ modifiertext += " " | |
+ modifiertext += str(m) | |
+ etexta.append(modifiertext) | |
+ if lighting != None: | |
+ etexta.append(",") | |
+ etexta.append(lighting) | |
+ if color != None: | |
+ etexta.append(",") | |
+ etexta.append(color) | |
+ etext = " ".join(etexta) | |
+ | |
+ return etext | |
+ | |
+def usage(app): | |
+ app = os.path.basename(app) | |
+ print("usage: %s [-hft] [-c chan] [-d description] [-s sleept] YYYY-mm… | |
+ file=sys.stderr) | |
+ sys.exit(1) | |
+ | |
+def main(args): | |
+ try: | |
+ opts, largs = getopt.getopt(args[1:], "h") | |
+ except getopt.GetoptError as err: | |
+ print(str(err)) | |
+ usage(args[0]) | |
+ | |
+ for o, a in opts: | |
+ if o == "-h": | |
+ usage(args[0]) | |
+ else: | |
+ assert False, "unhandled option" | |
+ | |
+ if len(largs) < 1: | |
+ usage(args[0]) | |
+ | |
+ text = " ".join(largs) | |
+ print(beautify_prompt(text)) | |
+ return 0 | |
+ | |
+if __name__ == "__main__": | |
+ sys.exit(main(sys.argv)) | |
+ | |
diff --git a/stable-diffusion-emoji b/stable-diffusion-emoji | |
@@ -26,6 +26,12 @@ emojiorig="${emojifilebase}.orig" | |
if [ ! -e "${emojidb}/${emojifile}" ]; | |
then | |
+ case "${emojiprompt}" in | |
+ *beautify*) | |
+ emojiprompt="$(stable-diffusion-beautify-prompt "${emojiprompt… | |
+ ;; | |
+ esac | |
+ | |
SD_MODEL="/br/ai/stable-diffusion.cpp/models/epicphotogasm_x-ggml-mode… | |
stable-diffusion "${emojidb}/${emojifile}" "${emojiprompt}" | |
if [ -e "${emojidb}/${emojifile}" ]; |