Fix problem with CartoonGAN not change model and add timestamp to Comic

This commit is contained in:
Maciej Pęśko 2018-11-18 10:58:21 +01:00
parent 8cc301b47b
commit fe7c388495
4 changed files with 37 additions and 12 deletions

View file

@ -0,0 +1,18 @@
# Generated by Django 2.0.7 on 2018-11-18 10:55
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('api', '0002_add_additional_info_to_Comic'),
]
operations = [
migrations.AddField(
model_name='comic',
name='timestamp',
field=models.DateTimeField(auto_now_add=True),
),
]

View file

@ -72,13 +72,12 @@ class Comic(models.Model):
rl_mode = models.PositiveIntegerField(default=0)
image_assessment_mode = models.PositiveIntegerField(default=0)
style_transfer_mode = models.PositiveIntegerField(default=0)
timestamp = models.DateTimeField(auto_now_add=True)
@classmethod
@profile
def create_from_nparray(cls, nparray, video, yt_url, frames_mode,
rl_mode, image_assessment_mode, style_transfer_mode):
# if nparray.max() <= 1:
# nparray = nparray.astype(int)
tmp_name = uuid.uuid4().hex + ".png"
cv2.imwrite(jj(settings.TMP_DIR, tmp_name), nparray)
with open(jj(settings.TMP_DIR, tmp_name), mode="rb") as tmp_file:

View file

@ -55,18 +55,18 @@ class ComixifyFromYoutube(APIView):
image_assessment_mode = serializer.validated_data["image_assessment_mode"]
style_transfer_mode = serializer.validated_data["style_transfer_mode"]
comix = Comic.objects.filter(yt_url=yt_url,
frames_mode=frames_mode,
rl_mode=rl_mode,
image_assessment_mode=image_assessment_mode,
style_transfer_mode=style_transfer_mode
).first()
if comix is not None:
try:
comix = Comic.objects.filter(yt_url=yt_url,
frames_mode=frames_mode,
rl_mode=rl_mode,
image_assessment_mode=image_assessment_mode,
style_transfer_mode=style_transfer_mode
).latest('timestamp')
response = {
"status_message": "ok",
"comic": comix.file.url,
}
else:
except Comic.DoesNotExist:
video = Video()
_, yt_download_time = video.download_from_youtube(yt_url)
video.save()

View file

@ -62,8 +62,16 @@ class StyleTransfer():
@classmethod
def _cartoon_gan_stylize(cls, frames, gpu=True, style='Hayao'):
model_cache_key = 'model_cache'
model = cache.get(model_cache_key) # get model from cache
if style == 'Hayao':
model_cache_key = 'model_cache_hayao'
model = cache.get(model_cache_key) # get model from cache
elif style == 'Hosoda':
model_cache_key = 'model_cache_hosoda'
model = cache.get(model_cache_key) # get model from cache
else:
raise Exception('No such CartoonGAN model!')
if model is None:
# load pretrained model