---
name: image_generator
lang: go
domain: ml
version: "1.0.0"
algebraic: product
definition: |
  type ImageGenerator interface {
      Generate(ctx context.Context, cfg GenerationConfig) (ImageGenResult, error)
  }
description: "Interface para backends de generacion de imagenes. Implementaciones pueden ser locales (ComfyUI, diffusers via Python subprocess) o remotas (API HTTP)."
tags: [ml, image-gen, diffusion, interface]
uses_types: [generation_config_go_ml, image_gen_result_go_ml]
file_path: "functions/ml/image_generator.go"
---

## Ejemplo

```go
// Cualquier backend que implemente Generate puede usarse de forma intercambiable.
var gen ImageGenerator = NewComfyUIBackend(cfg)
result, err := gen.Generate(ctx, GenerationConfig{
    Prompt: "a serene mountain lake at dawn",
    Steps:  25,
    // ...
})
```

## Notas

Interface minima de un metodo. Los backends locales (ComfyUI, diffusers) y remotos (APIs)
implementan el mismo contrato. El caller no necesita saber el backend concreto.
`ctx` permite cancelacion y timeout. Los errores de backend se propagan directamente.
