Spaces:
Sleeping
Sleeping
Update app.py
Browse filesMudado o perfil "Rápida" para usar steps: 10 (que é um valor seguro e rápido para o FLUX.1-schnell) e adicionado uma lógica de "grampo" (clamp) dentro da função gerar_imagem_robusta. Agora, antes de chamar a API, o código verifica se o modelo é o FLUX.1-schnell e, em caso afirmativo, força o número de passos a ser no máximo 16, mesmo que o perfil "Balanceada" (25) ou "Alta" (30) tenha sido selecionado
app.py
CHANGED
|
@@ -795,19 +795,19 @@ def gerar_imagem_robusta(descricao_pt, estilo_escolhido, qualidade, filtro_escol
|
|
| 795 |
Retorna: (PIL.Image, str_mensagem_status)
|
| 796 |
"""
|
| 797 |
|
| 798 |
-
# 1. Configs de Qualidade
|
| 799 |
configs_qualidade = {
|
| 800 |
"Rápida": {
|
| 801 |
"modelos": [MODELOS_IMAGEM[0]], # Só FLUX-schnell
|
| 802 |
-
"steps": 20
|
| 803 |
},
|
| 804 |
"Balanceada": {
|
| 805 |
"modelos": MODELOS_IMAGEM[:2], # FLUX schnell + dev
|
| 806 |
-
"steps": 25
|
| 807 |
},
|
| 808 |
"Alta": {
|
| 809 |
-
"modelos": MODELOS_IMAGEM, # Todos os 3
|
| 810 |
-
"steps": 30
|
| 811 |
}
|
| 812 |
}
|
| 813 |
config = configs_qualidade.get(qualidade, configs_qualidade["Balanceada"])
|
|
@@ -827,13 +827,26 @@ def gerar_imagem_robusta(descricao_pt, estilo_escolhido, qualidade, filtro_escol
|
|
| 827 |
|
| 828 |
print(f"Tentando gerar imagem com {modelo_config['nome']}...")
|
| 829 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 830 |
client = InferenceClient(api_key=HUGGINGFACE_API_KEY)
|
| 831 |
|
| 832 |
imagem = client.text_to_image(
|
| 833 |
prompt=prompt_final_en,
|
| 834 |
model=modelo_config['id'],
|
| 835 |
negative_prompt=negative_prompt,
|
| 836 |
-
num_inference_steps=
|
| 837 |
)
|
| 838 |
|
| 839 |
print(f"✅ Imagem gerada com {modelo_config['nome']}")
|
|
|
|
| 795 |
Retorna: (PIL.Image, str_mensagem_status)
|
| 796 |
"""
|
| 797 |
|
| 798 |
+
# 1. Configs de Qualidade (CORRIGIDO)
|
| 799 |
configs_qualidade = {
|
| 800 |
"Rápida": {
|
| 801 |
"modelos": [MODELOS_IMAGEM[0]], # Só FLUX-schnell
|
| 802 |
+
"steps": 10 # CORRIGIDO: Era 20, o máximo é 16. 10 é seguro e rápido.
|
| 803 |
},
|
| 804 |
"Balanceada": {
|
| 805 |
"modelos": MODELOS_IMAGEM[:2], # FLUX schnell + dev
|
| 806 |
+
"steps": 25 # Mantém 25 (para o FLUX.1-dev)
|
| 807 |
},
|
| 808 |
"Alta": {
|
| 809 |
+
"modelos": MODELOS_IMAGEM, # Todos os 3
|
| 810 |
+
"steps": 30 # Mantém 30 (para SDXL e FLUX.1-dev)
|
| 811 |
}
|
| 812 |
}
|
| 813 |
config = configs_qualidade.get(qualidade, configs_qualidade["Balanceada"])
|
|
|
|
| 827 |
|
| 828 |
print(f"Tentando gerar imagem com {modelo_config['nome']}...")
|
| 829 |
|
| 830 |
+
# --- INÍCIO DA CORREÇÃO ---
|
| 831 |
+
# Pega o 'steps' do perfil de qualidade
|
| 832 |
+
steps_para_usar = config['steps']
|
| 833 |
+
|
| 834 |
+
# FLUX.1-schnell tem um limite MÁXIMO de 16 steps.
|
| 835 |
+
# Se este modelo for tentado, devemos forçar os steps para um valor seguro.
|
| 836 |
+
if modelo_config['id'] == "black-forest-labs/FLUX.1-schnell":
|
| 837 |
+
# Se o perfil for "Rápida", ele já é 10.
|
| 838 |
+
# Se for "Balanceada" (25) ou "Alta" (30), reduzimos para 16 (limite máx).
|
| 839 |
+
steps_para_usar = min(config['steps'], 16)
|
| 840 |
+
print(f"Ajustando steps para {steps_para_usar} para o modelo FLUX.1-schnell.")
|
| 841 |
+
# --- FIM DA CORREÇÃO ---
|
| 842 |
+
|
| 843 |
client = InferenceClient(api_key=HUGGINGFACE_API_KEY)
|
| 844 |
|
| 845 |
imagem = client.text_to_image(
|
| 846 |
prompt=prompt_final_en,
|
| 847 |
model=modelo_config['id'],
|
| 848 |
negative_prompt=negative_prompt,
|
| 849 |
+
num_inference_steps=steps_para_usar # CORRIGIDO
|
| 850 |
)
|
| 851 |
|
| 852 |
print(f"✅ Imagem gerada com {modelo_config['nome']}")
|