feat(ml): auto-commit con 14 cambios
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
---
|
||||
name: sdcpp_python_load
|
||||
kind: function
|
||||
lang: py
|
||||
domain: ml
|
||||
version: "1.0.0"
|
||||
purity: impure
|
||||
signature: "def sdcpp_python_load(model: ModelRef, n_threads: int = -1, wtype: str = 'default', rng_type: str = 'cuda') -> Any"
|
||||
description: "Carga un StableDiffusion via stable-diffusion-cpp-python con cache global por (model_key, wtype, n_threads). Segunda llamada con mismos params retorna instancia cacheada sin recargar disco."
|
||||
tags: [ml, stable-diffusion, sdcpp, inference, backend, cache, load]
|
||||
uses_functions: []
|
||||
uses_types: [model_ref_py_ml]
|
||||
returns: []
|
||||
returns_optional: false
|
||||
error_type: "error_go_core"
|
||||
imports: [stable_diffusion_cpp]
|
||||
params:
|
||||
- name: model
|
||||
desc: "Referencia al modelo. model.path se usa si presente; si no, model.name como ruta local o HuggingFace hub."
|
||||
- name: n_threads
|
||||
desc: "Numero de hilos CPU para inferencia. -1 usa todos los disponibles."
|
||||
- name: wtype
|
||||
desc: "Tipo de pesos en memoria: 'default' | 'f32' | 'f16' | 'q8_0' | 'q5_1' | 'q5_0' | 'q4_1' | 'q4_0'. 'default' respeta el tipo original del checkpoint."
|
||||
- name: rng_type
|
||||
desc: "Generador de aleatorios: 'std_default' | 'cuda'. 'cuda' produce resultados compatibles con la implementacion CUDA incluso en CPU."
|
||||
output: "Instancia StableDiffusion (stable_diffusion_cpp.StableDiffusion) lista para llamar a generate_image()."
|
||||
tested: true
|
||||
tests:
|
||||
- "load retorna objeto StableDiffusion"
|
||||
- "segunda llamada retorna instancia cacheada"
|
||||
test_file_path: "python/functions/ml/tests/test_sdcpp_python_backend.py"
|
||||
file_path: "python/functions/ml/sdcpp_python_load.py"
|
||||
---
|
||||
|
||||
## Ejemplo
|
||||
|
||||
```python
|
||||
import sys
|
||||
sys.path.insert(0, "python/functions/ml")
|
||||
from model_ref import ModelRef
|
||||
from sdcpp_python_load import sdcpp_python_load
|
||||
|
||||
model = ModelRef(
|
||||
name="sd-turbo",
|
||||
model_type="sd15",
|
||||
quantization="fp16",
|
||||
path="/home/lucas/vaults/imagegen_models/diffusers/sd-turbo/sd_turbo.safetensors",
|
||||
)
|
||||
sd = sdcpp_python_load(model, n_threads=-1, wtype="default")
|
||||
# sd listo para sd.generate_image(...)
|
||||
```
|
||||
|
||||
## Notas
|
||||
|
||||
- El cache evita recargas de disco en bucles de generacion con el mismo modelo.
|
||||
- `wtype="default"` respeta el tipo de cuantizacion del checkpoint; util para safetensors mixtos.
|
||||
- `rng_type="cuda"` produce seeds compatibles con la implementacion GPU aunque se corra en CPU.
|
||||
- Para limpiar el cache en tests: `sdcpp_python_load._clear_sd_cache()`.
|
||||
- Compilacion sin CUDA: `CMAKE_ARGS="-DSD_CUDA=OFF" pip install stable-diffusion-cpp-python`.
|
||||
- El binding 0.4.7 usa `generate_image()` (no `txt_to_img` que era la API de versiones anteriores).
|
||||
---
|
||||
Reference in New Issue
Block a user