Files
fn_registry/python/functions/ml/image_save_png.md
T
egutierrez a802f59f55 chore: auto-commit (95 archivos)
- cmd/fn/doctor.go
- cmd/fn/main.go
- cpp/apps/primitives_gallery/playground/tables/CMakeLists.txt
- cpp/apps/primitives_gallery/playground/tables/data_table.cpp
- cpp/apps/primitives_gallery/playground/tables/data_table_logic.cpp
- cpp/apps/primitives_gallery/playground/tables/data_table_logic.h
- cpp/apps/primitives_gallery/playground/tables/self_test.cpp
- cpp/apps/primitives_gallery/playground/tables/tql.cpp
- cpp/apps/primitives_gallery/playground/tables/viz.cpp
- cpp/apps/primitives_gallery/playground/tables/viz.h
- ...

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-13 00:50:34 +02:00

2.4 KiB

name, kind, lang, domain, version, purity, signature, description, tags, uses_functions, uses_types, returns, returns_optional, error_type, imports, params, output, tested, tests, test_file_path, file_path
name kind lang domain version purity signature description tags uses_functions uses_types returns returns_optional error_type imports params output tested tests test_file_path file_path
image_save_png function py ml 1.0.0 impure def image_save_png(img: PIL.Image.Image, path: str, metadata: dict | None = None) -> str Guarda una PIL Image como PNG con metadata embebida en chunks tEXt (prompt, seed, steps, sampler, model). Crea directorio padre si no existe. Retorna path absoluto escrito.
image
png
pil
pillow
metadata
save
ml
reproducibility
false error_go_core
Pillow
name desc
img imagen PIL.Image.Image a guardar
name desc
path ruta de destino del archivo PNG (absoluta o relativa)
name desc
metadata dict opcional de pares clave/valor a embeber en chunks tEXt del PNG para reproducibilidad (prompt, seed, steps, etc.)
string: ruta absoluta del archivo PNG escrito true
crea imagen 8x8, guarda y retorna ruta absoluta
metadata se embebe en chunks tEXt y se puede releer con Image.text
sin metadata el PNG se guarda igualmente
crea directorio padre si no existe
valores numericos en metadata se convierten a str automaticamente
python/functions/ml/tests/test_image_save_png.py python/functions/ml/image_save_png.py

Ejemplo

from PIL import Image
from ml.image_save_png import image_save_png

img = Image.new("RGB", (512, 512), color=(128, 64, 200))
path = image_save_png(
    img,
    "outputs/gen_001.png",
    metadata={
        "prompt": "a cat on a purple sofa",
        "seed": 42,
        "steps": 20,
        "sampler": "euler_a",
        "model": "sd-v1-5",
    },
)
# path = "/home/lucas/.../outputs/gen_001.png"
# Los metadatos quedan embebidos en el PNG y son legibles con exiftool o PIL.

Notas

  • Usa PngImagePlugin.PngInfo para chunks tEXt (texto plano, no comprimido). Para texto largo/comprimido existe add_itxt, pero add_text es compatible con la mayoria de lectores (exiftool, A1111, ComfyUI, etc.).
  • Los valores del dict se convierten a str automaticamente — se puede pasar int, float o bool sin castear.
  • Si metadata es None o {}, el PNG se guarda sin chunks extra (igual que img.save(path)).
  • Pillow no esta en los imports por defecto del registry para no bloquear fn index. Se importa lazy dentro de la funcion.
  • impure: escribe en disco y crea directorios.