arcsu1 commited on
Commit
1a96e8e
·
1 Parent(s): 137ee4f

add face gen

Browse files
imagegen.py ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from PIL import Image
2
+ import numpy as np
3
+ from fastapi.responses import StreamingResponse
4
+ from io import BytesIO
5
+ from matplotlib import pyplot
6
+ import matplotlib
7
+
8
+ class FaceGen:
9
+ def __init__(self,model,device):
10
+ self.model = model
11
+ self.device = device
12
+
13
+ def generate_latent_points(self,latent_dim,n_samples,seed):
14
+ z_input = seed.reshape(n_samples,latent_dim)
15
+ return z_input
16
+
17
+ def plot_generated(self, examples, n):
18
+ buf = BytesIO()
19
+ for i in range(n * n):
20
+ pyplot.subplot(n, n, 1 + i)
21
+ pyplot.axis('off')
22
+ pyplot.imshow(examples[i, :, :])
23
+ pyplot.savefig(buf, format='png', transparent=True)
24
+ buf.seek(0)
25
+ return StreamingResponse(buf, media_type="image/png")
26
+
27
+ def generate_image(self, latent_dim, n_samples, seed):
28
+ latent_points = self.generate_latent_points(latent_dim, n_samples, seed)
29
+ generated_images = self.model.predict(latent_points)
30
+ X = (generated_images + 1) / 2.0
31
+ return self.plot_generated(X, 1)
32
+
33
+
34
+
main.py CHANGED
@@ -4,11 +4,19 @@ from datasets import load_dataset
4
  import pandas as pd
5
  import re
6
 
 
 
 
 
 
 
 
7
  from fastapi import FastAPI
8
  from fastapi.middleware.cors import CORSMiddleware
9
 
10
  import chatbot
11
  import textgen
 
12
 
13
 
14
  app = FastAPI()
@@ -87,4 +95,28 @@ async def generate_text(input: TextGenInput):
87
 
88
  response = model.generate_text(input.user)
89
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
90
  return response
 
4
  import pandas as pd
5
  import re
6
 
7
+ from numpy.random import randn
8
+ from keras.models import load_model
9
+ from matplotlib import pyplot
10
+ import matplotlib
11
+ import tensorflow as tf
12
+
13
+
14
  from fastapi import FastAPI
15
  from fastapi.middleware.cors import CORSMiddleware
16
 
17
  import chatbot
18
  import textgen
19
+ import imagegen
20
 
21
 
22
  app = FastAPI()
 
95
 
96
  response = model.generate_text(input.user)
97
 
98
+ return response
99
+
100
+ @app.get("/face-gen")
101
+ async def generate_face():
102
+ print("Generating face image request")
103
+
104
+ global model
105
+
106
+ try:
107
+ # check if model is already loaded
108
+ if not isinstance(model, imagegen.FaceGen):
109
+ model = imagegen.FaceGen(
110
+ model = load_model('models/face-gen-gan/generator_model_100.h5'),
111
+ device = '/CPU:0'
112
+ )
113
+ except NameError:
114
+ # if model is not defined, load
115
+ model = imagegen.FaceGen(
116
+ model = load_model('models/face-gen-gan/generator_model_100.h5'),
117
+ device = '/GPU:0' if tf.config.list_physical_devices('GPU') else '/CPU:0'
118
+ )
119
+
120
+ response = model.generate_image(latent_dim=100,n_samples=128,seed=randn(100*128))
121
+
122
  return response
models/face-gen-gan/generator_model_100.h5 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:cd167921ef33931acace69054326314197b8bc340bd702503f167710f21f7235
3
+ size 5563784
requirements.txt CHANGED
@@ -4,4 +4,9 @@ torch==2.3.1
4
  datasets==2.21.0
5
  pandas==2.1.4
6
  uvicorn[standard]
7
- fastapi[all]
 
 
 
 
 
 
4
  datasets==2.21.0
5
  pandas==2.1.4
6
  uvicorn[standard]
7
+ fastapi[all]
8
+ numpy==1.26.4
9
+ matplotlib==3.9.1
10
+ tensorflow==2.15.0
11
+ keras==2.15.0
12
+ pillow