1
0
Fork 0
mirror of synced 2024-05-04 21:12:25 +12:00

Update assets; remove photo option

This commit is contained in:
nagadomi 2016-06-13 12:44:06 +09:00
parent 472215d7ee
commit eab65a1f20
13 changed files with 842 additions and 116 deletions

View file

@ -73,7 +73,7 @@
Oder wählen Sie eine Datei aus:
<input type="file" id="file" name="file"></div>
</div>
<div class="option-hint">
<div class="option-hint file_limits">
Beschränkungen: Größe: 3MB, Rauschunterdrückung: 2560x2560px, maximale Hochskalierung: 1280x1280px.
</div>
</div>
@ -87,11 +87,13 @@
Kunst
</span>
</label>
<!--
<label><input type="radio" name="style" class="radio" value="photo">
<span class="r-text">
Foto
</span>
</label>
-->
</div>
</div>
<div class="option-box">
@ -152,6 +154,83 @@
</label>
</div>
</div>
<div class="option-box">
<div class="option-left">
TTA:
<div class="option-left-small"></div>
</div>
<div class="option-right">
<label><input type="radio" name="tta_level" class="radio" value="1" checked>
<span class="r-text">
1 pass
</span>
</label>
<!--
<label><input type="radio" name="tta_level" class="radio" value="2" checked>
<span class="r-text">
2 pass
</span>
</label>
<label><input type="radio" name="tta_level" class="radio" value="4">
<span class="r-text">
4 pass
</span>
</label>
<label><input type="radio" name="tta_level" class="radio" value="8">
<span class="r-text">
8 pass
</span>
</label>
-->
<label><input type="radio" name="tta_level" class="radio" value="0" checked>
<span class="r-text">
n-pass auto
</span>
</label>
</div>
<div class="option-hint">
TTA makes stable quality but it limits the source image size.
<a href="#" class="tta_rule">
Show the rule of `n-pass auto`.
</a>
<div style="display:none" class="tta_rule_text">
<table>
<tr>
<td>
&lt;= 452x452
</td>
<td>
8 pass
</td>
</tr>
<tr>
<td>
&lt;= 640x640
</td>
<td>
4 pass
</td>
</tr>
<tr>
<td>
&lt;= 905x905
</td>
<td>
2 pass
</td>
</tr>
<tr>
<td>
else
</td>
<td>
1 pass
</td>
</tr>
</table>
</div>
</div>
</div>
<input type="submit" class="button" value="Konvertieren">

View file

@ -73,7 +73,7 @@
O selecciona un archivo:
<input type="file" id="file" name="file"></div>
</div>
<div class="option-hint">
<div class="option-hint file_limits">
Límites: Tamaño: 3 MB, Reducción de ruido: 2560x2560px, Aumento de resolución: 1280x1280px.
</div>
</div>
@ -87,11 +87,13 @@
Ilustración
</span>
</label>
<!--
<label><input type="radio" name="style" class="radio" value="photo">
<span class="r-text">
Fotografía
</span>
</label>
-->
</div>
</div>
<div class="option-box">
@ -152,6 +154,83 @@
</label>
</div>
</div>
<div class="option-box">
<div class="option-left">
TTA:
<div class="option-left-small"></div>
</div>
<div class="option-right">
<label><input type="radio" name="tta_level" class="radio" value="1" checked>
<span class="r-text">
1 pass
</span>
</label>
<!--
<label><input type="radio" name="tta_level" class="radio" value="2" checked>
<span class="r-text">
2 pass
</span>
</label>
<label><input type="radio" name="tta_level" class="radio" value="4">
<span class="r-text">
4 pass
</span>
</label>
<label><input type="radio" name="tta_level" class="radio" value="8">
<span class="r-text">
8 pass
</span>
</label>
-->
<label><input type="radio" name="tta_level" class="radio" value="0" checked>
<span class="r-text">
n-pass auto
</span>
</label>
</div>
<div class="option-hint">
TTA makes stable quality but it limits the source image size.
<a href="#" class="tta_rule">
Show the rule of `n-pass auto`.
</a>
<div style="display:none" class="tta_rule_text">
<table>
<tr>
<td>
&lt;= 452x452
</td>
<td>
8 pass
</td>
</tr>
<tr>
<td>
&lt;= 640x640
</td>
<td>
4 pass
</td>
</tr>
<tr>
<td>
&lt;= 905x905
</td>
<td>
2 pass
</td>
</tr>
<tr>
<td>
else
</td>
<td>
1 pass
</td>
</tr>
</table>
</div>
</div>
</div>
<input type="submit" class="button" value="Convertir">

View file

@ -73,7 +73,7 @@
Ou choisissez un fichier :
<input type="file" id="file" name="file"></div>
</div>
<div class="option-hint">
<div class="option-hint file_limits">
Limites : Taille : 3 Mo, Réduction du bruit numérique, 2560x2560px, Agrandissement : 1280x1280px.
</div>
</div>
@ -87,11 +87,13 @@
Dessin
</span>
</label>
<!--
<label><input type="radio" name="style" class="radio" value="photo">
<span class="r-text">
Photo
</span>
</label>
-->
</div>
</div>
<div class="option-box">
@ -152,6 +154,83 @@
</label>
</div>
</div>
<div class="option-box">
<div class="option-left">
TTA:
<div class="option-left-small"></div>
</div>
<div class="option-right">
<label><input type="radio" name="tta_level" class="radio" value="1" checked>
<span class="r-text">
1 pass
</span>
</label>
<!--
<label><input type="radio" name="tta_level" class="radio" value="2" checked>
<span class="r-text">
2 pass
</span>
</label>
<label><input type="radio" name="tta_level" class="radio" value="4">
<span class="r-text">
4 pass
</span>
</label>
<label><input type="radio" name="tta_level" class="radio" value="8">
<span class="r-text">
8 pass
</span>
</label>
-->
<label><input type="radio" name="tta_level" class="radio" value="0" checked>
<span class="r-text">
n-pass auto
</span>
</label>
</div>
<div class="option-hint">
TTA makes stable quality but it limits the source image size.
<a href="#" class="tta_rule">
Show the rule of `n-pass auto`.
</a>
<div style="display:none" class="tta_rule_text">
<table>
<tr>
<td>
&lt;= 452x452
</td>
<td>
8 pass
</td>
</tr>
<tr>
<td>
&lt;= 640x640
</td>
<td>
4 pass
</td>
</tr>
<tr>
<td>
&lt;= 905x905
</td>
<td>
2 pass
</td>
</tr>
<tr>
<td>
else
</td>
<td>
1 pass
</td>
</tr>
</table>
</div>
</div>
</div>
<input type="submit" class="button" value="Convertir">

View file

@ -73,7 +73,7 @@
Or choose a file:
<input type="file" id="file" name="file"></div>
</div>
<div class="option-hint">
<div class="option-hint file_limits">
Limits: Size: 3MB, Noise Reduction: 2560x2560px, Upscaling: 1280x1280px.
</div>
</div>
@ -87,11 +87,13 @@
Artwork
</span>
</label>
<!--
<label><input type="radio" name="style" class="radio" value="photo">
<span class="r-text">
Photo
</span>
</label>
-->
</div>
</div>
<div class="option-box">
@ -152,6 +154,83 @@
</label>
</div>
</div>
<div class="option-box">
<div class="option-left">
TTA:
<div class="option-left-small"></div>
</div>
<div class="option-right">
<label><input type="radio" name="tta_level" class="radio" value="1" checked>
<span class="r-text">
1 pass
</span>
</label>
<!--
<label><input type="radio" name="tta_level" class="radio" value="2" checked>
<span class="r-text">
2 pass
</span>
</label>
<label><input type="radio" name="tta_level" class="radio" value="4">
<span class="r-text">
4 pass
</span>
</label>
<label><input type="radio" name="tta_level" class="radio" value="8">
<span class="r-text">
8 pass
</span>
</label>
-->
<label><input type="radio" name="tta_level" class="radio" value="0" checked>
<span class="r-text">
n-pass auto
</span>
</label>
</div>
<div class="option-hint">
TTA makes stable quality but it limits the source image size.
<a href="#" class="tta_rule">
Show the rule of `n-pass auto`.
</a>
<div style="display:none" class="tta_rule_text">
<table>
<tr>
<td>
&lt;= 452x452
</td>
<td>
8 pass
</td>
</tr>
<tr>
<td>
&lt;= 640x640
</td>
<td>
4 pass
</td>
</tr>
<tr>
<td>
&lt;= 905x905
</td>
<td>
2 pass
</td>
</tr>
<tr>
<td>
else
</td>
<td>
1 pass
</td>
</tr>
</table>
</div>
</div>
</div>
<input type="submit" class="button" value="Convert">

View file

@ -73,7 +73,7 @@
ファイルを選択:
<input type="file" id="file" name="file"></div>
</div>
<div class="option-hint">
<div class="option-hint file_limits">
制限: サイズ: 3MB, ノイズ除去: 2560x2560px, 拡大(前): 1280x1280px.
</div>
</div>
@ -87,11 +87,13 @@
イラスト
</span>
</label>
<!--
<label><input type="radio" name="style" class="radio" value="photo">
<span class="r-text">
写真
</span>
</label>
-->
</div>
</div>
<div class="option-box">
@ -152,6 +154,83 @@
</label>
</div>
</div>
<div class="option-box">
<div class="option-left">
TTA:
<div class="option-left-small"></div>
</div>
<div class="option-right">
<label><input type="radio" name="tta_level" class="radio" value="1" checked>
<span class="r-text">
1 pass
</span>
</label>
<!--
<label><input type="radio" name="tta_level" class="radio" value="2" checked>
<span class="r-text">
2 pass
</span>
</label>
<label><input type="radio" name="tta_level" class="radio" value="4">
<span class="r-text">
4 pass
</span>
</label>
<label><input type="radio" name="tta_level" class="radio" value="8">
<span class="r-text">
8 pass
</span>
</label>
-->
<label><input type="radio" name="tta_level" class="radio" value="0" checked>
<span class="r-text">
n-pass auto
</span>
</label>
</div>
<div class="option-hint">
TTAは安定した品質を作ります。ただし画像サイズに制限があります。
<a href="#" class="tta_rule">
ルール
</a>
<div style="display:none" class="tta_rule_text">
<table>
<tr>
<td>
&lt;= 452x452
</td>
<td>
8 pass
</td>
</tr>
<tr>
<td>
&lt;= 640x640
</td>
<td>
4 pass
</td>
</tr>
<tr>
<td>
&lt;= 905x905
</td>
<td>
2 pass
</td>
</tr>
<tr>
<td>
else
</td>
<td>
1 pass
</td>
</tr>
</table>
</div>
</div>
</div>
<input type="submit" class="button" value="実行">

View file

@ -73,7 +73,7 @@
ARQUIVO:
<input type="file" id="file" name="file"></div>
</div>
<div class="option-hint">
<div class="option-hint file_limits">
Limites: Tamanho: 3MB, Redução de ruído: 2560x2560px, Aumento de escala: 1280x1280px.
</div>
</div>
@ -87,11 +87,13 @@
Arte
</span>
</label>
<!--
<label><input type="radio" name="style" class="radio" value="photo">
<span class="r-text">
Foto
</span>
</label>
-->
</div>
</div>
<div class="option-box">
@ -152,6 +154,83 @@
</label>
</div>
</div>
<div class="option-box">
<div class="option-left">
TTA:
<div class="option-left-small"></div>
</div>
<div class="option-right">
<label><input type="radio" name="tta_level" class="radio" value="1" checked>
<span class="r-text">
1 pass
</span>
</label>
<!--
<label><input type="radio" name="tta_level" class="radio" value="2" checked>
<span class="r-text">
2 pass
</span>
</label>
<label><input type="radio" name="tta_level" class="radio" value="4">
<span class="r-text">
4 pass
</span>
</label>
<label><input type="radio" name="tta_level" class="radio" value="8">
<span class="r-text">
8 pass
</span>
</label>
-->
<label><input type="radio" name="tta_level" class="radio" value="0" checked>
<span class="r-text">
n-pass auto
</span>
</label>
</div>
<div class="option-hint">
TTA makes stable quality but it limits the source image size.
<a href="#" class="tta_rule">
Show the rule of `n-pass auto`.
</a>
<div style="display:none" class="tta_rule_text">
<table>
<tr>
<td>
&lt;= 452x452
</td>
<td>
8 pass
</td>
</tr>
<tr>
<td>
&lt;= 640x640
</td>
<td>
4 pass
</td>
</tr>
<tr>
<td>
&lt;= 905x905
</td>
<td>
2 pass
</td>
</tr>
<tr>
<td>
else
</td>
<td>
1 pass
</td>
</tr>
</table>
</div>
</div>
</div>
<input type="submit" class="button" value="Converter">

View file

@ -73,7 +73,7 @@
Либо выберите файл:
<input type="file" id="file" name="file"></div>
</div>
<div class="option-hint">
<div class="option-hint file_limits">
Макс. размер файла — 3MB, устранение шума — макс. 2560x2560px, апскейл — 1280x1280px.
</div>
</div>
@ -87,11 +87,13 @@
Арт
</span>
</label>
<!--
<label><input type="radio" name="style" class="radio" value="photo">
<span class="r-text">
Фотография
</span>
</label>
-->
</div>
</div>
<div class="option-box">
@ -152,6 +154,83 @@
</label>
</div>
</div>
<div class="option-box">
<div class="option-left">
TTA:
<div class="option-left-small"></div>
</div>
<div class="option-right">
<label><input type="radio" name="tta_level" class="radio" value="1" checked>
<span class="r-text">
1 pass
</span>
</label>
<!--
<label><input type="radio" name="tta_level" class="radio" value="2" checked>
<span class="r-text">
2 pass
</span>
</label>
<label><input type="radio" name="tta_level" class="radio" value="4">
<span class="r-text">
4 pass
</span>
</label>
<label><input type="radio" name="tta_level" class="radio" value="8">
<span class="r-text">
8 pass
</span>
</label>
-->
<label><input type="radio" name="tta_level" class="radio" value="0" checked>
<span class="r-text">
n-pass auto
</span>
</label>
</div>
<div class="option-hint">
TTA makes stable quality but it limits the source image size.
<a href="#" class="tta_rule">
Show the rule of `n-pass auto`.
</a>
<div style="display:none" class="tta_rule_text">
<table>
<tr>
<td>
&lt;= 452x452
</td>
<td>
8 pass
</td>
</tr>
<tr>
<td>
&lt;= 640x640
</td>
<td>
4 pass
</td>
</tr>
<tr>
<td>
&lt;= 905x905
</td>
<td>
2 pass
</td>
</tr>
<tr>
<td>
else
</td>
<td>
1 pass
</td>
</tr>
</table>
</div>
</div>
</div>
<input type="submit" class="button" value="Преобразовать">

View file

@ -73,7 +73,7 @@
Veya bir dosya seçin:
<input type="file" id="file" name="file"></div>
</div>
<div class="option-hint">
<div class="option-hint file_limits">
Limitler: Boyut: 3MB, Gürültü Azaltma: 2560x2560px, Çözünürlük Yükseltme: 1280x1280px.
</div>
</div>
@ -87,11 +87,13 @@
Dijital Çizim
</span>
</label>
<!--
<label><input type="radio" name="style" class="radio" value="photo">
<span class="r-text">
Fotoğraf
</span>
</label>
-->
</div>
</div>
<div class="option-box">
@ -152,6 +154,83 @@
</label>
</div>
</div>
<div class="option-box">
<div class="option-left">
TTA:
<div class="option-left-small"></div>
</div>
<div class="option-right">
<label><input type="radio" name="tta_level" class="radio" value="1" checked>
<span class="r-text">
1 pass
</span>
</label>
<!--
<label><input type="radio" name="tta_level" class="radio" value="2" checked>
<span class="r-text">
2 pass
</span>
</label>
<label><input type="radio" name="tta_level" class="radio" value="4">
<span class="r-text">
4 pass
</span>
</label>
<label><input type="radio" name="tta_level" class="radio" value="8">
<span class="r-text">
8 pass
</span>
</label>
-->
<label><input type="radio" name="tta_level" class="radio" value="0" checked>
<span class="r-text">
n-pass auto
</span>
</label>
</div>
<div class="option-hint">
TTA makes stable quality but it limits the source image size.
<a href="#" class="tta_rule">
Show the rule of `n-pass auto`.
</a>
<div style="display:none" class="tta_rule_text">
<table>
<tr>
<td>
&lt;= 452x452
</td>
<td>
8 pass
</td>
</tr>
<tr>
<td>
&lt;= 640x640
</td>
<td>
4 pass
</td>
</tr>
<tr>
<td>
&lt;= 905x905
</td>
<td>
2 pass
</td>
</tr>
<tr>
<td>
else
</td>
<td>
1 pass
</td>
</tr>
</table>
</div>
</div>
</div>
<input type="submit" class="button" value="Başlat">

View file

@ -73,7 +73,7 @@
或者从本地上传:
<input type="file" id="file" name="file"></div>
</div>
<div class="option-hint">
<div class="option-hint file_limits">
文件大小不得超过3MB可降噪图像的最大尺寸2560x2560px可放大图像的最大尺寸1280x1280px。
</div>
</div>
@ -87,11 +87,13 @@
插图
</span>
</label>
<!--
<label><input type="radio" name="style" class="radio" value="photo">
<span class="r-text">
照片
</span>
</label>
-->
</div>
</div>
<div class="option-box">
@ -152,6 +154,83 @@
</label>
</div>
</div>
<div class="option-box">
<div class="option-left">
TTA:
<div class="option-left-small"></div>
</div>
<div class="option-right">
<label><input type="radio" name="tta_level" class="radio" value="1" checked>
<span class="r-text">
1 pass
</span>
</label>
<!--
<label><input type="radio" name="tta_level" class="radio" value="2" checked>
<span class="r-text">
2 pass
</span>
</label>
<label><input type="radio" name="tta_level" class="radio" value="4">
<span class="r-text">
4 pass
</span>
</label>
<label><input type="radio" name="tta_level" class="radio" value="8">
<span class="r-text">
8 pass
</span>
</label>
-->
<label><input type="radio" name="tta_level" class="radio" value="0" checked>
<span class="r-text">
n-pass auto
</span>
</label>
</div>
<div class="option-hint">
TTA makes stable quality but it limits the source image size.
<a href="#" class="tta_rule">
Show the rule of `n-pass auto`.
</a>
<div style="display:none" class="tta_rule_text">
<table>
<tr>
<td>
&lt;= 452x452
</td>
<td>
8 pass
</td>
</tr>
<tr>
<td>
&lt;= 640x640
</td>
<td>
4 pass
</td>
</tr>
<tr>
<td>
&lt;= 905x905
</td>
<td>
2 pass
</td>
</tr>
<tr>
<td>
else
</td>
<td>
1 pass
</td>
</tr>
</table>
</div>
</div>
</div>
<input type="submit" class="button" value="转换">

View file

@ -196,3 +196,7 @@ label {
.address {
text-align: center;
}
.tta_rule_text td {
padding: 4px;
border: 1px solid #ccc;
}

View file

@ -1,5 +1,8 @@
$(function (){
var expires = 365;
var g_expires = 365;
var g_max_noise_image = 2560 * 2560;
var g_max_scale_image = 1280 * 1280;
function clear_file() {
var new_file = $("#file").clone();
new_file.change(clear_url);
@ -15,17 +18,48 @@ $(function (){
} else {
$(".main-title").html("w<s>/a/</s>ifu2x");
}
$.cookie("style", checked.val(), {expires: expires});
$.cookie("style", checked.val(), {expires: g_expires});
}
function on_click_tta_rule(e) {
e.preventDefault();
e.stopPropagation();
$(".tta_rule_text").toggle();
}
function on_change_tta_level(e) {
var checked = $("input[name=tta_level]:checked");
$.cookie("tta_level", checked.val(), {expires: g_expires});
var level = checked.val();
if (level == 0) {
level = 1;
}
var max_noise_w = Math.floor(Math.pow(g_max_noise_image / level, 0.5));
var max_scale_w = Math.floor(Math.pow(g_max_scale_image / level, 0.5));
var limit_text = $(".file_limits").text();
var hits = 0;
limit_text = limit_text.replace(/\d+x\d+/g, function() {
hits += 1;
if (hits == 1) {
return "" + max_noise_w + "x" + max_noise_w;
} else {
return "" + max_scale_w + "x" + max_scale_w;
}
});
$(".file_limits").text(limit_text);
if (level == 1) {
$(".file_limits").css("color", "");
} else {
$(".file_limits").css("color", "blue");
}
}
function on_change_noise_level(e)
{
var checked = $("input[name=noise]:checked");
$.cookie("noise", checked.val(), {expires: expires});
$.cookie("noise", checked.val(), {expires: g_expires});
}
function on_change_scale_factor(e)
{
var checked = $("input[name=scale]:checked");
$.cookie("scale", checked.val(), {expires: expires});
$.cookie("scale", checked.val(), {expires: g_expires});
}
function restore_from_cookie()
{
@ -38,6 +72,9 @@ $(function (){
if ($.cookie("scale")) {
$("input[name=scale]").filter("[value=" + $.cookie("scale") + "]").prop("checked", true)
}
if ($.cookie("tta_level")) {
$("input[name=tta_level]").filter("[value=" + $.cookie("tta_level") + "]").prop("checked", true)
}
}
function uuid()
{
@ -85,10 +122,13 @@ $(function (){
$("input[name=style]").change(on_change_style);
$("input[name=noise]").change(on_change_noise_level);
$("input[name=scale]").change(on_change_scale_factor);
$("input[name=tta_level]").change(on_change_tta_level);
$("input[name=download]").click(download_with_xhr);
$("a.tta_rule").click(on_click_tta_rule);
restore_from_cookie();
on_change_style();
on_change_scale_factor();
on_change_noise_level();
on_change_tta_level();
})

175
web.lua
View file

@ -43,14 +43,16 @@ end
opt.force_cudnn = opt.force_cudnn == 1
local ART_MODEL_DIR = path.join(ROOT, "models", "upconv_7", "art")
local PHOTO_MODEL_DIR = path.join(ROOT, "models", "photo")
local art_scale2_model = w2nn.load_model(path.join(ART_MODEL_DIR, "scale2.0x_model.t7"), opt.force_cudnn)
local art_noise1_model = w2nn.load_model(path.join(ART_MODEL_DIR, "noise1_model.t7"), opt.force_cudnn)
local art_noise2_model = w2nn.load_model(path.join(ART_MODEL_DIR, "noise2_model.t7"), opt.force_cudnn)
local art_noise3_model = w2nn.load_model(path.join(ART_MODEL_DIR, "noise3_model.t7"), opt.force_cudnn)
local photo_scale2_model = w2nn.load_model(path.join(PHOTO_MODEL_DIR, "scale2.0x_model.t7"), opt.force_cudnn)
local photo_noise1_model = w2nn.load_model(path.join(PHOTO_MODEL_DIR, "noise1_model.t7"), opt.force_cudnn)
local photo_noise2_model = w2nn.load_model(path.join(PHOTO_MODEL_DIR, "noise2_model.t7"), opt.force_cudnn)
local photo_noise3_model = w2nn.load_model(path.join(PHOTO_MODEL_DIR, "noise3_model.t7"), opt.force_cudnn)
local art_model = {}
art_model.scale = w2nn.load_model(path.join(ART_MODEL_DIR, "scale2.0x_model.t7"), opt.force_cudnn)
art_model.noise1_scale = w2nn.load_model(path.join(ART_MODEL_DIR, "noise1_scale2.0x_model.t7"), opt.force_cudnn)
art_model.noise2_scale = w2nn.load_model(path.join(ART_MODEL_DIR, "noise2_scale2.0x_model.t7"), opt.force_cudnn)
art_model.noise3_scale = w2nn.load_model(path.join(ART_MODEL_DIR, "noise3_scale2.0x_model.t7"), opt.force_cudnn)
art_model.noise1 = w2nn.load_model(path.join(ART_MODEL_DIR, "noise1_model.t7"), opt.force_cudnn)
art_model.noise2 = w2nn.load_model(path.join(ART_MODEL_DIR, "noise2_model.t7"), opt.force_cudnn)
art_model.noise3 = w2nn.load_model(path.join(ART_MODEL_DIR, "noise3_model.t7"), opt.force_cudnn)
local photo_model = art_model -- TODO
collectgarbage()
local CLEANUP_MODEL = false -- if you are using the low memory GPU, you could use this flag.
local CACHE_DIR = path.join(ROOT, "cache")
@ -63,7 +65,6 @@ local CURL_OPTIONS = {
max_redirects = 2
}
local CURL_MAX_SIZE = 3 * 1024 * 1024
local TTA_SUPPORT = true
local function valid_size(x, scale, tta_level)
if scale == 0 then
@ -170,67 +171,42 @@ local function convert(x, meta, options)
meta.alpha = alpha
return x, meta
else
local model = nil
if options.style == "art" then
if options.border then
x = alpha_util.make_border(x, alpha_orig, reconstruct.offset_size(art_scale2_model))
end
if options.method == "scale" then
x = reconstruct.scale_tta(art_scale2_model, options.tta_level, 2.0, x,
opt.crop_size, opt.batch_size)
if alpha then
if not (alpha:size(2) == x:size(2) and alpha:size(3) == x:size(3)) then
alpha = reconstruct.scale(art_scale2_model, 2.0, alpha,
opt.crop_size, opt.batch_size)
image_loader.save_png(alpha_cache_file, alpha)
end
model = art_model
elseif options.style == "photo" then
model = photo_model
end
if options.border then
x = alpha_util.make_border(x, alpha_orig, reconstruct.offset_size(model.scale))
end
if (options.method == "scale" or
options.method == "noise1_scale" or
options.method == "noise2_scale" or
options.method == "noise3_scale")
then
x = reconstruct.scale_tta(model[options.method], options.tta_level, 2.0, x,
opt.crop_size, opt.batch_size)
if alpha then
if not (alpha:size(2) == x:size(2) and alpha:size(3) == x:size(3)) then
alpha = reconstruct.scale(model.scale, 2.0, alpha,
opt.crop_size, opt.batch_size)
image_loader.save_png(alpha_cache_file, alpha)
cleanup_model(model.scale)
end
cleanup_model(art_scale2_model)
elseif options.method == "noise1" then
x = reconstruct.image_tta(art_noise1_model, options.tta_level,
x, opt.crop_size, opt.batch_size)
cleanup_model(art_noise1_model)
elseif options.method == "noise2" then
x = reconstruct.image_tta(art_noise2_model, options.tta_level,
x, opt.crop_size, opt.batch_size)
cleanup_model(art_noise2_model)
elseif options.method == "noise3" then
x = reconstruct.image_tta(art_noise3_model, options.tta_level,
x, opt.crop_size, opt.batch_size)
cleanup_model(art_noise3_model)
end
else -- photo
if options.border then
x = alpha_util.make_border(x, alpha, reconstruct.offset_size(photo_scale2_model))
end
if options.method == "scale" then
x = reconstruct.scale_tta(photo_scale2_model, options.tta_level, 2.0, x,
opt.crop_size, opt.batch_size)
if alpha then
if not (alpha:size(2) == x:size(2) and alpha:size(3) == x:size(3)) then
alpha = reconstruct.scale(photo_scale2_model, 2.0, alpha,
opt.crop_size, opt.batch_size)
image_loader.save_png(alpha_cache_file, alpha)
end
end
cleanup_model(photo_scale2_model)
elseif options.method == "noise1" then
x = reconstruct.image_tta(photo_noise1_model, options.tta_level,
x, opt.crop_size, opt.batch_size)
cleanup_model(photo_noise1_model)
elseif options.method == "noise2" then
x = reconstruct.image_tta(photo_noise2_model, options.tta_level,
x, opt.crop_size, opt.batch_size)
cleanup_model(photo_noise2_model)
elseif options.method == "noise3" then
x = reconstruct.image_tta(photo_noise3_model, options.tta_level,
x, opt.crop_size, opt.batch_size)
cleanup_model(photo_noise3_model)
end
cleanup_model(model[options.method])
elseif (options.method == "noise1" or
options.method == "noise2" or
options.method == "noise3")
then
x = reconstruct.image_tta(model[options.method], options.tta_level,
x, opt.crop_size, opt.batch_size)
cleanup_model(model[options.method])
end
image_loader.save_png(cache_file, x)
meta = tablex.copy(meta)
meta.alpha = alpha
return x, meta
end
end
@ -264,15 +240,11 @@ function APIHandler:post()
local style = self:get_argument("style", "art")
local download = (self:get_argument("download", "")):len()
if not TTA_SUPPORT then
tta_level = 1 -- disable TTA mode
else
if tta_level == 0 then
tta_level = auto_tta_level(x, scale)
end
if not (tta_level == 0 or tta_level == 1 or tta_level == 2 or tta_level == 4 or tta_level == 8) then
tta_level = 1
end
if tta_level == 0 then
tta_level = auto_tta_level(x, scale)
end
if not (tta_level == 0 or tta_level == 1 or tta_level == 2 or tta_level == 4 or tta_level == 8) then
tta_level = 1
end
if style ~= "art" then
style = "photo" -- style must be art or photo
@ -286,40 +258,37 @@ function APIHandler:post()
if scale ~= 0 and meta.alpha then
border = true
end
if noise == 1 then
prefix = style .. "_noise1_tta_" .. tta_level .. "_"
x = convert(x, meta, {method = "noise1", style = style, tta_level = tta_level,
prefix = prefix .. hash,
alpha_prefix = alpha_prefix, border = border})
border = false
elseif noise == 2 then
prefix = style .. "_noise2_tta_" .. tta_level .. "_"
x = convert(x, meta, {method = "noise2", style = style, tta_level = tta_level,
prefix = prefix .. hash,
alpha_prefix = alpha_prefix, border = border})
border = false
elseif noise == 3 then
prefix = style .. "_noise3_tta_" .. tta_level .. "_"
x = convert(x, meta, {method = "noise3", style = style, tta_level = tta_level,
prefix = prefix .. hash,
alpha_prefix = alpha_prefix, border = border})
border = false
end
if scale == 1 or scale == 2 then
if noise == 1 then
prefix = style .. "_noise1_scale_tta_" .. tta_level .. "_"
elseif noise == 2 then
prefix = style .. "_noise2_scale_tta_" .. tta_level .. "_"
elseif noise == 3 then
prefix = style .. "_noise3_scale_tta_" .. tta_level .. "_"
else
prefix = style .. "_scale_tta_" .. tta_level .. "_"
end
x, meta = convert(x, meta, {method = "scale", style = style, tta_level = tta_level,
prefix = prefix .. hash, alpha_prefix = alpha_prefix, border = border})
if (scale == 1 or scale == 2) and (noise == 0) then
prefix = style .. "_scale_tta_" .. tta_level .. "_"
x, meta = convert(x, meta, {method = "scale",
style = style,
tta_level = tta_level,
prefix = prefix .. hash,
alpha_prefix = alpha_prefix,
border = border})
if scale == 1 then
x = iproc.scale(x, x:size(3) * (1.6 / 2.0), x:size(2) * (1.6 / 2.0), "Sinc")
end
elseif (scale == 1 or scale == 2) and (noise == 1 or noise == 2 or noise == 3) then
prefix = style .. string.format("_noise%d_scale_tta_", noise) .. tta_level .. "_"
x, meta = convert(x, meta, {method = string.format("noise%d_scale", noise),
style = style,
tta_level = tta_level,
prefix = prefix .. hash,
alpha_prefix = alpha_prefix,
border = border})
if scale == 1 then
x = iproc.scale(x, x:size(3) * (1.6 / 2.0), x:size(2) * (1.6 / 2.0), "Sinc")
end
elseif (noise == 1 or noise == 2 or noise == 3) then
prefix = style .. string.format("_noise%d_tta_", noise) .. tta_level .. "_"
x = convert(x, meta, {method = string.format("noise%d", noise),
style = style,
tta_level = tta_level,
prefix = prefix .. hash,
alpha_prefix = alpha_prefix,
border = border})
border = false
end
end
local name = nil

View file

@ -87,11 +87,13 @@
<%= t[:artwork] %>
</span>
</label>
<!--
<label><input type="radio" name="style" class="radio" value="photo">
<span class="r-text">
<%= t[:photo] %>
</span>
</label>
-->
</div>
</div>
<div class="option-box">