Entradas

Script en Python para renombrar múltiples archivos PNG fácilmente

Normalmente, el comando rename de DOS hace bien su trabajo. Pero en casos especiales, donde los archivos deben seguir un patrón específico, se queda corto. En mi caso, solo necesitaba renombrarlos de forma secuencial. Es la segunda vez en menos de un mes que me enfrento a esta necesidad, así que decidí dejar por aquí un pequeño script generado por ChatGPT.
import os

# Get all .png files in the current directory
png_files = sorted([f for f in os.listdir('.') if f.lower().endswith('.png')])

# Rename each file
for i, filename in enumerate(png_files, start=1):
    new_name = f"image_{i:05}.png"
    os.rename(filename, new_name)
    print(f'Renamed "{filename}" -> "{new_name}"')

Script en Python para exportar consultas de SQL Server a un archivo de texto

Requisitos

Windows

Microsoft ODBC Driver 18 for SQL Server - https://learn.microsoft.com/es-es/sql/connect/odbc/download-odbc-driver-for-sql-server?view=sql-server-ver16#download-for-windows

Alpine

Buscar la versión de Microsoft ODBC Driver a instalar y descargarla. https://learn.microsoft.com/es-es/sql/connect/odbc/download-odbc-driver-for-sql-server?view=sql-server-ver16#alpine
curl -O https://download.microsoft.com/download/3/5/5/355d7943-a338-41a7-858d-53b259ea33f5/msodbcsql18_18.3.3.1-1_amd64.apk
apk add --allow-untrusted msodbcsql18_18.3.3.1-1_amd64.apk
/etc/odbc.ini
[ODBC Driver 18 for SQL Server]
Description=Microsoft ODBC Driver 17 for SQL Server
Driver=/opt/microsoft/msodbcsql18/lib64/libmsodbcsql-18.3.so.3.1
UsageCount=1

Python

pip install --upgrade pip
pip install pyodbc

Código

import pyodbc

#https://learn.microsoft.com/es-es/sql/connect/odbc/download-odbc-driver-for-sql-server?view=sql-server-ver16#download-for-windows

connectionString = f'DRIVER={{ODBC Driver 18 for SQL Server}};SERVER=localhost;DATABASE=prueba;UID=sa;PWD=contraseña;TrustServerCertificate=yes;'

conn = pyodbc.connect(connectionString) 


SQL_QUERY = "SELECT  GETDATE() AS col1;"

cursor = conn.cursor()
cursor.execute(SQL_QUERY)

fout = open('query.txt','w', encoding="utf-8")

for r in cursor.fetchall():
    fout.write(f'{r.col1}\n')

fout.close()
cursor.close()
conn.close()

Reinstalar Torch para ComfyUI


.\python.exe -m pip uninstall torch torchvision torchaudio
.\python.exe -m pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu126
.\python.exe -m pip install --force-reinstall numpy==1.26.4
.\python.exe -m pip install -U xformers --index-url https://download.pytorch.org/whl/cu126

Instalación de insightface para ComfyUI

Hay que ir a la carpeta ComfyUI\python_embeded

Es necesario saber la versión de Python

python -V


 En este caso la versión de Python es la 3.12.8, así que descargamos el wheel insightface-0.7.3-cp312-cp312-win_amd64.whl de la página https://github.com/Gourieff/Assets/tree/main/Insightface

Y se instala con el siguiente comando:

python -m pip install insightface-0.7.3-cp312-cp312-win_amd64.whl

Reinicio de asignación de puertos en Windows

Por alguna razón que me sobrepasa, no podía iniciar mi proyecto de servicio con VS Code, porque en resumen, el puerto estaba ocupado, lo curioso es que sólo manejo un puerto por servicio... y pues el puerto no estaba en uso.

Y como siempre, StackOverflow al rescate:

net stop winnat
net start winnat
Fuente

Prompt negativo - Stable Diffusion

Prompt Negativo para Personas

Imagen generada con stable diffusion
bad anatomy, bad arms, bad face, bad hands, bad proportions, bad quality, blurry, cloned face, collage, cropped, deformed, dehydrated, disconeected limbs, disconnected fingers, disconnected limbs, disfigured, disgusting, error, extra abs, extra arms, extra crus, extra eyes, extra fingers, extra hands, extra limbs, extra thigh, fused crus, fused face, fused feet, fused fingers, fused limbs, fused thigh, gross proportions, jpeg, jpeg artifacts, logo, long fingers, long neck, low quality, low res, malformed limbs, missing arms, missing fingers, missing legs, mutated, mutated hands, mutated limbs, out of focus, out of frame, picture frame, poorly drawn face, poorly drawn hands, signature, text, three crus, three feet, three hands, three legs, three thigh, ugly, ugly fingers, username, watermark, worst face, worst feet, worst quality, worst thigh
(bad quality),(low quality),(worst quality), (low res), jpeg, (jpeg artifacts), logo, signature, username, watermark

Comandos de Docker

Enlistar nombres de contenedores
docker ps --format "{{.Names}}"
Detener todos los contenedores app
docker container stop $(docker container ls -q --filter name=app_*)
Cambiar la política de reinicio del contenedor
docker update --restart unless-stopped contenedor
Ver las últimas 10 líneas del log
docker logs -f --tail 10 contenedor
Ver el log de la última hora
docker logs --since=1h contenedor

Fuentes