artificialguybr commited on
Commit
8264ed9
1 Parent(s): 3e5f8f0

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +13 -31
app.py CHANGED
@@ -10,14 +10,13 @@ import time
10
  repo = "artificialguybr/StudioGhibli.Redmond-V2"
11
  trigger_word = "Studio Ghibli, StdGBRedmAF"
12
 
13
- # Função para enviar o prompt para a API e receber a imagem gerada
14
  def generate_image(prompt):
15
  api_url = f"https://api-inference.huggingface.co/models/{repo}"
16
- #token = os.getenv("API_TOKEN") # Substitua pelo seu token da API do Hugging Face
17
  headers = {
18
  #"Authorization": f"Bearer {token}"
19
  }
20
- full_prompt = f"{prompt} {trigger_word}" # Combina o prompt do usuário com a trigger word
21
  payload = {
22
  "inputs": full_prompt,
23
  "parameters": {
@@ -30,34 +29,18 @@ def generate_image(prompt):
30
  error_count = 0
31
  pbar = tqdm(total=None, desc="Loading model")
32
  while True:
33
- try:
34
- response = requests.post(api_url, headers=headers, json=payload)
35
- if response.status_code == 200:
36
- image_data = response.json().get("data", [])[0] # Obtém os dados da imagem
37
- return Image.open(BytesIO(image_data))
38
- elif response.status_code == 503:
39
- # 503 é quando o modelo está em inicialização
40
- time.sleep(1)
41
- pbar.update(1)
42
- elif response.status_code == 500 and error_count < 5:
43
- # Erro interno do servidor, tenta novamente até 5 vezes
44
- time.sleep(1)
45
- error_count += 1
46
- else:
47
- raise Exception(f"API Error: {response.status_code}")
48
- except requests.exceptions.HTTPError as http_err:
49
- print(f"HTTP error occurred: {http_err}")
50
- except requests.exceptions.RequestException as err:
51
- print(f"An error occurred: {err}")
52
- except requests.exceptions.JSONDecodeError as json_err:
53
- print(f"JSON decode error: {json_err}")
54
- # Se a resposta não for JSON, tenta carregar a imagem diretamente
55
- return Image.open(BytesIO(response.content))
56
- except Exception as e:
57
- print(f"An unexpected error occurred: {e}")
58
- break # Sai do loop se um erro inesperado ocorrer
59
 
60
- # Criando a interface do Gradio
61
  iface = gr.Interface(
62
  fn=generate_image,
63
  inputs=gr.Textbox(lines=2, placeholder="Digite seu prompt aqui..."),
@@ -66,5 +49,4 @@ iface = gr.Interface(
66
  description="Insira um prompt de texto para gerar uma imagem com o estilo do Studio Ghibli."
67
  )
68
 
69
- # Iniciando a interface
70
  iface.launch()
 
10
  repo = "artificialguybr/StudioGhibli.Redmond-V2"
11
  trigger_word = "Studio Ghibli, StdGBRedmAF"
12
 
 
13
  def generate_image(prompt):
14
  api_url = f"https://api-inference.huggingface.co/models/{repo}"
15
+ #token = os.getenv("API_TOKEN") # Descomente e use seu token da API do Hugging Face
16
  headers = {
17
  #"Authorization": f"Bearer {token}"
18
  }
19
+ full_prompt = f"{prompt} {trigger_word}"
20
  payload = {
21
  "inputs": full_prompt,
22
  "parameters": {
 
29
  error_count = 0
30
  pbar = tqdm(total=None, desc="Loading model")
31
  while True:
32
+ response = requests.post(api_url, headers=headers, json=payload)
33
+ if response.status_code == 200:
34
+ return Image.open(BytesIO(response.content)) # Alterado para corresponder ao primeiro código
35
+ elif response.status_code == 503:
36
+ time.sleep(1)
37
+ pbar.update(1)
38
+ elif response.status_code == 500 and error_count < 5:
39
+ time.sleep(1)
40
+ error_count += 1
41
+ else:
42
+ raise Exception(f"API Error: {response.status_code}")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
43
 
 
44
  iface = gr.Interface(
45
  fn=generate_image,
46
  inputs=gr.Textbox(lines=2, placeholder="Digite seu prompt aqui..."),
 
49
  description="Insira um prompt de texto para gerar uma imagem com o estilo do Studio Ghibli."
50
  )
51
 
 
52
  iface.launch()