1. Introducción
En la guía anterior vimos como generar imágenes desde cero mediante texto (text-to-image). Si estas llegando por primera vez aquí, quizás te convendría echar un vistazo a la guía anterior, donde también abordamos la instalación y configuración.
Ahora vamos a dar un paso más y aprenderemos a generar imágenes basadas en otra imagen de referencia, lo que se conoce como i2i, img2img o image-to-image.
El funcionamiento es similar al text-to-image, pero en lugar de partir sólo de texto (prompt inicial), partimos de una imagen existente que el modelo va a transformar siguiendo las indicaciones del prompt:
Esto es muy útil para múltiples casos de uso: mejorar una imagen existente, cambiar el estilo, corregir detalles, o incluso hacer inpainting (modificar solo partes concretas de la imagen).
2. Uso básico
Para usar img2img con sd-cli, simplemente necesitamos añadir el parámetro -i o --init-img con la ruta a la imagen de referencia. En este caso, utilizaremos Krea 2 Turbo, un potente modelo de generación de imagen, ayudado de Qwen3 para trabajar con el prompt de texto:
sd-cli --diffusion-model krea2_turbo-Q4_K_M.gguf \
--llm Qwen3VL-4B-Instruct-Q8_0.gguf \
--vae wan_2.1_vae.safetensors \
-p "A floating white robot with yellow cat face and arms with green leds on low poly style" \
-W 1024 -H 1024 \
--seed -1 \
--cfg-scale 1.0 \
--sampling-method euler \
--scheduler simple \
-i reference.png \
--strength 0.5 \
-o output.png
Ahora, como podrás observar, al contrario que con Stable Diffusion, el modelo, el CLIP y el VAE se encuentran en ficheros separados. Observa también que el comando es casi idéntico al de text-to-image, pero ahora incluimos -i imagen_entrada.png y el parámetro --strength que veremos a continuación.
3. El parámetro strength
El parámetro --strength es el corazón de img2img. Controla cuánto ruido se añade a la imagen de entrada y por tanto cuánto puede cambiar el resultado. Recuerda que el ruido es la parte que genera una nueva imagen, por lo que un 0.4 de ruido generará un 40% de la imagen, y conservará un 60% de la imagen de referencia:
| Valor de strength | Efecto |
|---|---|
0.1 - 0.3 |
Cambios sutiles. La imagen resultante se parece mucho a la original. Ideal para correcciones menores. |
0.4 - 0.6 |
Cambios moderados. Mantiene la estructura general pero permite variaciones notables. |
0.7 - 0.85 |
Cambios significativos. Solo conserva la composición básica de la imagen. |
0.9 - 1.0 |
Cambios extremos. Prácticamente genera una nueva imagen, usando vagamente la referencia. |
sd-cli ... -i entrada.png --strength 0.3 \
-p "..." -o imagen_con_baja_variacion.png
sd-cli ... -i entrada.png --strength 0.7 \
-p "..." -o imagen_con_alta_variacion.png
Consejo: Un valor de
0.5o0.55es un buen punto de partida para experimentar. Si el resultado se parece demasiado a la original, sube el valor; si se aleja demasiado, bájalo.
4. Ejemplo de img2img
Imagina que tienes una imagen y quieres hacer variaciones sobre ella:
sd-cli --diffusion-model krea2_turbo-Q4_K_M.gguf \
--llm Qwen3VL-4B-Instruct-Q8_0.gguf \
--vae wan_2.1_vae.safetensors \
-p "A floating white robot with yellow cat face and arms with green leds on low poly style" \
-W 1024 -H 1024 \
-n "blur, low quality" \
--cfg-scale 1.0 \
--sampling-method euler \
--seed -1 \
-i reference.png \
--strength 0.55 \
-o image.png
En el siguiente ejemplo interactivo puedes ver como varía el resultado según el valor de strength utilizado. La imagen de referencia es un robot con forma de gato, y se ha generado con el prompt "A floating white robot with yellow cat face and arms with green leds, low poly style":
A medida que más alto es el valor de strength, menos importancia le da a la imagen de referencia y más importancia le da al prompt.
5. Inpainting con máscara
El inpainting es una técnica que permite modificar solo una zona concreta de la imagen, indicada mediante una máscara. Para ello utilizamos el parámetro --mask:
sd-cli --diffusion-model krea2_turbo-Q4_K_M.gguf \
--llm Qwen3VL-4B-Instruct-Q8_0.gguf \
--vae wan_2.1_vae.safetensors \
-i imagen_original.png \
--mask mascara.png \
-p "A floating white robot with rabbit ears on low poly style" \
--strength 0.8 \
--seed -1 \
--cfg-scale 1.0 \
--sampling-method euler \
-o resultado_inpaint.png
La máscara es una imagen en escala de grises donde:
- Negro (
#000000): zonas que no se modifican - Blanco (
#FFFFFF): zonas que sí se modifican
Puedes crear máscaras con herramientas como GIMP, Photoshop o incluso Paint. Simplemente pinta de blanco la zona que quieres que la IA regenere:
Importante: La máscara debe tener las mismas dimensiones que la imagen de entrada.
6. Consejos y buenas prácticas
| Consejo | Detalle |
|---|---|
| Resolución | Usa la misma resolución que la imagen de entrada, o acércate lo más posible. Si la imagen de entrada es 1024x768, usa esos valores en -W y -H. |
| Prompt descriptivo | Describe lo que quieres ver en el resultado, no lo que hay en la imagen original. El modelo se encargará de mantener la composición según el strength. |
| Negative prompt | Usa -n para indicar lo que no quieres. Por ejemplo: -n "blur, low quality, deformed". |
| Modelo adecuado | Hay modelos que permiten edición avanzada como Qwen Image Edit o FLUX Klein. |
| Misma semilla | Usa la misma semilla con --seed de la imagen original para obtener resultados más fieles/coherentes. |
Recuerda: Si quieres profundizar más en los parámetros generales (CFG, steps, sampling, scheduler), consulta la guía principal de StableDiffusion.cpp.

