Spaces:
Sleeping
Sleeping
add face gen
Browse files- imagegen.py +34 -0
- main.py +32 -0
- models/face-gen-gan/generator_model_100.h5 +3 -0
- requirements.txt +6 -1
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
|