diff --git a/README.md b/README.md
index 9cecfa3893e3f68962aaf60bf77c4bcf5ed368c7..0c7a17ffcb5c91376e04dafb73e6bf9096346e41 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,12 @@
-# Animal generator 
+# Animal generator
 
-Ce repo ne sert qu'à implémenter un site pour le générateur d'animaux mignons. Pour l'instant, le modèle a été généré sur colab. Il pourra être amélioré plus tard avec Pro GAN ou Style GAN. 
+Ce repo ne sert qu'à implémenter un site pour le générateur d'animaux mignons. Pour l'instant, le modèle a été généré sur colab. Il pourra être amélioré plus tard avec Pro GAN ou Style GAN.
 
-Le projet consiste à générer des photos d'animaux mignons, pour l'instant des chats, avec un GAN. On utilise pour cela des resnet géants. Ping @Arkheva / Clement pour plus d'info, j'ai la flemme de tout décrire là. 
+Le projet consiste à générer des photos d'animaux mignons, pour l'instant des chats, avec un GAN. On utilise pour cela des resnet géants. Ping @Arkheva / Clement pour plus d'info, j'ai la flemme de tout décrire là.
 
+Si vous êtes là pour utiliser tf sur un site, lisez le README_PLS_IF_YOU_DONT_WANNA_WASTE_TIME.txt, ça résume assez bien les galères que j'ai eues au début.
+
+Pour l'instant, le site est minimaliste, mais fonctionne au moins. La génération de chat se fait quasiment instantanément pour une image de chat.
+
+A ceux qui voudraient reprendre le projet, il doit être assez simple de faire mieux sur le réseau parce que j'ai choisi une loss un peu bizarre, c'était mon premier projet, pardonnez-moi ;)
+Je serais ravi de passationner ce projet si des gens veulent.
\ No newline at end of file
diff --git a/README_PLS_IF_YOU_DONT_WANNA_WASTE_TIME.txt b/README_PLS_IF_YOU_DONT_WANNA_WASTE_TIME.txt
new file mode 100644
index 0000000000000000000000000000000000000000..ba9dff99b711768b51434295f9e9edd9374dd1eb
--- /dev/null
+++ b/README_PLS_IF_YOU_DONT_WANNA_WASTE_TIME.txt
@@ -0,0 +1,17 @@
+pour réussir à servir un site :
+
+ATTENTION A COMMENT GENERER LE MODEL JS : 
+
+télécharger TOUT le modèle et pas juste les poids sous fichier h5 (sous python) : 
+model.save("./generator.h5")
+
+ensuite convertir à tf js avec : 
+pip install tensorflowjs (si pas importé)
+
+tensorflowjs_converter --input_format=keras "path vers le fichier h5"  ./model
+
+ENSUITE IMPORTER LE MODEL COMME DANS LE CODE INDEX.HTML
+
+APRES S'IL Y A UNE ERREUR DU GENRE ERREUR DE CONVERTION PCQ PYTHON MACHIN
+ALLER DANS MODEL.JSON
+CHERCHER "Functionnal" ET REMPLACER PAR "Model"
\ No newline at end of file
diff --git a/cat_10000.png b/cat_10000.png
new file mode 100644
index 0000000000000000000000000000000000000000..755cd651f26953fa2c48eae7d60c656f26f538c4
Binary files /dev/null and b/cat_10000.png differ
diff --git a/generator/group1-shard1of4.bin b/generator/group1-shard1of4.bin
new file mode 100644
index 0000000000000000000000000000000000000000..e07dd8169ee7bcf796d5ad02862ffd3419fd3783
Binary files /dev/null and b/generator/group1-shard1of4.bin differ
diff --git a/generator/group1-shard2of4.bin b/generator/group1-shard2of4.bin
new file mode 100644
index 0000000000000000000000000000000000000000..7b19daf7ba16e852b1d31542477c1407596caa40
Binary files /dev/null and b/generator/group1-shard2of4.bin differ
diff --git a/generator/group1-shard3of4.bin b/generator/group1-shard3of4.bin
new file mode 100644
index 0000000000000000000000000000000000000000..9b998881177fb5470d9667a245b2000f2bcdb953
Binary files /dev/null and b/generator/group1-shard3of4.bin differ
diff --git a/generator/group1-shard4of4.bin b/generator/group1-shard4of4.bin
new file mode 100644
index 0000000000000000000000000000000000000000..81a58420989e3be25b8f31fb7f559b30624a1505
Binary files /dev/null and b/generator/group1-shard4of4.bin differ
diff --git a/generator/model.json b/generator/model.json
new file mode 100644
index 0000000000000000000000000000000000000000..9df89ccb7c003eb8fd71b880b1ac948be20b64b8
--- /dev/null
+++ b/generator/model.json
@@ -0,0 +1 @@
+{"format": "layers-model", "generatedBy": "keras v2.4.0", "convertedBy": "TensorFlow.js Converter v3.4.0", "modelTopology": {"keras_version": "2.4.0", "backend": "tensorflow", "model_config": {"class_name": "Model", "config": {"name": "model_1", "layers": [{"class_name": "InputLayer", "config": {"batch_input_shape": [null, 162], "dtype": "float32", "sparse": false, "ragged": false, "name": "input_2"}, "name": "input_2", "inbound_nodes": []}, {"class_name": "Dense", "config": {"name": "dense_1", "trainable": true, "dtype": "float32", "units": 16384, "activation": "linear", "use_bias": true, "kernel_initializer": {"class_name": "GlorotUniform", "config": {"seed": null}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}, "name": "dense_1", "inbound_nodes": [[["input_2", 0, 0, {}]]]}, {"class_name": "BatchNormalization", "config": {"name": "batch_normalization_10", "trainable": true, "dtype": "float32", "axis": [1], "momentum": 0.99, "epsilon": 0.001, "center": true, "scale": true, "beta_initializer": {"class_name": "Zeros", "config": {}}, "gamma_initializer": {"class_name": "Ones", "config": {}}, "moving_mean_initializer": {"class_name": "Zeros", "config": {}}, "moving_variance_initializer": {"class_name": "Ones", "config": {}}, "beta_regularizer": null, "gamma_regularizer": null, "beta_constraint": null, "gamma_constraint": null}, "name": "batch_normalization_10", "inbound_nodes": [[["dense_1", 0, 0, {}]]]}, {"class_name": "ReLU", "config": {"name": "re_lu_7", "trainable": true, "dtype": "float32", "max_value": null, "negative_slope": 0.0, "threshold": 0.0}, "name": "re_lu_7", "inbound_nodes": [[["batch_normalization_10", 0, 0, {}]]]}, {"class_name": "Reshape", "config": {"name": "reshape_1", "trainable": true, "dtype": "float32", "target_shape": [16, 16, 64]}, "name": "reshape_1", "inbound_nodes": [[["re_lu_7", 0, 0, {}]]]}, {"class_name": "Conv2DTranspose", "config": {"name": "conv2d_transpose_9", "trainable": true, "dtype": "float32", "filters": 64, "kernel_size": [3, 3], "strides": [1, 1], "padding": "same", "data_format": "channels_last", "dilation_rate": [1, 1], "groups": 1, "activation": "linear", "use_bias": true, "kernel_initializer": {"class_name": "GlorotUniform", "config": {"seed": null}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null, "output_padding": null}, "name": "conv2d_transpose_9", "inbound_nodes": [[["reshape_1", 0, 0, {}]]]}, {"class_name": "BatchNormalization", "config": {"name": "batch_normalization_11", "trainable": true, "dtype": "float32", "axis": [3], "momentum": 0.99, "epsilon": 0.001, "center": true, "scale": true, "beta_initializer": {"class_name": "Zeros", "config": {}}, "gamma_initializer": {"class_name": "Ones", "config": {}}, "moving_mean_initializer": {"class_name": "Zeros", "config": {}}, "moving_variance_initializer": {"class_name": "Ones", "config": {}}, "beta_regularizer": null, "gamma_regularizer": null, "beta_constraint": null, "gamma_constraint": null}, "name": "batch_normalization_11", "inbound_nodes": [[["conv2d_transpose_9", 0, 0, {}]]]}, {"class_name": "ReLU", "config": {"name": "re_lu_8", "trainable": true, "dtype": "float32", "max_value": null, "negative_slope": 0.0, "threshold": 0.0}, "name": "re_lu_8", "inbound_nodes": [[["batch_normalization_11", 0, 0, {}]]]}, {"class_name": "Conv2DTranspose", "config": {"name": "conv2d_transpose_10", "trainable": true, "dtype": "float32", "filters": 64, "kernel_size": [3, 3], "strides": [1, 1], "padding": "same", "data_format": "channels_last", "dilation_rate": [1, 1], "groups": 1, "activation": "linear", "use_bias": true, "kernel_initializer": {"class_name": "GlorotUniform", "config": {"seed": null}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null, "output_padding": null}, "name": "conv2d_transpose_10", "inbound_nodes": [[["re_lu_8", 0, 0, {}]]]}, {"class_name": "BatchNormalization", "config": {"name": "batch_normalization_12", "trainable": true, "dtype": "float32", "axis": [3], "momentum": 0.99, "epsilon": 0.001, "center": true, "scale": true, "beta_initializer": {"class_name": "Zeros", "config": {}}, "gamma_initializer": {"class_name": "Ones", "config": {}}, "moving_mean_initializer": {"class_name": "Zeros", "config": {}}, "moving_variance_initializer": {"class_name": "Ones", "config": {}}, "beta_regularizer": null, "gamma_regularizer": null, "beta_constraint": null, "gamma_constraint": null}, "name": "batch_normalization_12", "inbound_nodes": [[["conv2d_transpose_10", 0, 0, {}]]]}, {"class_name": "Add", "config": {"name": "add_4", "trainable": true, "dtype": "float32"}, "name": "add_4", "inbound_nodes": [[["reshape_1", 0, 0, {}], ["batch_normalization_12", 0, 0, {}]]]}, {"class_name": "Conv2DTranspose", "config": {"name": "conv2d_transpose_11", "trainable": true, "dtype": "float32", "filters": 64, "kernel_size": [3, 3], "strides": [1, 1], "padding": "same", "data_format": "channels_last", "dilation_rate": [1, 1], "groups": 1, "activation": "linear", "use_bias": true, "kernel_initializer": {"class_name": "GlorotUniform", "config": {"seed": null}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null, "output_padding": null}, "name": "conv2d_transpose_11", "inbound_nodes": [[["add_4", 0, 0, {}]]]}, {"class_name": "BatchNormalization", "config": {"name": "batch_normalization_13", "trainable": true, "dtype": "float32", "axis": [3], "momentum": 0.99, "epsilon": 0.001, "center": true, "scale": true, "beta_initializer": {"class_name": "Zeros", "config": {}}, "gamma_initializer": {"class_name": "Ones", "config": {}}, "moving_mean_initializer": {"class_name": "Zeros", "config": {}}, "moving_variance_initializer": {"class_name": "Ones", "config": {}}, "beta_regularizer": null, "gamma_regularizer": null, "beta_constraint": null, "gamma_constraint": null}, "name": "batch_normalization_13", "inbound_nodes": [[["conv2d_transpose_11", 0, 0, {}]]]}, {"class_name": "ReLU", "config": {"name": "re_lu_9", "trainable": true, "dtype": "float32", "max_value": null, "negative_slope": 0.0, "threshold": 0.0}, "name": "re_lu_9", "inbound_nodes": [[["batch_normalization_13", 0, 0, {}]]]}, {"class_name": "Conv2DTranspose", "config": {"name": "conv2d_transpose_12", "trainable": true, "dtype": "float32", "filters": 64, "kernel_size": [3, 3], "strides": [1, 1], "padding": "same", "data_format": "channels_last", "dilation_rate": [1, 1], "groups": 1, "activation": "linear", "use_bias": true, "kernel_initializer": {"class_name": "GlorotUniform", "config": {"seed": null}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null, "output_padding": null}, "name": "conv2d_transpose_12", "inbound_nodes": [[["re_lu_9", 0, 0, {}]]]}, {"class_name": "BatchNormalization", "config": {"name": "batch_normalization_14", "trainable": true, "dtype": "float32", "axis": [3], "momentum": 0.99, "epsilon": 0.001, "center": true, "scale": true, "beta_initializer": {"class_name": "Zeros", "config": {}}, "gamma_initializer": {"class_name": "Ones", "config": {}}, "moving_mean_initializer": {"class_name": "Zeros", "config": {}}, "moving_variance_initializer": {"class_name": "Ones", "config": {}}, "beta_regularizer": null, "gamma_regularizer": null, "beta_constraint": null, "gamma_constraint": null}, "name": "batch_normalization_14", "inbound_nodes": [[["conv2d_transpose_12", 0, 0, {}]]]}, {"class_name": "Add", "config": {"name": "add_5", "trainable": true, "dtype": "float32"}, "name": "add_5", "inbound_nodes": [[["add_4", 0, 0, {}], ["batch_normalization_14", 0, 0, {}]]]}, {"class_name": "Conv2DTranspose", "config": {"name": "conv2d_transpose_13", "trainable": true, "dtype": "float32", "filters": 64, "kernel_size": [3, 3], "strides": [1, 1], "padding": "same", "data_format": "channels_last", "dilation_rate": [1, 1], "groups": 1, "activation": "linear", "use_bias": true, "kernel_initializer": {"class_name": "GlorotUniform", "config": {"seed": null}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null, "output_padding": null}, "name": "conv2d_transpose_13", "inbound_nodes": [[["add_5", 0, 0, {}]]]}, {"class_name": "BatchNormalization", "config": {"name": "batch_normalization_15", "trainable": true, "dtype": "float32", "axis": [3], "momentum": 0.99, "epsilon": 0.001, "center": true, "scale": true, "beta_initializer": {"class_name": "Zeros", "config": {}}, "gamma_initializer": {"class_name": "Ones", "config": {}}, "moving_mean_initializer": {"class_name": "Zeros", "config": {}}, "moving_variance_initializer": {"class_name": "Ones", "config": {}}, "beta_regularizer": null, "gamma_regularizer": null, "beta_constraint": null, "gamma_constraint": null}, "name": "batch_normalization_15", "inbound_nodes": [[["conv2d_transpose_13", 0, 0, {}]]]}, {"class_name": "ReLU", "config": {"name": "re_lu_10", "trainable": true, "dtype": "float32", "max_value": null, "negative_slope": 0.0, "threshold": 0.0}, "name": "re_lu_10", "inbound_nodes": [[["batch_normalization_15", 0, 0, {}]]]}, {"class_name": "Conv2DTranspose", "config": {"name": "conv2d_transpose_14", "trainable": true, "dtype": "float32", "filters": 64, "kernel_size": [3, 3], "strides": [1, 1], "padding": "same", "data_format": "channels_last", "dilation_rate": [1, 1], "groups": 1, "activation": "linear", "use_bias": true, "kernel_initializer": {"class_name": "GlorotUniform", "config": {"seed": null}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null, "output_padding": null}, "name": "conv2d_transpose_14", "inbound_nodes": [[["re_lu_10", 0, 0, {}]]]}, {"class_name": "BatchNormalization", "config": {"name": "batch_normalization_16", "trainable": true, "dtype": "float32", "axis": [3], "momentum": 0.99, "epsilon": 0.001, "center": true, "scale": true, "beta_initializer": {"class_name": "Zeros", "config": {}}, "gamma_initializer": {"class_name": "Ones", "config": {}}, "moving_mean_initializer": {"class_name": "Zeros", "config": {}}, "moving_variance_initializer": {"class_name": "Ones", "config": {}}, "beta_regularizer": null, "gamma_regularizer": null, "beta_constraint": null, "gamma_constraint": null}, "name": "batch_normalization_16", "inbound_nodes": [[["conv2d_transpose_14", 0, 0, {}]]]}, {"class_name": "Add", "config": {"name": "add_6", "trainable": true, "dtype": "float32"}, "name": "add_6", "inbound_nodes": [[["add_5", 0, 0, {}], ["batch_normalization_16", 0, 0, {}]]]}, {"class_name": "BatchNormalization", "config": {"name": "batch_normalization_17", "trainable": true, "dtype": "float32", "axis": [3], "momentum": 0.99, "epsilon": 0.001, "center": true, "scale": true, "beta_initializer": {"class_name": "Zeros", "config": {}}, "gamma_initializer": {"class_name": "Ones", "config": {}}, "moving_mean_initializer": {"class_name": "Zeros", "config": {}}, "moving_variance_initializer": {"class_name": "Ones", "config": {}}, "beta_regularizer": null, "gamma_regularizer": null, "beta_constraint": null, "gamma_constraint": null}, "name": "batch_normalization_17", "inbound_nodes": [[["add_6", 0, 0, {}]]]}, {"class_name": "ReLU", "config": {"name": "re_lu_11", "trainable": true, "dtype": "float32", "max_value": null, "negative_slope": 0.0, "threshold": 0.0}, "name": "re_lu_11", "inbound_nodes": [[["batch_normalization_17", 0, 0, {}]]]}, {"class_name": "Add", "config": {"name": "add_7", "trainable": true, "dtype": "float32"}, "name": "add_7", "inbound_nodes": [[["reshape_1", 0, 0, {}], ["re_lu_11", 0, 0, {}]]]}, {"class_name": "Conv2DTranspose", "config": {"name": "conv2d_transpose_15", "trainable": true, "dtype": "float32", "filters": 256, "kernel_size": [3, 3], "strides": [1, 1], "padding": "same", "data_format": "channels_last", "dilation_rate": [1, 1], "groups": 1, "activation": "linear", "use_bias": true, "kernel_initializer": {"class_name": "GlorotUniform", "config": {"seed": null}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null, "output_padding": null}, "name": "conv2d_transpose_15", "inbound_nodes": [[["add_7", 0, 0, {}]]]}, {"class_name": "UpSampling2D", "config": {"name": "up_sampling2d_2", "trainable": true, "dtype": "float32", "size": [2, 2], "data_format": "channels_last", "interpolation": "nearest"}, "name": "up_sampling2d_2", "inbound_nodes": [[["conv2d_transpose_15", 0, 0, {}]]]}, {"class_name": "BatchNormalization", "config": {"name": "batch_normalization_18", "trainable": true, "dtype": "float32", "axis": [3], "momentum": 0.99, "epsilon": 0.001, "center": true, "scale": true, "beta_initializer": {"class_name": "Zeros", "config": {}}, "gamma_initializer": {"class_name": "Ones", "config": {}}, "moving_mean_initializer": {"class_name": "Zeros", "config": {}}, "moving_variance_initializer": {"class_name": "Ones", "config": {}}, "beta_regularizer": null, "gamma_regularizer": null, "beta_constraint": null, "gamma_constraint": null}, "name": "batch_normalization_18", "inbound_nodes": [[["up_sampling2d_2", 0, 0, {}]]]}, {"class_name": "ReLU", "config": {"name": "re_lu_12", "trainable": true, "dtype": "float32", "max_value": null, "negative_slope": 0.0, "threshold": 0.0}, "name": "re_lu_12", "inbound_nodes": [[["batch_normalization_18", 0, 0, {}]]]}, {"class_name": "Conv2DTranspose", "config": {"name": "conv2d_transpose_16", "trainable": true, "dtype": "float32", "filters": 256, "kernel_size": [3, 3], "strides": [1, 1], "padding": "same", "data_format": "channels_last", "dilation_rate": [1, 1], "groups": 1, "activation": "linear", "use_bias": true, "kernel_initializer": {"class_name": "GlorotUniform", "config": {"seed": null}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null, "output_padding": null}, "name": "conv2d_transpose_16", "inbound_nodes": [[["re_lu_12", 0, 0, {}]]]}, {"class_name": "UpSampling2D", "config": {"name": "up_sampling2d_3", "trainable": true, "dtype": "float32", "size": [2, 2], "data_format": "channels_last", "interpolation": "nearest"}, "name": "up_sampling2d_3", "inbound_nodes": [[["conv2d_transpose_16", 0, 0, {}]]]}, {"class_name": "BatchNormalization", "config": {"name": "batch_normalization_19", "trainable": true, "dtype": "float32", "axis": [3], "momentum": 0.99, "epsilon": 0.001, "center": true, "scale": true, "beta_initializer": {"class_name": "Zeros", "config": {}}, "gamma_initializer": {"class_name": "Ones", "config": {}}, "moving_mean_initializer": {"class_name": "Zeros", "config": {}}, "moving_variance_initializer": {"class_name": "Ones", "config": {}}, "beta_regularizer": null, "gamma_regularizer": null, "beta_constraint": null, "gamma_constraint": null}, "name": "batch_normalization_19", "inbound_nodes": [[["up_sampling2d_3", 0, 0, {}]]]}, {"class_name": "ReLU", "config": {"name": "re_lu_13", "trainable": true, "dtype": "float32", "max_value": null, "negative_slope": 0.0, "threshold": 0.0}, "name": "re_lu_13", "inbound_nodes": [[["batch_normalization_19", 0, 0, {}]]]}, {"class_name": "Conv2DTranspose", "config": {"name": "conv2d_transpose_17", "trainable": true, "dtype": "float32", "filters": 3, "kernel_size": [9, 9], "strides": [1, 1], "padding": "same", "data_format": "channels_last", "dilation_rate": [1, 1], "groups": 1, "activation": "linear", "use_bias": true, "kernel_initializer": {"class_name": "GlorotUniform", "config": {"seed": null}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null, "output_padding": null}, "name": "conv2d_transpose_17", "inbound_nodes": [[["re_lu_13", 0, 0, {}]]]}, {"class_name": "Activation", "config": {"name": "activation_1", "trainable": true, "dtype": "float32", "activation": "tanh"}, "name": "activation_1", "inbound_nodes": [[["conv2d_transpose_17", 0, 0, {}]]]}], "input_layers": [["input_2", 0, 0]], "output_layers": [["activation_1", 0, 0]]}}}, "weightsManifest": [{"paths": ["group1-shard1of4.bin", "group1-shard2of4.bin", "group1-shard3of4.bin", "group1-shard4of4.bin"], "weights": [{"name": "batch_normalization_10/gamma", "shape": [16384], "dtype": "float32"}, {"name": "batch_normalization_10/beta", "shape": [16384], "dtype": "float32"}, {"name": "batch_normalization_10/moving_mean", "shape": [16384], "dtype": "float32"}, {"name": "batch_normalization_10/moving_variance", "shape": [16384], "dtype": "float32"}, {"name": "batch_normalization_11/gamma", "shape": [64], "dtype": "float32"}, {"name": "batch_normalization_11/beta", "shape": [64], "dtype": "float32"}, {"name": "batch_normalization_11/moving_mean", "shape": [64], "dtype": "float32"}, {"name": "batch_normalization_11/moving_variance", "shape": [64], "dtype": "float32"}, {"name": "batch_normalization_12/gamma", "shape": [64], "dtype": "float32"}, {"name": "batch_normalization_12/beta", "shape": [64], "dtype": "float32"}, {"name": "batch_normalization_12/moving_mean", "shape": [64], "dtype": "float32"}, {"name": "batch_normalization_12/moving_variance", "shape": [64], "dtype": "float32"}, {"name": "batch_normalization_13/gamma", "shape": [64], "dtype": "float32"}, {"name": "batch_normalization_13/beta", "shape": [64], "dtype": "float32"}, {"name": "batch_normalization_13/moving_mean", "shape": [64], "dtype": "float32"}, {"name": "batch_normalization_13/moving_variance", "shape": [64], "dtype": "float32"}, {"name": "batch_normalization_14/gamma", "shape": [64], "dtype": "float32"}, {"name": "batch_normalization_14/beta", "shape": [64], "dtype": "float32"}, {"name": "batch_normalization_14/moving_mean", "shape": [64], "dtype": "float32"}, {"name": "batch_normalization_14/moving_variance", "shape": [64], "dtype": "float32"}, {"name": "batch_normalization_15/gamma", "shape": [64], "dtype": "float32"}, {"name": "batch_normalization_15/beta", "shape": [64], "dtype": "float32"}, {"name": "batch_normalization_15/moving_mean", "shape": [64], "dtype": "float32"}, {"name": "batch_normalization_15/moving_variance", "shape": [64], "dtype": "float32"}, {"name": "batch_normalization_16/gamma", "shape": [64], "dtype": "float32"}, {"name": "batch_normalization_16/beta", "shape": [64], "dtype": "float32"}, {"name": "batch_normalization_16/moving_mean", "shape": [64], "dtype": "float32"}, {"name": "batch_normalization_16/moving_variance", "shape": [64], "dtype": "float32"}, {"name": "batch_normalization_17/gamma", "shape": [64], "dtype": "float32"}, {"name": "batch_normalization_17/beta", "shape": [64], "dtype": "float32"}, {"name": "batch_normalization_17/moving_mean", "shape": [64], "dtype": "float32"}, {"name": "batch_normalization_17/moving_variance", "shape": [64], "dtype": "float32"}, {"name": "batch_normalization_18/gamma", "shape": [256], "dtype": "float32"}, {"name": "batch_normalization_18/beta", "shape": [256], "dtype": "float32"}, {"name": "batch_normalization_18/moving_mean", "shape": [256], "dtype": "float32"}, {"name": "batch_normalization_18/moving_variance", "shape": [256], "dtype": "float32"}, {"name": "batch_normalization_19/gamma", "shape": [256], "dtype": "float32"}, {"name": "batch_normalization_19/beta", "shape": [256], "dtype": "float32"}, {"name": "batch_normalization_19/moving_mean", "shape": [256], "dtype": "float32"}, {"name": "batch_normalization_19/moving_variance", "shape": [256], "dtype": "float32"}, {"name": "conv2d_transpose_10/kernel", "shape": [3, 3, 64, 64], "dtype": "float32"}, {"name": "conv2d_transpose_10/bias", "shape": [64], "dtype": "float32"}, {"name": "conv2d_transpose_11/kernel", "shape": [3, 3, 64, 64], "dtype": "float32"}, {"name": "conv2d_transpose_11/bias", "shape": [64], "dtype": "float32"}, {"name": "conv2d_transpose_12/kernel", "shape": [3, 3, 64, 64], "dtype": "float32"}, {"name": "conv2d_transpose_12/bias", "shape": [64], "dtype": "float32"}, {"name": "conv2d_transpose_13/kernel", "shape": [3, 3, 64, 64], "dtype": "float32"}, {"name": "conv2d_transpose_13/bias", "shape": [64], "dtype": "float32"}, {"name": "conv2d_transpose_14/kernel", "shape": [3, 3, 64, 64], "dtype": "float32"}, {"name": "conv2d_transpose_14/bias", "shape": [64], "dtype": "float32"}, {"name": "conv2d_transpose_15/kernel", "shape": [3, 3, 256, 64], "dtype": "float32"}, {"name": "conv2d_transpose_15/bias", "shape": [256], "dtype": "float32"}, {"name": "conv2d_transpose_16/kernel", "shape": [3, 3, 256, 256], "dtype": "float32"}, {"name": "conv2d_transpose_16/bias", "shape": [256], "dtype": "float32"}, {"name": "conv2d_transpose_17/kernel", "shape": [9, 9, 3, 256], "dtype": "float32"}, {"name": "conv2d_transpose_17/bias", "shape": [3], "dtype": "float32"}, {"name": "conv2d_transpose_9/kernel", "shape": [3, 3, 64, 64], "dtype": "float32"}, {"name": "conv2d_transpose_9/bias", "shape": [64], "dtype": "float32"}, {"name": "dense_1/kernel", "shape": [162, 16384], "dtype": "float32"}, {"name": "dense_1/bias", "shape": [16384], "dtype": "float32"}]}]}
\ No newline at end of file
diff --git a/index.html b/index.html
new file mode 100644
index 0000000000000000000000000000000000000000..6e508e124f8fb39d8bc24fcebe057552ed49b64a
--- /dev/null
+++ b/index.html
@@ -0,0 +1,83 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <meta charset="utf-8" />
+        <title>Cat Generator</title>
+    </head>
+
+    <body>
+    <button type="button">Generate a cat !</button>
+	<p> Pas de click </p>
+	<div id="x"></div>
+	<canvas id="myCanvas" width="64" height="64" style="border: 1px solid red ; width: 100px; height: 100px;"></canvas>
+
+    </body>
+	<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@2.0.0/dist/tf.min.js"></script>
+	<script>
+	
+
+
+	var btn = document.querySelector('button');
+	var txt = document.querySelector('p');
+	var nb_click = 0;
+	
+
+	tf.loadLayersModel('./generator/model.json').then(function(model) {
+	generator = model;
+	});; // cf internet
+	
+	
+	btn.addEventListener('click', updateBtn);
+		
+	function updateBtn() {
+		
+		nb_click += 1;
+		txt.textContent = 'Tu as cliqué '+ nb_click +' fois !';
+		/*
+		var img = document.createElement("img");
+		img.src = "cat_10000.png";
+		var div = document.getElementById("x");
+		div.appendChild(img);
+		*/
+		
+		generate(generator);
+	}
+	
+	
+	function generate(model) {
+	
+		const latent_dim = 128 + 34 ;
+		
+		var noise = tf.randomNormal([1,latent_dim]);
+		//model.summary();		
+		image = model.predict(noise, {batchSize: 1});
+		//image.print();
+		image = image.add(1);
+		//image.print();
+		image = tf.mul(image,tf.scalar(127.5));
+		
+		
+		var cast = image.asType('int32');
+		var array = cast.arraySync();
+		//console.log(array);
+		//console.log(array[0]);
+		var canvas = document.getElementById('myCanvas');
+		var ctx = canvas.getContext('2d');
+		
+		
+		
+		var imageData = array[0];
+		for(var y = 0; y < imageData.length; y++){
+			for(var x = 0; x < imageData[y].length; x++){
+				ctx.fillStyle = `rgb(${imageData[y][x][0]}, ${imageData[y][x][1]}, ${imageData[y][x][2]})`;
+				ctx.fillRect( x,y, 1, 1);
+			}
+		}
+		
+	
+	}
+	
+	
+	
+	</script>
+</html>
\ No newline at end of file
diff --git a/model/variables/variables.data-00000-of-00001 b/model/generator.h5
similarity index 99%
rename from model/variables/variables.data-00000-of-00001
rename to model/generator.h5
index b9757a5d665e64e793839133cf256bf0fdec65d0..640ffb0536b1d359ca452bb01073ed40cb4207c7 100644
Binary files a/model/variables/variables.data-00000-of-00001 and b/model/generator.h5 differ
diff --git a/model/saved_model.pb b/model/saved_model.pb
deleted file mode 100644
index 122c18d96a89395e146907ca70b7cada2510ba9a..0000000000000000000000000000000000000000
Binary files a/model/saved_model.pb and /dev/null differ
diff --git a/model/variables/variables.index b/model/variables/variables.index
deleted file mode 100644
index 4c0293ef3b585f399de16a38838a43812ddba80d..0000000000000000000000000000000000000000
Binary files a/model/variables/variables.index and /dev/null differ