aec5d82011
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2.8 KiB
2.8 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 | ||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| sdcpp_python_generate | function | py | ml | 1.0.0 | impure | def sdcpp_python_generate(sd: Any, cfg: GenerationConfig) -> ImageGenResult | Genera una imagen con un StableDiffusion (stable-diffusion-cpp-python) usando GenerationConfig como contrato. Mapea sampler, mide duracion y retorna ImageGenResult con meta del backend. |
|
|
|
|
false | error_go_core |
|
|
ImageGenResult con image=PIL.Image (primera del batch), meta con backend/model/sampler/seed/wtype, duration_ms medido, vram_peak_mb=None. | true |
|
python/functions/ml/tests/test_sdcpp_python_backend.py | python/functions/ml/sdcpp_python_generate.py |
Ejemplo
import sys
sys.path.insert(0, "python/functions/ml")
from model_ref import ModelRef
from generation_config import GenerationConfig
from sdcpp_python_load import sdcpp_python_load
from sdcpp_python_generate import sdcpp_python_generate
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)
cfg = GenerationConfig(
prompt="a red cat sitting on a wooden table",
seed=42,
steps=4,
cfg_scale=1.0,
sampler="euler_a",
width=512,
height=512,
model=model,
)
result = sdcpp_python_generate(sd, cfg)
result.image.save("/tmp/output.png")
print(f"Generado en {result.duration_ms}ms, meta={result.meta}")
Notas
- El sampler mapping canonico: euler->euler, euler_a->euler_a, dpm++2m->dpmpp2m, dpm++2m_v2->dpmpp2mv2, heun->heun, dpm2->dpm2, lcm->lcm.
- API usada:
StableDiffusion.generate_image()(binding 0.4.7+). Versiones anteriores exponíantxt_to_img()— actualizar el package si se encuentra ese error. vram_peak_mbsiempre None: stable-diffusion-cpp-python no expone medicion de VRAM.clip_skip: -1 le dice al backend que use el valor por defecto del modelo (equivale a no especificarlo). Si cfg.clip_skip es None, se pasa -1.- El campo
wtypeen meta se extrae viagetattr(sd, 'wtype', 'unknown')ya que el binding no garantiza el atributo en todas las versiones.