nftnik commited on
Commit
aa3232a
·
verified ·
1 Parent(s): 02c8fdb

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +12 -34
app.py CHANGED
@@ -9,17 +9,15 @@ from huggingface_hub import hf_hub_download
9
  import spaces
10
  from typing import Union, Sequence, Mapping, Any
11
  import logging
12
-
13
- # Adicione se ainda não tiver
14
  from nodes import NODE_CLASS_MAPPINGS, init_extra_nodes, SaveImage # <-- Node SaveImage
15
  from comfy import model_management
16
  import folder_paths
17
 
18
- # Configurar logging para debug
19
  logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
20
  logger = logging.getLogger(__name__)
21
 
22
- # 1. Configuração de Caminhos e Imports
23
  current_dir = os.path.dirname(os.path.abspath(__file__))
24
  sys.path.append(current_dir)
25
 
@@ -31,7 +29,7 @@ os.makedirs(output_dir, exist_ok=True)
31
  os.makedirs(models_dir, exist_ok=True)
32
  folder_paths.set_output_directory(output_dir)
33
 
34
- # Configurar caminhos dos modelos e verificar estrutura
35
  MODEL_FOLDERS = ["style_models", "text_encoders", "vae", "unet", "clip_vision"]
36
  for model_folder in MODEL_FOLDERS:
37
  folder_path = os.path.join(models_dir, model_folder)
@@ -39,7 +37,7 @@ for model_folder in MODEL_FOLDERS:
39
  folder_paths.add_model_folder_path(model_folder, folder_path)
40
  logger.info(f"Pasta de modelo configurada: {model_folder}")
41
 
42
- # 4. Diagnóstico CUDA
43
  logger.info(f"Python version: {sys.version}")
44
  logger.info(f"Torch version: {torch.__version__}")
45
  logger.info(f"CUDA disponível: {torch.cuda.is_available()}")
@@ -47,7 +45,7 @@ logger.info(f"Quantidade de GPUs: {torch.cuda.device_count()}")
47
  if torch.cuda.is_available():
48
  logger.info(f"GPU atual: {torch.cuda.get_device_name(0)}")
49
 
50
- # 5. Inicialização do ComfyUI
51
  logger.info("Inicializando ComfyUI...")
52
  try:
53
  init_extra_nodes()
@@ -55,7 +53,7 @@ except Exception as e:
55
  logger.warning(f"Aviso na inicialização de nós extras: {str(e)}")
56
  logger.info("Continuando mesmo com avisos nos nós extras...")
57
 
58
- # 6. Helper Functions
59
  def get_value_at_index(obj: Union[Sequence, Mapping], index: int) -> Any:
60
  try:
61
  return obj[index]
@@ -69,7 +67,7 @@ def verify_file_exists(folder: str, filename: str) -> bool:
69
  logger.error(f"Arquivo não encontrado: {file_path}")
70
  return exists
71
 
72
- # 7. Download de Modelos
73
  logger.info("Baixando modelos necessários...")
74
  try:
75
  hf_hub_download(
@@ -106,7 +104,7 @@ except Exception as e:
106
  logger.error(f"Erro ao baixar modelos: {str(e)}")
107
  raise
108
 
109
- # 8. Inicialização dos Modelos
110
  logger.info("Inicializando modelos...")
111
  try:
112
  with torch.no_grad():
@@ -169,7 +167,7 @@ except Exception as e:
169
  logger.error(f"Erro ao inicializar modelos: {str(e)}")
170
  raise
171
 
172
- # 9. Função de Geração
173
  @spaces.GPU
174
  def generate_image(
175
  prompt, input_image, lora_weight, guidance, downsampling_factor,
@@ -246,35 +244,15 @@ def generate_image(
246
  vae=VAE_MODEL[0]
247
  )
248
 
249
- # ======================== SALVAR IMAGEM USANDO O NODE SaveImage ======================
250
  logger.info("Salvando imagem via node SaveImage...")
251
-
252
- # 1. Pegue a saída do decode (tensor)
253
- decoded_tensor = decoded[0] # se 'decoded' for um dict/tuple, ajuste conforme preciso
254
-
255
- # 2. Instancia o SaveImage
256
  saveimage_node = NODE_CLASS_MAPPINGS["SaveImage"]()
257
-
258
- # 3. Usa o método save_images
259
- # 'filename_prefix' é o prefixo do arquivo de saída
260
  result_dict = saveimage_node.save_images(
261
- filename_prefix="FluxRedux", # ou algo dinâmico se preferir
262
  images=decoded_tensor
263
  )
264
-
265
- # 4. Normalmente, o node 'save_images' retorna um dicionário contendo:
266
- # {
267
- # 'ui': {
268
- # 'images': [
269
- # {'filename': 'FluxRedux_12345.png', 'subfolder': ''},
270
- # ...
271
- # ]
272
- # },
273
- # ...
274
- # }
275
- # Assim, para pegar o nome do arquivo salvo:
276
  saved_path = os.path.join(output_dir, result_dict["ui"]["images"][0]["filename"])
277
-
278
  logger.info(f"Imagem salva em: {saved_path}")
279
  return saved_path
280
 
 
9
  import spaces
10
  from typing import Union, Sequence, Mapping, Any
11
  import logging
 
 
12
  from nodes import NODE_CLASS_MAPPINGS, init_extra_nodes, SaveImage # <-- Node SaveImage
13
  from comfy import model_management
14
  import folder_paths
15
 
16
+ # 1. Configurar logging para debug
17
  logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
18
  logger = logging.getLogger(__name__)
19
 
20
+ # 2. Configuração de Caminhos e Imports
21
  current_dir = os.path.dirname(os.path.abspath(__file__))
22
  sys.path.append(current_dir)
23
 
 
29
  os.makedirs(models_dir, exist_ok=True)
30
  folder_paths.set_output_directory(output_dir)
31
 
32
+ # 4. Configurar caminhos dos modelos e verificar estrutura
33
  MODEL_FOLDERS = ["style_models", "text_encoders", "vae", "unet", "clip_vision"]
34
  for model_folder in MODEL_FOLDERS:
35
  folder_path = os.path.join(models_dir, model_folder)
 
37
  folder_paths.add_model_folder_path(model_folder, folder_path)
38
  logger.info(f"Pasta de modelo configurada: {model_folder}")
39
 
40
+ # 5. Diagnóstico CUDA
41
  logger.info(f"Python version: {sys.version}")
42
  logger.info(f"Torch version: {torch.__version__}")
43
  logger.info(f"CUDA disponível: {torch.cuda.is_available()}")
 
45
  if torch.cuda.is_available():
46
  logger.info(f"GPU atual: {torch.cuda.get_device_name(0)}")
47
 
48
+ # 6. Inicialização do ComfyUI
49
  logger.info("Inicializando ComfyUI...")
50
  try:
51
  init_extra_nodes()
 
53
  logger.warning(f"Aviso na inicialização de nós extras: {str(e)}")
54
  logger.info("Continuando mesmo com avisos nos nós extras...")
55
 
56
+ # 7. Helper Functions
57
  def get_value_at_index(obj: Union[Sequence, Mapping], index: int) -> Any:
58
  try:
59
  return obj[index]
 
67
  logger.error(f"Arquivo não encontrado: {file_path}")
68
  return exists
69
 
70
+ # 8. Download de Modelos
71
  logger.info("Baixando modelos necessários...")
72
  try:
73
  hf_hub_download(
 
104
  logger.error(f"Erro ao baixar modelos: {str(e)}")
105
  raise
106
 
107
+ # 9. Inicialização dos Modelos
108
  logger.info("Inicializando modelos...")
109
  try:
110
  with torch.no_grad():
 
167
  logger.error(f"Erro ao inicializar modelos: {str(e)}")
168
  raise
169
 
170
+ # 10. Função de Geração
171
  @spaces.GPU
172
  def generate_image(
173
  prompt, input_image, lora_weight, guidance, downsampling_factor,
 
244
  vae=VAE_MODEL[0]
245
  )
246
 
247
+ # Salvar Imagem
248
  logger.info("Salvando imagem via node SaveImage...")
249
+ decoded_tensor = decoded[0]
 
 
 
 
250
  saveimage_node = NODE_CLASS_MAPPINGS["SaveImage"]()
 
 
 
251
  result_dict = saveimage_node.save_images(
252
+ filename_prefix="Flux_",
253
  images=decoded_tensor
254
  )
 
 
 
 
 
 
 
 
 
 
 
 
255
  saved_path = os.path.join(output_dir, result_dict["ui"]["images"][0]["filename"])
 
256
  logger.info(f"Imagem salva em: {saved_path}")
257
  return saved_path
258