soiz commited on
Commit
b5fa1af
·
verified ·
1 Parent(s): accb179

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +36 -10
app.py CHANGED
@@ -1,4 +1,4 @@
1
- from flask import Flask, request, jsonify, send_file, render_template_string
2
  import requests
3
  import io
4
  import os
@@ -68,10 +68,39 @@ index_html = """
68
  <meta charset="UTF-8">
69
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
70
  <title>FLUX.1-Dev Image Generator</title>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
71
  </head>
72
  <body>
73
  <h1>FLUX.1-Dev Image Generator</h1>
74
- <form action="/generate" method="get">
75
  <label for="prompt">Prompt:</label>
76
  <input type="text" id="prompt" name="prompt" placeholder="Enter your prompt" required><br><br>
77
 
@@ -106,19 +135,17 @@ index_html = """
106
  <label for="seed">Seed:</label>
107
  <input type="number" id="seed" name="seed" value="-1" step="1"><br><br>
108
 
109
- <button type="submit">Generate Image</button>
110
  </form>
111
- {% if image_url %}
112
  <h2>Generated Image:</h2>
113
- <img src="{{ image_url }}" alt="Generated Image" style="max-width: 100%; height: auto;">
114
- {% endif %}
115
  </body>
116
  </html>
117
  """
118
 
119
  @app.route('/')
120
  def index():
121
- return render_template_string(index_html, image_url=None)
122
 
123
  @app.route('/generate', methods=['GET'])
124
  def generate_image():
@@ -150,9 +177,8 @@ def generate_image():
150
  # Save the image to a file
151
  image.save(os.path.join('static', image_filename))
152
 
153
- # Return the index page with the generated image URL
154
- image_url = f"/static/{image_filename}"
155
- return render_template_string(index_html, image_url=image_url)
156
 
157
  if __name__ == '__main__':
158
  # Ensure the 'static' folder exists for saving images
 
1
+ from flask import Flask, request, jsonify, render_template_string
2
  import requests
3
  import io
4
  import os
 
68
  <meta charset="UTF-8">
69
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
70
  <title>FLUX.1-Dev Image Generator</title>
71
+ <script>
72
+ function generateImage() {
73
+ const prompt = document.getElementById("prompt").value;
74
+ const negative_prompt = document.getElementById("negative_prompt").value;
75
+ const width = document.getElementById("width").value;
76
+ const height = document.getElementById("height").value;
77
+ const steps = document.getElementById("steps").value;
78
+ const cfgs = document.getElementById("cfgs").value;
79
+ const sampler = document.getElementById("sampler").value;
80
+ const strength = document.getElementById("strength").value;
81
+ const seed = document.getElementById("seed").value;
82
+
83
+ const img = document.getElementById("generated-image");
84
+ const button = document.getElementById("generate-button");
85
+ button.disabled = true; // ボタンを無効化
86
+
87
+ const imgSrc = `/generate?prompt=${encodeURIComponent(prompt)}&negative_prompt=${encodeURIComponent(negative_prompt)}&width=${width}&height=${height}&steps=${steps}&cfgs=${cfgs}&sampler=${sampler}&strength=${strength}&seed=${seed}`;
88
+
89
+ img.src = imgSrc; // 画像のsrcを設定
90
+
91
+ img.onload = function() {
92
+ button.disabled = false; // 画像が読み込まれたらボタンを再有効化
93
+ };
94
+ img.onerror = function() {
95
+ alert("画像の生成に失敗しました。");
96
+ button.disabled = false; // エラー時もボタンを再有効化
97
+ };
98
+ }
99
+ </script>
100
  </head>
101
  <body>
102
  <h1>FLUX.1-Dev Image Generator</h1>
103
+ <form onsubmit="event.preventDefault(); generateImage();">
104
  <label for="prompt">Prompt:</label>
105
  <input type="text" id="prompt" name="prompt" placeholder="Enter your prompt" required><br><br>
106
 
 
135
  <label for="seed">Seed:</label>
136
  <input type="number" id="seed" name="seed" value="-1" step="1"><br><br>
137
 
138
+ <button type="submit" id="generate-button">Generate Image</button>
139
  </form>
 
140
  <h2>Generated Image:</h2>
141
+ <img id="generated-image" src="" alt="Generated Image" style="max-width: 100%; height: auto; display: none;" onload="this.style.display='block';" onerror="this.style.display='none';">
 
142
  </body>
143
  </html>
144
  """
145
 
146
  @app.route('/')
147
  def index():
148
+ return render_template_string(index_html)
149
 
150
  @app.route('/generate', methods=['GET'])
151
  def generate_image():
 
177
  # Save the image to a file
178
  image.save(os.path.join('static', image_filename))
179
 
180
+ # Return the image URL
181
+ return jsonify({"url": f"/static/{image_filename}"})
 
182
 
183
  if __name__ == '__main__':
184
  # Ensure the 'static' folder exists for saving images