diff --git a/chibi_nodes.py b/chibi_nodes.py index eb1f121..3761e23 100644 --- a/chibi_nodes.py +++ b/chibi_nodes.py @@ -2,11 +2,23 @@ import torch import folder_paths import comfy.sd import comfy.utils +from comfy.cli_args import args from PIL import Image, ImageOps +from PIL.PngImagePlugin import PngInfo import numpy as np +import random +import os +import time +import json ### GLOBALS ### MAX_RESOLUTION=32768 +base_path = os.path.dirname(os.path.realpath(__file__)) + +models_dir = os.path.join(base_path, "extras") + +folder_paths.folder_names_and_paths["chibi-wildcards"] = ([os.path.join(models_dir, "chibi-wildcards")], {".txt"}) + class Loader: @@ -31,15 +43,17 @@ class Loader: def loader(self, Checkpoint,Vae,stop_at_clip_layer,width,height,batch_size): ckpt_path = folder_paths.get_full_path("checkpoints", Checkpoint) output_vae = False + if Vae == "Included": output_vae = True + ckpt = comfy.sd.load_checkpoint_guess_config(ckpt_path, output_vae=output_vae, output_clip=True, embedding_directory=folder_paths.get_folder_paths("embeddings")) if Vae == "Included": vae = ckpt[:3][2] else: vae_path = folder_paths.get_full_path("vae", Vae) - vae = comfy.sd.VAE(ckpt_path=vae_path) + vae = comfy.sd.VAE(sd=comfy.utils.load_torch_file(vae_path)) clip = ckpt[:3][1].clone() clip.clip_layer(stop_at_clip_layer) @@ -65,8 +79,8 @@ class Prompts: }, } - RETURN_TYPES = ("CONDITIONING","CONDITIONING",) - RETURN_NAMES = ("Positive Conditioning", "Negative Conditioning") + RETURN_TYPES = ("CONDITIONING","CONDITIONING","CLIP","TEXT","TEXT") + RETURN_NAMES = ("Positive Conditioning", "Negative Conditioning", "CLIP", "Positive Text", "Negative Text") FUNCTION = "prompts" CATEGORY = "Chibi-Nodes" @@ -76,7 +90,7 @@ class Prompts: pos_cond, pos_pooled = clip.encode_from_tokens(pos_cond_raw, return_pooled=True) neg_cond, neg_pooled = clip.encode_from_tokens(neg_cond_raw, return_pooled=True) - return ([[pos_cond, {"pooled_output": pos_pooled}]],[[neg_cond, {"pooled_output": neg_pooled}]],) + return ([[pos_cond, {"pooled_output": pos_pooled}]],[[neg_cond, {"pooled_output": neg_pooled}]],clip,Positive,Negative) class ImageTool: def __init__(self): @@ -127,11 +141,224 @@ class ImageTool: image = torch.from_numpy(image)[None,] return(image,) + +class Wildcards: + def __init__(self): + pass + + @classmethod + def INPUT_TYPES(s): + return { + "required":{ + "clip": ("CLIP",), + "textfile" : [sorted(folder_paths.get_filename_list("chibi-wildcards"))], + "keyword":("STRING", {"default": "__wildcard__","multiline": False}), + }, + "optional":{ + "text" : ("TEXT",), + }, + } + RETURN_TYPES = ("CONDITIONING","TEXT",) + FUNCTION = "wildcards" + CATEGORY = "Chibi-Nodes" + seed = random.seed() + def IS_CHANGED(s,seed): + seed = random.seed() + + def wildcards(self, textfile,keyword,clip,text=None,): + with open(folder_paths.get_full_path("chibi-wildcards", textfile)) as f: + lines = f.readlines() + aline = random.choice(lines) + + if text != None: + raw = text.replace(keyword,aline) + cond_raw = clip.tokenize(raw) + cond, pooled = clip.encode_from_tokens(cond_raw, return_pooled=True) + return([[cond, {"pooled_output": pooled}]],raw,) + + else: + cond_raw = clip.tokenize(aline) + cond, pooled = clip.encode_from_tokens(cond_raw, return_pooled=True) + return([[cond, {"pooled_output": pooled}]],aline,) + + + +class LoadEmbedding: + def __init__(self): + pass + + @classmethod + def INPUT_TYPES(s): + return{"required":{ + "text" : ("TEXT",), + "embedding":[sorted(folder_paths.get_filename_list("embeddings"))], + "weight": ("FLOAT", {"default": 1.0, "min": -2, "max": 2, "step": 0.1, "round": 0.01}), + }} + + RETURN_TYPES = ("TEXT",) + FUNCTION = "loadembedding" + CATEGORY = "Chibi-Nodes" + + def loadembedding(self, text, embedding,weight): + + output = text + ", (embedding:" + embedding + ":" + str(weight) + ")" + # embedding.rsplit('.', maxsplit=1)[0] + return(output,) + +class ConditionText: + def __init__(self): + pass + + @classmethod + def INPUT_TYPES(s): + return { + "required": { + "clip": ("CLIP",), + }, + "optional":{ + "first" : ("TEXT",), + "second" : ("TEXT",), + "third" : ("TEXT",), + "fourth" : ("TEXT",), + } + } + + RETURN_TYPES = ("CLIP","CONDITIONING","CONDITIONING","CONDITIONING","CONDITIONING",) + RETURN_NAMES = ("CLIP","first","second","third","fourth",) + FUNCTION = "conditiontext" + CATEGORY = "Chibi-Nodes" + + def conditiontext(self, clip, first=None, second=None, third=None, fourth=None, ): + emptystring = "" + returnedcond = [] + if first != None: + firstraw = clip.tokenize(first) + first_cond, first_pooled = clip.encode_from_tokens(firstraw, return_pooled=True) + returnedcond.append([[first_cond, {"pooled_output": first_pooled}]]) + else: + emptyraw = clip.tokenize(emptystring) + empty_cond, empty_pooled = clip.encode_from_tokens(emptyraw, return_pooled=True) + returnedcond.append([[empty_cond, {"pooled_output": empty_pooled}]]) + + if second != None: + secondraw = clip.tokenize(second) + second_cond, second_pooled = clip.encode_from_tokens(secondraw, return_pooled=True) + returnedcond.append([[second_cond, {"pooled_output": second_pooled}]]) + else: + emptyraw = clip.tokenize(emptystring) + empty_cond, empty_pooled = clip.encode_from_tokens(emptyraw, return_pooled=True) + returnedcond.append([[empty_cond, {"pooled_output": empty_pooled}]]) + + if third != None: + thirdraw = clip.tokenize(third) + third_cond, third_pooled = clip.encode_from_tokens(thirdraw, return_pooled=True) + returnedcond.append([[third_cond, {"pooled_output": third_pooled}]]) + else: + emptyraw = clip.tokenize(emptystring) + empty_cond, empty_pooled = clip.encode_from_tokens(emptyraw, return_pooled=True) + returnedcond.append([[empty_cond, {"pooled_output": empty_pooled}]]) + + if fourth != None: + fourthraw = clip.tokenize(fourth) + fourth_cond, fourth_pooled = clip.encode_from_tokens(fourthraw, return_pooled=True) + returnedcond.append([[fourth_cond, {"pooled_output": fourth_pooled}]]) + else: + emptyraw = clip.tokenize(emptystring) + empty_cond, empty_pooled = clip.encode_from_tokens(emptyraw, return_pooled=True) + returnedcond.append([[empty_cond, {"pooled_output": empty_pooled}]]) + + + return (clip,returnedcond[0],returnedcond[1],returnedcond[2],returnedcond[3],) + +class SaveImages: + def __init__(self): + pass + + @classmethod + def INPUT_TYPES(s): + return { + "required": { + }, + "optional":{ + "images" : ("IMAGE",), + "latents" : ("LATENT",), + "vae" : ("VAE",), + }, + "hidden": {"prompt": "PROMPT", "extra_pnginfo": "EXTRA_PNGINFO"}, + } + + RETURN_TYPES = () + FUNCTION = "saveimage" + OUTPUT_NODE = True + CATEGORY = "Chibi-Nodes" + + + def saveimage(self,vae=None, latents=None, images=None, prompt=None, extra_pnginfo=None): + + now = str(round(time.time())) + + + + results = list() + counter = 0 + if images != None: + full_output_folder, filename, counter, subfolder, filename_prefix = folder_paths.get_save_image_path(now, folder_paths.get_output_directory(), images[0].shape[1], images[0].shape[0]) + for image in images: + i = 255. * image.cpu().numpy() + img = Image.fromarray(np.clip(i, 0, 255).astype(np.uint8)) + metadata = None + if not args.disable_metadata: + metadata = PngInfo() + if prompt is not None: + metadata.add_text("prompt", json.dumps(prompt)) + if extra_pnginfo is not None: + for x in extra_pnginfo: + metadata.add_text(x, json.dumps(extra_pnginfo[x])) + + file = f"{now}_{counter:03}_.png" + img.save(os.path.join(full_output_folder, file), pnginfo=metadata, compress_level=4) + results.append({ + "filename": file, + "subfolder": subfolder, + "type": "output" + }) + counter += 1 + if vae != None: + if latents != None: + + decoded_latents = vae.decode(latents["samples"]) + full_output_folder, filename, counter, subfolder, filename_prefix = folder_paths.get_save_image_path(now, folder_paths.get_output_directory(), decoded_latents[0].shape[1], decoded_latents[0].shape[0]) + for latent in decoded_latents: + i = 255. * latent.cpu().numpy() + img = Image.fromarray(np.clip(i, 0, 255).astype(np.uint8)) + metadata = None + if not args.disable_metadata: + metadata = PngInfo() + if prompt is not None: + metadata.add_text("prompt", json.dumps(prompt)) + if extra_pnginfo is not None: + for x in extra_pnginfo: + metadata.add_text(x, json.dumps(extra_pnginfo[x])) + + file = f"{now}_{counter:03}_.png" + img.save(os.path.join(full_output_folder, file), pnginfo=metadata, compress_level=4) + results.append({ + "filename": file, + "subfolder": subfolder, + "type": "output" + }) + counter += 1 + + return { "ui": { "images": results } } + NODE_CLASS_MAPPINGS = { "Loader":Loader, "Prompts": Prompts, "ImageTool": ImageTool, + "Wildcards": Wildcards, + "LoadEmbedding": LoadEmbedding, + "ConditionText": ConditionText, + "SaveImages":SaveImages, - } diff --git a/extras/chibi-wildcards/animals.txt b/extras/chibi-wildcards/animals.txt new file mode 100644 index 0000000..179d485 --- /dev/null +++ b/extras/chibi-wildcards/animals.txt @@ -0,0 +1,398 @@ +Lion +Elephant +Tiger +Giraffe +Cheetah +Zebra +Gorilla +Penguin +Dolphin +Kangaroo +Polar bear +Koala +Orangutan +Rhinoceros +Chimpanzee +Crocodile +Hippopotamus +Lemur +Hyena +Bald eagle +Octopus +Panda +Red fox +Snow leopard +Ostrich +Black bear +Meerkat +Komodo dragon +Wolf +Blue whale +Great white shark +Platypus +Red panda +Peacock +Armadillo +Boa constrictor +Raccoon +Cheetah +Ocelot +Swordfish +Koala +Manatee +Puma +Snow leopard +Porcupine +Platypus +Gazelle +Tasmanian devil +Flamingo +Chameleon +Red squirrel +Hammerhead shark +Bald eagle +Tarantula +Kangaroo +Sloth +Hyena +Wallaby +Gila monster +Alligator +Iguana +Puffin +Sea otter +Tapir +Pika +Jerboa +Salamander +Pigeon +Gannet +Rattlesnake +Vulture +Harpy eagle +Aye-aye +Fennec fox +Mandrill +Yak +Bison +Lemming +Wombat +Tasmanian tiger +Narwhal +Wolverine +Caracal +Walrus +Fossa +Axolotl +Lemur +Tapir +Warthog +Okapi +Quokka +Capybara +Snowshoe hare +Flying squirrel +Cuttlefish +Blobfish +Kakapo +Proboscis monkey +Gibbon +Aardvark +Bald eagle +Sloth +Raccoon +Armadillo +Rhinoceros +Platypus +Lemur +Cheetah +Puma +Wallaby +Ocelot +Octopus +Chimpanzee +Puffin +Tapir +Gannet +Wolverine +Meerkat +Hyena +Panda +Blue whale +Red panda +Snow leopard +Vulture +Rattlesnake +Gorilla +Platypus +Gazelle +Flamingo +Cheetah +Orangutan +Bald eagle +Dolphin +Koala +Zebra +Elephant +Lion +Tiger +Giraffe +Komodo dragon +Koala +Harpy eagle +Tasmanian devil +Manatee +Pigeon +Red squirrel +Polar bear +Tapir +Iguana +Ostrich +Chameleon +Aye-aye +Lemming +Bison +Hammerhead shark +Snowshoe hare +Fossa +Tasmanian tiger +Boa constrictor +Salamander +Gila monster +Kakapo +Pika +Bald eagle +Lemur +Sloth +Axolotl +Quokka +Wallaby +Caracal +Sea otter +Manatee +Gannet +Platypus +Porcupine +Raccoon +Wolf +Hyena +Polar bear +Cheetah +Chimpanzee +Elephant +Kangaroo +Zebra +Ostrich +Dolphin +Cheetah +Snow leopard +Penguin +Tiger +Red panda +Platypus +Gorilla +Boa constrictor +Lemur +Meerkat +Chimpanzee +Octopus +Komodo dragon +Raccoon +Koala +Snowshoe hare +Ocelot +Bald eagle +Manatee +Blue whale +Red fox +Snow leopard +Panda +Axolotl +Blobfish +Kakapo +Proboscis monkey +Gibbon +Aardvark +Rhinoceros +Platypus +Lemur +Cheetah +Puma +Wallaby +Ocelot +Octopus +Chimpanzee +Puffin +Tapir +Gannet +Wolverine +Meerkat +Hyena +Panda +Blue whale +Red panda +Snow leopard +Vulture +Rattlesnake +Gorilla +Platypus +Gazelle +Flamingo +Cheetah +Orangutan +Bald eagle +Dolphin +Koala +Zebra +Elephant +Lion +Tiger +Giraffe +Komodo dragon +Koala +Harpy eagle +Tasmanian devil +Manatee +Pigeon +Red squirrel +Polar bear +Tapir +Iguana +Ostrich +Chameleon +Aye-aye +Lemming +Bison +Hammerhead shark +Snowshoe hare +Fossa +Tasmanian tiger +Boa constrictor +Salamander +Gila monster +Kakapo +Pika +Bald eagle +Lemur +Sloth +Axolotl +Quokka +Wallaby +Caracal +Sea otter +Manatee +Gannet +Platypus +Porcupine +Raccoon +Wolf +Hyena +Polar bear +Cheetah +Chimpanzee +Elephant +Kangaroo +Zebra +Ostrich +Dolphin +Cheetah +Snow leopard +Penguin +Tiger +Red panda +Platypus +Gorilla +Boa constrictor +Lemur +Meerkat +Chimpanzee +Octopus +Komodo dragon +Raccoon +Koala +Snowshoe hare +Ocelot +Bald eagle +Manatee +Blue whale +Red fox +Snow leopard +Panda +Axolotl +Blobfish +Kakapo +Proboscis monkey +Gibbon +Aardvark +Rhinoceros +Platypus +Lemur +Cheetah +Puma +Wallaby +Ocelot +Octopus +Chimpanzee +Puffin +Tapir +Gannet +Wolverine +Meerkat +Hyena +Panda +Blue whale +Red panda +Snow leopard +Vulture +Rattlesnake +Gorilla +Platypus +Gazelle +Flamingo +Cheetah +Orangutan +Bald eagle +Dolphin +Koala +Zebra +Elephant +Lion +Tiger +Giraffe +Komodo dragon +Koala +Harpy eagle +Tasmanian devil +Manatee +Pigeon +Red squirrel +Polar bear +Tapir +Iguana +Ostrich +Chameleon +Aye-aye +Lemming +Bison +Hammerhead shark +Snowshoe hare +Fossa +Tasmanian tiger +Boa constrictor +Salamander +Gila monster +Kakapo +Pika +Bald eagle +Lemur +Sloth +Axolotl +Quokka +Wallaby +Caracal +Sea otter +Manatee +Gannet +Platypus +Porcupine +Raccoon \ No newline at end of file diff --git a/extras/chibi-wildcards/art-styles.txt b/extras/chibi-wildcards/art-styles.txt new file mode 100644 index 0000000..77ede11 --- /dev/null +++ b/extras/chibi-wildcards/art-styles.txt @@ -0,0 +1,249 @@ +Abstract Expressionism +Art Nouveau +Baroque +Cubism +Dada +Fauvism +Impressionism +Minimalism +Op Art +Pointillism +Pop Art +Realism +Surrealism +Constructivism +De Stijl +Gothic +Renaissance +Rococo +Abstract Art +Suprematism +Trompe-l'oeil +Photorealism +Sculpture +Tonalism +Neo-Classicism +Pre-Raphaelite Brotherhood +Color Field Painting +Neo-Impressionism +Post-Impressionism +Street Art +Op Art +Conceptual Art +Social Realism +Ashcan School +Art Deco +Land Art +Digital Art +Art Brut +Installation Art +Body Art +Hyperrealism +Futurism +Romanticism +Cubo-Futurism +Precisionism +Surrealist Automatism +Symbolism +Magic Realism +Hard-edge Painting +Regionalism +Kinetic Art +Tenebrism +Abstract Illusionism +Fluxus +Orphism +Neoclassical Sculpture +Earthworks +Arte Povera +Analytical Cubism +Street Photography +Tachisme +Luminism +Arte Concreto +Byzantine Art +Primitivism +Geometric Abstraction +Informalism +Rocaille +Social Sculpture +Transgressive Art +Conceptual Realism +Classicism +Post-Minimalism +Orientalism +Action Painting +Stuckism +Photomontage +Socialist Realism +Art Informel +Cubist Realism +Feminist Art +Hard-edge Abstraction +Poster Art +Rococo Revival +Superflat +Illusionistic Surrealism +Artistic Realism +Cloisonnism +Non-objective Art +Nihonga +Pintura Negra +Intimism +Visionary Art +Equipo Crónica +Counter-reformation Art +Deconstructivism +Hyper-Modernism +Rayonism +Les Nabis +New Objectivity +Anamorphic Art +Outsider Art +Spatialism +Neorealism +Preraphaelite Style +Remodernism +Orphism +Pittura Metafisica +Synthetic Cubism +Cubo-Futurism +Visionary Surrealism +Graffiti Art +Geometric Abstraction +Pop Surrealism +Non-representational Art +Kinetic Sculpture +Optical Art +Fluxus +Body Painting +Magic Realism +Precisionism +Visual Poetry +Art Brut +Installation Art +Photorealism +Outsider Art +Neo Rauchism +Precisionism +Symbolism +Environmental Art +Maximalism +Pintura Negra +Pattern and Decoration +Linearism +Primitive Art +Post-Impressionism +Superrealism +New Classicism +Digital Art +Stuckism +Arte Concreto +Earthworks +Arte Povera +Luminism +Street Photography +Neoclassical Sculpture +Orphism +Post-Minimalism +Transgressive Art +Socialist Realism +Action Painting +Photomontage +Byzantine Art +Socialist Realism +Stuckism +Photorealism +Action Painting +Socialist Realism +Non-objective Art +Visionary Art +Feminist Art +Tonalism +Counter-reformation Art +Equipo Crónica +Illusionistic Surrealism +Superflat +Artistic Realism +Poster Art +Rococo Revival +Poster Art +Non-objective Art +Visionary Art +Feminist Art +Tonalism +Counter-reformation Art +Deconstructivism +Hyper-Modernism +Rayonism +Les Nabis +New Objectivity +Anamorphic Art +Outsider Art +Spatialism +Neorealism +Preraphaelite Style +Remodernism +Orphism +Pittura Metafisica +Synthetic Cubism +Cubo-Futurism +Visionary Surrealism +Graffiti Art +Geometric Abstraction +Pop Surrealism +Non-representational Art +Kinetic Sculpture +Optical Art +Fluxus +Body Painting +Magic Realism +Precisionism +Visual Poetry +Art Brut +Installation Art +Photorealism +Outsider Art +Neo Rauchism +Precisionism +Symbolism +Environmental Art +Maximalism +Pintura Negra +Pattern and Decoration +Linearism +Primitive Art +Post-Impressionism +Superrealism +New Classicism +Digital Art +Stuckism +Arte Concreto +Earthworks +Arte Povera +Luminism +Street Photography +Neoclassical Sculpture +Orphism +Post-Minimalism +Transgressive Art +Socialist Realism +Action Painting +Photomontage +Byzantine Art +Socialist Realism +Stuckism +Photorealism +Action Painting +Socialist Realism +Non-objective Art +Visionary Art +Feminist Art +Tonalism +Counter-reformation Art +Equipo Crónica +Illusionistic Surrealism +Superflat +Artistic Realism +Poster Art +Rococo Revival \ No newline at end of file diff --git a/extras/chibi-wildcards/colours.txt b/extras/chibi-wildcards/colours.txt new file mode 100644 index 0000000..66a9563 --- /dev/null +++ b/extras/chibi-wildcards/colours.txt @@ -0,0 +1,52 @@ +Red +Blue +Green +Yellow +Purple +Orange +Pink +Turquoise +Brown +Black +White +Gray +Lavender +Magenta +Cyan +Gold +Silver +Indigo +Teal +Maroon +Olive +Beige +Navy +Violet +Aqua +Lime +Crimson +Burgundy +Peach +Mint +Slate +Ivory +Khaki +Ruby +Emerald +Sapphire +Amber +Bronze +Charcoal +Plum +Mauve +Fuchsia +Periwinkle +Coral +Azure +Lilac +Tangerine +Jade +Cobalt +Rose +Cerulean +Apricot \ No newline at end of file diff --git a/extras/chibi-wildcards/descriptors.txt b/extras/chibi-wildcards/descriptors.txt new file mode 100644 index 0000000..838f0de --- /dev/null +++ b/extras/chibi-wildcards/descriptors.txt @@ -0,0 +1,54 @@ +Serenic +Bustling +Idyllic +Picturesque +Vibrant +Tranquil +Majestic +Lively +Peaceful +Breathtaking +Enchanting +Barren +Quaint +Urban +Rustic +Surreal +Colorful +Dramatic +Cozy +Hectic +Harmonious +Exotic +Sparse +Gloomy +Radiant +Awe-inspiring +Charming +Picturesque +Misty +Arid +Nocturnal +Sunny +Enigmatic +Chaos +Mesmerizing +Pastoral +Eerie +Enthralling +Sprawling +Calm +Industrial +Dreamy +Tumultuous +Elegant +Otherworldly +Scenic +Sublime +Tragic +Whimsical +Untamed +Melancholic +Magical +Spectacular +Sultry \ No newline at end of file diff --git a/extras/chibi-wildcards/household-objects.txt b/extras/chibi-wildcards/household-objects.txt new file mode 100644 index 0000000..14db486 --- /dev/null +++ b/extras/chibi-wildcards/household-objects.txt @@ -0,0 +1,50 @@ +Refrigerator +Toaster +Blender +Microwave +Coffee maker +Dishwasher +Washing machine +Dryer +Television +Vacuum cleaner +Sofa +Dining table +Chair +Bed +Wardrobe +Mirror +Clock +Lamp +Picture frame +Curtains +Bookshelf +Trash can +Kitchen sink +Cutting board +Utensil set +Iron +Ironing board +Hairdryer +Towel rack +Showerhead +Toilet +Bathtub +Soap dispenser +Toothbrush holder +Toilet paper holder +Hand towel +Bath towel +Frying pan +Cooking pot +Dish rack +Silverware drawer +Broom +Dustpan +Oven +Food processor +Spice rack +Trash bags +Coat hanger +Fire extinguisher +Smoke detector \ No newline at end of file diff --git a/extras/chibi-wildcards/landscapes.txt b/extras/chibi-wildcards/landscapes.txt new file mode 100644 index 0000000..63dd949 --- /dev/null +++ b/extras/chibi-wildcards/landscapes.txt @@ -0,0 +1,51 @@ +Mountains +Valleys +Deserts +Beaches +Forests +Meadows +Hills +Canyons +Tundra +Glaciers +Swamps +Jungles +Savannas +Plateaus +Islands +Prairies +Waterfalls +Volcanoes +Caves +Coral reefs +Urban landscapes +Rivers +Lakes +Ponds +Fjords +Cliffs +Oases +Marshes +Wetlands +Archipelagos +Badlands +Dunes +Vineyards +Terraced fields +Countryside +Farmlands +Tropical rainforests +Taigas +Steppes +Highlands +Barren wastelands +Craters +Lava fields +Alpine meadows +Boreal forests +Rocky shores +Mangroves +Estuaries +Salt flats +Arid plateaus +Polar ice caps \ No newline at end of file diff --git a/extras/chibi-wildcards/poses.txt b/extras/chibi-wildcards/poses.txt new file mode 100644 index 0000000..538416d --- /dev/null +++ b/extras/chibi-wildcards/poses.txt @@ -0,0 +1,50 @@ +Standing +Sitting cross-legged +Arms outstretched to the sides +Leaning against a wall +Hands on hips +Kneeling with hands on the ground +One hand on chin in thought +Arms raised in victory +Reaching for the sky +Lying on your back with arms and legs extended +Sitting on a stool +Arms folded in front +One knee bent, resting on a rock +Hands clasped behind back +Hugging oneself +Posing in a yoga tree pose +Leaning forward with hands on knees +Lying on stomach with head propped on hand +Sitting with one leg tucked under +Crouching down +Hands in prayer position +Standing on one leg +Hands on a hip, one leg bent +Arms outstretched with palms up +One hand behind the head +Standing with one hand on the chin +Lying on the side with legs bent +Standing with one hand on a hip +Balancing on one foot +Arms stretched forward +Holding a bouquet of flowers +Kneeling with head resting on hands +Stretching arms behind +Sitting on a chair with one leg crossed over the other +Sitting on a step with legs extended +Lying on side with legs extended +One hand pointing forward +Standing with arms at sides +Leaning back with arms out +Sitting on the ground with legs wide apart +Posing as if dancing +Hands in a praying position +Sitting with legs crossed at ankles +One hand resting on a table +Holding a book +Sitting with one leg tucked under +Standing with arms crossed over chest +Arms extended to the side +Hands on hips, one leg bent +Lying on stomach with hands under chin \ No newline at end of file diff --git a/screenshot.png b/screenshot.png index 437b938..56261cd 100644 Binary files a/screenshot.png and b/screenshot.png differ diff --git a/screenshots/screenshotold1.png b/screenshots/screenshotold1.png new file mode 100644 index 0000000..4fdd122 Binary files /dev/null and b/screenshots/screenshotold1.png differ diff --git a/screenshots/screenshotold2.png b/screenshots/screenshotold2.png new file mode 100644 index 0000000..437b938 Binary files /dev/null and b/screenshots/screenshotold2.png differ diff --git a/screenshots/usage1.png b/screenshots/usage1.png new file mode 100644 index 0000000..4787c11 Binary files /dev/null and b/screenshots/usage1.png differ