diff --git a/README.md b/README.md index 53b793ae9ebafb01b7788b662c420575493920e3..9fd18cac32f91e89f70b52c8d929511219c77b65 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,12 @@ --- title: ModelProblems -emoji: 🧠 +emoji: ⚖️ colorFrom: pink -colorTo: indigo +colorTo: green sdk: gradio sdk_version: 4.28.3 app_file: app.py -pinned: false +pinned: true license: mit --- -Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference diff --git a/app.py b/app.py index 6e1ecf6b0523bd9cc2d1d3b279845a2805880b3e..3010ab7b7dd13a9bb9427ae586c1914805ddf284 100644 --- a/app.py +++ b/app.py @@ -13,25 +13,46 @@ from PIL import Image from huggingface_hub import from_pretrained_keras from math import sqrt, ceil import numpy as np +from transformers import pipeline import pandas as pd import gradio as gr +import base64 modelieo=[ 'nathanReitinger/MNIST-diffusion', 'nathanReitinger/MNIST-diffusion-oneImage', 'nathanReitinger/MNIST-GAN', - 'nathanReitinger/MNIST-GAN-noDropout' + 'nathanReitinger/MNIST-GAN-noDropout', + 'nathanReitinger/FASHION-diffusion-oneImage' ] -def get_sims(gen_filepath, gen_label, file_path, hunting_time_limit): - (train_images, train_labels), (_, _) = tf.keras.datasets.mnist.load_data() - train_images = train_images.reshape(train_images.shape[0], 28, 28, 1).astype('float32') - train_images = (train_images - 127.5) / 127.5 # Normalize the images to [-1, 1] +def get_sims(gen_filepath, gen_label, file_path, hunting_time_limit, data_type): + if data_type == 'mnist': + (train_images, train_labels), (_, _) = tf.keras.datasets.mnist.load_data() + train_images = train_images.reshape(train_images.shape[0], 28, 28, 1).astype('float32') + train_images = (train_images - 127.5) / 127.5 # Normalize the images to [-1, 1] + else: + (train_images, train_labels), (_, _) = tf.keras.datasets.fashion_mnist.load_data() + train_images = train_images.reshape(train_images.shape[0], 28, 28, 1).astype('float32') + train_images = (train_images - 127.5) / 127.5 # Normalize the images to [-1, 1] print("how long to hunt", hunting_time_limit) if hunting_time_limit == None: hunting_time_limit = 2 + train_label_mapping = { + 0: 'T - shirt / top', + 1: 'Trouser', + 2: 'Pullover', + 3: 'Dress', + 4: 'Coat', + 5: 'Sandal', + 6: 'Shirt', + 7: 'Sneaker', + 8: 'Bag', + 9: 'Ankle boot' + } + lowest_score = 10000 lowest_image = None lowest_image_path = '' @@ -39,8 +60,14 @@ def get_sims(gen_filepath, gen_label, file_path, hunting_time_limit): start = time.time() for i in range(len(train_labels)): - # print(i) - if train_labels[i] == gen_label: + if data_type == 'fashion': + label_option = train_label_mapping[train_labels[i]] + else: + label_option = train_labels[i] + # print(data_type, i, label_option, gen_label) + if label_option == gen_label: + + print('match on types!') ### # get a real image (of correct number) @@ -84,38 +111,54 @@ def get_sims(gen_filepath, gen_label, file_path, hunting_time_limit): return [lowest_image_path, lowest_score] -def digit_recognition(filename): - - API_URL = "https://api-inference.huggingface.co/models/farleyknight/mnist-digit-classification-2022-09-04" - special_string = '-h-f-_-RT-U-J-E-M-Pb-GC-c-i-v-sji-bMsQmxuh-x-h-C-W-B-F-W-z-Gv-' - is_escaped = special_string.replace("-", '') - bear = "Bearer " + is_escaped - headers = {"Authorization": bear} - # get a prediction on what number this is - def query(filename): - with open(filename, "rb") as f: - data = f.read() - response = requests.post(API_URL, headers=headers, data=data) - return response.json() - - # use latest model to generate a new image, return path - ret = False - output = None - while ret == False: - output = query(filename + 'generated_image.png') - if 'error' in output: - time.sleep(10) - ret = False - else: - ret = True - print(output) +def digit_recognition(filename, data_type): + + if data_type == 'mnist': + # API_URL = "https://api-inference.huggingface.co/models/farleyknight/mnist-digit-classification-2022-09-04" + # special_string = '-h-f-_-RT-U-J-E-M-Pb-GC-c-i-v-sji-bMsQmxuh-x-h-C-W-B-F-W-z-Gv-' + # is_escaped = special_string.replace("-", '') + # bear = "Bearer " + is_escaped + # headers = {"Authorization": bear} + # # get a prediction on what number this is + # def query(filename): + # with open(filename, "rb") as f: + # data = f.read() + # response = requests.post(API_URL, headers=headers, data=data) + # return response.json() + + # # use latest model to generate a new image, return path + # ret = False + # output = None + # while ret == False: + # output = query(filename + 'generated_image.png') + # if 'error' in output: + # time.sleep(10) + # ret = False + # else: + # ret = True + + # slower than inferenceAPI, but no tokens needed + pipe = pipeline("image-classification", model="farleyknight/mnist-digit-classification-2022-09-04") + output = pipe(filename + 'generated_image.png') + print(output) + this_label_for_this_image = int(output[0]['label']) + + else: + + + pipe = pipeline("image-classification", model="nathanReitinger/FASHION-vision") + output = pipe(filename + 'generated_image.png') + this_label_for_this_image = output[0]['label'] + print(output) + print(this_label_for_this_image) + + + print(output, this_label_for_this_image) - low_score_log = '' - this_label_for_this_image = int(output[0]['label']) return {'full': output, 'number': this_label_for_this_image} -def get_other(original_image, hunting_time_limit): +def get_other(original_image, hunting_time_limit, data_type): RANDO = str(time.time()) file_path = 'tester/' + 'generation' + "/" + RANDO + '/' os.makedirs(file_path) @@ -127,17 +170,21 @@ def get_other(original_image, hunting_time_limit): plt.close() print('[+] done saving generation') print("[-] what digit is this") - ret = digit_recognition(file_path) + print(data_type) + # sys.exit() + ret = digit_recognition(file_path, data_type) print(ret['full']) print(ret['number']) print("[+]", ret['number']) print("[-] show some most similar numbers") if ret["full"][0]['score'] <= 0.90: - print("[!] error in image digit recognition, likely to not find a similar score") - sys.exit() + print("[!] error in image recognition, likely to not find a similar score") + return (file_path + 'generated_image.png', ['error.png', -1]) + # sys.exit() gen_filepath = file_path + 'generated_image.png' gen_label = ret['number'] - ret_sims = get_sims(gen_filepath, gen_label, file_path, hunting_time_limit) + ret_sims = get_sims(gen_filepath, gen_label, file_path, hunting_time_limit, data_type) + print(ret_sims) print("[+] done sims") # get the file-Path return (file_path + 'generated_image.png', ret_sims) @@ -169,25 +216,29 @@ def generate_and_save_images(model): def TextToImage(Prompt,inference_steps, model): model_id = model if 'GAN' in model_id: - print("do something else") + print("--> GAN <--") model = from_pretrained_keras(model) image = generate_and_save_images(model) + else: + print("--> DIFFUSION <--") pipe = DiffusionPipeline.from_pretrained(model_id) the_randomness = int(str(time.time())[-1]) print('seed', the_randomness) image = pipe(generator= torch.manual_seed(the_randomness), num_inference_steps=inference_steps).images[0] -# pipe = StableDiffusionPipeline.from_pretrained(model_id, torch_dtype=torch.float16) -# pipe = pipe.to("cpu") - prompt = Prompt print(prompt) hunting_time_limit = None if prompt.isnumeric(): hunting_time_limit = abs(int(prompt)) + + if 'FASHION' in model_id: + data_type = 'fashion' + if 'MNIST' in model_id: + data_type = 'mnist' - original_image, other_images = get_other(image, hunting_time_limit) + original_image, other_images = get_other(image, hunting_time_limit, data_type=data_type) the_file = other_images[0] the_rmse = other_images[1] ai_gen = Image.open(open(original_image, 'rb')) @@ -198,10 +249,10 @@ def TextToImage(Prompt,inference_steps, model): return [ai_gen, another_one] df = pd.DataFrame({ - "Model" : ['MNIST-diffusion', 'MNIST-diffusion-oneImage', 'MNIST-GAN', 'MNIST-GAN-noDropout'], - "Class (Architecture)" : ['UNet2DModel', 'UNet2DModel', 'Sequential', 'Sequential'], - "Dataset Examples" : [60000, 1, 60000, 60000], - "Notes" : ['Similar architecture as Stable Diffusion, different training data', 'Toy model, purposed to store protected content', 'GANs are not as likely to store protected content', 'less dropout, more copying?'] + "Model" : ['MNIST-diffusion', 'MNIST-diffusion-oneImage', 'MNIST-GAN', 'MNIST-GAN-noDropout', 'FASHION-diffuion-oneImage'], + "Class (Architecture)" : ['UNet2DModel', 'UNet2DModel', 'Sequential', 'Sequential', 'UNet2DModel'], + "Dataset Examples" : [60000, 1, 60000, 60000, 1], + "Notes" : ['Similar architecture as Stable Diffusion, different training data', 'Toy model, purposed to store protected content', 'GANs are not as likely to store protected content', 'less dropout, more copying?', 'same diffusion, different data (more variance in data)'] }) # Applying style to highlight the maximum value in each row @@ -219,7 +270,7 @@ with gr.Blocks() as app: "
" "

Do machine learing models store protected content?

" + "

Enter a time to hunt for copies (seconds), select a model, and hit submit!

" + - "

These image generation models will give you a 'bespoke' generation ❤ of an MNIST hand-drawn digit

" + + "

These image generation models will give you a 'bespoke' generation ❤ of an MNIST hand-drawn digit or the fashion dataset

" + "

then the program will search in training data (for n seconds) to find similar images: RMSE, lower is more similar

" + "

@nathanReitinger

" ) diff --git a/error.png b/error.png new file mode 100644 index 0000000000000000000000000000000000000000..24a7d3a43281ac2001492326f2d8f65352578632 Binary files /dev/null and b/error.png differ diff --git a/tester/generation/1714572460.3130271/generated_image.png b/tester/generation/1714572460.3130271/generated_image.png new file mode 100644 index 0000000000000000000000000000000000000000..4b4c26fd7afcca632c7a7349a50ec517b55ffa07 Binary files /dev/null and b/tester/generation/1714572460.3130271/generated_image.png differ diff --git a/tester/generation/1714572509.416096/generated_image.png b/tester/generation/1714572509.416096/generated_image.png new file mode 100644 index 0000000000000000000000000000000000000000..8e303156a2fb9f88e8fb8fa8c88e4deedcc9705d Binary files /dev/null and b/tester/generation/1714572509.416096/generated_image.png differ diff --git a/tester/generation/1714572566.812253/generated_image.png b/tester/generation/1714572566.812253/generated_image.png new file mode 100644 index 0000000000000000000000000000000000000000..6b0bed664d3563cd444223cdfc123a2d8bfeb922 Binary files /dev/null and b/tester/generation/1714572566.812253/generated_image.png differ diff --git a/tester/generation/1714572647.7270982/generated_image.png b/tester/generation/1714572647.7270982/generated_image.png new file mode 100644 index 0000000000000000000000000000000000000000..4b4c26fd7afcca632c7a7349a50ec517b55ffa07 Binary files /dev/null and b/tester/generation/1714572647.7270982/generated_image.png differ diff --git a/tester/generation/1714572710.317538/generated_image.png b/tester/generation/1714572710.317538/generated_image.png new file mode 100644 index 0000000000000000000000000000000000000000..96f2deb765ffa7baa27d56baecdd2b457190cef7 Binary files /dev/null and b/tester/generation/1714572710.317538/generated_image.png differ diff --git a/tester/generation/1714572806.7208629/generated_image.png b/tester/generation/1714572806.7208629/generated_image.png new file mode 100644 index 0000000000000000000000000000000000000000..4b4c26fd7afcca632c7a7349a50ec517b55ffa07 Binary files /dev/null and b/tester/generation/1714572806.7208629/generated_image.png differ diff --git a/tester/generation/1714572814.196703/generated_image.png b/tester/generation/1714572814.196703/generated_image.png new file mode 100644 index 0000000000000000000000000000000000000000..a1979e73a7f427c27cc70ebd4b0efab5d0b8a3a7 Binary files /dev/null and b/tester/generation/1714572814.196703/generated_image.png differ diff --git a/tester/generation/1714573171.4095411/generated_image.png b/tester/generation/1714573171.4095411/generated_image.png new file mode 100644 index 0000000000000000000000000000000000000000..4b4c26fd7afcca632c7a7349a50ec517b55ffa07 Binary files /dev/null and b/tester/generation/1714573171.4095411/generated_image.png differ diff --git a/tester/generation/1714573180.905479/generated_image.png b/tester/generation/1714573180.905479/generated_image.png new file mode 100644 index 0000000000000000000000000000000000000000..e29229c34c488891bf956c7c955f60ede88b5ef4 Binary files /dev/null and b/tester/generation/1714573180.905479/generated_image.png differ diff --git a/tester/generation/1714573283.9210691/generated_image.png b/tester/generation/1714573283.9210691/generated_image.png new file mode 100644 index 0000000000000000000000000000000000000000..389af0aadd1f7dedf78e99d03caa1e52eb7f47b2 Binary files /dev/null and b/tester/generation/1714573283.9210691/generated_image.png differ diff --git a/tester/generation/1714573371.120304/generated_image.png b/tester/generation/1714573371.120304/generated_image.png new file mode 100644 index 0000000000000000000000000000000000000000..a340ab2ca3fb233974965b56929b0f67ea3287ad Binary files /dev/null and b/tester/generation/1714573371.120304/generated_image.png differ diff --git a/tester/generation/1714573470.715162/generated_image.png b/tester/generation/1714573470.715162/generated_image.png new file mode 100644 index 0000000000000000000000000000000000000000..cf1b581f1e095b63b763e8d1ebbdfea2459acc1d Binary files /dev/null and b/tester/generation/1714573470.715162/generated_image.png differ diff --git a/tester/generation/1714573663.655377/generated_image.png b/tester/generation/1714573663.655377/generated_image.png new file mode 100644 index 0000000000000000000000000000000000000000..de9ae9072cbd9cc54cd34fa926783aa2aa47a65e Binary files /dev/null and b/tester/generation/1714573663.655377/generated_image.png differ diff --git a/tester/generation/1714573777.020148/generated_image.png b/tester/generation/1714573777.020148/generated_image.png new file mode 100644 index 0000000000000000000000000000000000000000..4b4c26fd7afcca632c7a7349a50ec517b55ffa07 Binary files /dev/null and b/tester/generation/1714573777.020148/generated_image.png differ diff --git a/tester/generation/1714573785.923063/generated_image.png b/tester/generation/1714573785.923063/generated_image.png new file mode 100644 index 0000000000000000000000000000000000000000..a1d779c808b0d9f6d408f6b14cb75de023febe82 Binary files /dev/null and b/tester/generation/1714573785.923063/generated_image.png differ diff --git a/tester/generation/1714573935.654328/generated_image.png b/tester/generation/1714573935.654328/generated_image.png new file mode 100644 index 0000000000000000000000000000000000000000..389af0aadd1f7dedf78e99d03caa1e52eb7f47b2 Binary files /dev/null and b/tester/generation/1714573935.654328/generated_image.png differ diff --git a/tester/generation/1714573935.654328/keeper.png b/tester/generation/1714573935.654328/keeper.png new file mode 100644 index 0000000000000000000000000000000000000000..15ca90dbc4e942e602eab47d5757e960833c4a46 Binary files /dev/null and b/tester/generation/1714573935.654328/keeper.png differ diff --git a/tester/generation/1714573935.654328/real_deal.png b/tester/generation/1714573935.654328/real_deal.png new file mode 100644 index 0000000000000000000000000000000000000000..cf4d5f459beeebbf76548bb62218134e0cf881fe Binary files /dev/null and b/tester/generation/1714573935.654328/real_deal.png differ diff --git a/tester/generation/1714573949.9718158/generated_image.png b/tester/generation/1714573949.9718158/generated_image.png new file mode 100644 index 0000000000000000000000000000000000000000..96f2deb765ffa7baa27d56baecdd2b457190cef7 Binary files /dev/null and b/tester/generation/1714573949.9718158/generated_image.png differ diff --git a/tester/generation/1714573949.9718158/keeper.png b/tester/generation/1714573949.9718158/keeper.png new file mode 100644 index 0000000000000000000000000000000000000000..15ca90dbc4e942e602eab47d5757e960833c4a46 Binary files /dev/null and b/tester/generation/1714573949.9718158/keeper.png differ diff --git a/tester/generation/1714573949.9718158/real_deal.png b/tester/generation/1714573949.9718158/real_deal.png new file mode 100644 index 0000000000000000000000000000000000000000..d63f69a53e34cdc656ad7d394c5bcbdb4b5b8bf6 Binary files /dev/null and b/tester/generation/1714573949.9718158/real_deal.png differ diff --git a/tester/generation/1714573959.174764/generated_image.png b/tester/generation/1714573959.174764/generated_image.png new file mode 100644 index 0000000000000000000000000000000000000000..01abeaf3d34c73187b0a5578ef7416a9cb5c3a8a Binary files /dev/null and b/tester/generation/1714573959.174764/generated_image.png differ diff --git a/tester/generation/1714573959.174764/keeper.png b/tester/generation/1714573959.174764/keeper.png new file mode 100644 index 0000000000000000000000000000000000000000..71eec5f6887f7ac9435fa7292d70aea4b7cc5f69 Binary files /dev/null and b/tester/generation/1714573959.174764/keeper.png differ diff --git a/tester/generation/1714573959.174764/real_deal.png b/tester/generation/1714573959.174764/real_deal.png new file mode 100644 index 0000000000000000000000000000000000000000..eb7a85cffa3bbc5973badab48f4c713e6c668d3d Binary files /dev/null and b/tester/generation/1714573959.174764/real_deal.png differ diff --git a/tester/generation/1714573968.372562/generated_image.png b/tester/generation/1714573968.372562/generated_image.png new file mode 100644 index 0000000000000000000000000000000000000000..01abeaf3d34c73187b0a5578ef7416a9cb5c3a8a Binary files /dev/null and b/tester/generation/1714573968.372562/generated_image.png differ diff --git a/tester/generation/1714573968.372562/keeper.png b/tester/generation/1714573968.372562/keeper.png new file mode 100644 index 0000000000000000000000000000000000000000..71eec5f6887f7ac9435fa7292d70aea4b7cc5f69 Binary files /dev/null and b/tester/generation/1714573968.372562/keeper.png differ diff --git a/tester/generation/1714573968.372562/real_deal.png b/tester/generation/1714573968.372562/real_deal.png new file mode 100644 index 0000000000000000000000000000000000000000..39e511fa444978a32d6fbd978d4b91c71478e89e Binary files /dev/null and b/tester/generation/1714573968.372562/real_deal.png differ diff --git a/tester/generation/1714573976.232955/generated_image.png b/tester/generation/1714573976.232955/generated_image.png new file mode 100644 index 0000000000000000000000000000000000000000..c5c24e72b45656eaf89934cdd7e1412026796211 Binary files /dev/null and b/tester/generation/1714573976.232955/generated_image.png differ diff --git a/tester/generation/1714573976.232955/keeper.png b/tester/generation/1714573976.232955/keeper.png new file mode 100644 index 0000000000000000000000000000000000000000..cbbb6df058ed36ede7ce0f2c0237f0ed75796268 Binary files /dev/null and b/tester/generation/1714573976.232955/keeper.png differ diff --git a/tester/generation/1714573976.232955/real_deal.png b/tester/generation/1714573976.232955/real_deal.png new file mode 100644 index 0000000000000000000000000000000000000000..9e0100ca491d4e7ba79a6d0915f6cb853365425b Binary files /dev/null and b/tester/generation/1714573976.232955/real_deal.png differ diff --git a/tester/generation/1714573985.865299/generated_image.png b/tester/generation/1714573985.865299/generated_image.png new file mode 100644 index 0000000000000000000000000000000000000000..527358238b502ac2553e23273327075e9dba5e8f Binary files /dev/null and b/tester/generation/1714573985.865299/generated_image.png differ diff --git a/tester/generation/1714573985.865299/keeper.png b/tester/generation/1714573985.865299/keeper.png new file mode 100644 index 0000000000000000000000000000000000000000..d7ebf2868640766d2d8d81ebe1d62d8541f432d8 Binary files /dev/null and b/tester/generation/1714573985.865299/keeper.png differ diff --git a/tester/generation/1714573985.865299/real_deal.png b/tester/generation/1714573985.865299/real_deal.png new file mode 100644 index 0000000000000000000000000000000000000000..bef0325b0ec3e2d4fb47a90b7ab5e1e8458cb0d7 Binary files /dev/null and b/tester/generation/1714573985.865299/real_deal.png differ diff --git a/tester/generation/1714573993.039063/generated_image.png b/tester/generation/1714573993.039063/generated_image.png new file mode 100644 index 0000000000000000000000000000000000000000..2e9b4f01ecfc1710c53191380d8009964ee873bd Binary files /dev/null and b/tester/generation/1714573993.039063/generated_image.png differ diff --git a/tester/generation/1714573993.039063/keeper.png b/tester/generation/1714573993.039063/keeper.png new file mode 100644 index 0000000000000000000000000000000000000000..c779626e87ae7f211b61ff50aefd4a1942e9681a Binary files /dev/null and b/tester/generation/1714573993.039063/keeper.png differ diff --git a/tester/generation/1714573993.039063/real_deal.png b/tester/generation/1714573993.039063/real_deal.png new file mode 100644 index 0000000000000000000000000000000000000000..05e711df966498200172dd9224471dcc40fef88a Binary files /dev/null and b/tester/generation/1714573993.039063/real_deal.png differ diff --git a/tester/generation/1714573998.791243/generated_image.png b/tester/generation/1714573998.791243/generated_image.png new file mode 100644 index 0000000000000000000000000000000000000000..eb6b5f2bf55f61653110ed16de57dafdcbe60a0c Binary files /dev/null and b/tester/generation/1714573998.791243/generated_image.png differ diff --git a/tester/generation/1714573998.791243/keeper.png b/tester/generation/1714573998.791243/keeper.png new file mode 100644 index 0000000000000000000000000000000000000000..d7ebf2868640766d2d8d81ebe1d62d8541f432d8 Binary files /dev/null and b/tester/generation/1714573998.791243/keeper.png differ diff --git a/tester/generation/1714573998.791243/real_deal.png b/tester/generation/1714573998.791243/real_deal.png new file mode 100644 index 0000000000000000000000000000000000000000..a37b83cddff3568648913ac274762fc07e61eab6 Binary files /dev/null and b/tester/generation/1714573998.791243/real_deal.png differ diff --git a/tester/generation/1714574004.814992/generated_image.png b/tester/generation/1714574004.814992/generated_image.png new file mode 100644 index 0000000000000000000000000000000000000000..eb6b5f2bf55f61653110ed16de57dafdcbe60a0c Binary files /dev/null and b/tester/generation/1714574004.814992/generated_image.png differ diff --git a/tester/generation/1714574004.814992/keeper.png b/tester/generation/1714574004.814992/keeper.png new file mode 100644 index 0000000000000000000000000000000000000000..d7ebf2868640766d2d8d81ebe1d62d8541f432d8 Binary files /dev/null and b/tester/generation/1714574004.814992/keeper.png differ diff --git a/tester/generation/1714574004.814992/real_deal.png b/tester/generation/1714574004.814992/real_deal.png new file mode 100644 index 0000000000000000000000000000000000000000..08dee2f174b231dce7078c95fd4b5ce831e6e550 Binary files /dev/null and b/tester/generation/1714574004.814992/real_deal.png differ diff --git a/tester/generation/1714574008.685722/generated_image.png b/tester/generation/1714574008.685722/generated_image.png new file mode 100644 index 0000000000000000000000000000000000000000..6b80be6858f003064df1295d8381bf1768eb6fab Binary files /dev/null and b/tester/generation/1714574008.685722/generated_image.png differ diff --git a/tester/generation/1714574008.685722/keeper.png b/tester/generation/1714574008.685722/keeper.png new file mode 100644 index 0000000000000000000000000000000000000000..c779626e87ae7f211b61ff50aefd4a1942e9681a Binary files /dev/null and b/tester/generation/1714574008.685722/keeper.png differ diff --git a/tester/generation/1714574008.685722/real_deal.png b/tester/generation/1714574008.685722/real_deal.png new file mode 100644 index 0000000000000000000000000000000000000000..bf2d492732093a7589b931d8546fa308d0021b89 Binary files /dev/null and b/tester/generation/1714574008.685722/real_deal.png differ diff --git a/tester/generation/1714574012.8655639/generated_image.png b/tester/generation/1714574012.8655639/generated_image.png new file mode 100644 index 0000000000000000000000000000000000000000..6b80be6858f003064df1295d8381bf1768eb6fab Binary files /dev/null and b/tester/generation/1714574012.8655639/generated_image.png differ diff --git a/tester/generation/1714574012.8655639/keeper.png b/tester/generation/1714574012.8655639/keeper.png new file mode 100644 index 0000000000000000000000000000000000000000..c779626e87ae7f211b61ff50aefd4a1942e9681a Binary files /dev/null and b/tester/generation/1714574012.8655639/keeper.png differ diff --git a/tester/generation/1714574012.8655639/real_deal.png b/tester/generation/1714574012.8655639/real_deal.png new file mode 100644 index 0000000000000000000000000000000000000000..0b2e6cecb9300099c2bbf8f2f223c206ade5acf7 Binary files /dev/null and b/tester/generation/1714574012.8655639/real_deal.png differ diff --git a/tester/generation/1714574017.1499689/generated_image.png b/tester/generation/1714574017.1499689/generated_image.png new file mode 100644 index 0000000000000000000000000000000000000000..2f54eb9be42c95a7e87678eb6f6bd04b2a2a4599 Binary files /dev/null and b/tester/generation/1714574017.1499689/generated_image.png differ diff --git a/tester/generation/1714574490.48778/generated_image.png b/tester/generation/1714574490.48778/generated_image.png new file mode 100644 index 0000000000000000000000000000000000000000..389af0aadd1f7dedf78e99d03caa1e52eb7f47b2 Binary files /dev/null and b/tester/generation/1714574490.48778/generated_image.png differ diff --git a/tester/generation/1714574490.48778/keeper.png b/tester/generation/1714574490.48778/keeper.png new file mode 100644 index 0000000000000000000000000000000000000000..15ca90dbc4e942e602eab47d5757e960833c4a46 Binary files /dev/null and b/tester/generation/1714574490.48778/keeper.png differ diff --git a/tester/generation/1714574490.48778/real_deal.png b/tester/generation/1714574490.48778/real_deal.png new file mode 100644 index 0000000000000000000000000000000000000000..98d3e816cdf3f033df8030313f27d917b210bb1e Binary files /dev/null and b/tester/generation/1714574490.48778/real_deal.png differ