craftgamesnetwork commited on
Commit
2c68506
·
verified ·
1 Parent(s): 86ee590

Update main.py

Browse files
Files changed (1) hide show
  1. main.py +12 -149
main.py CHANGED
@@ -1,91 +1,18 @@
1
  import requests
2
- from io import BytesIO
3
- from flask import Flask, request, jsonify
4
- from gradio_client import Client
5
- from huggingface_hub import create_repo, upload_file
6
 
7
  app = Flask(__name__)
8
 
9
  # Função para chamar a API de hospedagem de imagens
10
- def host_image(endpoint, image_path):
11
- api_url = "https://wosocial.bubbleapps.io/version-test/api/1.1/wf/save?file="
12
- img_url = f"{endpoint}/file={result_path}"
13
- response = requests.post(api_url, files=files)
14
  if response.status_code == 200:
15
  return response.json()["response"]["result"]
16
  else:
17
  return None
18
-
19
- @app.route('/run', methods=['POST'])
20
- def run_model():
21
- # Obter parâmetros da consulta da URL
22
- endpoint = request.args.get('endpoint', default='https://pierroromeu-zbilatuca2testzz.hf.space')
23
- prompt = request.args.get('prompt', default='Hello!!')
24
- negative_prompt = request.args.get('negative_prompt', default='Hello!!')
25
- prompt_2 = request.args.get('prompt_2', default='Hello!!')
26
- negative_prompt_2 = request.args.get('negative_prompt_2', default='Hello!!')
27
- use_negative_prompt = request.args.get('use_negative_prompt', type=bool, default=True)
28
- use_prompt_2 = request.args.get('use_prompt_2', type=bool, default=True)
29
- use_negative_prompt_2 = request.args.get('use_negative_prompt_2', type=bool, default=False)
30
- seed = request.args.get('seed', type=int, default=0)
31
- width = request.args.get('width', type=int, default=256)
32
- height = request.args.get('height', type=int, default=256)
33
- guidance_scale = request.args.get('guidance_scale', type=float, default=5.5)
34
- num_inference_steps = request.args.get('num_inference_steps', type=int, default=50)
35
- strength = request.args.get('strength', type=float, default=0.7)
36
- use_vae_str = request.args.get('use_vae', default='false') # Obtém use_vae como string
37
- use_vae = use_vae_str.lower() == 'true' # Converte para booleano
38
- use_lora_str = request.args.get('use_lora', default='false') # Obtém use_lora como string
39
- use_lora = use_lora_str.lower() == 'true' # Converte para booleano
40
- use_img2img_str = request.args.get('use_img2img', default='false') # Obtém use_vae como string
41
- use_img2img = use_img2img_str.lower() == 'true' # Converte para booleano
42
- model = request.args.get('model', default='stabilityai/stable-diffusion-xl-base-1.0')
43
- vaecall = request.args.get('vaecall', default='madebyollin/sdxl-vae-fp16-fix')
44
- lora = request.args.get('lora', default='amazonaws-la/sdxl')
45
- lora_scale = request.args.get('lora_scale', type=float, default=0.7)
46
- url = request.args.get('url', default='https://example.com/image.png')
47
-
48
- # Chamar a API Gradio
49
- client = Client(endpoint)
50
- result = client.predict(
51
- prompt, negative_prompt, prompt_2, negative_prompt_2,
52
- use_negative_prompt, use_prompt_2, use_negative_prompt_2,
53
- seed, width, height,
54
- guidance_scale,
55
- num_inference_steps,
56
- strength,
57
- use_vae,
58
- use_lora,
59
- model,
60
- vaecall,
61
- lora,
62
- lora_scale,
63
- use_img2img,
64
- url,
65
- api_name="/run"
66
- )
67
-
68
- return jsonify(result)
69
-
70
- @app.route('/predict', methods=['POST'])
71
- def predict_gan():
72
- # Obter parâmetros da consulta da URL
73
- endpoint = request.args.get('endpoint', default='https://pierroromeu-gfpgan.hf.space/--replicas/dgwcd/')
74
- hf_token = request.args.get('hf_token', default='')
75
- filepath = request.args.get('filepath', default='')
76
- version = request.args.get('version', default='v1.4')
77
- rescaling_factor = request.args.get('rescaling_factor', type=float, default=2.0)
78
-
79
- # Chamar a API Gradio
80
- client = Client(endpoint, hf_token=hf_token)
81
- result_path = client.predict(
82
- filepath,
83
- version,
84
- rescaling_factor,
85
- api_name="/predict"
86
- )
87
-
88
- return jsonify(result)
89
 
90
  @app.route('/faceswapper', methods=['GET'])
91
  def faceswapper():
@@ -102,80 +29,16 @@ def faceswapper():
102
  api_name="/predict"
103
  )
104
 
 
 
 
105
  # Hospedar a imagem e obter a URL
106
- hosted_url = host_image(endpoint, result_path)
107
 
108
  if hosted_url:
109
  return jsonify({"result_url": hosted_url})
110
  else:
111
  return jsonify({"error": "Falha ao hospedar a imagem."}), 500
112
 
113
- @app.route('/train', methods=['POST'])
114
- def answer():
115
- # Obter parâmetros da consulta da URL
116
- token = request.args.get('token', default='')
117
- endpoint = request.args.get('endpoint', default='https://pierroromeu-gfpgan.hf.space/--replicas/dgwcd/')
118
- dataset_id=request.args.get('dataset_id', default='')
119
- output_model_folder_name=request.args.get('output_model_folder_name', default='')
120
- concept_prompt=request.args.get('concept_prompt', default='')
121
- max_training_steps=request.args.get('max_training_steps', type=int, default=0)
122
- checkpoints_steps=request.args.get('checkpoints_steps', type=int, default=0)
123
- remove_gpu_after_training_str = request.args.get('remove_gpu_after_training', default='false') # Obtém como string
124
- remove_gpu_after_training = remove_gpu_after_training_str.lower() == 'true' # Converte para booleano
125
-
126
- # Chamar a API Gradio
127
- client = Client(endpoint, hf_token=token)
128
- result = client.predict(
129
- dataset_id,
130
- output_model_folder_name,
131
- concept_prompt,
132
- max_training_steps,
133
- checkpoints_steps,
134
- remove_gpu_after_training,
135
- api_name="/main"
136
- )
137
-
138
- return jsonify(result)
139
-
140
- @app.route('/verify', methods=['GET'])
141
- # ‘/’ URL is bound with hello_world() function.
142
- def hello_world():
143
- return jsonify('Check')
144
-
145
- @app.route('/upload_model', methods=['POST'])
146
- def upload_model():
147
- # Parâmetros
148
- file_name= request.args.get('file_name', default='')
149
- repo = request.args.get('repo', default='')
150
- url = request.args.get('url', default='')
151
- token = request.args.get('token', default='')
152
-
153
- try:
154
- # Crie o repositório
155
- repo_id = repo
156
- create_repo(repo_id=repo_id, token=token)
157
-
158
- # Faça o download do conteúdo da URL em memória
159
- response = requests.get(url)
160
- if response.status_code == 200:
161
- # Obtenha o conteúdo do arquivo em bytes
162
- file_content = response.content
163
- # Crie um objeto de arquivo em memória
164
- file_obj = BytesIO(file_content)
165
- # Faça o upload do arquivo
166
- upload_file(
167
- path_or_fileobj=file_obj,
168
- path_in_repo=file_name,
169
- repo_id=repo_id,
170
- token=token
171
- )
172
-
173
- # Mensagem de sucesso
174
- return jsonify({"message": "Sucess"})
175
- else:
176
- return jsonify({"error": "Failed"}), 500
177
- except Exception as e:
178
- return jsonify({"error": str(e)}), 500
179
-
180
- if __name__ == "__main__":
181
- app.run(host="0.0.0.0", port=7860)
 
1
  import requests
2
+ from flask import Flask, jsonify, request
3
+ from gradio.client import Client
 
 
4
 
5
  app = Flask(__name__)
6
 
7
  # Função para chamar a API de hospedagem de imagens
8
+ def host_image(image_url):
9
+ api_url = "https://wosocial.bubbleapps.io/version-test/api/1.1/wf/save"
10
+ payload = {'file': image_url}
11
+ response = requests.post(api_url, data=payload)
12
  if response.status_code == 200:
13
  return response.json()["response"]["result"]
14
  else:
15
  return None
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16
 
17
  @app.route('/faceswapper', methods=['GET'])
18
  def faceswapper():
 
29
  api_name="/predict"
30
  )
31
 
32
+ # Mesclar o endpoint com o caminho do arquivo
33
+ full_url = endpoint + "/file=" + result_path
34
+
35
  # Hospedar a imagem e obter a URL
36
+ hosted_url = host_image(full_url)
37
 
38
  if hosted_url:
39
  return jsonify({"result_url": hosted_url})
40
  else:
41
  return jsonify({"error": "Falha ao hospedar a imagem."}), 500
42
 
43
+ if __name__ == '__main__':
44
+ app.run(debug=True)