---
name: generation_config
lang: go
domain: ml
version: "1.0.0"
algebraic: product
definition: |
  type GenerationConfig struct {
      Prompt         string    `json:"prompt"`
      NegativePrompt string    `json:"negative_prompt,omitempty"`
      Seed           int64     `json:"seed"`
      Steps          int       `json:"steps"`
      CfgScale       float64   `json:"cfg_scale"`
      Sampler        string    `json:"sampler"`
      Width          int       `json:"width"`
      Height         int       `json:"height"`
      Model          ModelRef  `json:"model"`
      Loras          []LoraRef `json:"loras,omitempty"`
      ClipSkip       *int      `json:"clip_skip,omitempty"`
  }
description: "Parametros de una solicitud de generacion de imagen. Espejo JSON-compatible de GenerationConfig_py_ml: roundtrip JSON bytes <-> Python sin perdida."
tags: [ml, image-gen, diffusion, config]
uses_types: [model_ref_go_ml, lora_ref_go_ml]
file_path: "functions/ml/generation_config.go"
---

## Ejemplo

```go
clipSkip := 2
cfg := GenerationConfig{
    Prompt:   "a photo of a cat in space, 8k, highly detailed",
    Seed:     42,
    Steps:    20,
    CfgScale: 7.0,
    Sampler:  "euler_a",
    Width:    512,
    Height:   512,
    Model: ModelRef{
        Name:         "dreamshaper_8",
        ModelType:    "sd15",
        Quantization: "fp16",
    },
    ClipSkip: &clipSkip,
}
```

## Notas

Todos los campos usan tags `json:` snake_case para coincidir con el dataclass Python homólogo.
`NegativePrompt`, `Loras` y `ClipSkip` son opcionales (`omitempty` / puntero).
`Sampler` es string libre — ver `SamplerName_go_ml` para los valores documentados.
`Seed` es `int64` para compatibilidad con seeds grandes de algunos backends.
