<?xml version="1.0" encoding="UTF-8"?>
    <rss
      version="2.0"
      xmlns:dc="http://purl.org/dc/elements/1.1/"
      xmlns:content="http://purl.org/rss/1.0/modules/content/"
      xmlns:atom="http://www.w3.org/2005/Atom"
      xmlns:webfeeds="http://webfeeds.org/rss/1.0"
    >
      <channel>
        <title><![CDATA[Félix Sanz — Español]]></title>
        <description><![CDATA[Artículos y experimentos sobre programación, inteligencia artificial y open source. Por Félix Sanz.]]></description>
        <link>https://www.felixsanz.dev/es</link>
        <image>
          <url>https://www.felixsanz.dev/assets/img/logo-144.png</url>
          <title><![CDATA[Félix Sanz — Español]]></title>
          <link>https://www.felixsanz.dev/es</link>
        </image>
        <generator>RSS</generator>
        <lastBuildDate>Tue, 18 Aug 2026 09:00:00 GMT</lastBuildDate>
        <atom:link
          href="https://www.felixsanz.dev/es/rss.xml"
          rel="self"
          type="application/rss+xml"
        />
        <pubDate>Tue, 18 Aug 2026 09:00:00 GMT</pubDate>
        <copyright>
          <![CDATA[Copyright (C) 2026 felixsanz.dev]]>
        </copyright>
        <language><![CDATA[es-es]]></language>
        <ttl>1440</ttl>
        
            <category><![CDATA[Programación]]></category>
          
            <category><![CDATA[Inteligencia artificial]]></category>
          
            <category><![CDATA[Open Source]]></category>
          
            <category><![CDATA[Desarrollo web]]></category>
          
            <category><![CDATA[Experimentos]]></category>
          
        <webfeeds:cover
          image="https://www.felixsanz.dev/assets/img/es/home.png"
        />
        <webfeeds:icon>https://www.felixsanz.dev/icon-192.png</webfeeds:icon>
        <webfeeds:logo>https://www.felixsanz.dev/favicon.svg</webfeeds:logo>
        <webfeeds:accentColor>#0d9298</webfeeds:accentColor>
        <webfeeds:related layout="card" target="browser" />
        
            <item>
              <title><![CDATA[Cómo funciona AI Creative Director]]></title>
              <description><![CDATA[Cómo AI Creative Director convierte una foto de producto en tres direcciones y genera cuatro imágenes para una campaña.]]></description>
              <content:encoded>
                <![CDATA[<p>Pedir cuatro imágenes de un mismo producto parece sencillo. Podemos repetir el nombre de la campaña en cuatro prompts y esperar que el modelo entienda que todas deben pertenecer al mismo mundo. Así podemos acabar con <strong>cuatro imágenes relacionadas por el texto, pero no necesariamente dirigidas como una campaña</strong>.</p><p><a href="https://www.felixsanz.dev/lab/creative-director">AI Creative Director</a> empieza un paso antes. Recibe la fotografía de un objeto y permite añadir una pequeña orientación sobre la campaña. En el ejemplo del Lab utilizamos un altavoz naranja y este <em>brief</em>:</p><p>La herramienta propone tres direcciones de arte, cada una con su propia idea y planificación fotográfica. Después elegimos una y generamos cuatro imágenes que cumplen funciones distintas dentro de la misma campaña.</p><p><a href="https://www.felixsanz.dev/es/articulos/como-funciona-ai-creative-director">Lee el artículo completo con sus ejemplos interactivos →</a></p>]]>
              </content:encoded>
              <link>https://www.felixsanz.dev/es/articulos/como-funciona-ai-creative-director</link>
              <guid isPermaLink="true">https://www.felixsanz.dev/es/articulos/como-funciona-ai-creative-director</guid>
              <dc:creator><![CDATA[Félix Sanz]]></dc:creator>
              
                <category><![CDATA[Inteligencia artificial]]></category>
              
                <category><![CDATA[Desarrollo]]></category>
              
              <pubDate>Tue, 18 Aug 2026 09:00:00 GMT</pubDate>
            </item>
        
            <item>
              <title><![CDATA[Los modelos abiertos siempre vuelven]]></title>
              <description><![CDATA[Por qué las empresas vuelven a publicar pesos, qué se reservan y qué libertad conserva quien utiliza sus modelos.]]></description>
              <content:encoded>
                <![CDATA[<p>El software libre tiene una curiosa habilidad para estar siempre a punto de ganarlo todo o de desaparecer. Llevamos décadas esperando el año de Linux en el escritorio y enterrándolo otra vez unos meses después. Con los modelos de inteligencia artificial está empezando a ocurrir algo parecido: <strong>los modelos abiertos también vuelven en oleadas</strong>.</p><p>Durante las últimas semanas han aparecido modelos con pesos descargables en casi todas las modalidades. Kimi K3 se ha acercado a los mejores modelos de lenguaje propietarios. Ideogram y Krea han publicado nuevos modelos de imagen. MiniMax ha abierto parte de H3 y Lightricks ha lanzado LTX-2.5 en su API junto a una colección de pesos descargables. Black Forest Labs también ha mostrado su primer modelo de vídeo y ya ha anunciado una futura variante abierta de FLUX 3.</p><p>Es tentador juntar todos estos lanzamientos y decir que los modelos propietarios están perdiendo su ventaja. El problema es que <strong>muchos de estos modelos no son realmente open source</strong>. Algunos no permiten el uso comercial. Otros conservan cerrada su mejor versión, y H3 excluye varios de los mayores mercados del mundo.</p><p><a href="https://www.felixsanz.dev/es/articulos/los-modelos-abiertos-siempre-vuelven">Lee el artículo completo con sus ejemplos interactivos →</a></p>]]>
              </content:encoded>
              <link>https://www.felixsanz.dev/es/articulos/los-modelos-abiertos-siempre-vuelven</link>
              <guid isPermaLink="true">https://www.felixsanz.dev/es/articulos/los-modelos-abiertos-siempre-vuelven</guid>
              <dc:creator><![CDATA[Félix Sanz]]></dc:creator>
              
                <category><![CDATA[Inteligencia artificial]]></category>
              
              <pubDate>Wed, 12 Aug 2026 16:00:00 GMT</pubDate>
            </item>
        
            <item>
              <title><![CDATA[Cómo funciona Image Debugger]]></title>
              <description><![CDATA[Cómo Image Debugger compara una imagen con su prompt y prueba dos maneras de corregirla: empezar de cero o editar el resultado.]]></description>
              <content:encoded>
                <![CDATA[<p>Una imagen generada puede <strong>estar bien y aun así no ser la imagen que pediste</strong>. La composición funciona, la iluminación también, pero algún detalle importante está mal. Lo normal en ese momento es volver a generar y esperar que el siguiente intento preste más atención.</p><p>En el ejemplo de este artículo, el prompt pide una mujer con un abrigo azul intenso delante de un tranvía rojo. La imagen muestra un abrigo negro y un tranvía blanco. Las dos diferencias son evidentes. Lo interesante es comprobar si podemos encontrarlas automáticamente y, sobre todo, qué hacemos después con ellas.</p><p><a href="https://www.felixsanz.dev/lab/image-debugger">Image Debugger</a> es el primer experimento del <a href="https://www.felixsanz.dev/lab">Lab</a>. Recibe una imagen y el prompt que debía describirla, identifica lo que no coincide y prueba dos maneras de recuperar la intención: generar otra imagen desde cero o editar la que ya tenemos.</p><p><a href="https://www.felixsanz.dev/es/articulos/como-funciona-image-debugger">Lee el artículo completo con sus ejemplos interactivos →</a></p>]]>
              </content:encoded>
              <link>https://www.felixsanz.dev/es/articulos/como-funciona-image-debugger</link>
              <guid isPermaLink="true">https://www.felixsanz.dev/es/articulos/como-funciona-image-debugger</guid>
              <dc:creator><![CDATA[Félix Sanz]]></dc:creator>
              
                <category><![CDATA[Inteligencia artificial]]></category>
              
                <category><![CDATA[Desarrollo]]></category>
              
              <pubDate>Wed, 05 Aug 2026 12:00:00 GMT</pubDate>
            </item>
        
            <item>
              <title><![CDATA[El blog, por dentro]]></title>
              <description><![CDATA[Qué cambió en el diseño del blog y cómo aproveché el proceso para integrar en el sistema los componentes que habían quedado fuera.]]></description>
              <content:encoded>
                <![CDATA[<p>En 2024 dejé de escribir en el blog. No porque me hubiera quedado sin ideas, sino porque había empezado a trabajar en la documentación de Runware y <strong>se llevó todo el tiempo que tenía disponible</strong>. Este sitio quedó aparcado y, casi sin darme cuenta, pasaron un par de años.</p><p>Cuando volvieron las ganas de experimentar y de escribir por mi cuenta, retomé el proyecto para poner en marcha el Lab, una nueva sección donde publicar pequeños experimentos. Una cosa llevó a la otra y acabé rediseñando el blog entero.</p><p>El diseño anterior funcionaba, pero durante esos dos años había aprendido mucho y quería aprovecharlo para mejorar la web. Había componentes que todavía no utilizaban el sistema y demasiados valores elegidos a ojo. El objetivo no era solo cambiar el aspecto, sino terminar con <strong>un sistema más coherente y más fácil de modificar</strong>.</p><p><a href="https://www.felixsanz.dev/es/articulos/el-blog-por-dentro">Lee el artículo completo con sus ejemplos interactivos →</a></p>]]>
              </content:encoded>
              <link>https://www.felixsanz.dev/es/articulos/el-blog-por-dentro</link>
              <guid isPermaLink="true">https://www.felixsanz.dev/es/articulos/el-blog-por-dentro</guid>
              <dc:creator><![CDATA[Félix Sanz]]></dc:creator>
              
                <category><![CDATA[Desarrollo]]></category>
              
                <category><![CDATA[UX]]></category>
              
              <pubDate>Tue, 28 Jul 2026 12:00:00 GMT</pubDate>
            </item>
        
            <item>
              <title><![CDATA[SDXL-Lightning: vistazo rápido y comparativa]]></title>
              <description><![CDATA[Con SDXL-Lightning podrás generar imágenes de altísima calidad utilizando un único paso.]]></description>
              <content:encoded>
                <![CDATA[<p><a href="https://huggingface.co/ByteDance/SDXL-Lightning">SDXL-Lightning</a> (<a href="https://arxiv.org/abs/2402.13929">paper</a>) es un nuevo método de <strong>destilación por difusión adversaria progresiva</strong> (<em>progressive adversarial diffusion distillation</em>) creado por investigadores de ByteDance (empresa propietaria de TikTok), para <strong>generar imágenes de alta calidad en muy pocos pasos</strong> (de ahí lo de <em>lightning</em>).</p><p>Esta propuesta toma inspiración y trabajo previo de SDXL Turbo y LCM-LoRA, añadiendo una serie de mejoras para <strong>eliminar las principales limitaciones</strong> de estos métodos.</p><p>SDXL-Lightning no se distribuye en un único modelo <em>multi-step</em>, si no que hay un <em>checkpoint</em> <strong>optimizado para cada uso</strong>. Se distribuye un <em>checkpoint</em> experimental para realizar inferencia en <strong>un único paso</strong>, además de <em>checkpoints</em> para <strong>2, 4 y 8 pasos</strong>. De todos estos <em>checkpoints</em> <a href="https://huggingface.co/ByteDance/SDXL-Lightning/tree/main">se puede descargar</a> el <strong>modelo completo</strong> con todos los componentes, solo el <strong>modelo U-Net</strong> o un <strong>módulo LoRA</strong> para utilizar SDXL-Lightning con cualquier otro modelo de Stable Diffusion XL (excepto el <em>checkpoint</em> de 1 paso donde el módulo LoRA no está disponible).</p><p><a href="https://www.felixsanz.dev/es/articulos/sdxl-lightning-vistazo-rapido-y-comparativa">Lee el artículo completo con sus ejemplos interactivos →</a></p>]]>
              </content:encoded>
              <link>https://www.felixsanz.dev/es/articulos/sdxl-lightning-vistazo-rapido-y-comparativa</link>
              <guid isPermaLink="true">https://www.felixsanz.dev/es/articulos/sdxl-lightning-vistazo-rapido-y-comparativa</guid>
              <dc:creator><![CDATA[Félix Sanz]]></dc:creator>
              
                <category><![CDATA[Inteligencia artificial]]></category>
              
                <category><![CDATA[Stable Diffusion]]></category>
              
              <pubDate>Thu, 29 Feb 2024 13:00:00 GMT</pubDate>
            </item>
        
            <item>
              <title><![CDATA[Guía definitiva para optimizar Stable Diffusion XL]]></title>
              <description><![CDATA[Descubre como obtener la mejor calidad y el mayor rendimiento en SDXL con cualquier tarjeta gráfica.]]></description>
              <content:encoded>
                <![CDATA[<p>En este artículo vamos a <strong>optimizar Stable Diffusion XL</strong>, tanto para utilizar la menor cantidad de memoria posible como para obtener el <strong>máximo rendimiento</strong> y generar imágenes de manera más rápida. Conseguiremos <strong>generar imágenes con SDXL utilizando tan solo 4 GB de memoria</strong>, por lo que será posible utilizar una tarjeta gráfica de gama baja.</p><p>Vamos a utilizar la librería <a href="https://github.com/huggingface/diffusers">diffusers</a> de Hugging Face ya que este blog está orientado al <em>scripting</em>/desarrollo. Aún así, aprender las diferentes <strong>técnicas de optimización</strong> y cómo interactúan entre ellas nos servirá para <strong>sacarle partido en todo tipo de aplicaciones</strong>, como por ejemplo Stable Diffusion web UI de Automatic1111 o, especialmente, ComfyUI.</p><p>El artículo puede parecer largo y denso, pero no tienes por qué leerlo entero del tirón. Mi objetivo es que conozcas las distintas técnicas de optimización que existen y que aprendas <strong>cuándo y cómo utilizarlas y combinarlas</strong>, aunque algunas de ellas ya suponen una diferencia sutancial por sí solas.</p><p><a href="https://www.felixsanz.dev/es/articulos/guia-definitiva-para-optimizar-stable-diffusion-xl">Lee el artículo completo con sus ejemplos interactivos →</a></p>]]>
              </content:encoded>
              <link>https://www.felixsanz.dev/es/articulos/guia-definitiva-para-optimizar-stable-diffusion-xl</link>
              <guid isPermaLink="true">https://www.felixsanz.dev/es/articulos/guia-definitiva-para-optimizar-stable-diffusion-xl</guid>
              <dc:creator><![CDATA[Félix Sanz]]></dc:creator>
              
                <category><![CDATA[Inteligencia artificial]]></category>
              
                <category><![CDATA[Stable Diffusion]]></category>
              
              <pubDate>Thu, 22 Feb 2024 13:00:00 GMT</pubDate>
            </item>
        
            <item>
              <title><![CDATA[PixArt-α con menos de 8GB de VRAM]]></title>
              <description><![CDATA[Realiza el proceso de inferencia de este modelo generativo de imágenes con tan solo 6.4GB de VRAM.]]></description>
              <content:encoded>
                <![CDATA[<p>En un <a href="https://www.felixsanz.dev/es/articulos/como-implementar-stable-diffusion">artículo anterior</a>, vimos cómo implementar cada componente de Stable Diffusion por separado para entender cómo interactúan entre sí. Gracias a este conocimiento podemos optimizar cualquier modelo de difusión para distintas situaciones, por ejemplo para <strong>disminuir el consumo de memoria</strong> o <strong>reducir el tiempo de inferencia</strong>.</p><p>Ya que hay mundo más allá de Stable Diffusion, en este artículo vamos a optimizar el uso de memoria del modelo de difusión fotorealístico llamado <a href="https://github.com/PixArt-alpha/PixArt-alpha">PixArt-α</a>. Este modelo tan creativo ha sido entrenado para generar imágenes de 1024x1024 y cuenta con una serie de ventajas respecto a Stable Diffusion, siendo la mayor de ellas la <strong>reducción en un 90% del tiempo y costes del proceso de entrenamiento</strong>.</p><p>La arquitectura es similar a Stable Diffusion al tratarse de un modelo de difusión. Se utiliza un tokenizador (<a href="https://huggingface.co/docs/transformers/model_doc/t5#transformers.T5Tokenizer">T5Tokenizer</a>), un <em>transformer</em> del tipo <em>text encoder</em> (<a href="https://huggingface.co/docs/transformers/model_doc/t5#transformers.T5EncoderModel">T5EncoderModel</a>), un <em>variational autoencoder</em> (VAE), un <em>scheduler</em> (DPM-Solver) y para limpiar el ruido se utiliza otro modelo de tipo <em>transformer</em> (<a href="https://huggingface.co/docs/diffusers/v0.25.1/en/api/models/transformer2d">Transformer2DModel</a>) en vez de un modelo U-Net.</p><p><a href="https://www.felixsanz.dev/es/articulos/pixart-a-con-menos-de-8gb-de-vram">Lee el artículo completo con sus ejemplos interactivos →</a></p>]]>
              </content:encoded>
              <link>https://www.felixsanz.dev/es/articulos/pixart-a-con-menos-de-8gb-de-vram</link>
              <guid isPermaLink="true">https://www.felixsanz.dev/es/articulos/pixart-a-con-menos-de-8gb-de-vram</guid>
              <dc:creator><![CDATA[Félix Sanz]]></dc:creator>
              
                <category><![CDATA[Inteligencia artificial]]></category>
              
              <pubDate>Sat, 20 Jan 2024 14:00:00 GMT</pubDate>
            </item>
        
            <item>
              <title><![CDATA[Cómo implementar Stable Diffusion]]></title>
              <description><![CDATA[Tras ver cómo funciona Stable Diffusion teóricamente ahora toca implementarlo en Python.]]></description>
              <content:encoded>
                <![CDATA[<p>En un <a href="https://www.felixsanz.dev/es/articulos/como-funciona-stable-diffusion">artículo anterior</a>, vimos como funciona Stable Diffusion entrando en detalle pero sin utilizar ni una sola línea de código. Vimos como se entrena un modelo (difusión hacia delante) para después utilizarlo en el proceso de inferencia y generar espectaculares imágenes con Inteligencia Artificial (difusión inversa). Si aún no has leído ese artículo, te recomiendo que lo hagas antes de continuar con este.</p><p>En este artículo <strong>vamos a implementar cada parte del proceso de inferencia</strong> mediante código en Python, para así comprender de manera más técnica su funcionamiento. Es probable que no entiendas a la perfección todas las líneas de código de este artículo. No te preocupes, no tiene importancia. La idea es ver de forma general cómo funciona, cuáles son sus componentes y cómo interactúan entre ellos.</p><p>Vamos a utilizar la misma versión que en el artículo anterior (Stable Diffusion 1.5) y un condicionamiento de tipo texto-a-imagen (txt2img).</p><p><a href="https://www.felixsanz.dev/es/articulos/como-implementar-stable-diffusion">Lee el artículo completo con sus ejemplos interactivos →</a></p>]]>
              </content:encoded>
              <link>https://www.felixsanz.dev/es/articulos/como-implementar-stable-diffusion</link>
              <guid isPermaLink="true">https://www.felixsanz.dev/es/articulos/como-implementar-stable-diffusion</guid>
              <dc:creator><![CDATA[Félix Sanz]]></dc:creator>
              
                <category><![CDATA[Inteligencia artificial]]></category>
              
                <category><![CDATA[Stable Diffusion]]></category>
              
              <pubDate>Mon, 15 Jan 2024 17:00:00 GMT</pubDate>
            </item>
        
            <item>
              <title><![CDATA[NixOS me hizo volver a Windows]]></title>
              <description><![CDATA[Te relato mi experiencia utilizando NixOS y por qué decidí cambiar de Linux a Windows tras 2 décadas.]]></description>
              <content:encoded>
                <![CDATA[<p>Aún recuerdo aquel día hace más de 20 años cuando, siendo un adolescente con un Intel 486 que funcionaba a pedales, me acerqué al cibercafé del barrio donde pasaba bastantes tardes jugando a Age of Empires. Pregunté al dueño si sabía <strong>como instalar Linux</strong>, ya que había oído que era capaz de funcionar en máquinas poco exigentes. Estuvimos charlando un rato y me regaló un CD de esos que venían con las revistas de informática. Contenía Red Hat Linux 5. Al entregármelo me dijo: &quot;toma, pero <strong>Linux no es la panacea</strong>&quot;.</p><p>Salí contento y deseoso de llegar a casa para decirle adiós a un Windows 95 que tenía que formatear todas las semanas. Efectivamente, no era la panacea. De hecho no entendí nada, pero esa experiencia <strong>sembró en mí una semilla</strong> que he ido cultivando desde entonces. Con el tiempo aprendí a utilizar Linux y cada cierto tiempo probaba una distribución nueva.</p><p>Pasé bastantes años utilizando Gentoo, ya que me permitía <strong>optimizar los recursos al máximo</strong> a cambio de compilar cada paquete del sistema. Cuando mi ordenador ya era suficientemente potente y moderno, empecé a utilizar distribuciones como SUSE o Ubuntu. Por último me asenté en <strong>Arch Linux</strong>, donde he estado probablemente más de una década. Era relativamente estable, moderno y seguramente <strong>la mejor experiencia para utilizar Linux en tu casa</strong>.</p><p><a href="https://www.felixsanz.dev/es/articulos/nixos-me-hizo-volver-a-windows">Lee el artículo completo con sus ejemplos interactivos →</a></p>]]>
              </content:encoded>
              <link>https://www.felixsanz.dev/es/articulos/nixos-me-hizo-volver-a-windows</link>
              <guid isPermaLink="true">https://www.felixsanz.dev/es/articulos/nixos-me-hizo-volver-a-windows</guid>
              <dc:creator><![CDATA[Félix Sanz]]></dc:creator>
              
                <category><![CDATA[Linux]]></category>
              
              <pubDate>Sat, 30 Dec 2023 14:00:00 GMT</pubDate>
            </item>
        
            <item>
              <title><![CDATA[Compatibilidad entre versiones de PyTorch, CUDA y xFormers]]></title>
              <description><![CDATA[Aprende cómo solucionar conflictos de dependencias en software de Inteligencia Artificial.]]></description>
              <content:encoded>
                <![CDATA[<p>Para ejecutar modelos generativos en nuestra máquina local recurrimos a software que nos facilita el proceso de <strong>inferencia</strong>.</p><p>Para los modelos generativos de texto como Falcon, Llama 2 o modelos de la familia Llama (Vicuna o Alpaca), solemos utilizar la interfaz <strong>Oobabooga text-generation-webui</strong> o <strong>FastChat</strong>.</p><p>En el caso de los modelos generativos de imagen, o más bien, en el caso de Stable Diffusion, las interfaces más populares son <strong>Stable Diffusion web UI</strong> de Automatic1111, <strong>Invoke AI</strong> o <strong>ComfyUI</strong>. Para el entrenamiento o fine-tuning de estos modelos se hace uso de aplicaciones/extensiones como <strong>Dreambooth</strong> o <strong>Kohya SS</strong>.</p><p><a href="https://www.felixsanz.dev/es/articulos/compatibilidad-entre-versiones-de-pytorch-cuda-y-xformers">Lee el artículo completo con sus ejemplos interactivos →</a></p>]]>
              </content:encoded>
              <link>https://www.felixsanz.dev/es/articulos/compatibilidad-entre-versiones-de-pytorch-cuda-y-xformers</link>
              <guid isPermaLink="true">https://www.felixsanz.dev/es/articulos/compatibilidad-entre-versiones-de-pytorch-cuda-y-xformers</guid>
              <dc:creator><![CDATA[Félix Sanz]]></dc:creator>
              
                <category><![CDATA[Inteligencia artificial]]></category>
              
              <pubDate>Mon, 20 Nov 2023 22:00:00 GMT</pubDate>
            </item>
        
            <item>
              <title><![CDATA[Cómo crear códigos QR con Stable Diffusion]]></title>
              <description><![CDATA[Crea códigos QR decorativos, profesionales y 100% funcionales mediante Stable Diffusion y ControlNet.]]></description>
              <content:encoded>
                <![CDATA[<p>Hace poco más de un mes, un <a href="https://www.reddit.com/r/StableDiffusion/comments/141hg9x/controlnet_for_qr_code/">usuario de Reddit</a> jugó con la idea de <strong>generar códigos QR con Stable Diffusion mediante el uso de ControlNet</strong>. Con esta técnica se pretendía condicionar la generación de imágenes de manera que Stable Diffusion genera una imagen creativa y atractiva mientras que ControlNet se encarga de mantener la estructura lo más intacta posible para mantener la legibilidad del código QR. Sin duda una gran idea.</p><p>En cuestión de horas empezaron a publicarse nuevos métodos y formas de generar códigos QR con Stable Diffusion. La mayoría de resultados son sorprendentes pero en mi opinión hay <strong>2 problemas importantes</strong>.</p><p>El primer problema es que las imágenes generadas son tan impactantes que <strong>ya nisiquiera parecen códigos QR</strong>. Cuando vemos un código de barras de una bolsa de almendras o un código QR en la mesa de un restaurante, inmediatamente sabemos para qué sirven y qué hacer con ellos. Al ver estas imágenes no tendremos esa familiaridad.</p><p><a href="https://www.felixsanz.dev/es/articulos/como-crear-codigos-qr-con-stable-diffusion">Lee el artículo completo con sus ejemplos interactivos →</a></p>]]>
              </content:encoded>
              <link>https://www.felixsanz.dev/es/articulos/como-crear-codigos-qr-con-stable-diffusion</link>
              <guid isPermaLink="true">https://www.felixsanz.dev/es/articulos/como-crear-codigos-qr-con-stable-diffusion</guid>
              <dc:creator><![CDATA[Félix Sanz]]></dc:creator>
              
                <category><![CDATA[Inteligencia artificial]]></category>
              
                <category><![CDATA[Stable Diffusion]]></category>
              
              <pubDate>Fri, 14 Jul 2023 13:00:00 GMT</pubDate>
            </item>
        
            <item>
              <title><![CDATA[Guía completa de samplers en Stable Diffusion]]></title>
              <description><![CDATA[Sumérgete en el mundo de los samplers en Stable Diffusion y desbloquea el potencial de la generación de imágenes.]]></description>
              <content:encoded>
                <![CDATA[<p>Como vimos en el artículo <a href="https://www.felixsanz.dev/es/articulos/como-funciona-stable-diffusion#muestreo">Cómo funciona Stable Diffusion</a>, cuando solicitamos a Stable Diffusion que genere una imagen lo primero que hace es generar una imagen con ruido y después el proceso de muestreo va eliminando ruido a lo largo de una serie de pasos que hemos especificado. Sería algo así como <strong>empezar con un bloque de mármol blanco</strong> y pegarle martillazos durante varios días <strong>hasta conseguir el David de Miguel Ángel</strong>.</p><p>En este proceso entran en escena varios algoritmos. El conocido como <em><strong>sampler</strong></em> se encarga de obtener del modelo que estemos utilizando en Stable Diffusion una muestra sobre la que aplica el ruido estimado por el predictor de ruido. Posteriormente resta esta muestra a la imagen que está limpiando, <strong>puliendo el mármol en cada paso</strong>.</p><p>Este algoritmo se encarga del <strong>cómo</strong>, mientras que el algoritmo conocido como <em><strong>noise scheduler</strong></em> se encarga del <strong>cuánto</strong>.</p><p><a href="https://www.felixsanz.dev/es/articulos/guia-completa-de-samplers-en-stable-diffusion">Lee el artículo completo con sus ejemplos interactivos →</a></p>]]>
              </content:encoded>
              <link>https://www.felixsanz.dev/es/articulos/guia-completa-de-samplers-en-stable-diffusion</link>
              <guid isPermaLink="true">https://www.felixsanz.dev/es/articulos/guia-completa-de-samplers-en-stable-diffusion</guid>
              <dc:creator><![CDATA[Félix Sanz]]></dc:creator>
              
                <category><![CDATA[Inteligencia artificial]]></category>
              
                <category><![CDATA[Stable Diffusion]]></category>
              
              <pubDate>Fri, 30 Jun 2023 10:00:00 GMT</pubDate>
            </item>
        
            <item>
              <title><![CDATA[Cómo funciona Stable Diffusion]]></title>
              <description><![CDATA[Comprende de manera sencilla cómo Stable Diffusion transforma unas pocas palabras en una espectacular imagen]]></description>
              <content:encoded>
                <![CDATA[<p>Para utilizar <a href="https://arxiv.org/abs/2112.10752">Stable Diffusion</a> no hace falta entender cómo funciona, pero ayuda. Muchos parámetros configurables como <em><strong>Seed</strong></em>, <em><strong>Sampler</strong></em>, <em><strong>Steps</strong></em>, <em><strong>CFG Scale</strong></em> o <em><strong>Denoising strength</strong></em> son esenciales para <strong>generar imágenes de calidad</strong>.</p><p>En este artículo vamos a ver, a grandes rasgos, sin una sola línea de código y casi para todos los públicos, como funciona Stable Diffusion internamente en su versión 1.x y cómo es capaz de <strong>generar imágenes tan creativas con una simple frase de texto</strong>.</p><p><a href="https://www.felixsanz.dev/es/articulos/como-funciona-stable-diffusion">Lee el artículo completo con sus ejemplos interactivos →</a></p>]]>
              </content:encoded>
              <link>https://www.felixsanz.dev/es/articulos/como-funciona-stable-diffusion</link>
              <guid isPermaLink="true">https://www.felixsanz.dev/es/articulos/como-funciona-stable-diffusion</guid>
              <dc:creator><![CDATA[Félix Sanz]]></dc:creator>
              
                <category><![CDATA[Inteligencia artificial]]></category>
              
                <category><![CDATA[Stable Diffusion]]></category>
              
              <pubDate>Mon, 08 May 2023 20:00:00 GMT</pubDate>
            </item>
        
            <item>
              <title><![CDATA[Seguridad web: HSTS]]></title>
              <description><![CDATA[Mejora la seguridad de tu sitio web con la directiva HSTS, evitando el tráfico de datos por medios inseguros.]]></description>
              <content:encoded>
                <![CDATA[<p>HTTP con Seguridad de Transporte Estricta o <strong>HSTS</strong> (<em>HTTP Strict Transport Security</em> - <a href="https://tools.ietf.org/html/rfc6797">RFC 6797</a>), es una política de seguridad diseñada para impedir que los visitantes de nuestro sitio web sean capaces de acceder <strong>de manera insegura</strong> a través del protocolo HTTP.</p><p>Cuando el servidor web hace uso de esta política, todos los visitantes que intenten acceder a través del protocolo HTTP serán redirigidos a la versión HTTPS. De ahí viene lo de <strong>estricta</strong>.</p><p><a href="https://www.felixsanz.dev/es/articulos/seguridad-web-hsts">Lee el artículo completo con sus ejemplos interactivos →</a></p>]]>
              </content:encoded>
              <link>https://www.felixsanz.dev/es/articulos/seguridad-web-hsts</link>
              <guid isPermaLink="true">https://www.felixsanz.dev/es/articulos/seguridad-web-hsts</guid>
              <dc:creator><![CDATA[Félix Sanz]]></dc:creator>
              
                <category><![CDATA[Seguridad]]></category>
              
              <pubDate>Thu, 05 Oct 2017 19:00:00 GMT</pubDate>
            </item>
        
            <item>
              <title><![CDATA[Introducción a la compresión de datos en la web]]></title>
              <description><![CDATA[Optimiza el tamaño y velocidad de tu aplicación web gracias al uso correcto de la compresión de datos.]]></description>
              <content:encoded>
                <![CDATA[<p>La compresión web, esa pequeña e incomprendida funcionalidad que utilizamos constantemente para enviar y recibir datos de manera más rápida y <strong>generando un volumen de datos menor</strong>.</p><p>En este artículo veremos cómo funciona y las distintas opciones de las que disponemos.</p><p><a href="https://www.felixsanz.dev/es/articulos/introduccion-a-la-compresion-de-datos-en-la-web">Lee el artículo completo con sus ejemplos interactivos →</a></p>]]>
              </content:encoded>
              <link>https://www.felixsanz.dev/es/articulos/introduccion-a-la-compresion-de-datos-en-la-web</link>
              <guid isPermaLink="true">https://www.felixsanz.dev/es/articulos/introduccion-a-la-compresion-de-datos-en-la-web</guid>
              <dc:creator><![CDATA[Félix Sanz]]></dc:creator>
              
                <category><![CDATA[Redes]]></category>
              
                <category><![CDATA[Rendimiento]]></category>
              
              <pubDate>Wed, 04 Oct 2017 17:00:00 GMT</pubDate>
            </item>
        
            <item>
              <title><![CDATA[Seguridad web: TLS]]></title>
              <description><![CDATA[¿Qué es TLS? En este artículo verás su funcionamiento, cómo TLS protege el tráfico HTTP y las diferencias con SSL.]]></description>
              <content:encoded>
                <![CDATA[<p>En el artículo <a href="https://www.felixsanz.dev/como-funciona-internet">Cómo funciona internet</a> vimos como funcionaba el sistema de 4 capas sobre el que se asienta el envío de datos en Internet. Si no leíste el artículo te recomiendo hacerlo para poder entender éste mejor. ¿Ya lo leíste? Genial. Como habrás podido deducir, <strong>cualquier intermediario</strong> que esté escuchando el flujo de información será capaz de recoger esos paquetes de datos y <strong>espiar su contenido</strong>. Esto, como es obvio, es un problema de seguridad y privacidad muy grande.</p><p>¿La solución? Encriptar <strong>todos los paquetes de datos</strong> para que los nodos intermedios solo puedan interceptar datos cifrados que no tienen ninguna utilidad. Y aquí es donde aparece TLS.</p><p><a href="https://www.felixsanz.dev/es/articulos/seguridad-web-tls">Lee el artículo completo con sus ejemplos interactivos →</a></p>]]>
              </content:encoded>
              <link>https://www.felixsanz.dev/es/articulos/seguridad-web-tls</link>
              <guid isPermaLink="true">https://www.felixsanz.dev/es/articulos/seguridad-web-tls</guid>
              <dc:creator><![CDATA[Félix Sanz]]></dc:creator>
              
                <category><![CDATA[Seguridad]]></category>
              
              <pubDate>Tue, 12 Sep 2017 21:00:00 GMT</pubDate>
            </item>
        
            <item>
              <title><![CDATA[Cómo funciona Internet]]></title>
              <description><![CDATA[Comprender los pilares sobre los que funciona Internet es fundamental para entender el lado del servidor.]]></description>
              <content:encoded>
                <![CDATA[<p>Antes de empezar, definamos lo que es un protocolo.</p><p>Un <a href="https://es.wikipedia.org/wiki/Protocolo_de_comunicaciones">protocolo de comunicaciones</a> es un <strong>conjunto de reglas</strong> que dos o más entidades utilizan para <strong>comunicarse y transmitir información</strong>.</p><p>En lo que conocemos como Internet, se hacen uso de multitud de protocolos. Por ejemplo HTTP para navegar por la web, SMTP e IMAP/POP para enviar y recibir correo electrónico, RTSP para vídeo en tiempo real, etc.</p><p><a href="https://www.felixsanz.dev/es/articulos/como-funciona-internet">Lee el artículo completo con sus ejemplos interactivos →</a></p>]]>
              </content:encoded>
              <link>https://www.felixsanz.dev/es/articulos/como-funciona-internet</link>
              <guid isPermaLink="true">https://www.felixsanz.dev/es/articulos/como-funciona-internet</guid>
              <dc:creator><![CDATA[Félix Sanz]]></dc:creator>
              
                <category><![CDATA[Redes]]></category>
              
              <pubDate>Tue, 05 Sep 2017 08:00:00 GMT</pubDate>
            </item>
        
            <item>
              <title><![CDATA[Introducción a systemd]]></title>
              <description><![CDATA[Convierte tus aplicaciones en servicios administrados y monitorizados sin necesidad de aplicaciones externas.]]></description>
              <content:encoded>
                <![CDATA[<p><a href="https://www.freedesktop.org/wiki/Software/systemd">systemd</a> es una poderosa (aunque <a href="https://suckless.org/sucks/systemd/">controvertida</a>) suite utilizada para <strong>administrar y configurar sistemas Unix</strong>. Uno de los usos más extendidos de systemd es el de <strong>gestionar el sistema de inicio</strong> (<em>init system</em>), para administrar fácilmente procesos y servicios. Aunque systemd es capaz de administrar muchas más cosas, en este artículo veremos como utilizar systemd para crear, arrancar, parar, reiniciar y, en general, mantener sanos y monitorizados nuestros servicios propios.</p><p>Vamos a utilizar de ejemplo una aplicación creada en Node.js. Si bien podríamos utilizar uno de los muchos gestores de procesos que se instalan a través de <code>npm</code>, como por ejemplo <a href="https://github.com/Unitech/pm2">pm2</a>, <a href="https://github.com/foreverjs/forever">forever</a> o <a href="https://github.com/Supervisor/supervisor">supervisor</a>, el problema es que estas herramientas están unidas a Node.js y su futuro dependen del mantenimiento que reciban estas librerías. En el caso de systemd, es una suite muy sólida que viene de serie en muchas distribuciones Linux y saber cómo funciona nos brinda nuevas oportunidades.</p><p>Otro problema es que tras reiniciar la máquina necesitaríamos un servicio o tarea que ejecute de nuevo nuestro gestor de procesos basado en Node.js. Así pues, vamos a prescindir de este tipo de herramientas, aunque podríamos combinarlas y obtener lo mejor de ambos mundos.</p><p><a href="https://www.felixsanz.dev/es/articulos/introduccion-a-systemd">Lee el artículo completo con sus ejemplos interactivos →</a></p>]]>
              </content:encoded>
              <link>https://www.felixsanz.dev/es/articulos/introduccion-a-systemd</link>
              <guid isPermaLink="true">https://www.felixsanz.dev/es/articulos/introduccion-a-systemd</guid>
              <dc:creator><![CDATA[Félix Sanz]]></dc:creator>
              
                <category><![CDATA[Linux]]></category>
              
              <pubDate>Fri, 07 Oct 2016 17:00:00 GMT</pubDate>
            </item>
        
            <item>
              <title><![CDATA[Introducción a iptables]]></title>
              <description><![CDATA[Protege tu servidor con este potente cortafuegos gracias a unas reglas básicas y sencillas de entender.]]></description>
              <content:encoded>
                <![CDATA[<p><a href="https://es.wikipedia.org/wiki/Iptables">iptables</a> es una <strong>potente herramienta</strong> que todo administrador de sistemas debería conocer y utilizar. Pero como desarrollador web, a veces es difícil sacar provecho a todas las funcionalidades que este enorme <strong>cortafuegos</strong> ofrece.</p><p>A continuación veremos un ejemplo de <strong>configuración de iptables</strong> restrictivo y útil, en el que cerraremos todos los puertos e iremos abriendo los necesarios según las necesidades personales de cada uno.</p><p>Lo primero es especificar qué tipo de reglas vamos a añadir. Esto se hace marcando el inicio y el fin:</p><p><a href="https://www.felixsanz.dev/es/articulos/introduccion-a-iptables">Lee el artículo completo con sus ejemplos interactivos →</a></p>]]>
              </content:encoded>
              <link>https://www.felixsanz.dev/es/articulos/introduccion-a-iptables</link>
              <guid isPermaLink="true">https://www.felixsanz.dev/es/articulos/introduccion-a-iptables</guid>
              <dc:creator><![CDATA[Félix Sanz]]></dc:creator>
              
                <category><![CDATA[Linux]]></category>
              
                <category><![CDATA[Seguridad]]></category>
              
              <pubDate>Sat, 02 Jul 2016 00:00:00 GMT</pubDate>
            </item>
        
            <item>
              <title><![CDATA[El nuevo manifiesto de aplicaciones web]]></title>
              <description><![CDATA[Gracias al fichero manifest.json se acortan las distancias en cuanto a funcionalidad con la plataforma nativa.]]></description>
              <content:encoded>
                <![CDATA[<p>El <a href="https://w3c.github.io/manifest">manifiesto para aplicaciones web</a> es un <strong>estándar de la W3C</strong> para definir, mediante un fichero JSON (usualmente <code>manifest.json</code>), como se comporta nuestro sitio web a la hora de actuar como una <strong>aplicación web</strong>.</p><p>Hasta ahora nuestra opción era depender de la etiqueta <code class="generic-Snippet inline">&#x3C;title></code> para el título de la aplicación y un montón de etiquetas <code class="generic-Snippet inline">&#x3C;link></code> y <code class="generic-Snippet inline">&#x3C;meta></code> (<code class="generic-Snippet inline">apple-touch-icon</code>, <code class="generic-Snippet inline">icon</code>, <code class="generic-Snippet inline">msapplication</code>, etc.) para gestionar los iconos a distintas resoluciones. Cuando un usuario añadía nuestra web a la pantalla de inicio de su teléfono móvil, aparecía utilizando este título e iconos dependiendo de la plataforma que tuviese el usuario. Esta técnica no era muy amigable para los desarrolladores y <strong>no ofrecía flexibilidad</strong> ni facilidades en el mantenimiento de estas directrices.</p><p>La W3C se puso las pilas y ahora podemos hacer uso del manifiesto para aplicaciones web.</p><p><a href="https://www.felixsanz.dev/es/articulos/el-nuevo-manifiesto-de-aplicaciones-web">Lee el artículo completo con sus ejemplos interactivos →</a></p>]]>
              </content:encoded>
              <link>https://www.felixsanz.dev/es/articulos/el-nuevo-manifiesto-de-aplicaciones-web</link>
              <guid isPermaLink="true">https://www.felixsanz.dev/es/articulos/el-nuevo-manifiesto-de-aplicaciones-web</guid>
              <dc:creator><![CDATA[Félix Sanz]]></dc:creator>
              
                <category><![CDATA[Desarrollo]]></category>
              
              <pubDate>Thu, 09 Apr 2015 22:00:00 GMT</pubDate>
            </item>
        
      </channel>
    </rss>