瀏覽代碼

Update assets; remove photo option

nagadomi 9 年之前
父節點
當前提交
eab65a1f20
共有 13 個文件被更改,包括 841 次插入115 次删除
  1. 80 1
      assets/index.de.html
  2. 80 1
      assets/index.es.html
  3. 80 1
      assets/index.fr.html
  4. 80 1
      assets/index.html
  5. 80 1
      assets/index.ja.html
  6. 80 1
      assets/index.pt.html
  7. 80 1
      assets/index.ru.html
  8. 80 1
      assets/index.tr.html
  9. 80 1
      assets/index.zh-CN.html
  10. 4 0
      assets/style.css
  11. 44 4
      assets/ui.js
  12. 71 102
      web.lua
  13. 2 0
      webgen/templates/index.html.erb

+ 80 - 1
assets/index.de.html

@@ -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">
 	

+ 80 - 1
assets/index.es.html

@@ -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">
 	

+ 80 - 1
assets/index.fr.html

@@ -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">
 	

+ 80 - 1
assets/index.html

@@ -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">
 	

+ 80 - 1
assets/index.ja.html

@@ -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="実行">
 	

+ 80 - 1
assets/index.pt.html

@@ -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">
 	

+ 80 - 1
assets/index.ru.html

@@ -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="Преобразовать">
 	

+ 80 - 1
assets/index.tr.html

@@ -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">
 	

+ 80 - 1
assets/index.zh-CN.html

@@ -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="转换">
 	

+ 4 - 0
assets/style.css

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

+ 44 - 4
assets/ui.js

@@ -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();
 })

+ 71 - 102
web.lua

@@ -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
-	    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
+	 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(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 .. "_"
+	 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
-	    x, meta = convert(x, meta, {method = "scale", style = style, tta_level = tta_level,
-					prefix = prefix .. hash, alpha_prefix = alpha_prefix, border = border})
+	 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

+ 2 - 0
webgen/templates/index.html.erb

@@ -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">